Isaac ros visual slam for both Jetson and x86 ‐ Ubuntu 24.04 - ashBabu/Utilities GitHub Wiki
Getting started with isaac_ros_visual_slam
Use Docker. This will work on Jetson Orin Nano.
Some things to Note
The isaac-ros-cli will install the following files at /etc/isaac-ros-cli
- config.yaml
- docker/ # a folder
- Dockerfile.isaac_ros
- Dockerfile.ros2_jazzy
- Dockerfile.noble
- Dockerfile.realsense
- Dockerfile.zed
- packaging/
- udev_rules/
- patches/
- A few other things
- environment.conf
The config.yaml is used to build layered docker images. It has the following
version: 2
docker:
image:
base_image_keys:
- isaac_ros
- noble
- ros2_jazzy
additional_image_keys:
- realsense
run:
container_name: isaac_ros_dev_container
entrypoint: /opt/nvidia/nvidia_entrypoint.sh
workdir: "/workspaces/isaac_ros-dev"
platform: auto
use_cached_build_image: false
Additional config (for example, a user specified docker build) can be initiated by adding an image key (for example user) and providing a Dockerfile.user either inside the docker directory inside /etc/isaac-ros-cli/docker/ or
sudo nano /etc/isaac-ros-cli/.isaac_ros_common-config
CONFIG_DOCKER_SEARCH_DIRS=(/home/ash/workspaces/isaac_ros-dev /etc/isaac-ros-cli/docker)
Add a file named Dockerfile.user inside /home/ash/workspaces/isaac_ros-dev/
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ARG DEBIAN_FRONTEND=noninteractive
ENV ROS_DISTRO=jazzy
ENV ROS_ROOT=/opt/ros/${ROS_DISTRO}
# Install prebuilt packages
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
apt-get update \
&& apt-get install -y \
ros-jazzy-my-package \
ros-jazzy-another-package
Also, append the /etc/isaac-ros-cli/config.yaml or create a new one at ~/config/isaac-ros-cli/config.yaml with the added image key
docker:
image:
additional_image_keys:
- realsense
- user
isaac-ros activate --build-local# will build the image and might take long
Follow the isaac_ros_visual_slam for running with live sensor or rosbag
Or
-
sudo apt-get install -y ros-jazzy-isaac-ros-visual-slam ros-jazzy-isaac-ros-examples -
[Optional testing] Download isaac_ros_assets. Make sure to select the isaac-ros-visual-slam from the dropdown
-
ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=visual_slam \ interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_visual_slam/quickstart_interface_specs.json \ rectified_images:=false -
In another terminal,
xhost +,docker exec -it isaac_ros_dev_container bashrviz2 -d $(ros2 pkg prefix isaac_ros_visual_slam --share)/rviz/default.cfg.rviz
-
In another terminal,
ros2 bag play ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_visual_slam/quickstart_bag --remap \ /front_stereo_camera/left/image_raw:=/left/image_rect \ /front_stereo_camera/left/camera_info:=/left/camera_info_rect \ /front_stereo_camera/right/image_raw:=/right/image_rect \ /front_stereo_camera/right/camera_info:=/right/camera_info_rect \ /back_stereo_camera/left/image_raw:=/rear_left/image_rect \ /back_stereo_camera/left/camera_info:=/rear_left/camera_info_rect \ /back_stereo_camera/right/image_raw:=/rear_right/image_rect \ /back_stereo_camera/right/camera_info:=/rear_right/camera_info_rect
Live realsense cam
- Needs firmware version 5.16.0.1, librealsense SDK 2.56.3 and realsense-ros driver version r/4.56.3. [Setup Instructions] (https://nvidia-isaac-ros.github.io/getting_started/sensors/realsense_setup.html)
- If the firmware is not the specified version, download the specific version from here and extract the
.zipfile to get theSigned_Image_UVC_5_16_0_1.binfile rs-fw-update -f Signed_Image_UVC_5_16_0_1.binrs-enumerate-devicesto get a long list of devices
Running custom rosbag with isaac_ros_visual_slam
ros2 launch bringup_vslam_rosbag.launch.py bag_path:=/Ash/repo/pipeon-home/realsense_ros2bag/ filter_imu:=true
To save the colored map
ros2 service call /nvblox_node/save_ply nvblox_msgs/srv/FilePath "{file_path: '/workspaces/isaac_ros-dev/nvblox_map.ply'}"