Browse Source

make failsafe handling consistent over all VTOL types

release/1.12
Thomas 4 years ago committed by Roman Bapst
parent
commit
df41c99b61
  1. 11
      src/modules/vtol_att_control/tailsitter.cpp
  2. 11
      src/modules/vtol_att_control/tiltrotor.cpp

11
src/modules/vtol_att_control/tailsitter.cpp

@ -80,7 +80,16 @@ void Tailsitter::update_vtol_state() @@ -80,7 +80,16 @@ void Tailsitter::update_vtol_state()
float pitch = Eulerf(Quatf(_v_att->q)).theta();
if (!_attc->is_fixed_wing_requested()) {
if (_vtol_vehicle_status->vtol_transition_failsafe) {
// Failsafe event, switch to MC mode immediately
_vtol_schedule.flight_mode = vtol_mode::MC_MODE;
//reset failsafe when FW is no longer requested
if (!_attc->is_fixed_wing_requested()) {
_vtol_vehicle_status->vtol_transition_failsafe = false;
}
} else if (!_attc->is_fixed_wing_requested()) {
switch (_vtol_schedule.flight_mode) { // user switchig to MC mode
case vtol_mode::MC_MODE:

11
src/modules/vtol_att_control/tiltrotor.cpp

@ -100,7 +100,16 @@ void Tiltrotor::update_vtol_state() @@ -100,7 +100,16 @@ void Tiltrotor::update_vtol_state()
* forward completely. For the backtransition the motors simply rotate back.
*/
if (!_attc->is_fixed_wing_requested()) {
if (_vtol_vehicle_status->vtol_transition_failsafe) {
// Failsafe event, switch to MC mode immediately
_vtol_schedule.flight_mode = vtol_mode::MC_MODE;
//reset failsafe when FW is no longer requested
if (!_attc->is_fixed_wing_requested()) {
_vtol_vehicle_status->vtol_transition_failsafe = false;
}
} else if (!_attc->is_fixed_wing_requested()) {
// plane is in multicopter mode
switch (_vtol_schedule.flight_mode) {

Loading…
Cancel
Save