具身智能机器人实战教程——模块3(2)
模块 3:底层控制原理
第一章:从人工指令到 AI 生成
第二章:实操案例
文章目录
前言
前面的学习中,我们已经用 MuJoCo 加载了 T800 人形机器人模型,认识了它的 joint 与 link、相对坐标与绝对坐标、状态参数,跑通了仿真主循环,理解了 PD 控制的原理,也明确了每个关节的力矩范围,并成功用人工编写的方式驱动机器人运动。本篇把链路再往前推一步:不再由人来逐个指定关节目标,而是让 AI 策略网络根据机器人当前的状态,自动生成关节运动指令。这正是"具身智能"里"智能"二字真正落地的地方——从"人写死动作"进化到"机器自己决策动作"。
第一章:从人工指令到 AI 生成
1.1控制范式的转变
在手动控制T800这个课程中,驱动 T800 的关节目标(或关节力矩)完全由人工设定:例如给定一组固定的目标角度,或者用一段正弦曲线去周期性地摆动腿部关节。这种方式适合做单关节验证,但一旦要让人形机器人走出稳定、协调、能自愈扰动的步态,人工设计的难度会急剧上升——人需要同时协调髋、膝、踝等几十个自由度,还要保证左右腿相位交替、重心始终落在支撑多边形内。手工调参既不可扩展,也不具备对环境变化的适应能力。
AI 策略(Policy)本质上就是一个函数 π:它接收机器人当前时刻的观测 obs,输出当前时刻应当执行的动作 action。在工程实现上,这个函数通常是一个多层感知机(MLP)神经网络。训练完成后,策略网络不再需要人来写规则,只要把传感器读到的状态喂给它,它就能给出"这一瞬间每个关节应该到达的目标位置"。所谓 AI 策略生成关节运动指令,指的就是这一步:obs -> π(obs) -> action。

1.2强化学习
传统机器人控制:工程师预先写好每一步规则 —— 什么时候抬左腿、落脚位置、重心怎么转移,所有动作都要人工设计。强化学习机器人:把这些复杂决策交给 AI 策略模型,机器人在不断试错中自主生成运动控制指令。
人形、四足等足式机器人的运动控制,一直是机器人领域非常棘手的难题。机器人行走是一个高度耦合的动态过程:要维持机身平衡、规划落脚点、完成重心转移,还要抵抗外界扰动。过去几十年,主流方案是基于动力学模型手工设计步态轨迹,例如 ZMP 零力矩点、模型预测控制 MPC。这类方法虽然理论清晰,但缺点同样突出:地面环境一旦变化、机器人受到外力扰动,预先写死的步态很容易失效;工程师需要花费大量时间调参,机器人想要新增一种运动模式,就要重新设计整套控制逻辑。
而强化学习(Reinforcement Learning, RL)的出现,为机器人运动控制提供了一条全新思路。
在强化学习框架中,机器人本身是智能体(Agent),在仿真环境中持续和世界交互。机器人通过传感器获取当前观测数据,包括关节角度、关节速度、机身姿态、重心位置等信息;观测送入策略网络,网络输出原始动作指令raw_action。原始动作经过缩放映射,得到目标关节位置:
目标关节位置下发到电机控制器,驱动机器人完成动作。环境会根据机器人的表现返回奖励信号:向前平稳行走获得正向奖励,机身倾斜、摔倒、关节超限则施加惩罚。
机器人不断重复 “获取观测→输出动作→得到奖励→更新策略” 这个循环。强化学习算法(如 PPO)持续优化神经网络参数,最大化长期累积奖励。整个过程不需要工程师逐一定义抬脚时机、落足点、重心轨迹,模型在大量试错中自主学习稳定运动策略。训练完成后,部署在机器人上的策略模型,能够实时生成运动控制指令。
| 框架 | 代表使用者 | 模型链路 | ARM CPU 性能 | 数值稳定性 | 推荐场景 |
|---|---|---|---|---|---|
| ONNX Runtime | 宇树官方、大多数 RL 机器人开源项目 | PyTorch→ONNX | 优秀 | ⭐⭐⭐⭐⭐ | 首选原型开发,足式人形机器人 |
| MNN | 国内机器人项目、国产嵌入式系统 | PyTorch→ONNX→MNN | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 国产 ARM、麒麟系统,低内存要求 |
| NCNN | 小型嵌入式机器人 | PyTorch→ONNX→param/bin | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 资源极度受限 ARM 板 |
| LibTorch | Jetson 原型验证 | PyTorch→TorchScript | 良好 | ⭐⭐⭐⭐⭐ | Jetson 高性能板子,快速验证 |
| TFLite | 微型机器人、MCU | PyTorch→ONNX→TFLite | 良好 | ⭐⭐⭐ | 小型机器人控制器 |
| RKNN | 瑞芯微硬件机器人 | PyTorch→ONNX→RKNN | NPU 加速 | ⭐⭐⭐ | 视觉模型用 NPU;RL 策略不推荐 NPU 推理 |
1.2策略网络输出的关节指令
1.2.1输出的是目标关节位置 target_qpos
策略网络的原始输出往往是一组取值在 [-1, 1] 之间的数值,不能直接当作关节指令。工程上要先做两步映射:先乘以一个动作缩放系数 action_scale 控制幅度,再加上一个默认站立姿态的基准角度 default_qpos,最终得到每个执行关节的目标位置 target_qpos = default_qpos + action_scale * raw_action。使用相对默认姿态的增量形式,而不是直接输出绝对角度,可以显著降低学习难度——网络只需要学"在自然站姿基础上如何微调",而不必从零学出整个站姿。
1.2.2与 PD 控制、力矩约束的衔接
策略输出的 target_qpos 并不是直接灌进电机的力矩,中间仍要经过前面学过的底层控制。把目标位置代入 PD 控制器 tau = Kp*(target_qpos - qpos) - Kd*qvel 计算出力矩,再按照每个关节的力矩上下限对 tau 做裁剪(clamp),最后写入 MuJoCo 的控制量 ctrl。也就是说,AI 策略只负责"想",真正把"想法"变成"肌肉力量"的仍然是 PD 控制加力矩约束——AI 生成指令与底层控制是分工协作、缺一不可的关系。
1.2.3喂给策略的观测空间
策略要"决策",就必须先"感知"。观测空间一般拼接了关节位置、关节速度、基座(torso)的高度、姿态、线速度与角速度、以及上一时刻的动作等信息。观测设计得好不好,直接决定策略能不能学出稳定步态:缺少重心速度会让它"踩不稳",缺少上一动作会让控制抖动。观测空间的完整构造在后续章节会单独展开。

