Mission Mode

Mission mode causes the vehicle to execute a predefined autonomous mission (flight plan) that has been uploaded to the flight controller. The mission is typically created and uploaded with a Ground Control Station (GCS) application like QGroundControl (QGC).

  • This mode requires 3d position information (e.g. GPS).
  • This mode is automatic (RC control is disabled by default except to change modes).
  • The vehicle must be armed before this mode can be engaged.


Missions are usually created in a ground control station (e.g. QGroundControl) and uploaded prior to launch. They may also be created by a developer API, and/or uploaded in flight.

Individual mission commands are handled in a way that is appropriate for each vehicle's flight characteristics (for example loiter is implemented as hover for copter and circle for fixed-wing). VTOL vehicles follow the behavior and parameters of fixed-wing when in FW mode, and of copter when in MC mode.

Missions are uploaded onto a SD card that needs to be inserted before booting up the autopilot.

At high level all vehicle types behave in the same way when MISSION mode is engaged:

  1. If a mission is stored and PX4 is flying it will execute the mission/flight plan from the current step.
  2. If a mission is stored and PX4 is landed:
    • On copters PX4 will execute the mission/flight plan. If the mission does not have a TAKEOFF command then PX4 will fly the vehicle to the minimum altitude before executing the remainder of the flight plan from the current step.
    • On fixed-wing vehicles PX4 will not automatically take off (the autopilot will detect the lack of movement and set the throttle to zero). The vehicle may start executing the mission if hand- or catapult- launched while in mission mode.
  3. If no mission is stored, or if PX4 has finished executing all mission commands:
    • If flying the vehicle will loiter.
    • If landed the vehicle will "wait".
  4. You can manually change the current mission command by selecting it in QGroundControl.

    If you have a Jump to item command in the mission, moving to another item will not reset the loop counter. One implication is that if you change the current mission command to 1 this will not "fully restart" the mission.

  5. The mission will only reset when the vehicle is disarmed or when a new mission is uploaded.

    To automatically disarm the vehicle after it lands, in QGroundControl go to Vehicle Setup > Safety, navigate to Land Mode Settings and check the box labeled Disarm after. Enter the time to wait after landing before disarming the vehicle.

Missions can be paused by activating HOLD mode. The mission will then continue from the current mission command when you reactivate the MISSION flight mode. While flying in mission mode, if you decide to discontinue the mission and switch to any other mode e.g. position mode, fly the vehicle elsewhere with RC, and then switch back to mission mode, the vehicle will continue the mission from its current position and will fly to the next mission waypoint not visited yet.

Ensure that the throttle stick is non-zero before switching to any RC mode (otherwise the vehicle will crash).We recommend you centre the control sticks before switching to any other mode.

For more information about mission planning, see:

QGroundControl Support

QGroundControl provides additional GCS-level mission handling support (in addition to that provided by the flight controller). For more information see:

Mission Parameters

Mission behaviour is affected by a number of parameters. These cover, for example, how the vehicle will behave if it looses connection to its remote control during a mission (NAV_RCL_ACT), the fixed-wing loiter radius (NAV_LOITER_RAD), acceptance radius for reaching a waypoint etc.

These are documented here: Parameter Reference > Mission

Supported Mission Commands

PX4 "accepts" the following MAVLink mission commands in Mission mode (note: caveats below list). Unless otherwise noted, the implementation is as defined in the MAVLink speification.


  • PX4 parses the above messages, but they are not necessary acted on. For example, some messages are vehicle-type specific.
  • PX4 generally does not support local frames for mission commands (e.g. MAV_FRAME_LOCAL_NED).
  • Not all messages/commands are exposed via QGroundControl.
  • The list may be out of date as messages are added. You can check the current set by inspecting the code. Support is MavlinkMissionManager::parse_mavlink_mission_item in /src/modules/mavlink/mavlink_mission.cpp (list generated in this git changelist).

    Please add an bug fix or PR if you find a missing/incorrect message.

© PX4 Dev Team. License: CC BY 4.0            Updated: 2018-07-23 01:21:57

results matching ""

    No results matching ""