论文解读·

GPT 6 Astra as an Embodied Policy

让通用模型 Astra 直接控制机械臂,还是先检查机器人动作模型 π0.5 的建议?从真实分类案例、控制代码和原始图表解释两种方案与评测条件,附面向 LLM / VLM 读者的机器人基础。

页数
12
形式
交互图解
更新
2026.10.18
文章目录
12 页图解 · 两种控制方式、真实案例与结果独立阅读 ↗

按钮或方向键翻页 · F 全屏 · Esc 退出正文原图可放大;基础知识可跳转阅读

Jiayi Su、Yixin Zheng、Mi Yan、Li Yi、Zhizheng Zhang、He Wang · Galbot · Technical report and code

这份报告把 GPT 6 Astra 放进模拟机器人:每次看图、读取机械臂状态,再通过工具让机器人移动。作者比较两种用法:Astra 自己构造所有动作(Direct);先让已有的机器人动作模型 π0.5 提出一段动作,再由 Astra 决定接受还是纠正(Hybrid)。研究问题是,理解目标和掌握操作技巧这两类能力,怎样配合才有用。

博客作者本人的兴趣程度:8 / 10。本文依据网页版技术报告和固定代码版本,未复现机器人实验,也未核实到报告的 arXiv 条目。数值图表与流程图按项目自有文档的 MIT 许可引用,去掉第三方模型标志,保留原英文与数值;版权说明。视频中的模拟资产许可未完全核清,本文链接原片,不再分发视频或其截图。

1. Motivation:看懂任务以后,还要把动作做出来

Astra 的语义判断能否弥补机器人策略的错误,而机器人策略能否补上 Astra 的操作细节?“把木制玩具放进右篮”至少有两种失败:模型认错物体或篮子;模型认对了,却没抓稳、撞上篮沿或太早松手。前一种主要涉及任务理解,后一种需要处理连续的运动与接触。

π0.5 从机器人数据中学过抓取、搬运等动作模式,作者将这些已学到的习惯称为动作先验(action prior)。它也可能抓错目标,或者在上一步失败后继续下一步。Astra 可以显式检查目标和执行反馈,但每段都独立构造动作既慢,也不一定稳定。报告要检验的就是两者一起使用是否优于 Astra 独自控制。

最接近的路线是通用模型直接控制机器人,以及通用模型调用已训练的动作策略。原报告的 Related Work 主要梳理社区探索,未给出全面的同条件算法对照。下面按控制方式比较,不跨项目比较成功率。

路线 / 原文举例输入与输出与本报告的区别
π0.5 等 VLA图像、指令、机器人状态 → 一段连续动作依靠训练出的操作模式;本报告再让 Astra 检查具体候选和上一段结果
Robocurve 等直接控制实验图像和反馈 → 夹爪目标或低层控制命令通用模型自行构造动作;这里的 Direct 是使用同一任务说明与末端接口的对照
示范学习 / 策略调用示范、当前观察或分解后的子任务 → 机器人动作本报告不是只分解任务、调用一次技能;Astra 在每段审查 π0.5 的具体运动建议

报告用 System 1 / System 2 类比“熟练动作”和“显式思考”,不是神经结构证明。源码里的 teacher 指 Astra,student 指 π0.5,两者在这里都没有做蒸馏训练。对 LLM / Agent 研究更直接的借鉴是怎样提供候选、反馈和受限执行工具。

3. Method:候选、审查、短段执行,再重新观察

Hybrid 让 π0.5 提供动作,让 Astra 决定这一段如何执行;Direct 的所有动作都由 Astra 构造。两边 Astra 都用 xhigh(较高的推理计算档位),并保留 Codex 的读文件、看图、计算和笔记工具。

原报告Figure2:左侧Hybrid接受π0.5候选或执行Astra修正;右侧Direct直接输出末端目标;两侧执行后重新观察
Figure 2 · 原报告完整流程图。左侧的接受与修正是二选一,不同时执行。图中的 o 是图像,p 是机器人状态,ℓ 是指令,h 是历史。Su et al.,项目自有报告内容,MIT。

