diff --git a/src/modules/mc_pos_control/PositionControl.cpp b/src/modules/mc_pos_control/PositionControl.cpp index b421caf6b8..b25d49d01f 100644 --- a/src/modules/mc_pos_control/PositionControl.cpp +++ b/src/modules/mc_pos_control/PositionControl.cpp @@ -56,6 +56,10 @@ void PositionControl::updateState(const PositionControlStates &states) void PositionControl::updateSetpoint(const vehicle_local_position_setpoint_s &setpoint) { + // If full manual is required (thrust already generated), don't run position/velocity + // controller and just return thrust. + _skip_controller = false; + _pos_sp = Vector3f(&setpoint.x); _vel_sp = Vector3f(&setpoint.vx); _acc_sp = Vector3f(&setpoint.acc_x); @@ -64,10 +68,6 @@ void PositionControl::updateSetpoint(const vehicle_local_position_setpoint_s &se _yawspeed_sp = setpoint.yawspeed; _interfaceMapping(); - // If full manual is required (thrust already generated), don't run position/velocity - // controller and just return thrust. - _skip_controller = false; - if (PX4_ISFINITE(setpoint.thrust[0]) && PX4_ISFINITE(setpoint.thrust[1]) && PX4_ISFINITE(setpoint.thrust[2])) { _skip_controller = true; }