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
- ROS2:Basic
- rViz (ROS Visualization Tool)
- rqt Graph
- MoveIt
- Gazebo
- rosbag
- tf (Transform Library)
- roslaunch
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.
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.
Desktop Install (recommended): ROS, RViz, demos, tutorials.
ROS-Base Install (Bare Bones): communication libraries, message packages, command-line tools. No GUI tools.
| 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
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:
In another terminal, source the setup file and then run a Python listener:
Comparison of major simulators
| Simulator | Features | ROS2 support | Difficulty |
| Gazebo (Classic/Ignition) | Official ROS simulator | ✅ Full | Medium |
| Specialized for motion planning | ✅ Full | Medium-high | |
| Isaac Sim | NVIDIA, high-quality rendering | ✅ (plugin) | High |
| Lightweight and easy, official ROS2 package | ✅ Official | Low | |
| CoppeliaSim (V-REP) | Free educational license | ✅ plugin | Medium |
| PyBullet | Python-friendly, lightweight | △ Manual integration | Low |
Recommended stacks
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 | Grasp the basic concepts (UR5e and Panda arm examples included out of the box) | |
| Stage 2 | Build a practical motion planning pipeline | |
| Stage 3 | ros2_control | Sim → real hardware integration (with minimal code changes) |
Recommendations by use case
- ROS2 Humble official documentation
- MoveIt2 official site
- Webots official site
- Gazebo (Ignition) official site
- NVIDIA Isaac Sim
- UR ROS2 Driver (GitHub)
- Franka ROS2 Driver (GitHub)
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
- Robot Operating System (ROS)
- RTOS
- VTK
- RoboDK - robot simulation software
- Arena SDK - Lucid Vision Camera ROS2 Driver with Arena SDK
- NVIDIA Isaac Sim
- MoveIt
- Webots
- KS X 9101
Favorite site
- ROS 2 Documentation — ROS 2 Documentation: Foxy documentation
- 1.1 What is ROS2 - Building ROS2 Robots
- (ROS 2 - Beginner) #1 Installing ROS 2 and setting up the development environment - YouTube
- ROS2 basic concepts (1): Introduction to ROS2
Tutorials
- AIWeldingRobot:Basic
- Arena SDK
- ClaudeCode:HtmlGallery
- Data Distribution Service
- Gazebo
- Laser Vision Sensor
- MoveIt
- OPC Unified Architecture
- Point cloud
- RoboDK
- Robot
- Robot Operating System
- Robotic arm
- ROS2:Basic
- ROS2:Basic:CloudflareArchitecture
- ROS2:Basic:RobotMonitoringGuideline
- Rosbag
- Roslaunch
- Rqt Graph
- RViz
- Smart Factory
- Tf
- Webots
- Welding Robot