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 -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
    
    git clone --recurse-submodules -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git isaac_ros_nvblox && \
        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