3.1 一次决策,模型和控制程序分别做什么

RoboDojo 使用双 ARX X5 机械臂。观察包括头部和左右腕部的三张 640×480 RGB 图,以及 14 维机器人状态:左臂 6 个关节角、左夹爪开合命令、右臂 6 个关节角、右夹爪开合命令。关节角和夹爪位姿有测量反馈;夹爪开合值却是最近下达的命令,不是实际指间距离。

  1. π0.5 读取这次观察与原始指令,生成 50×14 个绝对关节目标。控制程序根据机器人几何计算每步对应的夹爪位置与朝向,即 FK(forward kinematics)。这只计算机器人,不预演物体、碰撞或抓取结果。
  2. Astra 看当前图像、机器人状态、上一段执行记录和候选夹爪轨迹。它判断“上一段实际怎样了”以及“下一段建议是否符合当前子目标”。默认图像预览最长边约 480 px,也可以打开原始图像。
  3. 选择 student 就原样执行候选前 1–15 步;选择 edit 就对候选夹爪轨迹加位移、旋转或开合修正,执行 1–5 步;选择 eef 就给左右夹爪显式目标,执行 1–5 步。夹爪这样的末端执行部件称为 EEF(end-effector)。
  4. 控制程序验证范围并执行;edit/eef 用 IK(inverse kinematics) 把夹爪目标转成关节目标。每个实际控制步后,根据测量状态重新计算局部 IK。动作段结束才给 Astra 新观察;候选中没执行的部分丢弃,π0.5 从新状态重新生成。

Direct 完全不启动 π0.5:Astra 从观察和历史生成双臂 EEF 目标,通过同一局部 IK 执行 1–5 步,再观察。每臂一次修正最多 5 cm / 0.35 rad(约 20°);更小的内部增量与关节限位也受约束。这些限制减少突变,不保证轨迹无碰撞、目标可达或物体抓稳。

3.2 何时允许修正:失败与选错子目标分开判断

Astra 必须先报告两种状态:execution_status 说上一段是否进展、失败或仍不确定;intent_status 说下一段候选是否符合当前目标。例如物体没有随夹爪抬起是执行证据;尚未抓住就开始运往篮子,是下一步的前置条件有问题。候选的“意图”是从运动建议推断的,不是读取 π0.5 的内部思维。

1
2
3
4
5
6
# 根据官方 gate_assessment.py 简化改写;Python 3,非完整检查器。
failure = assessment["execution_status"] == "failed"
wrong_intent = assessment["intent_status"] == "misaligned"
if response["mode"] in ("edit", "eef"):
if not (failure or wrong_intent):
raise ValueError("Takeover requires observed failure or wrong task intent")

只有上述任一状态成立才允许修正;“不确定”或“不喜欢这个姿势”不够。已经失败,也可以接受 π0.5 合理的重试。Python 检查的是 Astra 填的字段与动作范围,不会独立证明它的语义判断正确;如果 Astra 把正确候选误判成目标错误,字段检查也未必能发现。

执行 Agent 能看到图像、机器人测量、历史、任务说明与完成要求;不能查询隐藏物体真值、未来物理状态或评分来规划,也不能回滚。是否完成由模拟器自带的检查规则判定,报告称为 native evaluation(原生评测)。固定 RoboDojo 案例禁止模型提前宣告停止;基础设施中断与原生失败不是同一种记录。

3.3 真实案例:木制玩具应该进右侧红篮

案例来自公开记录 classify_objects_by_language__standard__g0__l0。RoboDojo 的任务代码从场景里各组物体类别生成英文指令:汽车进左篮、手表进中篮、木制玩具进右篮,然后双臂归位。指令与检查条件都由 benchmark 的 Python 任务代码生成或注册,未另行提供人工逐条标注的判定文件。记录里的 Score 是任务的部分完成分数,具体规则在下一小节。

