Geometry, from the planner
Planned by OpenDroneKit with these inputs: four drawn waypoints, 50 m. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.
How is the waypoints mission laid out?
The aircraft flies the drawn points in order. Heading is tangent to the path, fixed, or locked on a point of interest.
Optional smoothing rounds corners of 15 deg or more by inserting curve points that do not capture. Each drawn point can be a capture stop (1.5 s hover by default).
Also accepted by the planner as: advanced_waypoints, waypoint.
Inputs
| Parameter | Meaning | Default |
|---|---|---|
altitude_m | Flight altitude in metres, relative to the take-off point unless an AMSL terrain model is loaded | 60 |
front_overlap_pct | Forward overlap between consecutive photos; with the camera footprint it sets the capture spacing | 80 |
side_overlap_pct | Overlap between neighbouring lines or rows; with the camera footprint it sets the line spacing | 70 |
speed_m_s | Planned cruise speed, written to every export | 5 |
camera | Camera profile used for footprint and ground-sample-distance estimates | mavic2pro |
gimbal_tilt_deg | Camera pitch; left blank, the template's own default is used | -90 |
waypoint_path_lonlat | The drawn waypoints | — |
waypoint_heading_mode | tangent (face the next point), fixed (one heading) or poi (face a point of interest) | tangent |
waypoint_fixed_yaw_deg | Heading used in fixed mode | 0 |
waypoint_poi_lonlat | Point of interest used in poi mode | — |
waypoint_enable_smoothing | Round corners of 15 deg or more with extra non-capturing curve points | false |
waypoint_turn_radius_m | Corner radius when smoothing | 6 |
waypoint_capture_enabled | Take a photo at each drawn waypoint | true |
inspection_dwell_s | Hover time at each capture point | — |
Footprint, line spacing and GSD come from the camera profile; the GSD calculator uses the same formulas.
What survives each export?
- QGroundControl .plan and .waypoints: every point carries a DO_MOUNT_CONTROL gimbal command; 4 of 4 points are NAV_LOITER_TIME holds; no heading locks; 4 DO_DIGICAM_CONTROL captures.
- DJI WPML .kmz: gimbalRotate on every waypoint; hover action and toPointAndStopWithDiscontinuityCurvature turns at hold points; headings use followWayline; takePhoto at capture points; speed limited to 1-15 m/s.
- Litchi CSV: 4 waypoints fit in one file (the exporter splits at 99).
Each format has known issues, listed on its page: QGC .plan · .waypoints · DJI WPML · Litchi CSV.
Limits
- Planned without a terrain model the plan assumes flat ground at the launch elevation, and it says so in a warning.
- Not flight-tested on an aircraft as part of these pages; the numbers above are the planner’s estimates.
Source and tests
Compiled by _compile_waypoints_primitive in mission/planner.py. The function is on public main (1ef6351); this drawing was planned with the development branch (0ae10e4), whose planner is ahead of main.
Tests in the development branch that exercise it:
tests/test_exporters.pytests/test_mission_constraints.pytests/test_mission_exports_carry_the_plan.pytests/test_standoff.pytests/test_template_inventory_is_derived.py
Related templates
Paths around or along something, single-point captures, and joined missions.
- Orbit: Circles around a point of interest at one or more heights, camera aimed at the subject.
- Closed loop: Continuous loops around a structure at one or more radii, without stopping at corners.
- Linear: Captures along a drawn route line, heading locked along it, for pipelines, rail, power lines and rivers.
- Lateral: Side-on photos of a linear asset from a parallel line at stand-off.
- Panorama: A hover at one point, rotating to photograph the horizon for a stitched panorama.
- 360 bubble: A hover at one point covering the whole sphere below the horizon, for a 360 photo sphere.
- Linked mission: Two or more saved missions joined into one sortie, with planned transitions between them.
All 22 templates: mission templates · mission planning.