isaac_ros_nvblox#
Source code available 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.
(Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.
Note
We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the development environment 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=4 MINOR_VERSION=3 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.
Activate the Isaac ROS environment:
isaac-ros activateInstall
isaac_ros_nvbloxand its dependencies.sudo apt-get updatesudo apt update && sudo apt-get install -y ros-jazzy-isaac-ros-nvbloxInstall
rvizfor examples using visualization. Can be omitted if examples are launched withrun_rviz:=False.sudo apt-get install -y ros-jazzy-rviz2 source /opt/ros/jazzy/setup.bashInstall
nav2for examples using navigation. Can be omitted if examples are launched withnavigation:=False.sudo apt-get install -y ros-jazzy-nav2-bringup
Clone
isaac_ros_nvbloxunder${ISAAC_ROS_WS}/src.cd ${ISAAC_ROS_WS}/src git clone --recursive -b release-4.3 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git isaac_ros_nvbloxActivate the Isaac ROS environment:
isaac-ros activateUse
rosdepto install the package’s dependencies.sudo apt-get updaterosdep update && rosdep install -i -r --from-paths ${ISAAC_ROS_WS}/src/isaac_ros_nvblox/ --rosdistro jazzy -yBuild and source the ROS workspace
cd /workspaces/isaac_ros-dev colcon build --symlink-install --base-paths ${ISAAC_ROS_WS}/src/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
Verify that you 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: