← 返回 09-27 总览(第一部分)

Agent 飞行记录仪 · 选择性 3D 组 · 第2跑 · picking up trash

左:上帝视角(头部相机连续录像+我们叠加的注释, 非 agent 所见) · 右:agent 实际消费的信息, 逐字节原样、永不加工 · 下:产物架(点开看内容)与成对时间轴 · 看本组第1跑 →与成对时间轴
▸ 起始 prompt(发给 agent 的原文,逐字)
加载中…
▸ 任务与输入(这只 agent 到底拿到什么)
任务 goal — env.task_goal() 返回的原文只有一句: "picking up trash"。更细的要求全在起始 prompt 里(见上一个下拉框)。 Agent 每轮可获得的全部输入(没有别的): · RGB 图像 ×3: 头部 + 左腕 + 右腕 (480×480) · 头部相机原始深度图 (.npy) · 相机内参 K + 各相机在底盘上的安装位姿(手眼标定) · 本体感知: 关节角 / 底盘系夹爪位姿 / 相对 episode 起点的里程计 / 持物标志 · 任务文本(上面那句) 明确不提供: 任何物体的位置或身份、世界坐标外参、场景资产。 运动规划器只知道机器人自身(关节限位/自碰撞), 不知道环境——避障完全靠 agent。
▸ focus 记录是怎么产生和使用的(机制说明)
本跑(选择性 3D 组 · 第2跑)focus 机制实况,逐字核对 controller.py 与会话记录: 1. 空间计算全走 agent 自写的 controller.py:模型每轮提交 JSON 请求(要测的像素、新实体、本轮 purpose 与 focus 名单、可选动作)。controller 把像素用深度+内参反投影到相机系 → 乘手眼标定到底盘系 → 乘当时里程计位姿转到 episode 起点固定系(全局),存入 focus/scene.json,并把算出的坐标打印返回给模型。 2. scene.json 的读与写:controller 每次调用都读入文件,但作用是"读-改-写"保留旧实体;存量实体坐标不会被代码取出参与动作计算,动作参数是模型在上下文里携带的显式数字。模型显式回读文件仅 1 次。 3. "使用"体现在哪:测量时刻返回的全局坐标进入模型上下文,坐标系固定所以底盘移动后数字不过期(move_base 恰好使用同一坐标系);实体名构成它逐轮 focus 声明的词汇表。 4. 实体可被原地改写且不留历史——如 held_orange_can 在投放成功后被更新为桶内坐标(这也是它在早期轮次的地图上显示在桶位置的原因:地图画的是最终坐标;历史坐标待从逐轮 request 文件重建)。 5. 本跑没有 mesh/点云/体素:表示 = 70 个点实体 + 2 个 box 空间区域实体(通行走廊、抓取工作区)。
左腕相机(每轮观测时刷新)
右腕相机(每轮观测时刷新)

AGENT

世界地图 — 3D 实体库(俯视, 里程计系)

灰点=已入库实体 · 金色=本轮 focus · 蓝线=底盘轨迹 · 方框=空间区域(走廊/工作区); 实体在被测量的那一轮出现
产物架 — 每件产物标注其诞生轮次,点击展开内容

✕

时间轴: 每轮一对 —agent 拿观测并思考 世界 rollout(执行动作) · 点任意点跳转