Docker_deploy.sh cannot install ZED SDK

Hello folks,

I am trying to make a runnable image using docker_deploy.sh to use ZED2i camera for AprilTag detection.

My script is as follow:

${ISAAC_ROS_WS}/src/isaac_ros_common/scripts/docker_deploy.sh
–base_image_key “aarch64.ros2_humble”
–ros_ws ${ISAAC_ROS_WS}
–launch_package “isaac_ros_examples”
–launch_file “isaac_ros_examples.launch.py launch_fragments:=zed_mono_rect,apriltag interface_specs_file:=/workspaces/isaac_ros-dev/isaac_ros_assets/isaac_ros_apriltag/zed2_quickstart_interface_specs.json”
–name “apriltag_zed_detector:latest”
–install_debians “ros-humble-isaac-ros-zed,ros-humble-zed-msgs,ros-humble-isaac-ros-apriltag,ros-humble-isaac-ros-examples”
–include_dir “${ISAAC_ROS_WS}:/workspaces/isaac_ros-dev”

Then I run it using this command:

docker run --rm -it --gpus all apriltag_zed_detector:latest

The problem with the created image is that, it doesnt have ZED SDK installed inside it. And docker_deploy.sh doesnt have a syntax to execute install-zed-aarch64.sh during the build process.

I also tried to run the lines inside the install-zed-aarch64.sh after building the image, didnt work.

Any help would be greatly appreciated.

Best,
Mohammadreza.

Hi @mohammad.reza

Welcome to the Isaac ROS forum and thank you for your post.

install-zed-aarch64.sh is added in Dockerfile.zed. Which you can change base_image_key as “aarch64.ros2_humble.zed” to include.

Best,
Ahung

Thank you for your reply Ahung,

I modified my script as follows:

r1@ubuntu:/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common$ ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts/docker_deploy.sh --base_image_key “aarch64.ros2_humble.zed” --ros_ws ${ISAAC_ROS_WS} --launch_package “isaac_ros_examples” --launch_file “isaac_ros_examples.launch.py launch_fragments:=zed_mono_rect,apriltag interface_specs_file:=/workspaces/isaac_ros-dev/isaac_ros_assets/isaac_ros_apriltag/zed2_quickstart_interface_specs.json” --name “apriltag_zed_detector:latest” --install_debians “ros-humble-isaac-ros-zed,ros-humble-zed-msgs,ros-humble-isaac-ros-apriltag,ros-humble-isaac-ros-examples” --include_dir “${ISAAC_ROS_WS}:/workspaces/isaac_ros-dev”

And I get this error:

Building deployable image apriltag_zed_detector:latest
Base image key: |aarch64.ros2_humble.zed| / suffix image_key: ||
Entrypoint to launch isaac_ros_examples/isaac_ros_examples.launch.py launch_fragments:=zed_mono_rect,apriltag interface_specs_file:=/workspaces/isaac_ros-dev/isaac_ros_assets/isaac_ros_apriltag/zed2_quickstart_interface_specs.json
Installing debians: ros-humble-isaac-ros-zed,ros-humble-zed-msgs,ros-humble-isaac-ros-apriltag,ros-humble-isaac-ros-examples
Installing ROS workspace at /mnt/nova_ssd/workspaces/isaac_ros-dev/ to /workspaces/isaac_ros-dev
Installing directory: /mnt/nova_ssd/workspaces/isaac_ros-dev/:/workspaces/isaac_ros-dev
Installing directory: /mnt/nova_ssd/workspaces/isaac_ros-dev//install:/workspaces/isaac_ros-dev/install
Begin building deployable image
Staging /mnt/nova_ssd/workspaces/isaac_ros-dev/->/workspaces/isaac_ros-dev
Staging /mnt/nova_ssd/workspaces/isaac_ros-dev//install->/workspaces/isaac_ros-dev/install
Building deploy base image: apriltag_zed_detector:latest-base with key aarch64.ros2_humble.zed
Building layered image for key aarch64.ros2_humble.zed as apriltag_zed_detector:latest-base
Using configured docker search paths: /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/…/docker
Additional build arg: MODE=deploy
Could not resolve Dockerfiles for target image ids: aarch64.ros2_humble.zed
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common

I installed the issac_ros_common package using following script in isaac_ros_apriltag webpage:

cd ${ISAAC_ROS_WS}/src &&
git clone -b release-3.2 GitHub - NVIDIA-ISAAC-ROS/isaac_ros_common: Common utilities, packages, scripts, Dockerfiles, and testing infrastructure for Isaac ROS packages. isaac_ros_common

Any help would be greatly appreciate it.

My best
Mohammadreza

Hi @mohammad.reza

For that error, can you try to create base image with zed first?

1. Add CONFIG_IMAGE_KEY=ros2_humble.zed into {ISAAC_ROS_WS}/src/isaac_ros_common/scripts/.isaac_ros_common-config

2. Execute run_dev.sh to build image with Dockerfile.zed
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && ./scripts/run_dev.sh

Best,
Ahung

Hi @mohammad.reza
You can create a working base image for ZED by following the example in the update_docker branch of ZED ROS2 Wrapper repository:

1 Like

Thank you, Ahung for your reply,

I tested the it. It gives me the same error:

r1@ubuntu:/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./run_dev.sh
Launching Isaac ROS Dev container with image key aarch64.ros2_humble.zed: /mnt/nova_ssd/workspaces/isaac_ros-dev/
Building aarch64.ros2_humble.zed base as image: isaac_ros_dev-aarch64
Building layered image for key aarch64.ros2_humble.zed as isaac_ros_dev-aarch64
Using configured docker search paths: /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/…/docker
Could not resolve Dockerfiles for target image ids: aarch64.ros2_humble.zed
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts

Having said that, the “.isaac_ros_common-config” file didnt exist, and, I created it. I only put CONFIG_IMAGE_KEY=ros2_humble.zed inside it. Is this correct?

Thank you, Ahung for your reply,

I tested the it. It gives me the same error:

r1@ubuntu:/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./run_dev.sh
Launching Isaac ROS Dev container with image key aarch64.ros2_humble.zed: /mnt/nova_ssd/workspaces/isaac_ros-dev/
Building aarch64.ros2_humble.zed base as image: isaac_ros_dev-aarch64
Building layered image for key aarch64.ros2_humble.zed as isaac_ros_dev-aarch64
Using configured docker search paths: /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/…/docker
Could not resolve Dockerfiles for target image ids: aarch64.ros2_humble.zed
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts

Having said that, the .isaac_ros_common-config file didnt exist, and, I created it. I only put CONFIG_IMAGE_KEY=ros2_humble.zed inside it.strong textstrong text****strong text

Hi @mohammad.reza,

The Docker.zed is added since Isaac ROS 3.1 release. It seems that you are using the older release. If your installed Jetpack version is 6.0, please sync isaac_ros_common to Isaac ROS 3.1.

Best,
Ahung

Dear Ahung,

Sorry for the late response. I checked the package.xml of my isaac_ros_common and says the version is 3.2.4.

I was able to get the Realsence camera working by modifying .isaac_ros_common-config and put ros2_humble.realsense in it by following the instruction in this link: Isaac ROS RealSense Setup — isaac_ros_docs documentation. But no luck with aarch64.ros2_humble.zed.

My best.

Hi @mohammad.reza

I think I know what the probelm is. The dockerfile.zed is removed in Isaac ROS 3.2 and the instructions are moved over to documenation. Thus, please remove .isaac_ros_common-config and follow Isaac ROS ZED Setup — isaac_ros_docs documentation
which shall work directly.

Best,
Ahung