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=0 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-nvblox && \ rosdep update && \ rosdep install isaac_ros_nvblox
Clone
isaac_ros_nvbloxunder${ISAAC_ROS_WS}/src.cd ${ISAAC_ROS_WS}/src git clone --recursive -b release-4.0 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: