ZED stereo camera for Non-GPS Navigation

This article explains how a ZED stereo camera can be used with OpenKai as a substitude for a GPS allowing position control modes like Loiter, PosHold, RTL, Auto.


This is an feature was released in Copter-3.5.


  • connect the flight controller and TX1 as shown on the NVidia TX1 as a Companion Computer wiki page
  • flash the TX1 as described in the Setup the TX1 section of the above wiki page but use the apsync-tx1-openkai image from firmware.ardupilot.org
  • mount the ZED camera upside-down and using vibration dampeners to the front of the vehicle. It can be mounted right-side-up after connecting with ssh and then modify ~/src/OpenKAI/kiss/apmCopter.kiss so “bFlip” is 1
  • in order to download the ZED camera’s calibration parameters from stereolabs.com, connect the TX1 to the internet with an ethernet cable during powerup (this procedure is only required once)

Configuration through the Ground Station

Ensure that Copter-3.5 (or higher) is loaded onto the flight controller and connect with a Ground Station (i.e. Mission Planner).

Optionally you may also:

Ground Testing

  • Plug in the vehicle’s lipo battery so that both the TX1 and flight controller are powered
  • Connect the flight controller to a ground station using a USB cable
  • If you are using Mission Planner as your ground station, once messages are successfully passing from the ZED/TX1 to the flight controller: - a proximity viewer should appear showing the distance to objects ahead of the vehicle (if PRX_TYPE was enabled above) - “Bad Vision Position” message should disappear from the HUD
  • Set the home position from the ground station map (from MP’s Flight Data screen, right-mouse-button-click on the map and select “Set EKF Origin Here”). The vehicle should appear on the map.
  • Pick-up the vehicle and walk it around checking that the vehicle’s position movements are shown on the map

Flight testing

  • Setup the vehicle with AltHold and Loiter flight modes
  • Setup an auxiliary switch to enable/disable object avoidance and move switch to the off position. Alternatively set PRX_TYPE to 0. This helps ensure the vehicle will not backaway from objects in AltHold mode which could surprise the pilot.
  • Attempt to arm and take-off in Loiter mode

DataFlash logging

  • The ZED’s visual odometry information will appear in the VISO dataflash log messages.
  • Distance to objects ahead of the vehicle will appear in the PRX messages.
  • EKF’s visual odometry information will appear in XKFD messages