Skip to content

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:

  1. Draw the operational polygon (SAR, custom, zone — any polygon type works).
  2. Right-click the polygon → Plan drone mission from polygon.
  3. Or open the drone-mission panel and click New against an existing polygon.

From a mission’s detail page → Drone missionsNew 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 of parallel, 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) or uniform (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. For fixed and manually set headingAngleDeg. For towardPOI set headingPoi (lat/lng/alt).
  • Turn mode (turnMode) — coordinateTurn, toPointAndStopWithDiscontinuityCurvature (default, spec-compliant for stop-at-waypoint), toPointAndStopWithContinuousCurvature, toPointAndPassWithContinuousCurvature. Set turnDampingDistM (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) or exitImmediately.
  • 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 configure dockChain with multiDockMode relay or simultaneous.

The two targets are mutually exclusive; switching clears the other.

Save vs. Dispatch

  • Save — persists the DroneMission doc with status: '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 through wayline_uploadingwayline_registereddji_preparingdji_readydji_executing. See KMZ export and DJI flight tasks.

For scheduled or recurring dispatch see scheduling.