From 7cc85885a40f328930fc487c432022de516fc98b Mon Sep 17 00:00:00 2001 From: ChristophTobler Date: Tue, 10 Jul 2018 11:28:59 +0200 Subject: [PATCH] position control: set _skip_controller before calling _interfaceMapping() Without this failsafe will be overwritten --- src/modules/mc_pos_control/PositionControl.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; }