真实分类案例示意:汽车到左篮、手表到中篮、木制玩具到右篮;判定检查物体参考点在篮子范围内和高度、双臂归位;Hybrid794步成功、Direct1100步失败
本文补图 · 按公开指令、案例记录和原生 checker 绘制,物体图形仅为类别示意,不是模拟器截图;篮子映射和两次结果为真实数据。原片 Video 1,完整片在原站视频库。

视频中的 Decision 是 Astra 的决策序号,Control 是累计控制步。Decision 29 接受 π0.5:释放左篮中的绿色汽车并向上撤回。到 Decision 33 / Control 409,Astra 将手里木制玩具的候选方向修正到右侧红篮:左臂位移修正为 (+4.5 cm, 0, +0.1 cm),维持闭合,执行 5 步。稍后 Decision 47 又接受 π0.5,接近剩下的木制狮子。这说明一次局部纠正怎样接回已有策略,而不是 Astra 接管整题。

最终 Hybrid 用 794/1,100 个控制步、73 个动作段,其中 130 步由 Astra 修正,原生结果为成功、Score=100。配对 Direct 用尽 1,100 步、220 段,失败、Score=40。公开视频覆盖了这段行为,公开摘要给出终态;未发布完整逐步 checker 结果,不能进一步断言 Direct 最后究竟哪组物体放错。

3.4 Judge:判断的是场景几何,不是让 VLM 看图打分

所核查的 RoboDojo 版本中,run_reward() 要求:三组物体全部在各自篮子范围内,物体参考点不高于篮子包围盒顶部 1 cm 以上,双臂归位。具体的“在篮内”检查是物体 root point(模型坐标系的参考点,不一定是重心)投影在篮子水平多边形内,且高于其底部;它不检查物体整个网格都在容器内部。归位容差是每个位置坐标偏差 ≤15 cm、朝向差 ≤20°。

因此,若汽车进了中篮,即使抓取和搬运都顺利,汽车组的指定篮检查仍失败;这是假设动作按已发布规则推得的失败例,不是未公开的模型日志。另一种容易忽略的失败是物体放对、双臂没归位:最终成功仍为 0。

部分分数也不是“放对物体的百分比”:该任务按完成任一类、完成任意两类、完成三类给 10、40、100 分,各阶段还要求释放夹爪、指定篮内没有其他类别。控制程序逐步检查,至多每步晋级一次;最终没通过成功检查,100 分档退回 40。Score=40 表示到过相应评分阶段,不足以反推出最后的完整物体状态。任务与几何规则是程序编写的,报告未披露独立人工复核或标注一致性研究。

代码与核查:原生条件、公开案例、可离线复算的指标

案例原始指令:Put car objects into the left basket, watch objects into the middle basket, and wooden_toy objects into the right basket, then reset the robot arm. 两次记录的场景与策略随机种子均为 0。

代码来源分别为 任务定义、几何条件与 分阶段评分。任务代码的三个类别前缀是 cat0/cat1/cat2,分别对应 basket0/basket1/basket2;gen_instruction 从当次场景读出类别名字,再生成指令。不是模型自己定义类别对应关系。

本文提供 100 条公开结果的指标字段和Python 3 核查脚本。把两者放在同一目录,运行 python3 verify_metrics.py。只重算记录中的成功率、Score、步数与 token,不能重现未公开的动作日志,也不需要 GPU、API key 或模拟器。

4. Experiments:RoboDojo 有收益,RoboLab 给出相反结果

两套环境支持一个有条件的结论:已有动作策略可能帮忙,但不能保证加入它就更好。先明确每个分数的分母,再看结果。

4.1 RoboDojo:同场景配对,但任务不是均匀采样

作者把官方 π0.5 成功率的 0–72% 划为四个等宽区间,从低到高选 6、2、1、1 个任务。十项各跑五次,共 50 次;数字排列、装箱、叠衣服为 2 次标准加 3 次随机场景,其余为五次标准布局。Direct / Hybrid 对齐任务、场景及记录的 seeds(控制随机场景与策略采样的随机种子);源码不保证完整物理状态逐位一致。

