Isaac ROS setup dev enviornment

Hi

This is regarding the setup of dev enviornment for Isaac ROS on the compute platform (x86-64) and ideally would want same thing to be replicated on the Jetson system.
Procedure for current setup

  1. Use this to do compute setup on x86 and jetson with docker (Compute Setup — isaac_ros_docs documentation)
  2. I am working with realsense d455, hence also performing this setup (Isaac ROS RealSense Setup — isaac_ros_docs documentation)
  3. Issue 1: At the end of this setup when we launch realsense-viewer I am not getting RGB and IMU data. I am only getting depth data and my assumption is that is by the IR. So to counter this I explicitly install realsense sdk using sudo apt-get install ros-humble-realsense2* after that I start getting both IMU and RGB data in addition to depth data. (PFA video of realsense-viewer working differently inside docker and outside installation)
    In the docker I don’t see IMU data also.

    I have verified it by running ros2 launch realsense2_camera rs_launch.py and then ros2 topic echo for both imu and rgb data so RGB I get a black image. and IMU I get no reading at all. I have tried deleting this image and installing it again it didn’t work.
  4. Once this is done I would install the specific packages for ex. for isaac_ros_nvblox (isaac_ros_nvblox — isaac_ros_docs documentation) and isaac_ros_vslam (Isaac ROS Visual SLAM — isaac_ros_docs documentation)
  5. Issue 2: once this is done and I run my example and I exit the container. Next time when I am building docker using cd $ISAAC_ROS_WS && ./src/isaac_ros_common/scripts/run_dev.sh all the previous installations is gone. I need to start from point 3 again.
  6. Is there any way we either make a dockerfile that we write to and then build the image using docker file, or we save the docker container and when we launch the container agin with this new image it should mount the Isaac ROS workspace (as being done in ./src/isaac_ros_common/scripts/run_dev.sh )with the installations we have done or please suggest the best way that this is scalable and have some version control trace.

Thanks in advance.

To resolve the issues with setting up the Isaac ROS development environment, start by ensuring that the Docker container has the correct privileges to access devices like the RealSense camera using the --device flag when running the container. Additionally, make sure all necessary dependencies, including the RealSense SDK, are installed inside the Docker container, and check ROS2 topics to verify data flow. For the issue of losing installations and workspace state after exiting the container, use Docker volumes to persist your workspace directory or create a custom Dockerfile to include all required installations. Alternatively, you can commit the Docker container’s current state to avoid reinstalling dependencies each time. For version control, consider using Git to track changes in your workspace and configurations, ensuring a reproducible and scalable setup.

So this is the file that we are using to launch docker container based on the instructions (isaac_ros_common/scripts/run_dev.sh at main · NVIDIA-ISAAC-ROS/isaac_ros_common · GitHub) I don’t see any --device flag. And for setup I was using the instructions (Isaac ROS RealSense Setup — isaac_ros_docs documentation) so if I am not wrong on step 3 I am supposed to install both ros_humble and realsense sdk using the indiviual docker file. That step by step setup is causing disparity and issues across multiple systems. Which we were hoping we would avoid as the setup inside docker with same hardware should not behave differently. In refernece to the above video. in another system we have the person is getting RGB and depth data but no IMU. So even though we are using docker and same setup procedure the results are different on different systems.