Drone missions — the planner
A DroneMission is a plan attached to a polygon: a coverage pattern, a stack of flight
parameters, and a list of computed waypoints that the aircraft will actually fly. Every
field on the DroneMission document in Firestore maps directly to a control in the
planner, and from there into either a TACLINK peer handoff (handheld drone) or a WPML
KMZ uploaded to a DJI dock.
Opening the planner
From the ops-map tile:
- Draw the operational polygon (SAR, custom, zone — any polygon type works).
- Right-click the polygon → Plan drone mission from polygon.
- Or open the drone-mission panel and click New against an existing polygon.
From a mission’s detail page → Drone missions → New plan does the same thing for polygons already attached to the operation.
Configuring the plan
Identity
- Name and optional description.
- Path colour (
pathColor) — hex, drawn on the map preview. Default#e0e0e0.
Coverage
- Pattern (
pattern) — one ofparallel,creeping-line,expanding-square,sector,crosshatch,perimeter,oblique,corridor,slope,geometric,mapping. See patterns. - Altitude (
altitudeM) — metres AGL for every generated waypoint. - Altitude mode (
altitudeMode) —terrain(per-point AGL against DEM) oruniform(all waypoints share one flat altitude). - Spacing (
spacingM) — perpendicular distance between parallel lines. - Bearing (
bearingDeg) — rotation of lines in degrees from north. - Buffer (
bufferM) — inward/outward padding from the polygon edge; controls turn-around room.
Flight behaviour
- Speed (
speedMps) — cruise speed. Default 8 m/s. - Transit speed (
transitSpeedMps) — takeoff-to-first-waypoint speed. - Heading mode (
headingMode) —followWayline(default),fixed,manually,smoothTransition,towardPOI. ForfixedandmanuallysetheadingAngleDeg. FortowardPOIsetheadingPoi(lat/lng/alt). - Turn mode (
turnMode) —coordinateTurn,toPointAndStopWithDiscontinuityCurvature(default, spec-compliant for stop-at-waypoint),toPointAndStopWithContinuousCurvature,toPointAndPassWithContinuousCurvature. SetturnDampingDistM(0.2–1000 m) to soften. - Height mode (
heightMode) —relativeToStartPoint(default),WGS84,EGM96,aboveGroundLevel.
Safety
- Takeoff security height (
takeoffSecurityHeight) — metres AGL; the aircraft climbs to this before running the wayline. Emitted as<wpml:takeOffSecurityHeight>. - RTH altitude (
rthAltitude) — emitted as<wpml:globalRTHHeight>. - Exit on RC lost (
exitOnRcLost) —executeLostAction(default) orexitImmediately. - RC-lost action (
rcLostAction) —goBack(default),hover,land. - Finished action (
finishedAction) —no_action,go_home,auto_land,go_to_first_waypoint.
Camera
- Camera FOV (
cameraFovDeg) + default gimbal pitch (gimbalPitchDeg, -90 = nadir). - Mission-level camera settings (
cameraSettings) — focus/metering/exposure/ISO/ aperture/shutter/dewarp/fileSuffix/lenses/useGlobalLens. Per-action overrides are possible — see waypoints and actions.
Aircraft binding
- droneEnumValue / droneSubEnumValue / payloadEnumValue /
payloadSubEnumValue / payloadPositionIndex — DJI identifiers. Defaults target
the Mavic 3D (
droneEnumValue= 77).
Preview
As you change any parameter the map draws the recomputed waypoints with numbered
indices, entry/exit markers (type: 'entry' | 'survey' | 'exit'), and path polyline.
Per-waypoint altitude overrides (pointAltOverrides) and action lists
(waypointActions) are rendered inline.
Assigning
In the Assignment section pick exactly one of:
- Handheld drone — sets
assignedDroneId+assignedDronePeerId. Dispatch goes over TACLINK to the operator’s Android app. - DJI dock — sets
assignedDockSn. For multi-dock coverage configuredockChainwithmultiDockModerelayorsimultaneous.
The two targets are mutually exclusive; switching clears the other.
Save vs. Dispatch
- Save — persists the
DroneMissiondoc withstatus: 'planned'(or'ready'once waypoints are computed). Nothing flies. - Dispatch — kicks
DjiMissionDispatcherService.dispatchToDock: generate KMZ → presigned upload → register wayline → create flight task → prepare. Mission status steps throughwayline_uploading→wayline_registered→dji_preparing→dji_ready→dji_executing. See KMZ export and DJI flight tasks.
For scheduled or recurring dispatch see scheduling.