But once inside the container I am trying to install certain ros2 packages but I am unable to do so.
I am getting the below error
sudo apt install ros-galactic-rviz2
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package ros-galactic-rviz2
As I understand, because the TX2 is running on Ubuntu version18 and galactic packages are only available for Ubuntu 20, its unable to find the galactic packages. My question is how can I use this docker image if I can’t install any relevant packages.
Hi @hardik.a, you are correct in your understanding about Ubuntu 18.04 not having the pre-built packages for ROS Galactic, hence you will need to build them from source in the container. Here’s an example of where I build additional ROS packages on top of the ROS distro in a container:
There I am using rosinstall_generator to pull in all the sources needed for the additional packages that I wanted to build. Note that there may be issues with building ROS desktop packages (which rvis2 is typically in the desktop set of packages)
Alternatively, you can clone jetson-containers and run scripts/docker_build_ros.sh --distro galactic --package desktop but as mentioned, I recall there being issues building some of the desktop packages. Typically ros_base gets deployed on the Jetson and another machine would be running rviz remotely.
Thanks @dusty_nv I will try to build the package as you have suggested.
And it means for any new package I will have to build all the dependencies in the container. Right?
Yes for the ROS packages - as for the dependencies, in my experience some of them already have debs in the 18.04 apt repo. Others you may have to build.