How can I use the ZED with Docker on a robot with no internet connection?

An internet connection is normally required to download the calibration file only the first time you open a ZED camera with an application based on the ZED SDK.

You can always download the calibration file manually by following the instructions available on this page.

Every time a container is launched, it behaves as if the camera is being connected for the first time on a new device, so the ZED SDK does not find the calibration file and tries to download it from our servers.

To address this behavior, you can use a volume for the folder /usr/local/zed/settings/. This allows using the same configuration file on the host machine, ensuring that the Docker container locates it consistently upon launching.

Add the option
-v /usr/local/zed/settings/:/usr/local/zed/settings/
to your Docker run command to configure the required volume.

Example:

docker run --runtime nvidia -it --privileged \
  -v /usr/local/zed/settings/:/usr/local/zed/settings/ \
  <docker_image> sh

 

Robots and AI modules

The same problem occurs when the robot uses an AI module of the ZED SDK.

The solution is to add a volume for the folder /usr/local/zed/resources/:

-v /usr/local/zed/resources/:/usr/local/zed/resources/

Example:

docker run --runtime nvidia -it --privileged \
  -v /usr/local/zed/resources/:/usr/local/zed/resources/ \
  <docker_image> sh