OpenDroneKit

Smart adaptive

A uniform grid plus a finer, lower, cross-hatched pass over regions that warrant a closer look.

Updated 2026-10-02_compile_smart_adaptive_primitive · planned at 0ae10e4

Waypoints
125
Flight length
1,218.3 m
Estimated time
3.6 min
Altitude
36.7–55 m
Gimbal pitch
-90°
Est. GSD
1.16 cm/px

Geometry, from the planner

Planned by OpenDroneKit with these inputs: 180 x 120 m rectangle, 55 m, one 40 x 30 m interest region. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.

Planner output · 125 waypointsLocal metres · north up
50 mN
Plan · blue: flight path · ring: first waypoint · dashed: drawn area
01020304050
Elevation, looking north · x: east–west position (m), y: altitude above take-off (m) · 36.7–55 m · gimbal -90°

How is the smart adaptive mission laid out?

The regions come from the operator: drawn interest polygons, or defect points from an earlier survey's defect layer (each drawn as a radius around the point).

With no interest input there is nothing to adapt to, so the template emits the plain grid and labels its poses grid_uniform_no_interest_input rather than claiming adaptivity.

Also accepted by the planner as: adaptive, smart.

Inputs

ParameterMeaningDefault
altitude_mFlight altitude in metres, relative to the take-off point unless an AMSL terrain model is loaded60
front_overlap_pctForward overlap between consecutive photos; with the camera footprint it sets the capture spacing80
side_overlap_pctOverlap between neighbouring lines or rows; with the camera footprint it sets the line spacing70
speed_m_sPlanned cruise speed, written to every export5
cameraCamera profile used for footprint and ground-sample-distance estimatesmavic2pro
gimbal_tilt_degCamera pitch; left blank, the template's own default is used-90
adaptive_interest_regions_lonlatPolygons that get the finer detail pass—
adaptive_prior_defects_lonlatDefect points from an earlier survey that get the detail pass—
adaptive_density_factorHow much denser the detail pass is2.5
adaptive_region_radius_mRadius drawn around each prior defect point12

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; all points are NAV_WAYPOINT; no heading locks; 125 DO_DIGICAM_CONTROL captures.
  • DJI WPML .kmz: gimbalRotate on every waypoint; headings use followWayline; takePhoto at capture points; speed limited to 1-15 m/s.
  • Litchi CSV: 125 waypoints exceed the exporter's 99-waypoint split, so the export is written as 2 consecutive files, each starting where the previous one ended.

Each format has known issues, listed on its page: QGC .plan · .waypoints · DJI WPML · Litchi CSV.

Limits

  • Adaptive only when given interest regions or prior defects; otherwise a uniform grid, labelled as such.
  • Planned without a terrain model the plan assumes flat ground at the launch elevation, and it says so in a warning.
  • In this example 5 of 125 points fell outside the geofence (the drawn area) and were projected back inside it; the plan reports that count.
  • 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_smart_adaptive_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.py
  • tests/test_mission_exports_carry_the_plan.py
  • tests/test_template_inventory_is_derived.py

Nadir or near-nadir lines over a drawn area, for orthomosaics, DSMs and coverage.

  • Grid: A nadir lawnmower survey of a drawn area, for orthomosaics and elevation models.
  • Double grid: A cross-hatched survey: the grid flown twice at crossing bearings, for 3D reconstruction of an area.
  • Corridor: Parallel lanes along the long axis of a drawn strip, for roads, rails, pipelines and riverbanks.
  • Solar: Row-aligned passes over a solar array, for RGB or thermal capture.
  • Magnetic: Main survey lines plus perpendicular tie lines at constant altitude, for magnetometer surveys.
  • Roof inspection: A stop-and-shoot grid over a roof: the aircraft halts at each point to photograph it.

All 22 templates: mission templates · mission planning.