Unitree SDK2 Python
SoftwareUnitree SDK2 Python implements robot-facing request/response and publish/subscribe interfaces over CycloneDDS. [1] [2] [3] [4]
Installation & first result →Official websiteGetting started
- For
- Robotics developers selecting a concrete sensor, interface or simulation workflow [1] [2] [3] [4]
- Source rights
- Named licenses are documented by part. Review licenses
- Unknowns
- operating system, compute requirements not fully established. Review gaps
Source researched · Not tested by us
Sources checked · Research details
Licenses & related hardware
- License
- BSD-3-Clause · Details by part
Overview
Unitree SDK2 Python implements robot-facing request/response and publish/subscribe interfaces over CycloneDDS. Its examples include both status acquisition and control. The scope is an inspectable Python interface; it is not another open mechanical robot design or a commissioned control system. [1] [4]
Is this for you?
What you need
Installation & first result
Open the upstream getting-started guide [1] [2] [3] [4]
- Select the named hardware/model and corresponding source configuration before installation.
- Follow the cited starting route while keeping package, device and firmware versions matched; no operation reproduced here.
Editorial assessment of cited source; no runtime or hardware test.
Project notes
Match the Python and native middleware setup
The README requires Python 3.8 or later and cyclonedds 0.10.2, alongside numpy and OpenCV. It documents package installation and an alternative native CycloneDDS source route with CYCLONEDDS_HOME when needed. The package source and channel implementation should be matched to that environment; an import alone does not establish DDS communication with a robot. No Python or native library was installed. [1] [3] [4]
The documented high-level status example is read_highstate.py with a network-interface argument such as enp2s0. That string is an example host interface, not a discovered device in this review. Inspect the correct robot family, interface and status path before progressing to sportmode or low-level command examples. The README lists the same lowlevel_control.py command under both Low-Level Status and Low-Level Motor Control, the latter describing position and torque commands. Its placement under a status heading therefore does not establish read-only behavior; inspect that example's implementation before characterizing or using it. Those motion examples were not run here. [1]
The selected channel.py source gives a concrete middleware boundary to investigate. Source definitions for subscriptions and publications do not prove discovery, transport delivery, matching message types or physical command execution in a particular network. No DDS session, state reception, movement, timeout or restart was tested. [4]
The root BSD-3-Clause notice covers the SDK contribution. CycloneDDS, robot firmware, purchased hardware and any external model assets retain separate terms. Start with the selected interface and message contract rather than treating a successful example import as safe control. [2]
What we checked
Pinned documentation/selected source review only; no build, installation, live device/network, simulator, calibration or performance test.
Not yet established
- Requirements: operating system, host computer
- Version-specific hardware compatibility (ecosystem tags alone do not establish it)
Updates
- Upstream last updated
- Not established
- Latest release
- Not established
- Profile updated
- Nov 1, 2026
- Sources last checked
- Nov 1, 2026
- Next review
- Dec 1, 2026
- Reviewed revision
814556d
Source files and licenses
Distinct robot-facing source implementation/interface; no purchased hardware design or untested performance claim.
| Layer | Availability / license |
|---|---|
| software | available · BSD-3-Clause Scoped source declaration; purchased hardware, firmware, binaries, assets and external dependencies require separate terms. [1] [2] [3] [4] |
| documentation | available · BSD-3-Clause Scoped source declaration; purchased hardware, firmware, binaries, assets and external dependencies require separate terms. [1] [2] [3] [4] |
No separate physical design, pretrained distribution or dataset is selected as the released contribution in this scoped software review.
References
Each source links to the exact revision we read. “Used for” shows where this page relies on it.
- S001 README.md
Revision, date & where cited
unitreerobotics/unitree_sdk2_python contributors · github.com · revision
814556d· README.md at · Accessed Nov 1, 2026
Used for: Overview, Is this for you?, What you need, Installation & first result and 2 more - S002 LICENSE
Revision, date & where cited
unitreerobotics/unitree_sdk2_python contributors · github.com · revision
814556d· LICENSE at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Match the Python and native middleware setup and 1 more - S003 setup.py
Revision, date & where cited
unitreerobotics/unitree_sdk2_python contributors · github.com · revision
814556d· setup.py at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Match the Python and native middleware setup and 1 more - S004 unitree_sdk2py/core/channel.py
Revision, date & where cited
unitreerobotics/unitree_sdk2_python contributors · github.com · revision
814556d· unitree_sdk2py/core/channel.py at · Accessed Nov 1, 2026
Used for: Overview, Is this for you?, What you need, Installation & first result and 2 more
Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5