Docker provides an isolated environment with all dependencies pre-installed, including ROS 2 Jazzy, the Gazebo bridge packages, and an SSH server configured for X11 forwarding. This means you can run the simulation on any Ubuntu host without modifying your system packages. The container runs with host networking so that ROS 2 DDS discovery works without additional configuration. The Dockerfile starts fromDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/qualcomm-qrb-ros/qrb_ros_simulation/llms.txt
Use this file to discover all available pages before exploring further.
ros:jazzy-ros-base-noble and installs ros-jazzy-desktop, ros-jazzy-ros-gz, ros-jazzy-gz-ros2-control, and ros-jazzy-ros2-controllers. It also installs and configures OpenSSH Server on port 222 with root login enabled, so you can connect from a separate terminal with X11 forwarding to display the Gazebo GUI on your host.
Prerequisites
- Docker installed and running on your Ubuntu host
- The
qrb_ros_simulationrepository cloned locally
Setup steps
Build the Docker image
From the root of the cloned repository, make the build script executable and run it. The script builds an image tagged
qrb_ros_simulation:latest using the bundled Dockerfile:Start the container
Make the run script executable and start the container. The container runs interactively with host networking and is named
qrb_ros_simulation_container:Enable SSH inside the container
Inside the running container, set a root password and start the SSH service:
Connect via SSH with X forwarding
In a separate terminal on your host, connect to the container over SSH. Replace
your_host_ip with the IP address of your host machine:The
-X flag enables X11 forwarding. This routes the Gazebo GUI window back to your host display, so the graphical simulation renders on your local screen even though it is running inside the container.