具身智能:具身规划、控制与安全
具身智能最容易被误解的一点是:
很多人把它想成“给机器人一个更聪明的大脑”。但现实里,机器人失败往往不是因为它不够会聊天,而是因为它没有在 200ms 内刹住车、没有在 3mm 误差内插进孔、没有在突然遮挡时稳定重规划。
所以这一页强调的是:高层智能很重要,但真正让系统站住脚的,仍然是规划、控制与安全。
SayCan 原论文图很适合解释高层语言规划为什么必须和低层可执行性绑定:LLM 可以判断某个技能是否符合指令,但 value function / affordance 才能判断当前场景里这个技能是否真的做得到。

图源:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances,Figure 3。原论文图意:LLM 给候选技能打“是否符合指令”的分数,value functions 给技能打“当前环境是否可执行”的 affordance 分数,二者组合后选择下一步机器人动作。
左侧 LLM 更像任务层:它知道“把苹果放到桌上”需要先找苹果、拿苹果、再放置;但它不知道当前机器人能不能够到苹果、夹爪是否可抓、桌子是否在附近。右侧 value function / affordance 更像执行层:它不理解完整语言目标,但能评估某个技能在当前观测下是否可行。中间 combined score 才是 SayCan 的核心:选择既符合指令又能执行的下一步。真实系统里,高层越自由,越需要低层控制、安全约束和人工接管边界兜底。
具身系统不是“一个大模型直接控制所有电机”。更稳的结构通常是高层理解任务,中层规划轨迹,低层控制执行,安全层持续检查是否越界。
导航软件可以告诉你“前方左转”,但方向盘、刹车和避让行人必须由驾驶员实时控制。VLA 或大模型更像导航和副驾,底层控制器才是踩刹车和稳住车身的人。
1. 从任务到控制的分层结构
一个典型具身系统常拆成三层:任务层 决定“做什么”,例如先找杯子、再抓取、最后放到水槽;规划层 决定“怎么走”,把目标变成路径、阶段和候选动作;控制层 决定“每个时刻如何施力和执行”,保证真实硬件稳定跟踪。
可抽象为:
其中 是高层目标,描述任务想达到的状态; 是规划轨迹,给出未来一段路径或状态序列; 是控制输入,是真正下发给执行器的动作或力矩。
大模型更适合上层目标分解,例如“先打开柜门,再拿杯子,再放到水槽”。
但真正执行时,系统仍需连续控制器来保证轨迹可行且安全。
2. 规划:先决定未来大致怎么走
经典 MPC 目标可写成:
约束为系统动力学:
并求解:
这里 是系统状态,如机器人位姿、速度、关节角或物体位置; 是控制输入,如速度命令、关节力矩或末端位姿增量; 是瞬时代价,用来衡量当前偏离目标、碰撞风险或能耗; 是终端代价,用来衡量规划窗口末端是否接近目标。
MPC 的关键思想是:
先优化未来一小段,但每次只执行第一步,然后重新观测、重新规划。
3. 为什么具身智能离不开重规划
真实世界里有太多不确定性:人突然走过来会让原路径立即失效,物体没放在预期位置会让抓取点和路径都要重算,夹爪接触后物体姿态变化会迫使后续动作修正,地面摩擦和仿真不一致也会改变速度与制动距离。
因此规划几乎不可能“一次算完就照着走到底”。
它更像一种滚动闭环:
一个直观例子:送餐机器人绕人
高层路径说“直行 8 米到 3 号桌”。
但实际运行中,服务员从左侧穿出,小孩从右侧跑来,地上还有湿滑区域。
这时真正工作的不是高层语言计划,而是在高层目标不变的情况下做局部避障、根据行人和湿滑区域调整速度,并让底盘或机械臂按新轨迹平稳执行。
4. 控制:把规划轨迹变成真实动作
假设规划层给出参考轨迹 ,控制器目标是让真实状态跟随参考轨迹。
常见跟踪误差为:
最简单的线性反馈可以写成:
更一般的情况下,可使用非线性控制、MPC、阻抗控制等。
5. 接触任务为什么尤其难
视觉导航里,很多问题主要是几何。
但机器人操作一旦涉及接触,问题就变成接触力、接触点稳定性、物体滑动和末端卡死:力过大会损坏物体,力过小又可能抓不住;接触位置稍偏,物体就可能旋转或滑脱;摩擦不足时,表面接触不等于真正固定;姿态或路径微小偏差也可能让工具卡在边缘。
这时光有几何轨迹还不够,还需要考虑接触力学和顺应性。
一个例子:插插头
从远处看,末端轨迹可能完全正确。
但在最后 5mm,如果姿态有微小偏差,插头会顶在插座边缘上。
这时高层规划看起来“对了”,低层控制却必须在接近接触点时降速,根据接触反馈微调角度,并允许小范围顺应,让末端沿可行方向滑入。
否则就会卡住甚至损坏设备。
6. 安全:不是附加功能,而是第一约束
若定义安全集合:
则控制和规划应尽量保持系统始终在 内。
这可以表现为碰撞距离约束、关节角限幅、速度与加速度上界、力矩约束等硬条件,分别用于保持最小安全距离、避免机械越界、限制突发动作和高速碰撞风险,并防止执行器输出过大力矩造成损坏或伤害。
安全投影
若模型给出候选动作 ,实际执行前可投影到安全集合:
这相当于说:
“你可以提建议,但最后发给执行器的动作必须经过安全过滤。”
7. 控制障碍函数的直觉
若用控制障碍函数描述安全边界,则目标是保证:
并让控制输入满足某种前向不变条件。
直观理解是:
只要系统一直接受满足某约束的控制,它就不会离开安全区域。
一个直观例子:机械臂避人手
人手突然伸进机械臂工作区时,系统不需要先“思考完整任务目标”,而是应立即进入安全控制:先减速降低接触风险和制动距离,再后退或急停,确认环境安全后才重新规划并继续任务。
这类行为的优先级必须高于一切高层目标。
8. 高层大模型和低层控制怎么协作
高层模型擅长任务分解、语义理解、工具和技能选择:它可以把长指令拆成可执行阶段,识别目标、约束、优先级和用户意图,并在抓取、导航、开门、搜索等技能中选下一步。低层控制擅长毫秒级闭环、动力学补偿、跟踪稳定和安全边界执行:它用高频控制及时响应传感器变化,把惯性、摩擦、负载和接触力处理掉,并把硬约束落实到每个控制周期。
一个合理架构通常是:
这说明具身智能不是“经典控制被大模型替代”,而是“高层智能和低层控制明确分工”。
π0.5 和 DreamZero 输出后还缺什么
π0.5 和 DreamZero 让模型更接近“直接出动作”,但它们仍然不能绕过规划控制层。
| 模型输出 | 还需要控制层补什么 | 原因 |
|---|---|---|
| π0.5 的 continuous action chunk | 低层伺服、碰撞检查、急停、夹爪力控制 | action chunk 是短窗口动作,不保证每个控制周期都满足硬件和安全约束 |
| DreamZero 的 video-action chunk | 真实观测校正、风险检测、安全过滤、必要时重规划 | WAM 可能生成错误未来,动作会忠实跟随错误视频计划 |
| 传统 planner 的轨迹 GT | 执行器跟踪、接触反馈、失败恢复 | 几何上可行的轨迹,真实接触中仍可能打滑、卡住或碰撞 |
因此更稳的系统不是让 VLA/WAM 直接接电机,而是把它们作为高层策略或候选动作生成器,再经过 planner、controller 和 safety filter。模型越强,越要把它能控制的边界写清楚。
9. 三个现实场景
9.1 餐厅送餐机器人
目标是把热汤送到指定桌。
系统不只要知道去哪,还要保证遇人减速、急转弯不洒汤、地面湿滑时控制更保守。
这就是规划、控制与安全共同作用的例子。
9.2 家庭服务机器人拿玻璃杯
高层计划知道“打开橱柜,拿起玻璃杯,放到桌上”。
但执行时需要控制开门力度、防止夹爪过紧捏碎杯子,并在放置时避免碰倒旁边盘子。
这里任何一步都不只是语义问题,而是接触控制和安全约束问题。
9.3 仓储机械臂高速分拣
吞吐压力会逼系统提速,但提速会压缩安全裕量。
因此系统必须在产能、稳定性和碰撞风险之间动态折中。
10. 最常见的失败模式
10.1 高层计划正确,低层执行发散
任务逻辑没错,但跟踪控制不稳,机器人仍会失败。
10.2 安全规则写得太死
如果所有动作都被过度限制,系统虽然安全,却几乎什么都做不成。
10.3 规划器不懂真实动力学
规划出的轨迹几何上可行,动力学上却无法执行,例如急停距离不够、抓取时惯性过大。
10.4 安全层和任务层互相打架
高层一直要求前进,安全层一直要求减速,最终系统出现振荡或卡死。
这通常说明层间接口定义不清。
11. 工程判断
高层大模型非常适合给目标、解释环境和调用技能。
但只要任务涉及快速闭环、精密接触、人机共融或高代价失误,低层控制、安全过滤和状态估计都不能省。
12. 总结
具身智能真正难的地方,不在“模型是否懂世界”,而在“它能否在真实世界里稳定、及时、安全地行动”。
规划告诉系统未来该往哪走,控制保证它真能走上去,安全则决定它在任何异常情况下都不把事情搞坏。
缺了其中任何一层,机器人都很难从 demo 走向可靠部署。
快速代码示例
1 | def control_tick(state, planner, mpc, shield): |
这段代码强调分层控制接口:高层 planner 先给参考轨迹,低层 mpc 生成控制量,最后由 shield 做安全投影。这样能把任务性能与安全约束解耦,便于单独调参和审计。
工程收束
具身系统要先分清规划层、控制层、安全层、实时性和接管策略。只讲高层智能,不讲控制环和安全边界,很难判断它是否可用;上线前要画清控制环层级,把安全指标纳入主评测,并做风险清单、回放、shadow 与实机演练。
- Title: 具身智能:具身规划、控制与安全
- Author: Charles
- Created at : 2025-06-11 09:00:00
- Updated at : 2025-06-11 09:00:00
- Link: https://charles2530.github.io/2025/06/11/ai-files-embodied-ai-planning-control-and-safety/
- License: This work is licensed under CC BY-NC-SA 4.0.