From d58cad456b05434b0aed3712974ef029220f3131 Mon Sep 17 00:00:00 2001 From: Junwoo Hwang Date: Fri, 11 Nov 2022 02:18:11 +0100 Subject: [PATCH] RoverPosControl: Using torque setpoint directly as steering input - Although the discussion is still ongoing: https://github.com/PX4/PX4-Autopilot/pull/20082#discussion_r962169411 - The original code would cause quick saturation in the steering input, as it doesn't even have a conecpt of time - So using direct mapping for now, but we can revert this back and find the correct solution --- src/modules/rover_pos_control/RoverPositionControl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/rover_pos_control/RoverPositionControl.cpp b/src/modules/rover_pos_control/RoverPositionControl.cpp index 25f5f1908d..63341b5d6b 100644 --- a/src/modules/rover_pos_control/RoverPositionControl.cpp +++ b/src/modules/rover_pos_control/RoverPositionControl.cpp @@ -469,7 +469,10 @@ RoverPositionControl::control_rates(const vehicle_angular_velocity_s &rates, con const matrix::Vector3f torque = _rate_control.update(vehicle_rates, rates_setpoint, angular_acceleration, dt, lock_integrator); - _steering_input = math::constrain(_steering_input + torque(2), -1.0f, 1.0f); + // Direct mapping from torque setpoint to steering + _steering_input = math::constrain(torque(2), -1.0f, 1.0f); + + // _steering_input = math::constrain(_steering_input + torque(2), -1.0f, 1.0f); _act_controls.control[actuator_controls_s::INDEX_YAW] = _steering_input;