宇树与足式/人形机器人
宇树在 GitHub 上开源了 SDK、强化学习训练框架、仿真环境、遥操作与 VLA 项目。这一卷不谈参数不谈价格,只做一件事:把这些真实代码读懂,看清工业级足式机器人的构建方式。
本卷的写法边界:所有内容基于宇树公开的开源仓库文档与源码结构。 我们不写会随时间变动的数字(价格、参数、发布时间、排名),不推断仓库里没写的能力, 也不谎称跑通过真机——讲的是代码结构、接口设计与技术路线本身。
- 机器人的手怎么接进系统?四个灵巧手 service 仓库里的模块化设计 R2
宇树开源了四个灵巧手服务仓库,仓库描述里反复出现同一个词:serial2dds。把串口协议翻译成 DDS 话题,这层薄薄的适配器让「手」变成了可替换模块。本文从四份 README 和文件树里,拆出这个模式的实现细节与工程取舍。
- 宇树机器人都有哪些产品线?从 53 个开源仓库反推出的家族图谱 R2
不看宣传页,只看代码。用 SDK 的型号目录、独立仓库和服务层仓库三条线索,反推宇树的产品线布局与技术投入方向,顺便交给你一套可以套用到任何硬件公司身上的调研方法。
- 两代激光雷达 SDK 对着读:从 unilidar_sdk 到 unilidar_sdk2 的接口演进 R2
把同一家公司两代雷达 SDK 的目录摊开对着看,能读出作者后来觉得哪里设计得不好。这篇拆两代仓库的编译方式、协议层、示例构成与 ROS 包装,再补齐点云、逐点时间戳与运动畸变的通用原理,讲清拿到一堆点之后该干什么。
- 四足和人形有什么不同?从代码结构看两条产品线的真实差异 R2
外行看四足和人形的区别是腿的数量,开发者看到的区别写在代码里。从 unitree_sdk2 的模块命名、能力目录构成,到 unitree_rl_gym 的环境继承结构,用三组仓库里的硬证据说明这是两套控制哲学,不是同一套东西改参数。
- 宇树 Z1 机械臂:从 SDK 和 controller 两个仓库看一条机械臂怎么被控制 R2
一条机械臂被拆成了四个独立仓库:controller 跑实时循环、SDK 给用户程序调用、ROS 包对接生态、joystick 管人工兜底。从这几个仓库的目录结构反推机械臂控制系统的分层方式,顺带把关节空间、笛卡尔空间和轨迹规划的关系讲清楚。
- 机器人为什么用 DDS 而不是 MQTT?从宇树的消息定义说起 R2
把 unitree_dds_wrapper 的消息目录完整摊开看:哪些是 ROS 标准消息、哪些是自定义的、话题名为什么带 rt 前缀。顺带讲清 DDS 和 MQTT 在机器人场景下的根本分野。
- 高层控制和低层控制的边界在哪?两套指令体系彻底讲清 R2
同一台机器人给你两套完全不同的接口:一套说「往前走」,一套说「三号关节出多大力矩」。这两套东西为什么必须分开、各自的代价是什么、你的项目该用哪一套,这篇讲透。
- ROS 怎么接足式机器人?unitree_ros 的 Gazebo 仿真与 URDF 模型 R2
拿 unitree_ros 当样本,把 ROS 机器人项目的标准三件套拆开:description 包里的 URDF 与 xacro 到底描述了什么、Gazebo 要凑齐哪几样才能把机器人跑起来、ros_control 各角色怎么分工,以及同一份模型如何同时喂给仿真器、可视化和运动学求解器。
- ROS 2 怎么直接跟机器人对话?unitree_ros2 的接入机制 R2
拆开 unitree_ros2 的安装步骤、消息包和 setup 脚本,看清 ROS 2 接入一台机器人到底要对齐哪三件事:消息定义、话题命名、DDS 网络与中间件实现。顺带讲清 rmw 可替换意味着什么,以及 to_real 这类桥接包在解决什么问题。
- 从 UDP 到 DDS:新老两代机器人 SDK 之间发生了什么 R2
把 unitree_legged_sdk 和 unitree_sdk2 两个仓库并排摊开读:一个 udp.h 打天下,一个把整套 CycloneDDS 抬进来。这篇讲清通信机制的选择怎么决定一整套 SDK 的能力上限,以及什么时候你该换掉自己的通信层。
- unitree_sdk2 架构拆解:一个工业级足式机器人 SDK 长什么样 R2
不看参数不看价格,直接读宇树官方 SDK 的目录结构。从 CycloneDDS 到 Channel 层再到型号能力客户端,看清一套工业级机器人 SDK 是怎么分层的,以及它为什么这么分。
- 只会 Python 能不能开发机器人?unitree_sdk2_python 接入路径 R2
读 unitree_sdk2_python 的安装步骤、示例组织和包结构,看清它是独立的 Python 实现而不是 C++ 库的绑定;再从工程角度划出 Python 在机器人开发里能吃下哪一段、哪一段最好留给别人。
- 仿真里学会走路,怎么搬到真机上不摔?sim2real 全流程 R2
策略在仿真里跑得漂亮、一上真机就摔,问题出在现实差距。这篇拆开讲差距的五个来源、领域内常用的五类弥合手段,以及宇树部署代码里能读到的工程细节——中间那道仿真交叉验证、遥控器与状态机、C++ 部署的多线程结构,还有真机上电前必须做的事。
- 不用强化学习,四足机器人怎么走路?读 unitree_guide 的控制实现 R2
强化学习火起来之前,足式机器人早就会走路了。这篇从 unitree_guide 的目录结构入手,把状态机、步态生成、状态估计、平衡控制这套经典控制骨架逐块拆开,再和强化学习路线做一次不排名的对照。
- 仿真器怎么假装成一台真机器人?unitree_mujoco 的联调设计 R2
拆解宇树官方的 MuJoCo 联调仿真器:它把自己接进 DDS,发布与真机同名的状态话题、订阅同样的指令话题,让上层控制程序不改代码就能在仿真与真机之间切换。顺带讲清楚「测试替身」这套思路怎么用到你自己的项目里。
- unitree_rl_gym 拆解:机器人靠强化学习学会走路的完整链路 R2
把宇树官方强化学习仓库从头读一遍:Train、Play、Sim2Sim、Sim2Real 四步流水线各自解决什么问题,代码怎么组织,以及为什么中间那步「换个仿真器再跑一遍」不能省。
- 从 Isaac Gym 到 Isaac Lab:unitree_rl_lab 的迁移逻辑 R2
同一件事——训练足式机器人走路——宇树在两个仓库里各做了一遍。对照读 unitree_rl_lab 与 unitree_rl_gym 的依赖、目录组织和任务定义写法,能看清仿真训练框架这几年往哪个方向走:从继承一个大基类,转向把观测、奖励、随机化拆成可组合的配置单元。
- 不用 Isaac 也能训?unitree_rl_mjlab 的 MuJoCo 路线 R2
宇树除了 unitree_rl_gym 还维护着一个以 MuJoCo 为物理后端的强化学习仓库。这篇拆它的任务划分、目录组织和 C++ 部署侧,顺带讲清接触模型为什么是足式训练的命脉,以及一家厂商为什么要同时养多条训练路线。
- 具身智能的数据从哪来?unitree_sim_isaaclab 仿真环境解读 R2
模仿学习要吃海量「看到什么—做了什么」的配对数据,真机采集慢且贵。这篇拆解宇树基于 Isaac Lab 的仿真环境:它支持哪些机型与任务、遥操作和回放怎么接、数据生成那一步在做什么,以及它和强化学习训练环境为什么长得完全不一样。
- 激光雷达里程计是什么?Point-LIO 在足式机器人上的适配 R2
机器人怎么知道自己走到哪了?轮式靠数轮子转圈,足式的脚会打滑会腾空,这条路走不通。从宇树 point_lio_unilidar 仓库的目录、配置与启动步骤出发,讲清激光惯性里程计为什么要融合两种传感器、外参和静止初始化各自在防什么坑。
- 拿到一台激光雷达之后:从连上线到用起点云的完整路径 R2
第一次上手激光雷达,卡住你的往往不是算法,是网卡 IP 配错了收不到包。这篇按真实顺序走一遍:确认通信方式、编译跑示例、接进 ROS、在 rviz 里看第一眼,再讲清点云到手后必做的那几步处理和最容易踩的坑。
- 机器人的眼睛:双目相机怎么产出深度图和点云 R2
从宇树公开的相机 SDK 目录和 README 出发,把双目视觉这条链路讲透:视差怎么变成距离、极线校正在省什么、标定不准为什么不报错却全错,以及双目和激光雷达、结构光各自适合什么场合。
- 机器人怎么建图并自己走?从示例清单读懂拓扑图导航 R2
unitree_slam 的 README 只有几行,但示例目录里 23 个 .cpp 的文件名几乎把整套系统的能力摊开了。这篇从 add_node、delete_edge 这些接口切进去,讲清楚栅格地图和拓扑地图的分工,以及为什么巡检类机器人离不开一张可以被人编辑的图。
- 模仿学习怎么落地?把机器人数据接进 LeRobot 的完整流程 R2
以 unitree_lerobot 仓库为线索,把模仿学习从遥操作采集、数据格式转换、训练到推理部署这四段拆开讲:每一环的输入输出是什么、数据集格式为什么长成那样,以及行为克隆最根本的那个坑——误差累积。
- 一个 VLA 开源实现长什么样?unifolm-vla 代码结构解读 R2
VLA 这个词到处都是,但真正的开源实现摆在面前时,它由哪些具体部分拼成?把 unifolm-vla 的目录、配置项、数据管线和部署链路逐项拆开,看清一个视觉语言动作模型在工程上到底长什么样。
- 世界模型加动作:机器人先在脑子里预演一遍 R2
从 unifolm-world-model-action 这个开源仓库入手,讲清世界模型到底在学什么、为什么值得学,以及「预测未来」和「输出动作」两个目标放在一起训练时,代码和配置里会长出哪些东西。
- 不戴头显也能遥操作:体感相机做全身动作捕捉 R2
拆开宇树的 kinect_teleoperate 仓库,看清「相机看着你、机器人跟着动」这条无接触遥操作路线:深度相机怎么出骨骼、骨骼角度为什么必须经过重定向才能给电机、遮挡与力反馈缺失这些代价该怎么算,以及它和头显方案的分工。
- 遥操作的画面和手势怎么传?televuer 与 teleimager 的分工 R2
遥操作里有两条方向相反的数据流:动作从人流向机器人,画面从机器人流向人。宇树把它们拆成了 televuer 和 teleimager 两个仓库。这篇读两份 README,讲清各自的职责边界,以及低延迟视频回传的取舍:三缓冲、丢帧策略、传输方式怎么选。
- 轻量遥操作与数据采集:UniArmL1 框架拆解 R2
具身智能卡的往往不是模型而是数据。这篇读 UniArmL1 的目录与命令行参数,看清一个专门为「采数据」设计的遥操作框架怎么分层:三种输入模式如何共用一套接口、录制的数据长什么样、又怎么交给下游训练。
- 戴上头显操控人形机器人:xr_teleoperate 完整拆解 R2
从头显里的一只手,到机器人手臂上的一串关节指令,中间到底经过了多少道工序。拆开宇树的 xr_teleoperate 仓库,把遥操作的正向控制链路、反向视觉链路和数据录制这三件事讲清楚,顺便讲明白它为什么是具身智能的数据入口。
- 人形机器人怎么保持平衡?从支撑多边形到全身控制 R2
两条腿站着比四条腿难在哪?这篇从支撑多边形讲到 ZMP 判据、捕获点与全身控制,说清每种思路各自解决什么问题、又在什么地方失效,并用开源仓库的代码结构做参照。
- 四足机器人是怎么走路的?步态、支撑相与摆动相讲透 R2
走路这件事拆开看,是四条腿在支撑与摆动之间循环,而步态就是这四条腿的相位安排。这篇讲清相位差与占空比怎么决定步态类型、静态稳定和动态稳定的分界在哪、摆动腿和支撑腿各自要解的是完全不同的两类问题。
- 足式机器人的关节电机:准直驱、力控和那个容易踩的换算坑 R2
从 unitree_actuator_sdk 的指令结构出发,讲清足式机器人关节为什么要力控、kp/kd/q/dq/tau 五个参数各自管什么,以及转子侧与输出侧换算这个新手必踩的坑。
- 模型预测控制还是强化学习?两条足式控制路线的分水岭 R2
不讲两条路线各自怎么实现,只把它们的前提假设、代价落点和失败方式摆在一起。先说清 MPC 的滚动时域到底在做什么,再逐条对比可解释性、约束处理、调试成本与计算负担,最后给一组能自己回答的选型问题。
- 机器人怎么知道自己站着?足式状态估计入门 R2
机器人身上没有一个传感器能直接告诉它「我在哪、我多快」。这篇讲清 IMU、关节编码器、足端接触三路信息怎么融合成一个可用的状态估计,以及哪些量注定会漂移。
- 自己做一台足式机器人:从舵机狗到无刷关节的进阶路线 R2
想自己做一台会走路的机器人,最快劝退自己的方式就是一上来冲无刷关节四足。这篇给出一条分四阶段的进阶路线:先在仿真里跑通概念,再用舵机狗踩完机械与线束的坑,然后补上姿态闭环,最后才碰力控关节。每阶段都写清能做到什么、做不到什么、什么时候该往下走。
- 足式与人形机器人产业:一个硬件开发者能切进去的位置 R3
不谈市场有多大,只拆产业链的结构。把足式与人形机器人从零部件、本体、控制算法、具身智能到场景落地逐环拆开,说清每个环节在解决什么技术问题、需要什么能力,以及一个懂硬件的开发者可能站在哪里、该怎么自己去核实判断。
- 机器人也有应用商店?从 App 模板看机器人软件生态 R2
宇树开了一个 App 模板仓库,配套一个叫 UniStore 的分发入口。这篇拆开这个仓库的目录和打包约定,顺着它讨论一个更有意思的问题:给机器人写应用,和给手机写应用到底差在哪儿,平台方必须先解决什么。
- 一台能自己 3D 打印出来的开源双足机器人:Qmini 拆解 R2
大多数「开源机器人」只开源代码,机械结构还是黑箱。Qmini 把 BOM、电气框图、STEP 文件、装配 SOP 和 URDF 一起放了出来。这篇逐条核对它到底开源了什么,拆清一台双足机器人的构成,并老实讲复刻它会卡在哪几步。
- 想基于宇树机器人做二次开发,路径该怎么走 R2
五十多个开源仓库摆在面前,从哪个进最省时间?这篇按四类开发目标——做应用、做控制算法、做具身智能、接 ROS 生态——各给一条清晰的仓库推进顺序,并说明三件所有路线都绕不开的地基,以及最容易踩空的几个错误起点。
想先打基础,从机器人与具身智能卷入手, 用 ESP32 亲手做循迹小车、自平衡车和机械臂;本卷是在那之上,去读工业级产品的真实代码。