do not set position setpoint too early

This commit is contained in:
Roman
2015-11-01 10:13:55 +01:00
parent 35d8e0bc55
commit 601da2818b
@@ -714,16 +714,18 @@ MulticopterPositionControl::control_manual(float dt)
(fabsf(_vel(0)) < _params.hold_max_xy && fabsf(_vel(1)) < _params.hold_max_xy))) (fabsf(_vel(0)) < _params.hold_max_xy && fabsf(_vel(1)) < _params.hold_max_xy)))
{ {
_pos_hold_engaged = true; _pos_hold_engaged = true;
} else {
_pos_hold_engaged = false;
} }
} }
else { else {
_pos_hold_engaged = false; _pos_hold_engaged = false;
_pos_sp(0) = _pos(0);
_pos_sp(1) = _pos(1);
} }
/* set requested velocity setpoint */ /* set requested velocity setpoint */
if (!_pos_hold_engaged) { if (!_pos_hold_engaged) {
_pos_sp(0) = _pos(0);
_pos_sp(1) = _pos(1);
_run_pos_control = false; /* request velocity setpoint to be used, instead of position setpoint */ _run_pos_control = false; /* request velocity setpoint to be used, instead of position setpoint */
_vel_sp(0) = req_vel_sp_scaled(0); _vel_sp(0) = req_vel_sp_scaled(0);
_vel_sp(1) = req_vel_sp_scaled(1); _vel_sp(1) = req_vel_sp_scaled(1);