ADOS SENSOR FUSION

One fusion hub, every sensor, a stock flight controller

The drone agent will run as an open, plug-and-play multi-sensor fusion hub on the companion computer. Sensor drivers, a fusion layer, and a map to standard MAVLink messages will feed a stock flight controller with no firmware fork. Sensor fusion is planned.
0
Firmware forks
4
Sensor messages already encoded
9
Estimator messages behind a permission
GPL-3.0
Open-source drone agent

How it will work

Sensors in, one estimate out

Every sensor will publish through its own driver. A shared fusion layer will combine them and speak standard MAVLink to the flight controller. Each layer will be open and replaceable.

Sensors to fusion to flight controller
Sensor driversOne plug-in driver per sensor
ToF, optical flow, RTK GNSSSolid-state lidar, mmWave radarHardware auto-detect
Fusion layerOccupancy and state
Sector occupancy ringState estimateWeighted by motion reliability
Flight controllerStandard MAVLink
Stock ArduPilot or PX4No firmware fork
Sensor drivers will publish to a shared fusion layer. The fusion layer will map sensor roles onto standard MAVLink messages, so a stock ArduPilot or PX4 flight controller consumes them without a firmware change.

The fusion hub runs on the companion computer, not in the flight controller.

The fusion hub runs on the companion computer, not in the flight controller.

The organizing idea

Reliability while moving

Sensors that stay accurate in flight will carry more weight. Sensors that get noisy with speed or texture will be trusted less as the drone moves.

Motion-agnostic

Steady in flight, so they will carry high weight in the estimate.

  • ToF rangefinder
  • RTK GNSS
  • Solid-state lidar
  • mmWave radar

Scene-sensitive

Reliable when slow and textured, so their weight will drop with speed and yaw.

  • Optical flow
  • Stereo depth
  • Mechanical 2D lidar

Mapping

Sensor roles become standard messages

The fusion layer will never fork firmware. Part of the path exists today: the agent already encodes the rangefinder, optical flow, visual position and odometry messages, and a plugin may send an estimator message only with the estimator.pose.inject permission.

  • Rangefinder

    MAVLink message (DISTANCE_SENSOR), Encoder in the agent today

  • Optical flow

    MAVLink message (OPTICAL_FLOW_RAD), Encoder in the agent today

  • Visual position

    MAVLink message (VISION_POSITION_ESTIMATE), Encoder in the agent today

  • Odometry

    MAVLink message (ODOMETRY), Encoder in the agent today

  • Obstacle field

    MAVLink message (OBSTACLE_DISTANCE)

    No encoder in the agent today

  • 3D obstacle field

    MAVLink message (OBSTACLE_DISTANCE_3D)

    No encoder in the agent today

One ecosystem, any sensor

Sensor drivers, fusion, and MAVLink mapping will ship as open source. Follow the design as it comes together.

Read the docs
Get Early Access