diff --git a/src/modules/mc_pos_control/MulticopterPositionControl.cpp b/src/modules/mc_pos_control/MulticopterPositionControl.cpp index d1ada966d6..a7590ba557 100644 --- a/src/modules/mc_pos_control/MulticopterPositionControl.cpp +++ b/src/modules/mc_pos_control/MulticopterPositionControl.cpp @@ -478,7 +478,9 @@ void MulticopterPositionControl::start_flight_task() } // Switch to clean new task when mode switches e.g. to reset state when switching between auto modes - if (_last_vehicle_nav_state != _vehicle_status.nav_state) { + // exclude Orbit mode since the task is initiated in FlightTasks through the vehicle_command and we should not switch out + if (_last_vehicle_nav_state != _vehicle_status.nav_state + && _vehicle_status.nav_state != vehicle_status_s::NAVIGATION_STATE_ORBIT) { _flight_tasks.switchTask(FlightTaskIndex::None); }