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.

Note

This is an feature was released in Copter-3.5.

Setup

  • 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)
../_images/zed-enrouteex700.jpg

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 Home 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