tailsitter: do not condition transition on airspeed if airspeed disabled

Signed-off-by: Roman <bapstroman@gmail.com>
This commit is contained in:
Roman
2018-04-03 10:07:06 +02:00
committed by Lorenz Meier
parent 23d25f2a22
commit d6a86dfa56
+10 -7
View File
@@ -130,16 +130,19 @@ void Tailsitter::update_vtol_state()
case FW_MODE:
break;
case TRANSITION_FRONT_P1:
case TRANSITION_FRONT_P1: {
// check if we have reached airspeed and pitch angle to switch to TRANSITION P2 mode
if ((_airspeed->indicated_airspeed_m_s >= _params->transition_airspeed
&& pitch <= PITCH_TRANSITION_FRONT_P1) || can_transition_on_ground()) {
_vtol_schedule.flight_mode = FW_MODE;
bool airspeed_condition_satisfied = _airspeed->indicated_airspeed_m_s >= _params->transition_airspeed;
airspeed_condition_satisfied |= _params->airspeed_disabled;
// check if we have reached airspeed and pitch angle to switch to TRANSITION P2 mode
if ((airspeed_condition_satisfied && pitch <= PITCH_TRANSITION_FRONT_P1) || can_transition_on_ground()) {
_vtol_schedule.flight_mode = FW_MODE;
}
break;
}
break;
case TRANSITION_BACK:
// failsafe into fixed wing mode
_vtol_schedule.flight_mode = FW_MODE;