diff --git a/src/modules/navigator/mission_feasibility_checker.cpp b/src/modules/navigator/mission_feasibility_checker.cpp index 7f997584f89c..39aeb58133ac 100644 --- a/src/modules/navigator/mission_feasibility_checker.cpp +++ b/src/modules/navigator/mission_feasibility_checker.cpp @@ -82,14 +82,12 @@ MissionFeasibilityChecker::checkMissionFeasible(const mission_s &mission, failed = failed || !checkGeofence(mission, home_alt, home_valid); failed = failed || !checkHomePositionAltitude(mission, home_alt, home_alt_valid, warned); - // VTOL always respects rotary wing feasibility - if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING - || _navigator->get_vstatus()->is_vtol) { + if (_navigator->get_vstatus()->is_vtol) { failed = failed || !checkRotarywing(mission, home_alt); + failed = failed || !checkFixedwing(mission, home_alt, false); - if (_navigator->get_vstatus()->is_vtol) { - failed = failed || !checkFixedwing(mission, home_alt, false); - } + } else if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING) { + failed = failed || !checkRotarywing(mission, home_alt); } else { failed = failed || !checkFixedwing(mission, home_alt, land_start_req);