isaac_ros_nvblox
Source code on GitHub.
A meta-package containing the relevant nvblox ROS 2 packages.
Quickstart
Set Up Development Environment
Set up your development environment by following the instructions in getting started.
Clone
isaac_ros_common
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
(Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.
Warning
We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.
Download Quickstart Assets
Download quickstart data from NGC:
Make sure required libraries are installed.
sudo apt-get install -y curl jq tarThen, run these commands to download the asset from NGC:
NGC_ORG="nvidia" NGC_TEAM="isaac" PACKAGE_NAME="isaac_ros_nvblox" NGC_RESOURCE="isaac_ros_nvblox_assets" NGC_FILENAME="quickstart.tar.gz" MAJOR_VERSION=3 MINOR_VERSION=1 VERSION_REQ_URL="https://catalog.ngc.nvidia.com/api/resources/versions?orgName=$NGC_ORG&teamName=$NGC_TEAM&name=$NGC_RESOURCE&isPublic=true&pageNumber=0&pageSize=100&sortOrder=CREATED_DATE_DESC" AVAILABLE_VERSIONS=$(curl -s \ -H "Accept: application/json" "$VERSION_REQ_URL") LATEST_VERSION_ID=$(echo $AVAILABLE_VERSIONS | jq -r " .recipeVersions[] | .versionId as \$v | \$v | select(test(\"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\")) | split(\".\") | {major: .[0]|tonumber, minor: .[1]|tonumber, patch: .[2]|tonumber} | select(.major == $MAJOR_VERSION and .minor <= $MINOR_VERSION) | \$v " | sort -V | tail -n 1 ) if [ -z "$LATEST_VERSION_ID" ]; then echo "No corresponding version found for Isaac ROS $MAJOR_VERSION.$MINOR_VERSION" echo "Found versions:" echo $AVAILABLE_VERSIONS | jq -r '.recipeVersions[].versionId' else mkdir -p ${ISAAC_ROS_WS}/isaac_ros_assets && \ FILE_REQ_URL="https://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/\ versions/$LATEST_VERSION_ID/files/$NGC_FILENAME" && \ curl -LO --request GET "${FILE_REQ_URL}" && \ tar -xf ${NGC_FILENAME} -C ${ISAAC_ROS_WS}/isaac_ros_assets && \ rm ${NGC_FILENAME} fi
Set Up isaac_ros_nvblox
There are two options for installing nvblox: installation from Debian, and installation from source.
Launch the Docker container using the
run_dev.sh
script:cd $ISAAC_ROS_WS && ./src/isaac_ros_common/scripts/run_dev.shInstall
isaac_ros_nvblox
and its dependencies.sudo apt update && sudo apt-get install -y ros-humble-isaac-ros-nvblox && \ rosdep update && \ rosdep install isaac_ros_nvblox
Clone
isaac_ros_nvblox
under${ISAAC_ROS_WS}/src
.cd ${ISAAC_ROS_WS}/src git clone --recursive -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git isaac_ros_nvbloxLaunch the Docker container using the
run_dev.sh
script:cd $ISAAC_ROS_WS && ./src/isaac_ros_common/scripts/run_dev.shUse
rosdep
to install the package’s dependencies.sudo apt update rosdep update rosdep install -i -r --from-paths /workspaces/isaac_ros-dev/src/isaac_ros_nvblox/ --rosdistro humble -y
Build and source the ROS workspace
cd /workspaces/isaac_ros-dev colcon build --symlink-install --packages-up-to isaac_ros_nvblox source install/setup.bash
Run Example Launch File
Run the example with:
ros2 launch nvblox_examples_bringup isaac_sim_example.launch.py \ rosbag:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_nvblox/quickstart \ navigation:=False
You should see the robot reconstructing a mesh, with the 2d ESDF slice overlaid on top.
Try More Examples
To continue your exploration, check out the following suggested nvblox examples:
Launch file |
Description |
---|---|
|
Example to run with Isaac Sim (tutorial) |
|
Example to run with a RealSense camera (tutorial) |
|
Example to run with a ZED camera (tutorial) |