OpenDroneKit

Wind turbine

Tower, nacelle and both faces of each blade of a parked wind turbine.

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

Waypoints
59
Flight length
559.7 m
Estimated time
2.9 min
Altitude
26.7–120 m
Gimbal pitch
0°
Est. GSD
1.8 cm/px

Geometry, from the planner

Planned by OpenDroneKit with these inputs: turbine with 80 m hub, 40 m blades, 12 m nacelle, rotor facing 225 deg, blades parked at 90/210/330 deg. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration.

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

How is the wind turbine mission laid out?

Blades are inspected at the parked rotor angles the operator reports, because a turbine cannot be asked to hold a position. Each blade is captured from both faces: a crack on the trailing edge is invisible from the leading side.

Every capture point keeps at least the stand-off (12 m by default) from the tower, the blades and the nacelle, and the path crosses the rotor plane once, beyond a blade tip.

Also accepted by the planner as: turbine, turbine_inspection.

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
turbine_hub_height_mHub height—
turbine_blade_length_mBlade length55
turbine_blade_angles_degParked blade angles reported by the operator—
turbine_rotor_facing_degBearing the rotor faces—
turbine_nacelle_length_mNacelle length behind the hub12
turbine_tower_levelsNumber of tower capture levels6
turbine_blade_stationsCapture stations along each blade8

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; 51 of 59 points are NAV_LOITER_TIME holds; 59 of 59 have a CONDITION_YAW heading lock; 51 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: 59 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

  • Blade stations above the maximum altitude are not planned, and back-face stations near the hub that would come within the stand-off of the nacelle are dropped; the plan lists both.
  • When rotor direction or dimensions are not given, the plan states what it assumed.
  • 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_wind_turbine_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_mission_exports_carry_the_plan.py
  • tests/test_mission_types.py
  • tests/test_standoff.py
  • tests/test_structure_coverage_is_stated.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.
  • Tower: Stacked rings around a tower or mast, each ring photographing the section beside it.
  • 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.