ROS 2 is powerful and, on day one, overwhelming. This is the setup we give new engineers so they can publish their first message in an afternoon instead of a weekend.
Install only what you need
You do not need the full desktop install to get started. For a first project, the base tooling plus a couple of packages is enough:
# Ubuntu 24.04
sudo apt install ros-jazzy-ros-base
sudo apt install ros-jazzy-demo-nodes-cpp
source /opt/ros/jazzy/setup.bash
Then confirm the talker/listener demo works before you write any of your own code:
ros2 run demo_nodes_cpp talker
# in another shell
ros2 run demo_nodes_cpp listener
If those two nodes are chatting, your middleware is healthy and the rest is just your code.
The three concepts to internalize
- Nodes are processes that do one thing.
- Topics are named buses that carry typed messages between nodes.
- Services and actions handle request/response and long-running goals.
That's genuinely most of it. Parameters, lifecycle nodes, and QoS profiles all matter later — but not on day one.
How this maps onto Rome
Rome speaks ROS 2 natively, so your existing nodes keep working. What you gain is everything around the graph:
- Every topic can be streamed to the observability dashboard.
- Nodes deploy as signed, versioned bundles across your fleet.
- The safety layer sits below the graph, independent of your node code.
You keep the ROS ergonomics you already know and drop the parts you were about to build yourself. When you're ready, the first teleop loop tutorial picks up from here.