Skip to main content
Vision Navigation installs on one drone at a time. Each drone keeps its own permission grants and its own per-drone config, and the plugin runs only on the agent of the drone you picked.

Before you start

  1. Choose a mode. optical_flow if the drone has a downward rangefinder, optical_flow_degraded if it doesn’t. See Modes and fallback.
  2. Mount and wire the hardware. A downward camera, plus the rangefinder for optical_flow. See Hardware.
  3. Check the versions. The drone runs Drone Agent 0.99.125 or newer (check with ados version) and you use Mission Control 0.56.0 or newer.
  4. Check the board. The drone’s board must be in the extension’s board list on the Extensions catalog.

Install from Mission Control

  1. Open the drone, go to Agent, and under Software click Extensions. A drone with nothing installed shows “No extensions installed on this drone yet.”
  2. Pick the source:
    • From the registry. Find ADOS Vision Navigation in the list of available extensions and click Install. The drone fetches the signed archive itself, so this needs a LAN path from Mission Control to the drone.
    • From a file. Click Install extension on this drone (or Install from file) and choose a downloaded .adosplug. Mission Control sends it over the LAN when it can reach the drone, and through the cloud relay when it can’t.
  3. Read the review page. It shows the description, compatibility, the permissions, the flight controller parameters the extension expects, the publisher and signer, and the resource impact.
  4. Click Install. The button names how many permissions the install grants.
Mission Control install review page for ADOS Vision Navigation with its permissions, details and the Install button that grants 11 permissions

The install review for Vision Navigation.

Progress runs Uploading, Queued, Commanded, Downloading, Verifying, Installing, Enabling, Completed over the cloud relay. A LAN install skips the first four and runs Verifying, Installing, Enabling, Completed. The extension is high risk because it writes MAVLink that the flight controller fuses for position hold. It requests these permissions: Permissions
  • event.publish
  • hardware.uart
  • mavlink.component.vio
  • mavlink.read
  • mavlink.write
  • telemetry.extend
  • telemetry.subscribe.navigation
  • ui.slot.flight-skill
  • ui.slot.node-detail-tab
  • vision.frame.read
Boards: cm4, cm5, rock-5c-lite, rk3588s2, rk3576, rpi5 If the drone is armed, Mission Control asks you to confirm before it installs, enables, disables or removes an extension.

Install from the agent CLI

On the drone, install the signed archive from its release URL or a local file:
The CLI prints the plugin id, version, risk and the requested permissions, then asks once to approve them. Because the extension is high risk, --yes refuses it; approve it interactively. See Extensions on the agent.

Set the per-drone config

A fresh install starts in mode off and sends nothing to the flight controller. Write the config through the agent’s plugin config route. On the drone itself no key is needed:
From another machine on the LAN, send the same requests to http://192.168.1.50:8080/... with -H "X-ADOS-Key: $ADOS_KEY". An object value such as rangefinder replaces the whole object, so send every field you want to keep. The plugin checks its stored config once a second. When a value changes, it exits and its unit restarts it on the new config within a few seconds. A config naming an unknown mode or a sideways camera in an optical-flow mode is rejected, and the plugin runs disengaged.

Enable the extension

On the extension’s row on the drone’s Extensions page, click Enable. Within a few seconds a Vision Nav tab appears on the drone. Configure on the same row opens the extension’s detail page (overview, permissions and events). Uninstall is in the row’s menu. The Engage Skill (default key Shift+N) turns vision navigation on and off from the cockpit. It asks for confirmation before it engages, and writes active in the per-drone config.
Engaging Vision Navigation changes how the flight controller estimates position. Read Safety before you fly.

What you have now

  • The plugin runs as its own sandboxed unit on the drone, with up to 512 MB RAM, 80% of a CPU core and 24 processes.
  • In an optical-flow mode it sends flow to the flight controller at the camera frame rate once frames and a scale source are available.
  • The Vision Nav tab shows the mode, the sensors, the estimator state, flow health and the pre-arm checks.

Uninstall

Click Uninstall in the extension row’s menu. The drone stops the plugin, removes it and clears its data on that drone, and the flight controller stops receiving flow. From the CLI, ados plugin remove com.altnautica.vision-nav does the same; add --keep-data to keep the data directory (and any camchain.yaml).

If the install fails

  • “Not compatible with this drone’s board” or “Requires agent v…”: the drone’s board or agent version does not match the manifest. Upgrade the agent or use a supported board.
  • Stuck at Downloading: the drone can’t reach the release URL. Check its outbound HTTPS.
  • Fails at Verifying: the signature does not verify against a trusted key, or the signer is revoked. Download the archive again from the release page.
  • The tab stays empty after enabling: the plugin sees no frames. Check that the vision host captures the downward camera, then read the plugin log with ados plugin logs com.altnautica.vision-nav.

Next steps

Flight controller setup

Set the flight controller parameters and check pre-arm.

Hardware

Camera and rangefinder choices.
Last modified on October 11, 2026