从2021年机器牛“犇犇”到2025年扭秧歌,再到2026年马年春晚的“武林高手”——数十台机器人上演醉拳、舞剑、后空翻,甚至与少年对棍过招。你可知道,让这些钢铁之躯完成极限武术动作的背后,Python和C++功不可没?
除夕之夜,当宇树科技的G1和H2机器人在舞台上利落翻腾、花式耍棍、两步蹬墙、连续三次单腿后空翻时,无数观众发出惊叹。这些动作流畅、配合默契的机器人,背后究竟是怎样的编程魔法?今天,我们就来揭秘宇树机器人的编程语言奥秘。
一、Python与C++:机器人世界的“双驾马车”
很多初学者会问:宇树机器人到底用什么语言编程?答案是:Python 和 C++ 各司其职,缺一不可。
对比维度 Python C++
主要职责 高层控制、AI应用、算法训练 底层驱动、实时控制、性能核心
应用场景 强化学习训练、视觉识别、集群调度 电机控制、通信协议、实时响应
开发门槛 低,上手快 高,需深入理解硬件
执行效率 适中 极高
典型代码 python legged_gym/scripts/train.py 底层关节控制算法
如果把机器人比作一个人,Python负责的是“大脑”——思考、决策、学习;而C++负责的是“小脑”——维持平衡、控制肌肉、快速反应。
二、Python在宇树机器人中的“三重角色”
1. 强化学习训练:让机器人“学会”武术
宇树科技的官方文档显示,机器人的运动控制大量采用强化学习技术。工程师们使用Python在仿真环境中训练机器人,命令非常简单:
```python
python legged_gym/scripts/train.py --task=g1
```
在2026年马年春晚的《武BOT》节目中,机器人需要完成棍法、剑术等物品交互动作,以及跑酷翻桌、蹬墙等环境交互动作。工程师们正是通过在仿真环境中进行大规模强化学习训练,让机器人掌握了对器械的动态感知与力矩控制。
训练好的模型会被导出并部署到真实机器人上。相比去年的《秧BOT》,今年的武术表演对算法、电机功率密度和多机实时协同提出了更高的要求。
2. 高层应用开发:Python SDK让控制变简单
宇树提供了官方的 Python SDK(unitree_sdk2_python),开发者可以通过几行简单的Python代码,就能控制机器人完成复杂动作:
```python
from unitree_sdk2 import RobotInterface
robot = RobotInterface()
robot.start()
robot.move_forward(0.5) # 以0.5m/s速度前进
```
这套SDK支持的功能非常丰富:
· 获取机器人状态(关节角度、IMU数据、电池电压)
· 发送运动指令(行走、站立、跳舞)
· 读取摄像头数据
· 控制机械臂运动
3. 集群协同控制:数十台机器人的“总导演”
马年春晚上,20多台人形机器人在舞台上实现高速集群变队形,在快速奔跑中完成穿插变阵,最快任意跑位速度达到每秒4米。这背后是宇树科技自主研发的集群控制系统。
这套系统的核心逻辑完全可以用Python实现:总控制台掌握每台机器人的实时位置,下发目标点轨迹和后续武术动作序列。机器人接收到指令后,调用走位运控算法追踪轨迹,并在规定时间内到达目标终点,随后调用武术运控算法精准完成动作。
三、C++:机器人的“肌肉控制器”
如果说Python负责让机器人“学会”动作,那么C++就是让机器人“做对”动作的关键。
1. 底层实时控制
机器人在空翻、空中连续转体等高难度动作中,需要在毫秒级调整关节力矩。这种对实时性要求极高的控制,必须由C++来完成。
宇树的官方教材《四足机器人控制算法》中,大量章节涉及C++实现:刚体运动学、动力学方程求解、状态估计器、平衡控制器等。这些都是确保机器人稳定行走的核心技术。
在马年春晚的表演中,机器人实现了空翻后的厘米级落点控制,这背后正是C++实现的融合定位算法与运动控制算法的协同作用。
2. 多传感器融合定位
今年的表演首次使用了机器人自带的3D激光雷达。激光雷达对舞台场景进行激光扫描和定位,让每台机器人清楚自己在舞台中的具体位置。
这种定位系统的底层处理涉及大量实时数据计算,必须由C++来保证处理速度和精度。即使机器人不小心跑偏了,也能全自主快速恢复。
3. 通信与驱动层
机器人的各个关节、传感器之间的通信,基于DDS(数据分发服务)协议实现。虽然Python也可以调用这些接口,但底层的通信框架和驱动程序,依然是用C++构建的。
四、Python + C++ 的完美配合:马年春晚机器人是这样炼成的
让我们以2026马年春晚的《武BOT》节目为例,看看Python和C++是如何协同工作的:
1. 训练阶段(Python):工程师用Python在仿真环境中进行大规模强化学习训练,让机器人掌握棍法、剑术、醉拳等武术动作。
2. 集群调度(Python):总控制台的Python程序负责调度数十台机器人的队形变换,下发目标点轨迹。
3. 实时定位(C++):机器人自带的3D激光雷达实时扫描舞台,C++程序处理传感器数据,让机器人清楚自身位置。
4. 运动控制(C++):机器人的底层控制系统用C++实时计算每个关节的输出力矩,确保在快速跑位、后空翻时不会摔倒。
5. 自我监测(C++ + Python):机器人实时监控各模块运行状态,全自主识别异常并迅速恢复。即使跑偏了,也能全自主快速归位。
五、如果你想入门机器人编程
看到这里,你可能也想尝试机器人编程。宇树官方提供了丰富的学习资源:
学习路径建议
1. 从Python入手:安装unitree_sdk2_python,运行官方示例,体验如何控制机器人移动、获取状态
2. 深入强化学习:学习宇树开源的unitree_rl_gym仓库,尝试训练自己的机器人模型
3. 挑战C++底层:阅读宇树教材《四足机器人控制算法》,理解运动学和动力学原理
4. 参与实战项目:从仿真环境(Isaac Gym、Mujoco)开始,逐步过渡到实物机器人
写在最后
从牛年的机器牛,到蛇年的扭秧歌,再到马年的武术表演,宇树用技术不断刷新我们的想象。而Python和C++这对黄金搭档,正是这场机器人革命的幕后英雄。
Python让机器人拥有了“智慧”,C++赋予机器人“灵动”。 如果你也对机器人编程感兴趣,不妨从Python开始,一步步走进这个充满魅力的世界。说不定未来登上春晚的机器人,就出自你的代码。
你对机器人编程感兴趣吗?欢迎在评论区留言交流!
关注公众号【ACE萦梦工作室】,回复“宇树”获取全套学习资料和示例代码!