OpenDroneKit

Grid survey (2D mapping)

A nadir lawnmower survey of a drawn area, for orthomosaics and elevation models.

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

Waypoints
85
Flight length
985.4 m
Estimated time
2.8 min
Altitude
55 m
Gimbal pitch
-90°
Est. GSD
1.29 cm/px

Geometry, from the planner

Planned by OpenDroneKit with these inputs: 180 x 120 m rectangle, 55 m, 75/65 % overlap, 8 m/s. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.

Planner output · 85 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) · 55 m · gimbal -90°

How is the grid mission laid out?

Parallel flight lines cross the drawn polygon at the chosen bearing. Line spacing comes from the camera footprint and the side overlap; photo spacing along each line comes from the footprint and the forward overlap.

The camera points straight down (-90 deg) unless another pitch is chosen. Every line is clipped to the polygon, and points that fall outside the geofence are projected back inside it and counted in the plan's adjustments.

With a terrain source loaded, altitudes follow the ground (AGL); without one the plan assumes flat ground at the launch elevation and says so in a warning.

Also accepted by the planner as: roof_map, roof_mapping.

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
flight_direction_degBearing of the survey lines0
terrain_follow_enabledFollow terrain from a loaded GeoTIFF, ESRI ASCII grid, CSV samples or fitted planefalse

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; 85 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: 85 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.
  • In this example 5 of 85 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_grid_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_exported_headings_face_the_subject.py
  • tests/test_linking.py
  • tests/test_mapping_3d_oblique.py
  • tests/test_mission_constraints.py
  • tests/test_mission_exports_carry_the_plan.py
  • tests/test_plan_warnings_say_what_happened.py
  • tests/test_standoff.py
  • tests/test_template_inventory_is_derived.py
  • tests/test_terrain_following_is_exact.py

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

  • 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.
  • Smart adaptive: A uniform grid plus a finer, lower, cross-hatched pass over regions that warrant a closer look.
  • 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.