OpenDroneKit

Tower

Stacked rings around a tower or mast, each ring photographing the section beside it.

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

Waypoints
288
Flight length
969.6 m
Estimated time
4.4 min
Altitude
20–45 m
Gimbal pitch
0°
Est. GSD
0.76 cm/px

Geometry, from the planner

Planned by OpenDroneKit with these inputs: 6 x 6 m tower footprint, rings from 20 to 45 m. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.

Planner output · 288 waypointsLocal metres · north up
10 mN
Plan · blue: flight path · ring: first waypoint · dashed: drawn area · shaded: structure
010203040
Elevation, looking north · x: east–west position (m), y: altitude above take-off (m) · 20–45 m · gimbal 0°

How is the tower mission laid out?

Rings are flown at altitude levels between the bottom and top heights, alternating direction from ring to ring. Each ring is labelled separately so an interrupted flight can resume by ring.

The camera is level (0 deg) at every ring and yawed at the tower centre. An earlier version aimed every ring at mid-height, which tilted the top ring 79 deg down so the section beside the aircraft was never in frame; the tests now pin this.

Also accepted by the planner as: cell_tower, stack, tower.

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 used0
tower_center_lonlatTower centre (defaults to the drawn footprint)—
tower_top_altitude_mHighest ring—
tower_bottom_altitude_mLowest ring—
tower_object_radius_mRadius of the tower itself2
tower_flight_radius_mRadius flown around the tower—
tower_resume_enabledLabel each ring so an interrupted flight can resume by ringtrue

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; 288 of 288 have a CONDITION_YAW heading lock; 288 DO_DIGICAM_CONTROL captures.
  • DJI WPML .kmz: gimbalRotate on every waypoint; heading-locked points use smoothTransition; takePhoto at capture points; speed limited to 1-15 m/s.
  • Litchi CSV: 288 waypoints exceed the exporter's 99-waypoint split, so the export is written as 3 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

  • When the tower height is not given, the plan uses the survey altitude and says it assumed it.
  • 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_tower_mapping_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_dome_and_box_missions.py
  • tests/test_exported_headings_face_the_subject.py
  • tests/test_mission_constraints.py
  • tests/test_mission_exports_carry_the_plan.py
  • tests/test_standoff.py
  • tests/test_structure_missions_keep_clear.py
  • tests/test_template_inventory_is_derived.py

Camera aimed at a wall, a box, a tower, a turbine or a dome, from a stand-off distance.

  • Facade: Columns and rows of photos across one wall, at stand-off, camera level and facing the wall.
  • Facade mapping: A denser facade capture for photogrammetric 3D models of a wall.
  • Multi-facade: A facade pass on every wall of a building, each wall with its own stand-off, heights and spacing.
  • Box: A rectangular circuit around a building at stand-off, camera aimed at the building's centre.
  • Wind turbine: Tower, nacelle and both faces of each blade of a parked wind turbine.
  • Dome: Rings that follow a dome's curve, with the camera on the surface normal, for silo caps and domed roofs.

All 22 templates: mission templates · mission planning.