Geometry, from the planner
Planned by OpenDroneKit with these inputs: 40 x 15 m building, wall band 8 to 28 m. The drawing is the planner’s actual output for that test site in Aukerman Park, Ohio, not an illustration. The plan has 729 waypoints; every point is counted above and an even subset is drawn.
How is the facade mapping mission laid out?
The same wall geometry as facade, with overlap raised to at least 85 % forward and 80 % side and spacing tightened by a further 0.75 factor.
The plan carries a locked-exposure camera policy for photogrammetry. Capture profiles: normal (camera level) or oblique (camera at -20 deg).
Also accepted by the planner as: facade_3d, vertical_mapping.
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 | 0 |
facade_top_altitude_m | Top of the wall band to photograph | — |
facade_bottom_altitude_m | Bottom of the wall band to photograph | — |
facade_standoff_m | Distance from the wall (falls back to 8 m when unset) | — |
facade_capture_profile | custom, normal (camera level) or oblique (camera at -20 deg) for facade mapping | custom |
facade_curve_path_lonlat | A drawn wall line to follow instead of the footprint's first edge | — |
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; 729 of 729 have a CONDITION_YAW heading lock; 729 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: 729 waypoints exceed the exporter's 99-waypoint split, so the export is written as 8 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
- Like facade, this covers one wall per mission.
- 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_facade_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.pytests/test_mission_exports_carry_the_plan.pytests/test_plan_warnings_say_what_happened.pytests/test_standoff.py
Related templates
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.
- 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.
- 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.