I’m working on Ubuntu 24.04 with ROS 2 Jazzy installed locally.
I also have Isaac Sim installed locally in a Python 3.11 environment.
I’m using Isaac Sim because it makes things easier for me, as I have never worked with ROS before, and I also want to generate virtual environment datasets.
My goal is to build a robot arm that performs object detection and pose estimation, combining Isaac Sim and ROS 2.
The issue I’m facing is that most Isaac ROS tutorials (especially for object detection with DetectNet or YOLO) rely on Docker.
However, when I run Isaac ROS or the examples from the Docker container:
I no longer have access to my local environment,
I can’t see my local files,
and most importantly, I can’t access my YOLO (.onnx) models or my local ROS 2 installation.
I’d like to understand:
how to access or mount my local files from within the Isaac ROS container,
or alternatively, if there’s a way to use Isaac ROS without Docker, directly with my local Isaac Sim and ROS 2 setup.
Thanks in advance for your help or any feedback from those who’ve dealt with a similar configuration!
You can use the -v flag in the docker run command to map your host machine’s directories (where your models and files are) into the container’s filesystem.
Isaac ROS uses the run_dev.sh script to wrap the docker run command when launching the docker container. You need to modify the script or pass arguments to it but standard docker run approach is universal.
Since the run_dev.sh script is already designed to automatically mount your entire Isaac ROS workspace into the container, you can add files there instead for the container to access them.
It worked, I still have trouble with the installation of Tensorrt which automatically upgrade to the v10.14 and the version needed is 10.13.
Apart fro that, I don’t really understand why the usage of object detection algorithm passes through a container, why not us it locally as a ros node ?
Is it to simplify the tutorial or is it the more efficient way to use it ?
Docker is used for Isaac ROS primarily because it solves the complex dependency issues related to synchronizing specific versions of ROS 2, CUDA, and TensorRT libraries etc. This containerized environment is more reliable and efficient for high-performance object detection. While you can run Isaac ROS locally, the container guarantees reproducible performance and simplifies the entire deployment process onto target hardware. Therefore, the container is not just for simplicity, but for optimized and reliable function.