back transition if RTL is called during front transition

This commit is contained in:
thomas 2022-10-04 17:39:38 +02:00 committed by Silvan Fuhrer
parent 96a305322a
commit f771c7ff63

View File

@ -240,6 +240,15 @@ void RTL::on_activation()
{
_rtl_state = RTL_STATE_NONE;
// send a back transition command in case we're doing a front transition to abort the FT
if (_navigator->get_vstatus()->in_transition_to_fw) {
vehicle_command_s cmd {};
cmd.command = vehicle_command_s::VEHICLE_CMD_DO_VTOL_TRANSITION;
cmd.param1 = (float)(vtol_vehicle_status_s::VEHICLE_VTOL_STATE_MC);
cmd.param2 = 0.0f;
_navigator->publish_vehicle_cmd(&cmd);
}
// if a mission landing is desired we should only execute mission navigation mode if we currently are in fw mode
// In multirotor mode no landing pattern is required so we can just navigate to the land point directly and don't need to run mission
_should_engange_mission_for_landing = (_destination.type == RTL_DESTINATION_MISSION_LANDING)