0. Before We Start: Why Mission Planning?
0.1 Manual vs. Autonomous Flight
Imagine flying a kite โ you hold the string, and wherever the kite goes, you follow. That is manual flight.
Mission Planner task planning is the equivalent of drawing a route on the ground beforehand, then releasing the kite. It flies the route by itself and returns to you. This is called an auto mission.
0.2 Who Should Learn This?
| Use Case | Typical Need |
|---|---|
| Aerial Photography | Have the drone fly a smooth automated path while you focus on camera control |
| Surveying / Inspection | Need the drone to sweep across an entire area evenly like a “lawnmower” to capture photos |
| Agricultural Spraying | Auto-cover a field for pesticide or fertilizer application |
| Research / Education | Design precise flight paths for experiments |
0.3 Prerequisites
Before reading this article, please ensure you have completed:
- โ Installed Mission Planner ground station software
- โ Flight controller connected to your computer and communicating via USB
- โ Aircraft has completed basic calibration (RC transmitter, accelerometer, compass, ESC, etc.)
- โ Firmware is ArduPilot (this guide is based on ArduPilot command system; PX4 support may come later depending on feedback)
If any of the above is not yet complete, please finish those steps first โ otherwise it is like trying to drive a car without wheels. It simply will not work.
1. A Concept You Must Understand First: Home Position
1.1 What Is “Home”?
When you hear “home,” you probably think of the house you live in. In the drone world, “home” is not your house โ it is:
Home = the location where the aircraft will land when it executes Return to Launch (RTL)
It is like assigning a designated parking spot to your drone โ no matter where it flies, when you press “go home,” it returns to this parking spot.
1.2 How Is “Home” Determined for Different Aircraft Types?
| Aircraft Type | Home Position = ? | Why? |
|---|---|---|
| Multirotor / Helicopter | The location where you arm and take off | Arming = the moment the motors start spinning. That location becomes Home. So before takeoff, place the aircraft where you want it to land. |
| Fixed-Wing | The location of the first GPS lock | A fixed-wing cannot land in place, so its “home” is the GPS coordinate where it first acquired satellite signal. During RTL, the aircraft flies back to this GPS coordinate. |
1.3 How to Change the Home Position
On the Mission Planner map interface, you will see a ๐ Home icon. Simply drag it with your mouse to wherever you want to set as the new Home. That is all.
The #1 rookie mistake: not confirming the Home position before takeoff, then during RTL the drone flies to the rooftop of the neighboring building instead of your lawn. So โ before planning any mission, always confirm where Home is!
2. A Visual Walkthrough: What a Complete Mission Looks Like
Let us use a real mission as an example so you get an intuitive feel for what a “waypoint mission” actually looks like.
2.1 Mission Scenario
Suppose you have a helicopter (or multirotor) and you want it to do the following:
| Step | What I Want the Aircraft to Do | Altitude Change |
|---|---|---|
| 1 | Auto-takeoff from the ground | Climb to 20 meters |
| 2 | Fly to Waypoint 2 | Climb to 100 meters en route |
| 3 | Hover at 100m for 10 seconds | Maintain 100 meters |
| 4 | Fly to Waypoint 3 | Descend to 50 meters en route |
| 5 | Return to Home | Climb to default altitude (100m) |
| 6 | Auto-land | Return to ground level |
2.2 What the Interface Looks Like โ Flight Plan Screen Description
What you are looking at right now: click the Flight Plan tab in Mission Planner’s top menu bar.
The entire window is divided into three main sections. Find them on your screen:
Upper Left โ Map Area (takes up most of the screen)
You will see a satellite map (similar to Google Maps/Baidu Maps). There may already be a few markers on the map:
- A ๐ house icon: this is “Home” โ the home position
- If you have never drawn a mission before, the map should be blank
- Right-click anywhere on the map to bring up a context menu with options like “Waypoint,” “Draw Polygon,” etc.
- Left-click anywhere on the map to add a new waypoint directly โ a numbered marker (e.g., “1”) will appear on the map, and a new row will be added at the bottom of the screen
Lower Left โ Command List Area (a horizontal table right below the map)
This is an Excel-like table where each row represents one mission step. The columns you will see include:
- Command: dropdown menu with options like WAYPOINT, TAKEOFF, LAND, etc.
- Delay: a number representing how many seconds to wait at this point before executing the next command
- Alt: a number in meters โ the aircraft altitude at this waypoint
- Lat / Lon: GPS coordinates, auto-filled when you click on the map
- Speed: the aircraft horizontal speed approaching this waypoint, in m/s
- Action / Parameters: column headers change depending on the command type
Right Side โ Control Panel
On the right side there is a vertical column of buttons and input fields:
- “Write” button: sends the mission to the flight controller
- “Read” button: reads the currently stored mission from the flight controller
- “Save” button: saves the mission as a file on your computer
- “Load” button: loads a previously saved mission file from your computer
- “Default Alt” input box: a field where you can enter a number, followed by the unit “m” (meters)
- “Verify Altitude” checkbox: a small checkable square
2.3 Two Critically Important Parameters
โ Default Alt โ Find It in the Right Panel
| Location | Appearance |
|---|---|
| Right panel, usually below the Write/Read buttons | An input box labeled Default Alt or Default Altitude, followed by the unit “m” |
| What Is This? | Why Is It Important? |
|---|---|
| The default flight altitude for new waypoints | If you set Default Alt = 100m, every new waypoint you click on the map automatically gets an altitude of 100m (unless you manually change it) |
| Also the RTL cruise altitude | When you trigger Return to Launch, the aircraft does not fly straight home โ it first climbs to this Default Alt, then flies horizontally home. If Default Alt is not set, it maintains current altitude on the way home |
Memory shortcut: Default Alt = “how high you normally fly” + “how high you fly on the way home.”
โก Verify Alt โ Anti-Collision Feature
| Location | Appearance |
|---|---|
| Right panel, near “Default Alt” | A checkbox (small square), labeled Verify Altitude |
When checked, Mission Planner does the following: it queries Google Earth terrain elevation data and pads each waypoint altitude above the mountain “forehead.”
| Checkbox State | Result |
|---|---|
| โ Checked | Safe flight โ the computer watches the mountains for you |
| โ Unchecked | Mountain is 80m tall, you set waypoint at 100m โ the aircraft is only 20m above the peak. Dangerous! |
Always check Verify Alt when flying in mountainous terrain!
3. Saving and Reusing Missions
Mission designed. The next step is storing it in the flight controller.
3.1 Where Are the “Write” and “Read” Buttons?
Look at the right panel. At the top there is a group of buttons:
- “Write” button: usually a blue or gray button labeled “Write”. Click it and Mission Planner sends the current mission on screen to the flight controller. On success, you should see a status bar message saying “Write succeeded.”
- “Read” button: right next to or below “Write,” labeled “Read”. Click it and the table refreshes โ showing the mission actually stored in the flight controller. If the table matches what you just wrote, the write was successful.
Rookie tip: after writing, immediately click “Read” to verify โ like double-checking your exam paper after finishing, to avoid errors from disconnections or accidental omissions.
3.2 Saving and Loading Missions to Your Computer
Next to the Write/Read buttons you will also find:
- “Save”: saves a mission file (typically .waypoints or .txt) to your computer hard drive
- “Load”: loads a previously saved mission file from your computer; the table auto-fills with all waypoints
This way you can just load the file every time you fly the same route โ no need to redraw it.
4. Advanced: Drawing Polygons on the Map (Survey Area)
4.1 When Do You Need to “Draw a Polygon”?
When you want your drone to cover every corner of an entire area (e.g., photographing a crop field, 3D modeling a construction site), placing waypoints one by one is too tedious. That is when you need the polygon tool.
4.2 Step-by-Step Instructions
Step 1: Start Drawing a Polygon
On the Flight Plan map โ Right-click
In the right-click context menu you will see:
- Waypoint
- Draw Polygon โ choose this
- Auto WP
- Measure Distance
- and more…
Click “Draw Polygon.” Your mouse cursor may change to a crosshair or other drawing cursor.
Step 2: Outline Your Target Area on the Map
Use your mouse to left-click sequentially on the map. Each click adds a polygon “vertex” (a small square or dot marker). You need at least 3 points to form a polygon. When you come back near the first point, double-click or right-click to complete the polygon.
Once done, the map shows a semi-transparent shaded or bold-outlined polygon โ that is your drawn area.
Step 3: Open Simple Grid Configuration
Right-click inside the polygon area again. From the context menu, select:
- Auto WP โ
- Simple Grid
A small window or submenu will pop up. Inside it, find and click an option or button labeled Grid.
Step 4: Fill In Grid Parameters
Clicking Grid opens a configuration window with several fields you need to fill:
| Field Label (approximately) | What It Means | What to Enter |
|---|---|---|
| Distance Between Lines | Spacing between parallel flight lines | e.g., enter 20 (meters) โ the aircraft flies one line every 20m |
| Altitude | Flight altitude within this area | e.g., enter 80 (meters) |
| Angle | Direction angle of the flight lines | 0ยฐ = north-south, 90ยฐ = east-west; default is usually fine |
After filling in these values, click “OK” or “Accept.”
Step 5: See the Result
Back on the map, you will see the inside of the polygon filled with rows of parallel lines โ this is the “lawnmower” pattern. Each intersection of a line with the polygon border is a waypoint. The command list area below is also auto-populated with N rows โ one row per waypoint + turn point.
5. Understanding the Three Command Families: NAV, CONDITION, DO
This is the most important conceptual section of this article. A Mission Planner mission is essentially a command list, and every command belongs to one of three families:
Mission Command Families
โโ NAV (Navigation) โ controls WHERE the aircraft flies
โโ CONDITION โ controls WHEN actions happen
โโ DO (Action) โ controls WHAT the aircraft does
5.1 NAV (Navigation Commands)
In one sentence: NAV commands tell the aircraft “where to go” and “how to get there.”
Important rule: NAV commands have the highest priority. When a new waypoint NAV command is loaded, any unfinished CONDITION and DO commands from the previous waypoint are skipped immediately.
NAV Command Family
| Command Name | What It Does |
|---|---|
| WAYPOINT | Fly to a latitude/longitude coordinate โ the most commonly used command |
| TAKEOFF | Take off โ recommended as the first command in every mission |
| LOITER_UNLIM | Hover indefinitely |
| LOITER_TURNS | Circle for a specified number of turns |
| LOITER_TIME | Hover for a specified number of seconds |
| RETURN_TO_LAUNCH | Return to Home |
| LAND | Land at a specified location |
| SPLINE_WAYPOINT | Fly through waypoints using smooth spline curves (smoother than standard WAYPOINT) |
| GUIDED_ENABLE | Hand control over to an external controller |
| DO_JUMP | Jump to another command in the mission list; can repeat |
๐ Deep Dive: DO_JUMP
DO_JUMP is like a goto statement in programming โ it makes the aircraft jump back to a previous command and re-execute instead of proceeding sequentially.
In the command list, find a row and set its Command dropdown to DO_JUMP.
When selected, new columns appear:
Column Label (approximately) Meaning What to Enter WP# or Param1 Which command number to jump to (counting from 1) e.g., enter 1to jump back to the first commandRepeat or Param2 How many times to loop e.g., enter 3to jump back and execute 3 timesExample: your mission is
#1 โ #2 โ #3 โ #4. At #3 you add DO_JUMP back to #1 with Repeat = 3. The actual flight path becomes:#1 โ #2 โ #3 โ jump to #1 โ #2 โ #3 โ jump to #1 โ #2 โ #3 โ continue to #4The aircraft flies between #1 and #2 three times before proceeding to #4.
DO_JUMP can be called at most 15 times per mission (3 times before AC 3.3). Beyond that, it is ignored.
5.2 CONDITION (Condition Commands)
In one sentence: CONDITION commands control timing.
Equally important: CONDITION does NOT stop the aircraft! The aircraft keeps flying โ only the DO commands are waiting for the condition to be met.
CONDITION_DELAY
| What does it do? | After reaching a waypoint, wait N seconds before executing the following DO commands |
|---|---|
| Parameter | Param1 (Time in seconds): delay duration, can include decimals |
CONDITION_DISTANCE
In the command list, set the Command column to CONDITION_DISTANCE.
Two parameter input fields appear:
Column Label (approximately) Meaning What to Enter Time (s) or Param1 Delay seconds e.g., enter 0 Distance (m) or Param2 How many meters from the next waypoint before triggering e.g., enter 50 โ triggers when within 50m of the next waypoint For example, if you want the camera to turn on 50 meters before reaching your destination โ set Distance = 50m.
CONDITION_YAW
| What does it do? | Point the aircraft nose (yaw angle) toward a specified direction |
|---|
5.3 DO Commands (Action Commands)
In one sentence: DO commands are immediate action instructions.
How to add a DO command in the interface?
In the command list Command column, click the dropdown on any row. You will see a long list of commands. Everything starting with DO_ falls under this category. Once selected, the column headers change to show the parameters that command requires.
โ DO_SET_HOME โ Reset the Home Position
After selecting DO_SET_HOME in the Command column, you will see these parameter fields:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Current | Enter 1 = current location becomes the new Home; enter 0 = manually specify coordinates |
| Param5 | Lat | Only needed if Param1 = 0; target latitude |
| Param6 | Lon | Target longitude |
| Param7 | Alt | Target altitude |
โก DO_SET_RELAY โ Toggle a Relay On/Off
After selecting DO_SET_RELAY in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Relay No | Enter a number representing which relay |
| Param2 | On/Off | 1 = on (high), 0 = off (low) |
โข DO_REPEAT_RELAY โ Toggle a Relay Multiple Times
After selecting DO_REPEAT_RELAY in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Relay No | Relay number |
| Param2 | Repeat # | e.g., enter 5 = toggle 5 times |
| Param3 | Delay | Seconds between each toggle, e.g., 3 = toggle every 3 seconds |
Example: relay off โ 3 seconds later on โ 3 seconds later off = one complete cycle.
โฃ DO_SET_SERVO โ Move a Servo to a Specific Position
After selecting DO_SET_SERVO in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Servo No | Which output channel the servo is connected to (1-16) |
| Param2 | PWM | Enter a value between 1000-2000 (microseconds). 1000 = min, 1500 = center, 2000 = max |
Example: to move a servo to the upper-middle position โ enter
1700.
โค DO_REPEAT_SERVO โ Oscillate a Servo Back and Forth
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Channel | Which output channel |
| Param2 | PWM | Target PWM value |
| Param3 | Repeat count | How many cycles |
| Param4 | Delay | Seconds between each action |
| Param5-7 | Leave blank |
โฅ DO_SET_ROI โ Lock Camera/Gimbal onto a Point
ROI = Region of Interest. Tells the drone: “No matter how you fly, keep the gimbal pointed at this spot.”
โฆ DO_DIGICAM_CONFIGURE โ Configure Camera Settings
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Mode | 1 = Auto, 2 = Aperture Priority, 3 = Shutter Priority, 4 = Manual |
| Param2 | Shutter Speed | Enter the denominator; for 1/60s enter 60 |
| Param3 | Aperture | F-number, e.g., 5.6 |
| Param4 | ISO | e.g., 100, 200 |
โง DO_DIGICAM_CONTROL โ Control / Trigger Camera Shutter
After selecting DO_DIGICAM_CONTROL in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | On/Off | 0 = close lens, 1 = open lens |
| Param2 | Zoom Position | Enter zoom multiplier, e.g., 2 for 2x zoom |
| Param3 | Zoom Step | Relative offset from current zoom; enter 0 for no change |
| Param4 | Focus Lock | 0 = ignore, 1 = unlock focus, 2 = lock focus |
| Param5 | Shutter Cmd | Enter any non-zero number (e.g., 1) to trigger a single photo capture |
โจ DO_MOUNT_CONTROL โ Control Gimbal Angle
After selecting DO_MOUNT_CONTROL in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Lens On/Off | 0 = off, 1 = on |
| Param2 | Pitch | Degrees; positive = look down, negative = look up |
| Param3 | Roll | Degrees; generally enter 0 |
| Param4 | Yaw | Degrees; controls the compass direction of the lens |
โฉ DO_SET_CAM_TRIGG_DIST โ Auto-Trigger Camera by Distance
After selecting DO_SET_CAM_TRIGG_DIST in the Command column:
| Parameter | Label (approximately) | What to Enter |
|---|---|---|
| Param1 | Distance | Trigger the shutter every X meters flown. To stop photo capture, enter 0. |
The core surveying command! With this, the aircraft auto-captures a photo at every distance interval.
โช Other Common DO Commands at a Glance
| Command | Function |
|---|---|
| SET_MODE | Switch flight mode |
| DO_CHANGE_SPEED | Change horizontal speed/throttle; stays in effect until modified again or reboot |
| DO_PARACHUTE | Deploy parachute |
| DO_GRIPPER | Control gripper (EPM) |
| DO_GUIDED_LIMITS | Set limits for external control mode |
6. Real-World Case Study: Full Aerial Survey Auto-Photo Mission
Now let us tie everything together and build a complete aerial survey auto-photo mission.
6.1 Mission Objective
Have the drone cover a rectangular crop field, automatically take a photo every 15 meters, then return home.
6.2 Step-by-Step Instructions
Step 1: Create the Target Area
On the Flight Plan map โ Right-click โ select “Draw Polygon.”
Use your mouse to left-click along the edges of the field (at least 3 points) to form a closed polygon.
At this point, you will see the polygon on the map: its border is a bold line, and the interior may have semi-transparent fill. When you right-click inside the polygon, the context menu now includes options related to “Auto WP” โ this confirms the polygon was created successfully.
Step 2: Configure Survey Grid Parameters
Right-click inside the polygon โ Auto WP โ Survey (Grid).
A new configuration window pops up, likely titled “Survey (Grid) Configuration.” There are many parameters, but the most important ones are:
| Field You See in the Window | Meaning | Suggested Value for Beginners |
|---|---|---|
| Altitude | Flight altitude within this area | e.g., enter 80 (meters) |
| Angle | Flight line direction | Default is fine, or align with the long edge of the field |
| Distance Between Lines | Spacing between flight lines | Determined by camera parameters (see auto-calculation below) |
| Overshoot | How far beyond the boundary the aircraft flies before turning | Default 20-30m is fine |
| Lead-in | Straight-line distance reserved before entering the survey line | Default is fine |
How is line spacing calculated?
In the same configuration window, there is also a “Camera Config” section where you enter:
- Camera focal length (e.g., 28mm)
- Camera sensor width (e.g., 36mm for full-frame 35mm)
- Ground Sample Distance (GSD, e.g., 2 cm/pixel)
- Overlap (front overlap and side overlap, e.g., 75%)
Mission Planner automatically calculates the optimal line spacing and photo interval based on these parameters. The auto-calculated spacing value becomes the parameter for
DO_SET_CAM_TRIGG_DIST.After filling in all parameters, click the “Accept” button at the bottom of the window.
Step 3: Review the Generated Mission
After clicking Accept, the configuration window closes and you return to the map. You will now see:
- The polygon interior filled with rows of parallel lines โ the auto-generated grid flight path
- Both ends of each flight line extend slightly beyond the polygon boundary (the Overshoot value โ to give the aircraft room to turn)
- A TAKEOFF marker at the starting point and a LAND marker at the end point
Meanwhile, the command list area below has been populated with N rows of commands. Review them row by row:
| Row # (approx.) | Command Column Content | What This Row Means |
|---|---|---|
| 1 | TAKEOFF | Auto-takeoff |
| 2 | DO_SET_CAM_TRIGG_DIST | Parameter = auto-calculated photo interval (e.g., 15); enables distance-triggered photo capture |
| 3 to N-2 | WAYPOINT (multiple rows) | Each waypoint on the grid; aircraft flies them in sequence |
| N-1 | DO_SET_CAM_TRIGG_DIST | Parameter = 0; disables photo capture |
| N | RETURN_TO_LAUNCH | Return to Home |
| N+1 | LAND | Land |
6.3 Critical Detail (Must Read for Beginners!)
Important: there are two
DO_SET_CAM_TRIGG_DISTrows in the mission, with different parameters:
- Row 2: Parameter = 15 (or the auto-calculated value) โ enables photo capture, triggers shutter every X meters
- Row N-1: Parameter = 0 โ disables photo capture, stops triggering the shutter
If you forget the second row (Parameter = 0), the aircraft may still attempt to trigger the shutter even at the landing point โ potentially causing camera errors or mechanical damage.
7. Beginner FAQ
Q1: I wrote the mission but the aircraft does not execute it. Why?
| Check | What to Do |
|---|---|
| Is it armed? | The flight controller must be in an “armed” state to execute AUTO missions |
| Is the flight mode switched to AUTO? | Writing a mission โ executing it. You must switch the mode switch on your RC transmitter to AUTO |
| Is the first command TAKEOFF? | If not, the flight controller waits for you to take off manually first |
| Is Home correct? | The position at arming is Home. Check if the GPS LED is green |
Q2: When flying between waypoints, which altitude takes precedence?
Priority: Each waypoint’s own altitude setting > Default Alt > previous waypoint altitude.
The aircraft automatically adjusts altitude between waypoints โ it does not snap to the new altitude instantly. It climbs or descends gradually while moving forward.
Q3: I want the aircraft to fly a smooth “arc” instead of a jagged polyline. How?
Change the waypoint command from WAYPOINT to SPLINE_WAYPOINT. Spline curves make the aircraft pass through each waypoint in a smooth arc for a more cinematic flight path.
Q4: Can I pause a mission mid-flight and switch to manual control?
Yes. Switch to Loiter mode and the aircraft hovers in place. Switch to Stabilize or AltHold for full manual control. To resume the mission, switch back to AUTO โ the aircraft continues from where it left off.
Q5: What if the battery runs low mid-mission?
The flight controller’s Battery Failsafe takes priority over mission commands โ as soon as voltage drops below the threshold, the flight controller automatically triggers RTL, skipping all remaining mission commands and flying straight home to land.
8. Summary: From Zero to One
Congratulations! If you have read this far, you should now have mastered:
| Level | What You Have Learned |
|---|---|
| Bronze | Know what Home, Default Alt, and Verify Alt are |
| Silver | Can manually create a basic mission with waypoints, takeoff, and landing |
| Gold | Can use Polygon + Grid to auto-generate area coverage flight paths |
| Diamond | Understand the differences and interactions between NAV / CONDITION / DO command families |
| Master | Can design a complete aerial survey auto-photo mission workflow |
Recommended next steps:
- Practice first in SITL simulator (no cost, no crashes, no heartbreak)
- Once simulated missions run successfully, move to a real aircraft
- For the first real flight, test at low altitude in an open area โ confirm everything works before formal operations
If you have any questions about Mission Planner or ArduPilot mission planning, feel free to contact Aomway at [email protected]. Our team includes experienced UAV operators who can provide technical guidance on mission planning, payload integration, and custom flight solutions.
Have questions about this article? Feel free to contact us at [email protected] โ we’re happy to help!