Skip to content
Search

Robot Operating System 2

lastmod 2026-10-27created 2026-02-1223 edits

ROS2 (Robot Operating System 2) is an open framework for robots that provides tools and libraries for developing, managing, and deploying robot software. The original ROS (Robot Operating System) started in 2007 at the Stanford Artificial Intelligence Laboratory and was later developed further at Willow Garage. ROS2, released in 2017, is a version that addresses the shortcomings of ROS1 and reflects the requirements of modern robot systems, such as distributed processing, real-time operation, and multi-platform support.

Categories

About

ROS2 plays an important role in building and controlling robots. One of the biggest challenges in developing complex robot systems is managing communication between modules and integrating hardware and software smoothly. ROS2 was designed to solve these problems and efficiently manages tasks such as inter-node communication, sensor data processing, and motor control. It also provides numerous drivers and interfaces to make integration with various sensors and actuators easy.

ROS2 is broadly made up of basic communication elements such as nodes (Node), topics (Topic), services (Service), and actions (Action). Each node runs as an independent process and can exchange data with others. For example, one node can process camera images while another analyzes that data or controls motors. Thanks to this structure, robot software can be developed in a scalable and modular form.

ROS2 also comes with various auxiliary utility tools. rVIZ is useful for visualizing a robot's state and sensor data, and Gazebo is a tool for simulating robots in a virtual environment. You can also record and play back data with rosbag, which is very useful for collecting and analyzing data from real robots or simulation environments. In addition, the coordinate transform tool tf is essential for managing and tracking the relative positions between a robot's various sensor data.

For these reasons, ROS2 has established itself as the standard platform for robot development and supports efficient, systematic robot software development in many fields.

ROS 2 release timeline

Release

Codename

Ubuntu

LTS

Foxy

Fitzroy

20.04

✅

Galactic

Geochelone

20.04

❌

Humble

Hawksbill

22.04

✅

Iron

Irwini

22.04

❌

Jazzy

Jalisco

24.04

✅

Jazzy

Setup Sources

You will need to add the ROS 2 apt repository to your system.

First ensure that the Ubuntu Universe repository is enabled.

sudo apt install software-properties-common
sudo add-apt-repository universe

The ros-apt-source packages provide keys and apt source configuration for the various ROS repositories.

Installing the ros2-apt-source package will configure ROS 2 repositories for your system. Updates to repository configuration will occur automatically when new versions of this package are released to the ROS repositories.

sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb

If you are going to build ROS packages or otherwise do development, you can also install the development tools.

sudo apt install ros-dev-tools

Desktop Install (recommended): ROS, RViz, demos, tutorials.

sudo apt install ros-jazzy-desktop

ROS-Base Install (Bare Bones): communication libraries, message packages, command-line tools. No GUI tools.

sudo apt install ros-jazzy-ros-base

NOTE

The default middleware that ROS 2 uses is Fast DDS, but the middleware (RMW) can be replaced at runtime. See the guide on how to work with multiple RMWs.

Setup environment

source /opt/ros/jazzy/setup.bash

Simple Examples

If you installed ros-jazzy-desktop above, you can try some examples.

In one terminal, source the setup file and then run a C++ talker:

source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker

In another terminal, source the setup file and then run a Python listener:

source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener

Comparison of major simulators

Simulator

Features

ROS2 support

Difficulty

Gazebo (Classic/Ignition)

Official ROS simulator

✅ Full

Medium

MoveIt2 + Gazebo

Specialized for motion planning

✅ Full

Medium-high

Isaac Sim

NVIDIA, high-quality rendering

✅ (plugin)

High

Webots

Lightweight and easy, official ROS2 package

✅ Official

Low

CoppeliaSim (V-REP)

Free educational license

✅ plugin

Medium

PyBullet

Python-friendly, lightweight

△ Manual integration

Low

Beginner — Webots + ROS2

The fastest way to get started. Official ROS2 package provided.

## Ubuntu 22.04 + ROS2 Humble 기준:

## Webots ROS2 패키지 설치
sudo apt install ros-humble-webots-ros2

## UR5e 예제 실행
ros2 launch webots_ros2_universal_robots ur5e_example.launch.py

Intermediate — Gazebo + MoveIt2

The most general-purpose combination. You can use a real robot's URDF as is.

# MoveIt2 설치
sudo apt install ros-humble-moveit

# Gazebo ROS 패키지 설치
sudo apt install ros-humble-gazebo-ros-pkgs

# Universal Robots 시뮬레이션 패키지
sudo apt install ros-humble-ur-simulation-gazebo

# UR5e + MoveIt2 시뮬레이션 실행
ros2 launch ur_simulation_gazebo ur_sim_moveit.launch.py ur_type:=ur5e

Advanced — Isaac Sim

  • Requires an NVIDIA account + Omniverse Launcher installation
  • The software itself is free; RTX GPU recommended
  • The most realistic physics simulation and rendering quality

Step-by-step learning path

Stage

Tool

Goal

Stage 1

Webots

Grasp the basic concepts (UR5e and Panda arm examples included out of the box)

Stage 2

Gazebo + MoveIt2

Build a practical motion planning pipeline

Stage 3

ros2_control

Sim → real hardware integration (with minimal code changes)

Recommendations by use case

Motion planning / general robot arm control

  • Gazebo + MoveIt2 + ros2_control
  • Official packages exist for major robots such as UR, Franka Panda, and Kinova

Point cloud integration (industrial uses such as welding)

  • Gazebo + MoveIt2 + ros2_control
  • Depth sensors can be added in the simulator
  • Switching to a real device only requires replacing the launch file

Reinforcement learning / massively parallel simulation

  • Isaac Sim (Isaac Lab) or PyBullet
  • Isaac Lab: GPU-parallel environments, ideal for RL training

Education / rapid prototyping

  • Webots
  • Simple installation, plenty of examples, low resource usage

See also

Favorite site

Tutorials

author Zer0 sitemap