I’m new to Isaac Ros. While I’m following the Isaac Manipulator with Isaac Sim tutorial. I’m a little bit confused about how should I use the Isaac-ros_dev container with colcon.
If I install packages from source (like robotiq* serial) outside the container, for example, in the ISAAC_ROS_WS from my own path, the symblink is invalid inside the container. So, I have to install these packages inside the container.
However, if I want to pack my running container with docker_deploy.sh, it performs an identical path clone from my local path. And that is not compatible with ros packages installed within the container.
What am I missing? What is the correct way to manage these ros packages so that they can work both for container env and can be deployed without a local reinstall?
You need to install all packages inside the Docker container, and if you build your ROS packages, they must be built inside the container; otherwise, as you wrote, the symlink will be invalid.
The script requires a workspace folder where all your packages are cloned and built for your specific device. When the script starts, it copies the install folder to the docker container.
If you need extra Debian packages, use --install_debians to list all packages you need.
I have followed the link to deploy my container. However, following the script, if I pass my ros_ws location relative to the host machine to the docker_script.sh, it creates an identical directory in the result container. which is not the path in the Isaac_ros-dev container. That is the part I think I missed.
For example, the path for the ros_ws in the Isaac_ros_dev is /workspaces/Isaac_ros-dev.
the path from the host machine is /home/ubuntu/workspaces/Isaac_ros-dev
If I deploy that container, the deploysh script will copy path ‘/home/ubuntu/workspaces/Isaac_ros-dev’ instead of ‘/workspaces/Isaac_ros-dev’.
So inside the deployed container, the files in ‘/home/ubuntu/workspaces/Isaac_ros-dev’ will link to ‘/workspaces/Isaac_ros-dev’, which does not exist.
I was able to find a work around by modify docker_deploy.sh. But I wonder if I have missed something.