Skip to content

unitree_ros2

  • Software
  • Humanoids and robot learning
  • Driver or SDK

A ROS 2 package set that lets developers talk to Unitree Go2, B2, and H1 robots using standard ROS 2 messages over CycloneDDS, without wrapping the SDK.

Made by Unitree Robotics, China (checked on github.com/unitreerobotics (opens in a new tab)).

Source on GitHub: github.com/unitreerobotics/unitree_ros2 (opens in a new tab). Facts read at commit 668d1ec (opens in a new tab).

Licenses

Code
BSD-3-Clause (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (BSD-3-Clause) at commit 668d1ec (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Provides ROS 2 message definitions for Unitree robots in the cyclonedds_ws workspace, including unitree_go and unitree_api packages.
  • Lets developers read sport mode state such as position, velocity, and foot positions by subscribing to sportmodestate topics.
  • Exposes low-level state from motors, IMU, and power by subscribing to lowstate topics.
  • Reads wireless controller joystick and key values from the wirelesscontroller topic.
  • Sends high-level sport mode commands by publishing requests to /api/sport/request, with a SportClient helper.
  • Sends low-level motor torque, position, and velocity commands by publishing LowCmd messages to /lowcmd.

Written by Robotheca from the project's README (opens in a new tab) at commit 668d1ec.

Getting started

Difficulty
Intermediate
Hardware it needs, as the project states it
Tested on Ubuntu 20.04 with ROS 2 foxy and on Ubuntu 22.04 with ROS 2 humble (recommended); needs an Ethernet connection to the robot (or the loopback interface for simulation). Ubuntu 20.04/foxy requires building CycloneDDS 0.10.x; humble can skip that step.

Maintenance

Status
Maintained: a commit in the last 12 months
Newest commit
2 Jul 2026 on master
Latest release
Release v0.3.0 (15 Aug 2025)

Checked on GitHub on 16 Oct 2026.

Robots on Robotheca that use it

No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.