![]() |
isaac_ros_nvblox repositoryrobotics gpu ros nvidia 3d-reconstruction jetson ros2-humble isaac_ros_nvblox nvblox_examples_bringup nvblox_image_padding realsense_splitter semantic_label_conversion nvblox_msgs nvblox_nav2 nvblox_ros nvblox_ros_common nvblox_ros_python_utils nvblox_rviz_plugin nvblox_test nvblox_test_data |
|
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) |
Packages
Name | Version |
---|---|
isaac_ros_nvblox | 3.2.5 |
nvblox_examples_bringup | 3.2.5 |
nvblox_image_padding | 3.2.5 |
realsense_splitter | 3.2.5 |
semantic_label_conversion | 3.2.5 |
nvblox_msgs | 3.2.5 |
nvblox_nav2 | 3.2.5 |
nvblox_ros | 3.2.5 |
nvblox_ros_common | 3.2.5 |
nvblox_ros_python_utils | 3.2.5 |
nvblox_rviz_plugin | 3.2.5 |
nvblox_test | 3.2.5 |
nvblox_test_data | 3.2.5 |
README
Isaac ROS Nvblox
Nvblox ROS 2 integration for local 3D scene reconstruction and mapping.
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.
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
-
isaac_ros_nvblox
nvblox_examples_bringup
nvblox_image_padding
nvblox_isaac_sim
nvblox_msgs
nvblox_nav2
nvblox_performance_measurement
nvblox_ros
nvblox_ros_common
nvblox_rviz_plugin
realsense_splitter
semantic_label_conversion
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).