Rome
All posts
8 min read

Getting started with ROS 2 without losing a weekend

By Marcus Leeros2tutorial

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

  1. Nodes are processes that do one thing.
  2. Topics are named buses that carry typed messages between nodes.
  3. 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.