成功率 = 成功次数 / 50。平均 Score = 对有分数的运行逐次求均值,并转成 0–100:Hybrid 为 100 × 31.30 / 50 = 62.60;Direct 为 100 × 18.15 / 48 = 37.8125。Direct 有两条未得到原生终态判定的记录:成功率按未成功计入 50 次,Score 则缺失,只用 48 次。不能把缺分补零,也不能把这两条说成已由原生规则判定失败。整体 Score 不是简单平均十个任务的平均数。

原报告Figure3上半图:Hybrid平均Score62.60、Direct37.81、π0.5公开参照24.43;其余模型为任务子集重加权参照
Figure 3 · Score 面板。Hybrid / Direct 是本报告执行记录;其余模型按同一任务与场景比例重新加权公开成绩,未按相同 seeds 重跑。Su et al.,MIT。完整成功率面板和逐任务原表可在下方展开。

成功率 Hybrid 48%、Direct 26%;π0.5 公开参照为 15.67%,Score 24.43。后一个比较不具备前两个方法那样的配对条件。改善集中在叠衣服(5/5 对 2/5)、瓶子入桶(5/5 对 1/5)、搭塔(3/5 对 0/5)等;语言分类反而是 1/5 对 2/5,整理桌面两边均 0/5。刚才的成功案例用于解释方法,不能替代这张逐任务成绩单。五次测试也不足以稳定估计一个任务的成功概率。

展开:Figure 3 成功率、Table 1 两种指标、Figure 1 开篇原图
Figure3成功率面板:Hybrid48%、Direct26%,按Score的相同顺序排列
Figure 3 · Success rate 面板,横轴 0–100%;排列按 Score 而非成功率。Su et al.,MIT。
Table1各任务平均Score,Direct语言分类及装箱各只有4条可用分数
Table 1 · Score 原表。Direct 语言分类与装箱分别仅 4 个可用分数,其他任务各 5 个;总体行按可用运行汇总。Su et al.,MIT。
Table1逐任务成功率:语言分类和物体分类Direct更好,折衣服和瓶子入桶Hybrid更好
Table 1 · Success rate 原表,每任务每方法 5 次。Su et al.,MIT。
Figure1开篇Score排名,与正文Figure3Score重复但宽版排布
Figure 1 · 报告开篇的宽版 Score 排名,与 Figure 3 同一数据;保留于补充,避免正文重复。Su et al.,MIT。

两条缺分记录是 gpt__classify_objects_by_language__standard__g0__l1(257/1,100 步)与 gpt__pack_objects_into_box__random__g0__l2(960/1,300 步)。摘要标为 status=idle、native_complete=false,成功与分数的原生字段为空;公开字段不足以确定为什么中断。

4.2 RoboLab:Direct 更好,且不是同预算的新配对试验

原报告Figure4:RoboLab所选十任务Direct98%、Hybrid92%、π0.5和Cosmos3-Nano36%、DreamZero34%
Figure 4 · RoboLab 单臂 Franka,十任务各选五次最终记录。这里没有 RoboDojo 的 Score;各方法不是严格配对的新运行。Su et al.,MIT。

Direct 49/50、Hybrid 46/50;π0.5 和 Cosmos3-Nano-Policy 各 18/50,DreamZero 17/50。这套任务以带语义要求的抓取放置为主,也包含按顺序叠块与杯子转向。RoboDojo 用任务微调过的 π0.5;RoboLab 的三个既有策略则用机器人操作数据集 DROID 训练的权重,未在这些测试任务上微调。

作者据此提出:候选策略如果不适合当前任务,检查和纠正它可能不如直接规划。但这是解释假设,没有固定任务、只改变 π0.5 适配程度的消融来证明原因。

