跳到正文
EMBODIED INTELLIGENCE · 世界模型与长任务

计划说得通,还要让每一步走得通

任务规划决定先做什么、后做什么;运动规划决定身体怎样到达;执行反馈决定是否真的完成。语言模型可以帮助提出步骤,但前置条件、几何约束与结果验证必须把步骤重新接回物理世界。

机械臂先面对被遮挡的杯子,再比较移开障碍、抓取和放置的步骤;抽象任务顺序与桌面的实际几何约束相互对应。
直觉总览:机械臂先面对被遮挡的杯子,再比较移开障碍、抓取和放置的步骤;抽象任务顺序与桌面的实际几何约束相互对应。 生成插画不承载精确结构、尺寸或安全保证,正文机制图为准。 查看原图 ↗
01 · 菜谱不是手部轨迹

先后顺序与身体路线,是两类搜索问题

“把杯子放进盒子”可以拆成找到杯子、接近、抓住、移动、松开。可是杯子在柜子里,柜门没开;或者夹爪虽然到得了杯子,抓住以后却过不了狭窄出口。任务顺序与运动几何必须来回协调。

任务规划 Task Planning 在技能或符号状态上安排步骤,例如“先开门再取物”;运动规划 Motion Planning 在机器人配置空间里寻找满足约束的路径。配置空间不是相机画面:一个机械臂末端位置可能对应多组关节角,而整条手臂都会占据空间。两层结合称为任务与运动规划 TAMP(Task and Motion Planning),其价值就在于让抽象方案接受几何检验。

  1. 目标与当前事实

    目标物体、目标容器、允许接触区域;哪些事实已观察,哪些仍未知。

  2. 提出技能顺序

    选择开门、抓取、搬运等已有技能,并列出所需前置条件。

  3. 求解连续动作

    找可达抓取姿态,检查碰撞、运动限制和抓取后的几何变化。

  4. 执行并检查后果

    观察物体是否在手中、是否稳定入盒;失败信息返回上层。

两层规划的教学流程。几何失败可以使上层更换抓取方式、调整顺序或判断当前不可行;不能只让下层无限重复同一规划。

菜谱类比帮助区分顺序与动作细节,但菜谱默认厨师有大量身体技能;机器人没有这个默认前提。“擦干净”如果没有对应技能、工具和检测方式,只是一个漂亮的动词,不是可执行计划。

02 · 技能需要合同

每个动词都要回答:何时能做,做完凭什么算成功

以抓取为例,前置条件可能包含目标位姿足够新、抓取区域可达、夹爪空闲、机器人没有保护故障。预期效果是物体受到夹爪稳定约束,而不是“抓取指令已发送”。符号计划中的效果是模型假设;执行后必须由观察更新事实。

PRECONDITION

开始前

目标身份与坐标明确、姿态估计在可接受误差内、资源可用。未知不等于满足;被遮挡的物体不能因为上次看见过就永远视为仍在原位。

INVARIANT

进行中

速度、工作空间、接触和状态新鲜度等约束需要持续检查。只有开始时检查一次,不能覆盖动作中出现的人或移动障碍。

POSTCONDITION

结束后

用传感和任务判据确认效果,并记录失败或不确定。夹爪闭合、轨迹结束、物体入盒是三个不同层次的结果。

抓住物体后,碰撞检查也要改变:物体不再只是桌面上的独立障碍,而成为随夹爪移动的几何体。忽略这一步,规划器可能认为“手能穿过去”,实际却让被抓物撞上门框。松开以后,还要解除附着关系并更新物体位置;更新规划场景本身不代表真实物体已经移动。

教学例子 · 同一目标的两个方案

拿不到,不一定是模型没听懂

方案 A 从杯子右侧抓,但被隔板挡住;方案 B 先把可移动挡板放到指定空位,再从右侧抓。B 多了一步,却可能是唯一几何可行解。如果挡板不能移动、另一侧也不可达,系统应报告约束下无解,而不是凭语言生成一个不存在的绕行空间。

