Skip to content
WE BUILDHUMANOIDS

TOPIC HUB · /topics/ros-2

ROS 2

ROS 2 for humanoid robots: distributions, DDS middleware, ros2_control and MoveIt, and which humanoids publish official ROS 2 packages.

13 ROBOTS · 3 UPDATES

Introduction

ROS 2 is middleware for robot software: processes (nodes) exchange typed messages over a publish/subscribe graph [1]. It is built on DDS/RTPS implementations such as Fast DDS and Cyclone DDS, and uses Fast DDS by default when it is installed [2]. That matters for humanoids because several manufacturers expose their low-level interfaces over DDS as well, for example Unitree for its humanoids (see the ROS 2 row of the Unitree H1) and Booster for the Booster T1, so a ROS 2 node can often talk to the robot with little glue code.

A distribution is a versioned set of ROS packages [3]. Humble Hawksbill (supported May 2022 to May 2027) targets Ubuntu 22.04, and Jazzy Jalisco (May 2024 to May 2029) targets Ubuntu 24.04 [4]; the newest release is Lyrical Luth (May 2026) [3]. Before installing, check which distribution your robot's packages are released for: the robots below list it in their development tables.

Two frameworks carry most arm and whole-body work: ros2_control for (real-time) control and hardware interfaces [5], and MoveIt 2 for motion planning and manipulation [6]. Robots are described in URDF [7], and each ROS 2 distribution has an officially paired Gazebo release, such as Gazebo Fortress for Humble [8].

CONCEPTS · 5

Key concepts

ROS graph
The network of nodes in a ROS system and the connections between them by which they communicate [1].
RMW / DDS
The middleware layer ROS 2 runs on; DDS vendors such as eProsima (Fast DDS) and Eclipse (Cyclone DDS) provide discovery, serialisation and transport [2].
Distribution
A versioned set of ROS packages; once released, changes to its core packages are limited to bug fixes and non-breaking improvements [3].
URDF
The XML format for describing a robot's geometry and joint structure in ROS [7].
ros2_control
The ROS 2 framework for (real-time) robot control, with controllers such as the joint trajectory controller [5].

KNOWLEDGE GRAPH · 13 ROBOTS

Robots and ROS 2

All robots
Robots tagged ROS 2, with the relevant facts from each robot's sourced record
ROBOTROS 2
4NE1 Gen 3.5NEURAROS 2 interface
4NE1 MiniNEURAROS 2 interface
AGIBOT X2AGIBOTAimDK_X2 is built on ROS 2 (Humble); ships a custom aimdk_msgs message package plus 'py_examples' and 'x2_rl_deploy_controller' ROS 2 nodes/topics for joint state, IMU and motion commands.
Astribot S1AstribotROS 1 and ROS 2 interfaces bridging sim and real robot.
Booster T1Boosterbooster_ros2_interface (booster_robotics_sdk_ros2 repo) provides ROS 2 message/service definitions (LowState, MotorState, ImuState, etc.); the SDK's Fast DDS transport is compatible with ROS 2's DDS mechanism, and booster_deploy's real-robot path requires 'ROS 2 with booster_interface', already installed on the robot.
PAL Robotics KANGAROOPALkangaroo_robot (2.15.1/2.16.0), kangaroo_simulation (2.7.0) and kangaroo_moveit_config (2.2.2) are PAL's own GitHub repositories with humble-devel as the default (and, for kangaroo_robot, only non-fork) branch, ROS 2 Humble, bloom-released into the official ROS 2 Humble rosdistro index. No entries exist in the Jazzy (ROS 2) or Noetic (ROS 1) rosdistro indices; unlike TALOS, KANGAROO's repositories never had a ROS 1 branch, so ROS 2 Humble is the only distro it has ever officially supported.
PAL Robotics TALOSPALtalos_robot (2.10.3), talos_simulation/talos_gazebo (2.0.3) and talos_moveit_config (2.0.4) are PAL's own GitHub repositories with humble-devel as the default branch (ROS 2 Humble), and are bloom-released into the official ROS 2 Humble rosdistro index. No entries exist in the Jazzy (ROS 2) or Noetic (ROS 1) rosdistro indices, and older kinetic-devel/indigo-devel (ROS 1) branches are stale, so ROS 2 Humble is the only currently supported distro.
Pollen Robotics Reachy 2PollenRuns on ROS 2 Humble. The reachy2_core GitHub repo provides the full ROS 2 workspace: reachy_bringup, reachy_config, reachy_controllers, reachy_description (URDF), reachy_fake, reachy_gazebo, reachy_gazebo_gripper_glue, reachy_utils; Apache-2.0. The Python SDK sits on top of, and can be bypassed in favour of, the ROS 2 stack for advanced use.
ROBOTERA L7ROBOTERASDK built on ROS 2 Humble + CycloneDDS (ROS_DOMAIN_ID=211).
ROBOTERA M7ROBOTERArobotera_vla targets M7 with ROS 2 Humble, ROS_DOMAIN_ID=211, rmw_cyclonedds_cpp.
Unitree G1Unitreeunitree_ros2 · Foxy, Humble
Unitree H1Unitreeunitree_ros2: DDS-based low-level control confirmed for H1 in the top-level README; example tree has a dedicated h1-2 low-level example and shared read_low_state_hg example for G1/H1/H1-2.
Unitree H2Unitreeunitree_ros2's example/src/src tree has a dedicated h2 folder (high_level, low_level: h2_ankle_swing_example.cpp, h2_loco_client.cpp), even though the repository's own introduction paragraph predates H2 and names only Go2/B2/H1.

Values come from each robot's record, where every fact links to its source.

INTELLIGENCE

Latest updates

All updates
  1. Fauna Robotics describes Sprout, a lightweight developer humanoidHISTORICAL RECORD · PRODUCT · ARXIV
  2. NEURA unveils Porsche-designed 4NE1 humanoid and 4NE1 Mini at CES 2026, opens reservationsHISTORICAL RECORD · PRODUCT · NEURA ROBOTICS · OFFICIAL
  3. unitree_ros2 v0.3.0 adds G1 examples and aligns hand messages with unitree_sdk2HISTORICAL RECORD · RELEASE · GITHUB · OFFICIAL

RESEARCH

Research

0 PAPERS

No research has been published on this topic yet.

Papers are reviewed in weekly research digests before anything is published.

LEARN

Guides