Sep 29, 2026

Installing ROS 2 Jazzy and Running Your First Node

5 min readApply in about 20 minBeginner

ROS 2, the Robot Operating System, is the software backbone behind most modern robotics projects, from research arms to warehouse robots, and getting a first node talking to another node is the real “hello world” of robotics development. This walkthrough installs ROS 2 Jazzy Jalisco, the current long term support release, on a real Ubuntu box and proves two nodes are actually communicating.

New to robotics software? Install ROS 2 and see it work

Quick guide

  1. Confirm your Ubuntu version matches the ROS 2 release you want. ROS 2 Jazzy Jalisco targets Ubuntu 24.04 (Noble) specifically.
  2. Add the ROS 2 apt repository using the official ros-apt-source package from the ros-infrastructure GitHub releases, then run sudo apt-get update.
  3. Install the base packages with sudo apt-get install ros-jazzy-ros-base. This gives you the core tools without the full desktop simulation and visualization stack.
  4. Load the ROS 2 environment into your shell with source /opt/ros/jazzy/setup.bash. This needs to run in every new terminal you use ROS 2 from.
  5. Install the demo nodes package with sudo apt-get install ros-jazzy-demo-nodes-cpp, then run a built in publisher with ros2 run demo_nodes_cpp talker.
  6. In the same or another terminal, confirm it is actually broadcasting with ros2 topic list and ros2 topic echo /chatter --once.
Real terminal output installing ROS 2 Jazzy base packages on Ubuntu 24.04
Real output from the Linux lab, a fresh ROS 2 Jazzy Jalisco install with 194 packages available after installing ros-base.

What ROS 2 actually is

ROS 2 is not an operating system despite the name, it is a middleware framework that gives independent programs (called nodes) a standard way to discover each other and exchange data, using topics for continuous streams of data, services for request and response calls, and actions for long running tasks with feedback. A real robot typically runs dozens of nodes at once, one reading a camera, one handling motor control, one doing path planning, all communicating over ROS 2 topics without needing to know about each other directly. Jazzy Jalisco, released in mid 2026, is the current long term support release, supported through the standard ROS 2 LTS lifecycle.

Proving two nodes actually talk to each other

Starting a single node and seeing no errors is not the same as proving communication works. The talker demo node publishes an incrementing “Hello World” message on the /chatter topic every second, and checking that topic independently with ros2 topic echo confirms data is genuinely flowing between separate processes, not just that one process started without crashing.

Real terminal output running the ROS 2 demo talker node and listing active topics and nodes
Real output starting the built in talker demo node and confirming its topic and node registration.
Real terminal output showing a live message received from the ROS 2 chatter topic
Real output, an actual message received live from the talker node through the /chatter topic.

What actually goes wrong

The single most common first day mistake is forgetting to source the setup script in every new terminal, ROS 2 commands simply are not found, or worse, two terminals end up with different environments loaded and nodes that should see each other do not. The second common issue is multiple ROS 2 installations or a stray environment variable from a previous session causing nodes to join the wrong domain and become invisible to each other, checking echo $ROS_DOMAIN_ID is worth doing when nodes that should talk to each other silently do not.

FAQ

Do I need the full ROS 2 desktop install to get started?

No. ros-base gives you the core communication and command line tools. The desktop variant additionally installs RViz, simulation tools and other GUI applications, useful later but not required for your first working node.

Can two computers on the same network run ROS 2 nodes that talk to each other?

Yes, ROS 2’s default DDS based discovery works across a local network automatically, provided both machines share the same ROS_DOMAIN_ID and the network allows the multicast traffic DDS discovery relies on.

What is the difference between ROS 1 and ROS 2?

ROS 2 was built from the ground up with a decentralized DDS based communication layer instead of ROS 1’s single master node, real time support, and better security, and it is the actively developed version going forward, since ROS 1 has reached its final release.

Sources

Official ROS 2 documentation and installation guide at docs.ros.org for the Jazzy Jalisco distribution.