第二章:实操案例
2.1模型运行demo
第一步获取参数文件,众擎开源的代码文件中提供的只能在ubuntu系统运行的模型参数,为了简化学习,可以通过T800模型文件获得winodws平台下能运行的模型参数文件来运行。




整个代码简单理解就是输入OBS_SIZE维度的数组,输出的是ACTION_SIZE维度的数组


第一次执行demo.py代码会出现这个问题,两种解决方法:1.执行pip install mnn,2.直接将运行出现的问题复制到trae中去,让ai去解决。

运行成功并输出前六个actions(电机)的值。
2.2模型结构观测
(t800) C:\Users\qx\Desktop\T800\code2>cd policy ##进入模型文件存放路径
(t800) C:\Users\qx\Desktop\T800\code2\policy>netron
'netron' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
(t800) C:\Users\qx\Desktop\T800\code2\policy>pip install netron ##安装netron工具
Collecting netron
Downloading netron-9.2.6-py3-none-any.whl.metadata (1.5 kB)
Downloading netron-9.2.6-py3-none-any.whl (3.6 MB)
---------------------------------------- 3.6/3.6 MB 6.5 MB/s 0:00:00
Installing collected packages: netron
Successfully installed netron-9.2.6
(t800) C:\Users\qx\Desktop\T800\code2\policy>netron
执行完上面命令后会出现一个链接, http://localhost:8080,浏览器打开这个链接点击Open Model即可看到网络结构



浏览器中可以放大缩小图片
总结
本文是「模块 3:底层控制原理」的进阶篇,核心目标是把 T800 人形机器人的控制链路从「人工编写动作」推进到「AI 策略自动生成动作」。
在第一章中,我们首先对比了人工控制与 AI 控制的范式差异:人工方式适合单关节验证,但面对几十个自由度的协调步态时难以扩展;而 AI 策略本质上是一个接收观测、输出动作的函数,训练完成后无需人工写规则即可实时生成关节指令。随后我们梳理了强化学习的基本框架——机器人作为智能体在仿真中不断试错,通过奖励信号驱动策略网络(如 PPO)持续优化,最终自主学会稳定运动。针对策略部署,我们还横向对比了 ONNX Runtime、MNN、NCNN、LibTorch、TFLite、RKNN 等主流推理框架的适用场景。最后,我们明确了策略输出的本质:原始动作经过缩放与基准姿态映射后得到目标关节位置 target_qpos,再交给 PD 控制器与力矩约束去真正驱动电机,AI 决策与底层控制是分工协作的关系。
在第二章中,我们通过实操案例完整走通了模型运行流程:获取 Windows 平台可用的模型参数文件、运行 demo.py 输出前六个关节动作值,并借助 Netron 工具在浏览器中可视化观测策略网络的输入输出结构与内部层次。
通过本文,读者应当理解 AI 策略生成关节指令的完整链路——从观测输入、策略推理、动作映射,到 PD 控制与力矩裁剪的衔接,并能够独立运行模型 demo、观测网络结构,为后续深入步态控制与观测空间设计打下基础。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)