| name | deploy-nvblox |
| description | Deploy Isaac ROS NVBlox with Orbbec RGB-D camera on Jetson AGX Orin for real-time GPU-accelerated 3D mapping (TSDF/ESDF). Sets up Docker CE, Isaac ROS 3.2, Orbbec SDK ROS2, and builds the NVBlox workspace for obstacle detection and 3D mesh generation. Requires JetPack 6.2 and ROS2 Humble. |
Deploy NVBlox with Orbbec Camera on Jetson AGX Orin
NVBlox builds dense 3D maps in real-time from RGB-D camera input for robotic navigation. This skill deploys it on AGX Orin with Isaac ROS and Orbbec camera support.
Execution model
Run one phase at a time. After each phase:
- Relay all output to the user.
- If output contains
[STOP] → stop, consult the failure decision tree.
- If output ends with
[OK] → tell the user "Phase N complete" and proceed.
Prerequisites
| Requirement | Detail |
|---|
| Hardware | Jetson AGX Orin (e.g. reComputer J50) |
| JetPack | 6.2 |
| Camera | Orbbec RGB-D camera (Gemini 2, 330 series, etc.) |
| ROS2 | Humble installed on host |
| NGC account | Required for Isaac ROS Docker image pull |
Phase 1 — Install basic dependencies (~3 min)
sudo apt update
sudo apt-get install -y python3-pip nvidia-jetpack git-lfs
sudo pip3 install jetson-stats
[OK] when all packages install. [STOP] if apt fails.
Phase 2 — Install Docker CE (~5 min)
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
sudo systemctl enable docker && sudo systemctl start docker
sudo usermod -aG docker $USER
Reboot after adding user to docker group:
sudo reboot
Verify after reboot:
docker info
[OK] when docker info succeeds without sudo. [STOP] if Docker fails to start.
Phase 3 — Install Isaac ROS 3.2 (~10–20 min)
mkdir -p ~/workspaces/isaac_ros-dev/src
echo "export ISAAC_ROS_WS=\${HOME}/workspaces/isaac_ros-dev/" >> ~/.bashrc
source ~/.bashrc
cd ${ISAAC_ROS_WS}/src
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git
Pull and enter the Isaac ROS Docker container:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common
./scripts/run_dev.sh
This will pull the NGC Docker image and start the container. You will need your NGC API Key.
If you get a CDI error, fix with:
sudo nvidia-ctk cdi generate --mode=csv --output=/etc/cdi/nvidia.yaml
[OK] when you are inside the Isaac ROS Docker container. [STOP] if NGC auth or Docker fails.
Phase 4 — Install Orbbec SDK ROS2 on host (~10 min)
Run these commands on the host (not inside Docker):
sudo apt install -y libgflags-dev nlohmann-json3-dev \
ros-humble-image-transport ros-humble-image-transport-plugins ros-humble-compressed-image-transport \
ros-humble-image-publisher ros-humble-camera-info-manager \
ros-humble-diagnostic-updater ros-humble-diagnostic-msgs ros-humble-statistics-msgs ros-humble-xacro \
ros-humble-backward-ros libdw-dev libssl-dev mesa-utils libgl1 libgoogle-glog-dev
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/orbbec/OrbbecSDK_ROS2.git
cd OrbbecSDK_ROS2 && git checkout v2-main
cd ~/ros2_ws
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
Install udev rules:
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
sudo bash install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm trigger
[OK] when colcon build completes and udev rules are installed. [STOP] if build fails.
Phase 5 — Build NVBlox in Isaac ROS container (~15 min)
Clone the Orbbec-adapted NVBlox source:
git clone https://github.com/jjjadand/isaac-NVblox-Orbbec.git
cp -r isaac-NVblox-Orbbec/src/isaac_ros_nvblox/ ${ISAAC_ROS_WS}/src/
cp -r isaac-NVblox-Orbbec/src/isaac_ros_nitros/ ${ISAAC_ROS_WS}/src/
cp -r isaac-NVblox-Orbbec/build/ ${ISAAC_ROS_WS}/
Enter the Docker container and build:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && ./scripts/run_dev.sh
sudo apt update
sudo apt-get install -y ros-humble-magic-enum ros-humble-foxglove-msgs
echo 'CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export CUDACXX=$CUDA_HOME/bin/nvcc' >> ~/.bashrc
sudo ln -sf /opt/ros/humble/include/magic_enum.hpp /usr/include/magic_enum.hpp
sudo mkdir -p /opt/ros/humble/include/foxglove_msgs
sudo ln -sfn /opt/ros/humble/include/foxglove_msgs/foxglove_msgs/msg /opt/ros/humble/include/foxglove_msgs/msg
colcon build --symlink-install --cmake-args -DBUILD_TESTING=OFF
source install/setup.bash
[OK] when colcon build completes with all packages. [STOP] if compilation errors.
Phase 6 — Launch NVBlox (~2 min)
On the host, start the Orbbec camera node:
cd ~/ros2_ws
source install/setup.bash
ros2 launch orbbec_camera gemini2.launch.py
In the Isaac ROS Docker container, verify topics and launch NVBlox:
ros2 topic list
cd ~/workspaces/isaac_ros-dev
source install/setup.bash
ros2 launch nvblox_examples_bringup orbbec_example.launch.py
[OK] when RViz shows 3D occupancy grids and meshes.
Failure decision tree
| Symptom | Action |
|---|
| NGC auth fails | Regenerate API key at https://ngc.nvidia.com. Run ngc config set again. |
CDI device error on run_dev.sh | Run: sudo nvidia-ctk cdi generate --mode=csv --output=/etc/cdi/nvidia.yaml. |
| Orbbec camera not detected | Install udev rules (Phase 4). Replug camera. Check lsusb. |
| No camera topics in Docker | Orbbec node must run on host, not in Docker. Verify ROS_DOMAIN_ID matches. |
| colcon build fails on NVBlox | Check magic_enum and foxglove_msgs are installed. Verify CUDA env vars. |
| RViz shows no data | Confirm camera topics are publishing: ros2 topic hz /camera/depth/image_raw. |
Reference files
references/source.body.md — Full Seeed Wiki tutorial with Docker setup, build details, RViz configuration, and demo video (reference only)