Who is this for?

This Learning Path is for developers who want to build and examine a containerized ROS 2 robotics simulation on an Arm server.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Set up a Docker-based ROS 2 Jazzy development and simulation environment on an Arm server
  • Configure rmw_zenoh as the ROS 2 middleware and explore communication between ROS 2 nodes
  • Launch and interact with a Neobotix ROX robot simulation using Gazebo, Navigation2, and RViz
  • Evaluate Zenoh router behavior and the effect of shared-memory transport

Prerequisites

Before starting, you will need the following:

  • An Arm server running Linux with at least 8 CPU cores, 16 GB of RAM, and 30 GB of free disk space
  • Docker and Docker Compose installed
  • Network access to ports 6080 and 6081 on the Arm server
  • Familiarity with launching bash shells within a running Docker container
  • Basic familiarity with Linux terminal commands within bash shells

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll build a containerized ROS 2 Jazzy environment with rmw_zenoh on an Arm server and use it to run a Neobotix ROX simulation. First, you’ll start the robot and control containers, configure Zenoh, and observe discovery with talker and listener nodes. Then, you’ll launch Gazebo and Navigation2 and inspect the robot in RViz. Finally, you’ll measure resource use, control the robot, and compare shared-memory transport with TCP loopback.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
What should I check if the desktop UI in my browser doesn’t load?
Confirm the containers are running and that your Arm server allows access to the published web ports. Ensure network access to ports 6080 and 6081 is available from your client.
How do I open and prepare multiple bash shells inside the robot container?
Run docker ps, copy the CONTAINER ID for ros_zenoh-robot-1, then run docker exec -it <container_id> /bin/bash in each shell. In every shell, run source ~/workshop_env.bash.
What result should I expect when I stop the Zenoh router after the talker and listener connect?
You’ll see the talker and listener continue communicating without interruption. This shows that you established a direct peer-to-peer connection and that the router isn’t carrying their messages.
Should the Zenoh router stay running when launching the simulation and Navigation2?
Yes. After the router experiment, stop the talker and listener but keep the router running before starting the simulation and Navigation2.
What should I look for in RViz to confirm the simulation and Navigation2 are active?
Expect to see the robot model, map, global and local costmaps, and sensor visualizations. Use Nav2 Goal to set a navigation target and watch the robot plan and move in RViz.
Next