宇树科技(Unitree)开源资料全解析与嵌入式开发者应用指南(入局具身智能)
宇树科技作为国内人形机器人、四足机器人领域的头部企业,其开源生态覆盖数据集、AI模型、开发框架、仿真工具、硬件SDK、ROS包等全链路资源,既面向学术研究,也深度适配工业级嵌入式开发需求。下面先系统梳理其开源资料体系,再针对嵌入式开发者给出精准的资源利用策略。
官方链接:
https://www.unitree.com/cn/opensource
一、宇树科技开源资料体系:按功能分类解析
宇树的开源资料高度聚焦“机器人开发全流程”,从底层硬件控制到上层AI算法、从仿真验证到实物部署,形成了完整闭环。可分为6大类,核心信息如下:
1. embodied AI数据集与预训练模型:机器人“感知-决策”基础数据
面向机器人操作任务的AI模型训练,提供高质量标注数据和成熟模型,降低算法研发门槛。
•核心数据集:
◦G1灵巧手操作数据集、G1夹爪操作数据集、Z1双臂操作数据集:覆盖“单指/多指抓取、双臂协同”等高频工业场景,包含力控、视觉、关节角度等多模态数据。
•预训练模型:
◦主流模仿学习(IL)模型:如DP(Data-efficient Policy)、ACT(Action Chunking with Transformers),已适配宇树硬件,可直接用于“从人类演示中学习操作技能”。
2.机器人开发框架:封装核心算法,支持全流程落地
针对特定开发目标(模仿学习、强化学习)提供模块化框架,嵌入式开发者可直接基于框架二次开发,无需从零搭建基础逻辑。
| 框架名称
|
核心功能
|
支持硬件
|
开发价值
|
| unitree_IL_lerobot
|
基于LeRobot的模仿学习框架,覆盖“数据收集→算法开发→模型训练→实物部署”全流程
|
人形机器人G1、机械臂Z1、灵巧手Dex3
|
嵌入式开发者可快速实现“AI驱动的机器人操作”,无需关注算法底层细节,仅需适配硬件接口
|
| unitree_rl_gym
|
强化学习(RL)实现仓库,封装经典RL算法
|
四足机器人Go2、人形机器人H1/H1_2、G1
|
用于开发“自主决策类任务”(如机器人避障、动态平衡),支持仿真与实物端统一调用
|
3.仿真工具:降低嵌入式开发“实物试错成本”
嵌入式开发中“实物调试风险高、周期长”,宇树提供2类仿真工具,支持“先仿真验证,再实物部署”。
•unitree_mujoco:
◦基于宇树SDK2和Mujoco物理引擎开发,可无缝集成用unitree_sdk2/unitree_ros2/unitree_sdk2_python写的控制程序。
◦核心价值:嵌入式开发者可先在仿真中验证“关节控制、运动规划”逻辑,避免因代码bug损坏硬件(如电机堵转、机械臂碰撞)。
•unitree_ros(ROS1)/ unitree_ros2(ROS2):
◦包含所有宇树机器人的URDF模型(可获取质量、转动惯量、关节限位等关键硬件参数),并提供unitree_controller(控制器)、unitree_gazebo(Gazebo仿真包)。
◦核心价值:适配ROS生态,支持用Gazebo快速搭建“多机器人协同、传感器融合”的仿真场景,嵌入式开发者可基于此做“分布式控制”验证。
4.硬件控制SDK:嵌入式开发的“底层入口”
SDK是嵌入式开发者与宇树机器人硬件交互的核心工具,按“机器人类型”和“开发语言”细分,覆盖从“单关节控制”到“整机运动”的全层级需求。
(1)多机器人通用SDK
| SDK名称
|
支持硬件
|
开发语言
|
核心功能
|
嵌入式场景适配
|
| unitree_legged_sdk
|
四足机器人Aliengo、A1、Go1
|
C++
|
提供“底层关节控制接口”(单关节角度/力矩控制)和“高层运动接口”(指定速度/步态控制)
|
适用于对实时性要求高的场景(如四足机器人动态平衡),可直接对接嵌入式实时系统(如RT-Thread、VxWorks)
|
| unitree_sdk2
|
四足机器人Go2/B2、人形机器人H1
|
C++
|
功能定位与unitree_legged_sdk一致,硬件适配升级
|
支持新一代机器人的“高算力硬件”(如H1的躯干计算单元),接口更简洁,实时性优化
|
| unitree_sdk2_python
|
Go2/B2/H1/G1
|
Python
|
unitree_sdk2的Python封装
|
适合嵌入式开发者快速做“原型验证”(如用Python写简单的步态测试脚本),再用C++重构底层逻辑
|
(2)机械臂专用SDK
•z1_controller:Z1机械臂的“驱动桥梁”,必须单独运行才能调用z1_sdk,负责硬件通信协议解析。
•z1_sdk:Z1机械臂控制核心SDK,提供C++/Python接口:
◦底层模式:直接控制每个关节的角度、速度、力矩;
◦高层模式:实现“点到点运动”(如指定机械臂末端坐标)。
•z1_joystick:B1机器狗搭载Z1时的“遥控器控制例程”,支持自定义遥控器适配(如替换为工业遥控器)。
(3)传感器SDK
针对宇树自研传感器,提供二次开发接口,降低嵌入式“传感器-机器人”集成难度:
•电机SDK:封装电机通信协议,避免嵌入式开发者手动解析CAN/LIN总线数据,直接调用“电机启停、转速控制”接口。
•4D Lidar SDK:L1/L2激光雷达的二次开发SDK,支持获取点云、IMU数据。
•4D Lidar L1 Open Source SLAM:基于Point-LIO算法,仅用L1的点云和内置IMU即可完成SLAM(同步定位与地图构建),嵌入式开发者可直接集成到“机器人自主导航”模块。
(4)相机SDK
•Go1 Camera SDK routines:Go2机器人相机的开发例程,支持获取RGB、深度图像,可用于“视觉引导抓取”等场景。
5.遥操作示例:嵌入式“人机交互”开发参考
提供2类主流设备的遥操作方案,嵌入式开发者可直接复用“硬件通信逻辑”和“运动映射算法”:
•Kinect Camera Teleoperation:基于Azure Kinect深度相机的H1人形机器人双臂遥操作程序,实现“人类动作→机器人动作”的实时映射。
•Apple Vision Pro Teleoperation:基于AVP(Apple Vision Pro)的H1_2遥操作仓库,适配VR设备的空间定位数据,适合开发“沉浸式遥操作”(如远程工业装配)。
6.学习与教学资源:嵌入式入门进阶工具
•unitree_guide:配合教材《四足机器人控制算法——建模、控制与实践》的开源项目,包含:
◦机器人关节电机控制方法、四足机器人力控算法;
◦同时配置“仿真环境”和“实物开发环境”,1-2条命令即可切换。
•核心价值:嵌入式开发者可从“基础控制算法”入手,理解“电机模型→力控逻辑→步态规划”的底层关联,避免直接开发时“知其然不知其所以然”。
二、嵌入式开发者如何精准利用这些开源资料?
嵌入式开发的核心需求是“底层硬件控制、实时性优化、硬件-算法协同、低成本试错”,需根据具体开发场景匹配资源,以下分6类场景给出策略:
场景1:底层电机/关节控制(核心需求:实时性、硬件适配)
•推荐资源:unitree_legged_sdk(C++)、unitree_sdk2(C++)、电机SDK、z1_sdk(底层模式)。
•使用方法:
a.先通过unitree_guide的仿真环境,理解“电机力矩控制、关节限位保护”的逻辑(避免实物调试时电机过载);
b.用C++基于SDK开发底层驱动:直接调用SDK的“关节控制接口”,对接嵌入式硬件的CAN总线(宇树机器人电机多采用CAN通信);
c.重点关注SDK中的“实时性参数”(如控制周期、数据传输波特率),适配嵌入式系统的调度优先级(如在Linux中用RT_PREEMPT补丁优化实时性)。
场景2:机器人整机运动控制(如四足步态、人形行走)
•推荐资源:unitree_guide、unitree_sdk2(高层模式)、unitree_mujoco。
•使用方法:
a.从unitree_guide学习“四足机器人力控步态”的数学模型(如足端轨迹规划、身体姿态调整);
b.在unitree_mujoco中仿真验证“步态参数”(如步长、步频),观察机器人是否稳定;
c.用unitree_sdk2的高层接口(如“指定速度控制”)将仿真验证后的步态移植到实物,仅需修改“硬件偏移参数”(如不同机器人的关节零位差异)。
场景3:AI +机器人融合(如视觉抓取、自主避障)
•推荐资源:embodied AI数据集、unitree_IL_lerobot、unitree_rl_gym、4D Lidar SLAM、Go1 Camera SDK。
•使用方法:
a.若做“模仿学习”(如让G1手模仿人类抓取):用unitree_IL_lerobot的“数据收集模块”采集人类演示数据,结合官方数据集训练模型,再通过SDK部署到机器人;
b.若做“自主导航”:直接集成4D Lidar L1的SLAM仓库,获取机器人位姿,再用unitree_sdk2控制机器人避障(SLAM输出的地图+ SDK的运动控制结合);
c.嵌入式优化点:将AI模型(如ACT)通过TensorRT量化,部署到机器人的嵌入式算力单元(如H1的NVIDIA Jetson),降低延迟。
场景4:传感器集成(激光雷达、相机与机器人协同)
•推荐资源:4D Lidar SDK、Go1 Camera SDK、unitree_ros2。
•使用方法:
a.用传感器SDK获取原始数据(如L1的点云、Go1相机的RGB图),通过unitree_ros2的“话题发布”功能,将数据同步到机器人的控制节点;
b.嵌入式层需处理“传感器时间同步”(如用ROS2的时间戳机制,对齐点云、IMU、关节数据),避免因数据延迟导致“控制失准”(如视觉抓取时相机与机械臂不同步)。
场景5:遥操作功能开发(如工业远程控制)
•推荐资源:Kinect Camera Teleoperation、Apple Vision Pro Teleoperation、z1_joystick。
•使用方法:
a.复用示例中的“设备通信逻辑”(如Azure Kinect的深度数据解析、AVP的空间定位数据接收);
b.自定义“运动映射规则”(如将人类手臂的角度映射到H1的双臂关节,需根据嵌入式硬件的算力调整映射延迟);
c.基于z1_joystick的例程,适配工业遥控器(如替换为无线手柄),增加“紧急停止”硬件接口(嵌入式安全开发核心需求)。
场景6:快速原型验证与学习进阶
•推荐资源:unitree_sdk2_python、unitree_ros(Gazebo)、unitree_guide。
•使用方法:
a.用Python(unitree_sdk2_python)快速写测试脚本(如控制G1手开合、H1单腿抬起),验证硬件通信是否正常;
b.用unitree_ros的Gazebo环境,搭建“多机器人协同”仿真(如Go2配合Z1搬运物体),验证分布式控制逻辑;
c.新手从unitree_guide配合教材入手,先掌握“机器人建模→控制算法→SDK调用”的全链路,再深入某一方向(如电机控制、AI部署)。
三、总结:嵌入式开发的“宇树开源资源使用逻辑”
宇树的开源资料不是孤立的,而是“从学习→仿真→开发→部署”的递进关系:
1.入门层:用unitree_guide+仿真环境打基础,理解控制原理;
2.原型层:用Python SDK(unitree_sdk2_python)快速验证硬件与算法逻辑;
3.开发层:用C++ SDK(unitree_sdk2、z1_sdk)做底层开发,优化实时性;
4.集成层:用框架(unitree_IL_lerobot)+传感器SDK(Lidar/Camera)做上层功能集成;
5.验证层:用unitree_mujoco/ROS Gazebo做全场景验证,再落地实物。
嵌入式开发者无需“面面俱到”,只需根据自身需求(如专注电机控制、还是AI部署)锚定核心资源,逐步深入,即可高效利用宇树的开源生态降低开发成本。
