ZED stereo camera for Non-GPS Navigation

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

Required Hardware


  • connect the autopilot 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

  • 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, connect the TX1 to the Internet with an Ethernet cable during powerup (this procedure is only required once)

  • disable APSync’s video streaming (so that OpenKai can use the camera) by connecting your computer to APSync’s access point (ssid=ardupilot, pw=ardupilot), then open a browser to and click the red Disable Auto Streaming button (button should turn green) and reboot the TX1.

../_images/apsync-disable-auto-stream.png ../_images/zed-enrouteex700.jpg

Configuration through the Ground Station

Example setup below shown for first proximity sensor:

Optionally you may also:

Ground Testing

  • Plug in the vehicle’s LiPo battery so that both the TX1 and autopilot are powered

  • Connect the autopilot 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 autopilot: - a proximity viewer should appear showing the distance to objects ahead of the vehicle (if PRX1_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 PRX1_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