Attention

As of June 30, 2025, the Isaac ROS Buildfarm for Isaac ROS 2.1 on Ubuntu 20.04 Focal is no longer supported.

Due to an isolated infrastructure event, all ROS 2 Humble Debian packages that were previously built for Ubuntu 20.04 are no longer available in the Isaac Apt Repository. All artifacts for Isaac ROS 3.0 and later are built and maintained with a more robust pipeline.

Users are encouraged to migrate to the latest version of Isaac ROS. The source code for Isaac ROS 2.1 continues to be available on the release-2.1 branches of the Isaac ROS GitHub repositories.

The original documentation for Isaac ROS 2.1 is preserved below.

isaac_ros_nvblox

Source code on GitHub.

A meta-package containing the relevant nvblox ROS 2 packages.

Quickstart

  1. Complete the Developer Environment Setup.

  2. Clone isaac_ros_common and this repository under ${ISAAC_ROS_WS}/src.

    cd ${ISAAC_ROS_WS}/src
    
    git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git
    
    git clone --recurse-submodules https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git && \
        cd isaac_ros_nvblox && git lfs pull
    
  3. Pull down a ROS Bag of sample data:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_nvblox && \
      git lfs pull -X "" -I "nvblox_ros/test/test_cases/rosbags/nvblox_pol"
    
  4. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh ${ISAAC_ROS_WS}
    
  5. Inside the container, install package-specific dependencies via rosdep:

    cd /workspaces/isaac_ros-dev/ && \
        rosdep install -i -r --from-paths src --rosdistro humble -y --skip-keys "libopencv-dev libopencv-contrib-dev libopencv-imgproc-dev python-opencv python3-opencv nvblox"
    
  6. Build and source the workspace:

    cd /workspaces/isaac_ros-dev && \
      colcon build --symlink-install && \
      source install/setup.bash
    
  7. (Optional) Run tests to verify complete and correct installation:

    colcon test --executor sequential
    
  8. In a current terminal inside the Docker container, run the launch file for Nvblox with nav2:

    source /workspaces/isaac_ros-dev/install/setup.bash && \
        ros2 launch nvblox_examples_bringup isaac_sim_example.launch.py
    
  9. Open a second terminal inside the docker container:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh ${ISAAC_ROS_WS}
    
  10. In the second terminal, play the ROS Bag:

    ros2 bag play src/isaac_ros_nvblox/nvblox_ros/test/test_cases/rosbags/nvblox_pol
    

You should see the robot reconstructing a mesh, with the 2d ESDF slice overlaid on top.

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nvblox/basic_example_rviz.png/

Try More Examples

To continue your exploration, check out the following suggested nvblox examples:

Launch file

Arguments

Description

isaac_sim_example.launch.py

run_nav2, run_rviz, run_vslam, global_frame

Example to run with Isaac Sim (tutorial)

isaac_sim_humans_example.launch.py

run_nav2, run_rviz, run_vslam, global_frame

Example to run with Isaac Sim including human reconstruction (tutorial)

isaac_sim_dynamics_example.launch.py

run_nav2, run_rviz, run_vslam, global_frame

Example to run with Isaac Sim including general dynamic reconstruction (tutorial)

realsense_example.launch.py

from_bag, bag_path, run_rviz, flatten_odometry_to_2d, global_frame

Example to run with a RealSense camera (tutorial)

realsense_humans_example.launch.py

from_bag, bag_path, run_rviz, flatten_odometry_to_2d, global_frame

Example to run with a RealSense camera including human reconstruction (tutorial)

realsense_dynamics_example.launch.py

from_bag, bag_path, run_rviz, flatten_odometry_to_2d, global_frame

Example to run with a RealSense camera including general dynamic reconstruction (tutorial)

record_realsense.launch.py

launch_realsense, run_rqt

Record RealSense data to replay with the above examples (tutorial)

zed_example.launch.py

from_bag, bag_path, run_rviz, global_frame

Example to run with a ZED camera (tutorial)

API

Troubleshooting