Geometry, from the planner
Planned by OpenDroneKit with these inputs: two-leg route line about 310 m long inside a 360 x 160 m area, 45 m. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.
How is the linear mission laid out?
The route is sampled at a spacing from the camera footprint and forward overlap. The heading is locked to the direction of travel.
Long routes are split into numbered segments (1,500 m by default) so they can be flown in parts.
Also accepted by the planner as: linear, pipeline, rail, river.
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 |
linear_path_lonlat | The route line to follow | — |
linear_segmentation_enabled | Split a long route into numbered segments | true |
linear_max_segment_length_m | Segment length when splitting (minimum 100 m) | 1500 |
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; 34 of 34 points are NAV_LOITER_TIME holds; 34 of 34 have a CONDITION_YAW heading lock; 34 DO_DIGICAM_CONTROL captures.
- DJI WPML .kmz: gimbalRotate on every waypoint; hover action and toPointAndStopWithDiscontinuityCurvature turns at hold points; heading-locked points use smoothTransition; takePhoto at capture points; speed limited to 1-15 m/s.
- Litchi CSV: 34 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
- Without a drawn route line the plan follows the area's outline or long axis and warns that it did.
- 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_linear_inspection_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_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.
- Lateral: Side-on photos of a linear asset from a parallel line at stand-off.
- Waypoints: A route through drawn waypoints, with a choice of heading behaviour.
- 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.