更重要的是协议:Astra 两边包括保留的历史结果与授权重试,初始状态未严格对齐;最后两次 Direct 的 BlocksInBin 重试把决策上限从 180 改到 500(模拟器总步数与成功规则不变)。三个基线取 2026 年 6 月历史记录中每任务按顺序的前五次,包含失败,未核实与 Astra 使用相同任务版本和控制设置。因此 98% 应读作选定最终记录的描述性成绩,不能宣称一次尝试、同预算条件下达到 98%。

展开:RoboLab 的全部逐任务原表(Table 2)
Table2 RoboLab每任务五次结果和整体49/50、46/50、18/50、18/50、17/50
Table 2 · 每个单元格同时给成功率与成功次数。Direct 在九项 5/5,但历史记录、重试与预算差异仍需保留。Su et al.,MIT。

4.3 少执行修正,不等于少调用 85.6% 的模型

RoboDojo Hybrid 共执行 42,750 个控制步,6,174 步为 Astra 修正,比例为 6,174 / 42,750 = 14.44%。但每个动作段都要经过 Astra,Hybrid / Direct 分别有 3,776 / 7,729 段。接受 π0.5 时允许更长的段,这也减少了重新观察和决策的次数。

所选运行记录 token 为 624,762,828 / 1,132,343,772,Hybrid 少 44.8%。这包含大量重复的缓存输入,不是账单金额,也不含全部早期重试。25 Hz 控制意味着每控制步对应 0.04 s;Hybrid 平均物理运动 34.20 s、Direct 30.58 s,均排除模型思考的等待。失败早停也会缩短运动时间,不能据此判断谁端到端更快。

展开:原始用量表(Table 3)与时间口径
Table3控制步、动作段、物理时间及含缓存、未缓存和输出token统计
Table 3 · 仅来自 RoboDojo 的各 50 条选定运行;缓存输入也计入 Total tokens。Su et al.,MIT。

Control steps ×0.04 s 不含推理等待;媒体时长还可能包含初始画面,例如分类 Hybrid 795 帧视频为 31.8 s,794 控制步对应 31.76 s。视频秒数、物理控制时间与真实经过的时间不能混用。

5. Discussion:更值得检验的是候选如何帮到下一步

报告证明了一个组合系统在所选 RoboDojo 任务上更有效,还没有隔离出收益来自哪项设计。Direct / Hybrid 同时改变候选来源、动作接口和最长执行段;没有“相同段长、有无候选”的对照,不能把全部提升归于 Astra 的判断,或全部归于 π0.5 的先验。

对于做 LLM / VLM / Agent 的读者,这里比较具体的启发是:模型可以对已有方案检查前置条件、执行结果和目标选择,必要时只改一小段。下一步实验应固定接口、执行长度与观察频率,再改变候选质量;记录有多少失败被真正修好、多少正确候选被误改,以及实际等待时间。这样才能区分“建议本身好”和“审查有效”。

机器人端还需要继续测动作段里的滑落、接触失败和篮沿碰撞。原报告的视频展示这些问题,但挑选的片段不能估计失败类型比例;模型继续尝试也不保证最终恢复。它没有报告真实机器人部署的成功率或实时延迟实验。

6. Conclusion:配合有价值,前提与代价不能省略

已有动作策略提供可执行建议,通用模型提供检查和局部纠正;这套分工在 RoboDojo 所选任务上有效。RoboLab 的反向结果提示我们,还要看候选是否适合任务。14.4% 是控制步占比,98% 带有选择与重试条件,25 Hz 是控制节拍而非 Astra 推理速度。保留这几个区别,才能理解报告的贡献和它尚未解决的问题。

证据范围:主报告正文、折叠的工具 / 控制说明、图表与行为分析;代码固定 8f3d362,原生 RoboDojo checker 固定 ee67a146。本文提供全部 4 Figures / 3 Tables;21 个行为视频逐项登记,未再分发,源站仍可观看。研究时生成的 44 页网页打印件不是作者发表的 44 页论文。来源与核查清单。

留言

留言正在载入…

搜文章