Robots Atlas>ROBOTS ATLAS
Unitree Python SDK2

Development · SDKs

Unitree Python SDK2

2.5.0·Unitree Robotics

Active Open source API available
CATEGORYDevelopment · SDKs
READINESSTRL 9
ADOPTION SCALEGrowing Community
LICENSESBSD-3-Clause
FIRST RELEASE2023
UnitreeUnitree SDK2Unitree Python SDK2unitree_sdk2_pythonPythonSDKRoboticsUnitree G1Developer ToolRobot API

Unitree Python SDK2 (unitree_sdk2_python) is the official Python port of Unitree's C++ SDK. It exposes the same API: low-level (lowcmd_publisher, lowstate_subscriber), high-level (sport_client, ai_client), and helpers (utils.crc, utils.thread). Communication runs over CycloneDDS, just like the C++ version.

The Python API is particularly handy for RL policy prototyping: PyTorch or JAX can be attached to the robot's control loop quickly, data streamed into TensorBoard easily, and SciPy/NumPy used for sensor processing. The Python version is the standard in academia — used in Stanford HumanPlus, RoboCasa, and HumanoidGym.

The package is distributed through pip (`pip install unitree-sdk2-python`) and through GitHub. Internally it uses pybind11 to bridge the C++ libunitree. Requires Python 3.8+, runs on Linux x86-64 and ARM64 (Jetson). Updated in sync with the C++ SDK.

Type & Roles
Software types
SDK

An SDK (Software Development Kit) is a curated set of libraries, interfaces, tools, sample code, and documentation intended for building applications and integrating with a specific hardware device, platform, or service. In robotics, an SDK typically exposes device control, telemetry, sensor access, configuration, and execution functions, significantly reducing the time-to-first-integration for developers targeting a specific robot or platform.

API Library

An API Library is a software package that exposes programmatic interfaces for communicating with a device, service, or system. In robotics it typically forms a lightweight integration layer built on top of the manufacturer's official API or an open-source project, abstracting low-level protocol details and providing language-native bindings (Python, C++, Java, etc.).

Select an item to see its description.
Main category
SDKsControl & Planning
Roles in robotics ecosystem
API AccessDeveloper Enablement
Robot Control

Robot Control denotes the role of software responsible for motion control, command execution, coordination of actuating elements and the direct operational logic of the robot.

Device Integration

Device Integration denotes the role of software responsible for communication, configuration, initialization and handling of specific devices, sensors, controllers or hardware components within a robotic system.

Select an item to see its description.
Software family
Family
Unitree SDK2
Maturity & Adoption
9 / 9
Proven in operational conditions
ResearchPrototypeProduction
Adoption scaleGrowing Community
Maintenance statusMaintained by Single Vendor
First release2023
Last update25 April 2025
Deployments

Stanford HumanPlus (humanoid imitation learning), RoboCasa, HumanoidGym, OpenAI Universe ports, the majority of humanoid RL master's theses in 2024-2025.

Community

650★ on GitHub unitreerobotics/unitree_sdk2_python, ~6k monthly pip downloads, active thread on the Unitree Discord.

ROS supportCompatibility with ROS / ROS 2 ecosystem
Brak wsparcia ROSBrak jakiejkolwiek integracji z ekosystemem ROS
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
×
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
Programming languages
Python
Operating systems
Ubuntu 22.04Ubuntu 20.04JetPack Linux
Minimum hardware requirements
Minimum hardware requirements
CPUDual-core x86-64 or ARM64
RAM (GB)2
GPUNot required; CUDA optional for RL training
Disk (GB)1

Requires Python 3.8+ and pybind11. Internally builds libunitree_sdk2 from C++.

Packaging & distribution
Package managers
pip / PyPIGitHub Releases / GitHub Actions ArtifactsSource – Python (setup.py / pyproject.toml)
CPU architectures
x86_64 (AMD64)ARM64 / AArch64NVIDIA Jetson – AArch64 (JetPack)
Installation difficulty
LevelOut of the box
Protocols and interfaces
Communication protocols
CycloneDDSDDS (Data Distribution Service)
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)
Latency classes
Soft Real-Time (20–100 ms)Hard Real-Time (1–5 ms)
Deployment types
On RobotEdgeLocal Workstation
Supported simulators
MuJoCo
MuJoCo Menagerie
NVIDIA Isaac Sim
NVIDIA Isaac Lab
Genesis (generative physics simulator)
Official Docker images
unitreerobotics/unitree_ros2
Licenses
BSD-3-ClauseBSD 3-Clause Licensev3-Clause

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attribution
Version history
2.5.0Apr 2025

WBC bindings, PyTorch utility classes.

2.0.0Oct 2024

Sync with C++ SDK 2.0, G1 support.

1.5.0May 2024

H1 humanoid support.

1.0.0Nov 2023

First release of the Python port for Go2.