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
| ROBOT | ROS 2 |
|---|---|
| 4NE1 Gen 3.5NEURA | ROS 2 interface |
| 4NE1 MiniNEURA | ROS 2 interface |
| AGIBOT X2AGIBOT | AimDK_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 S1Astribot | ROS 1 and ROS 2 interfaces bridging sim and real robot. |
| Booster T1Booster | booster_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 KANGAROOPAL | kangaroo_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 TALOSPAL | talos_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 2Pollen | Runs 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 L7ROBOTERA | SDK built on ROS 2 Humble + CycloneDDS (ROS_DOMAIN_ID=211). |
| ROBOTERA M7ROBOTERA | robotera_vla targets M7 with ROS 2 Humble, ROS_DOMAIN_ID=211, rmw_cyclonedds_cpp. |
| Unitree G1Unitree | unitree_ros2 · Foxy, Humble |
| Unitree H1Unitree | unitree_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 H2Unitree | unitree_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
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