Skip to content

DJI DRC (Dock Remote Control)

DRC (Dock Remote Control) is DJI’s real-time control surface for flying a dock aircraft from the cloud. ARGUS exposes it through the standard manual-controls UI, with per-op authority tracking, a heartbeat keepalive, and the full command set for Dock 2 + Dock 3.

Authority

Only one operator at a time can hold DRC authority on a given dock. ARGUS tracks this per-mission:

  1. Select the dock’s aircraft in the fleet tile.
  2. Click Take control in the drone-stream tile toolbar or fire the bound authorityGrabFlight input.
  3. ARGUS writes a drc_flight_authority command; argus-dji publishes the DJI drc_authority_grab service.
  4. If another operator currently holds authority, you get a force-grab confirmation dialog. Force-grab pre-empts them (their controls release).
  5. Authority chip on the stream toolbar turns green.

A separate payload authority (Class B — gimbal/camera only) can be grabbed independently via drc_payload_authority. Useful when flight authority stays with the pilot and a second operator operates the payload.

Heartbeat

Once authority is held, ARGUS maintains a 1 Hz heartbeat (DRC_HEARTBEAT command). This tells the dock “we’re still here” — without it, DJI’s flight controller times out the DRC session after ~60 s and the aircraft hovers in place (then eventually auto-RTH).

The heartbeat:

  • Pauses when the browser tab is hidden.
  • Resumes on visibility change.
  • Logs to the blackbox for audit.

If heartbeat stalls due to a crash or network drop, the flight controller’s autonomous safety layer catches it and hovers the aircraft — it doesn’t crash.

Stick control

While authority is held, flight-stick inputs (keyboard, gamepad, HOTAS) get converted to DJI’s integer range [364..1684] (centered at STICK_NEUTRAL=1024, span STICK_RANGE=660). Axes:

  • x — roll (left / right).
  • y — pitch (forward / back).
  • h — vertical (throttle).
  • w — yaw rotation.

The axis-swap is deliberate — DJI’s body axes don’t match web-convention; x=roll and y=pitch get mapped correctly in sendStickControl.

Safety envelope

Vertical is asymmetrically clipped — DJI spec limits upward to +5 m/s and downward to −4 m/s. Horizontal and yaw clamp to ±17 m/s and ±90 °/s respectively.

Advanced flight commands

Beyond raw stick:

  • Fly to point — right-click the map → Fly to here. Sends an autonomous fly-to command with the target coordinate, altitude, max speed.
  • Takeoff to point — on a landed aircraft, send to takeoff and fly directly to a coordinate (skips the usual “takeoff, hover, wait for pilot”).
  • POI orbit — enter orbit mode around a point. Radius + speed adjustable; gimbal can lock.
  • Force land — immediate descent.
  • Emergency stop — motor cut. Aircraft falls. Use only when there’s risk of uncontrolled flight into people / buildings.
  • Emergency land — controlled immediate descent (Dock 2 / 3).

Camera + gimbal via DRC

  • Gimbal aim — mouse-drag over the video, bound axes, or right-click the video → Look at this point.
  • Zoom, lens change (wide / zoom / ir), photo, record start/stop.
  • Exposure mode + value, focus mode + value, point-focus, IR metering (mode + point + area).
  • Camera frame zoom — zoom to a screen rectangle.

Dock-3-only features

Night vision + spotlight

  • Night-mode toggle.
  • Denoise-level slider.
  • Night-vision enable.
  • IR fill light enable.
  • Spotlight brightness / mode / fine-tuning / calibration.

Speaker (PSDK-attached)

  • TTS — type text, dock speaks.
  • Stored audio — upload MP3, send to dock, play.
  • Volume / play-mode / stop / replay / TTS-play-start.

AI recognition

  • Model select, identify-enable, spotlight-zoom + track + select + confirm + stop, score mode, score value, filter list.

Releasing authority

Press the bound Release key (Esc by default if bound), click the release button in the stream toolbar, or navigate away from the drone- stream tile. ARGUS publishes drc_release_authority and the dock’s session ends cleanly.

Known limitations

  • Single-operator per dock. No co-pilot-style shared control.
  • No soft-cap on sticks — only hard DJI limits.
  • No “replay” of DRC inputs — the input axes aren’t blackbox- recorded.