03 · 有用与能做

语言相关性要与当前能力相遇

大型语言模型 LLM(Large Language Model)可以把“我洒了饮料”关联到寻找海绵,但它仅凭文字并不知道海绵是否可见、机械臂是否够得着。可供性 affordance 在这里指当前状态下某技能能否成功的能力条件,不是一个物体的固定标签。

score⁡(s)=planguage(s∣g,h)⋅vskill(s,x)\operatorname{score}(s)=p_{\mathrm{language}}(s\mid g,h)\cdot v_{\mathrm{skill}}(s,x)
受 SayCan 启发的教学写法:技能 s 的分数结合目标 g、历史 h 下的语言相关性,以及状态 x 下技能成功的估计 v。分数用于候选排序;不能把任意两个未校准分数的乘积直接当成整个任务的真实成功概率。

假设“直接抓杯子”的两项分数为 0.8 与 0.2,乘积 0.16;“先定位杯子”分别为 0.5 与 0.8,乘积 0.40。后者语言上没那么直接,却在此教学设置下优先。这些数是人为设定的演示,不是论文实验值;也没有假定两项在统计上独立。

候选技能库决定上限。没有开门技能,语言模型写出“开门”也无法自动产生可靠控制器。可执行性估计若来自过期状态,同样会选择错误动作;若所有技能都不满足条件,应允许补观察、请求帮助或终止,而不强迫选一个最高分。

SayCan 的 2022 年 8 月更新在两个厨房场景、101 项自然语言任务上报告 PaLM-SayCan 的规划成功率为 84%、执行成功率为 74%。两者都是该实验任务集的指标,不能写成“计划正确时执行成功率为 74%”,也不是跨所有家庭场景的通用可靠性。项目也明确原方案反馈范围的限制:不能把它描述成已包含完整的失败检测与恢复系统。

04 · 计划不是事实记录

“我已经拿起了”必须来自观察,而不是上一句计划

一种隐蔽错误是:把选中的技能追加到语言上下文后,模型就把它当作已完成事实。杯子实际没抓住,后续仍然规划“移动杯子”。应分别记录计划步骤、已发出的请求、执行状态和经验证的环境事实;失败不能被一句自然语言总结抹掉。

2022 年 Inner Monologue研究将成功检测、场景描述、人类反馈等信息送回语言规划器,让后续步骤响应环境变化。它说明反馈接口的价值,不保证检测器永远正确。若相机被遮挡,反馈应表达“无法确认”,而不是强行给成功或失败。

重规划还应有边界:重复失败预算、对象身份、允许移动的物品和人工接管条件必须保持。语言模型不能因为目标难完成就自行扩大权限,例如把“拿杯子”变成移动未授权设备。已完成步骤也未必永久成立;门可能重新关闭,夹持物可能滑落,所以关键条件要按需要重新验证。

05 · 从高层词语回到工程

一个抓放任务,需要显式维护中间状态

MoveIt Task Constructor 的官方抓放教程用阶段组织接近、抓取、抬起、搬运、放置等步骤,并维护物体附着与碰撞场景。阶段可以生成状态、传播状态或连接状态。它让“整体任务”变成可检查的局部问题,但不是一个自动理解任意自然语言并保证执行成功的系统。

在入盒实践中,先把“成功”写成可观测条件:目标物体在指定区域内、已释放、经过一段观察仍稳定。再建立候选技能及运动接口。最后分别测量任务分解是否正确、路径是否可行、控制是否完成、结果是否满足;这样失败才能落到可改进的层,而不是统称“智能不够”。

进一步看技能编排如何处理运行中、超时与取消;再看失败恢复怎样从真实失败重新建立可执行状态。

KNOWLEDGE CONNECTIONS

把这一层放回完整机器人

返回具身智能知识地图,或沿本专栏继续展开:

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。