isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

Repository Summary

Description NVIDIA-accelerated 3D scene reconstruction and Nav2 local costmap provider using nvblox
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_nvblox.git
VCS Type git
VCS Version main
Last Updated 2025-02-28
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Isaac ROS Nvblox

Nvblox ROS 2 integration for local 3D scene reconstruction and mapping.

image

Overview

Isaac ROS Nvblox contains ROS 2 packages for 3D reconstruction and cost maps for navigation. isaac_ros_nvblox processes depth and pose to reconstruct a 3D scene in real-time and outputs a 2D costmap for Nav2. The costmap is used in planning during navigation as a vision-based solution to avoid obstacles.

isaac_ros_nvblox is designed to work with depth-cameras and/or 3D LiDAR. The package uses GPU acceleration to compute a 3D reconstruction and 2D costmaps using nvblox, the underlying framework-independent C++ library.

image

Above is a typical graph that uses isaac_ros_nvblox. Nvblox takes a depth image, a color image, and a pose as input, with which it computes a 3D scene reconstruction on the GPU. In this graph the pose is computed using visual_slam, or some other pose estimation node. The reconstruction is sliced into an output cost map which is provided through a cost map plugin into Nav2. An optional colorized 3D reconstruction is delivered into rviz using the mesh visualization plugin. Nvblox streams mesh updates to RViz to update the reconstruction in real-time as it is built.

isaac_ros_nvblox offers several modes of operation. In its default mode the environment is assumed to be static. Two additional modes of operation are provided to support mapping scenes which contain dynamic elements: people reconstruction, for mapping scenes containing people, and dynamic reconstruction, for mapping scenes containing more general dynamic objects. The graph above shows isaac_ros_nvblox operating in people reconstruction mode. The color image corresponding to the depth image is processed with unet, using the PeopleSemSegNet DNN model to estimate a segmentation mask for persons in the color image. Nvblox uses this mask to separate reconstructed persons into a separate people-only part of the reconstruction. The Technical Details provide more information on these three types of mapping.

Performance

The following tables provides timings for various functions of nvblox core on various platforms.

Dataset Voxel Size (m) Component x86_64 w/ 3090 (Desktop) x86_64 w/ RTX A3000 (Laptop) AGX Orin Orin Nano
Replica 0.05 TSDF 0.5 ms 0.3 ms 0.8 ms 2.1 ms
Color 0.7 ms 0.7 ms 1.1 ms 3.6 ms
Meshing 0.7 ms 1.3 ms 2.3 ms 13 ms
ESDF 0.8 ms 1.2 ms 1.7 ms 6.2 ms
Dynamics 1.7 ms 1.4 ms 2.0 ms N/A(\*)
Redwood 0.05 TSDF 0.2 ms 0.2 ms 0.5 ms 1.2 ms
Color 0.5 ms 0.5 ms 0.8 ms 2.6 ms
Meshing 0.3 ms 0.5 ms 0.9 ms 4.2 ms
ESDF 0.8 ms 1.0 ms 1.5 ms 5.1 ms
Dynamics 1.0 ms 0.7 ms 1.2 ms N/A(\*)

(*): Dynamics not supported on Jetson Nano.


Documentation

Please visit the Isaac ROS Documentation to learn how to use this repository.


Packages

Latest

Update 2024-12-10: Optimized performance for always-on dynamic obstacle detection and 1 cm voxels

CONTRIBUTING

Isaac ROS Contribution Rules

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).


isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble

isaac_ros_nvblox repository

robotics gpu ros nvidia 3d-reconstruction jetson ros2-humble