相机怎样工作?
September 20, 2026 · View on GitHub
工作台有一台观察桌面的外部相机,也有一台装在手部、随机械臂移动的腕部相机。两台都来自 MuJoCo 仿真,每台输出 640 × 480 图像。
相机在动作前后采集新画面。机械臂和物体动了,下一帧就会变化;等待模型回复时,仿真停在当前状态,画面也保持不变。这是按步骤拍照,当前没有连续视频输入。
选择哪些相机?
| 配置 | 能看到什么 |
|---|---|
| 仅外部相机 | 桌面、方块、托盘和机械臂的整体位置 |
| 仅腕部相机 | 夹爪附近的细节;视野会随手移动,也可能被手指遮挡 |
| 双相机 | 同时保留整体和近处视角,两幅图来自同一仿真时刻 |
| 无相机 | 不采集图像,使用结构化仿真状态 |
只启用一种时,另一种不会渲染或发送。直接图像和 RGB-D 观察至少需要一种相机;选择无相机会切换到非视觉状态输入。仿真状态模式下也能启用相机预览,此时图像仅供查看,不进入模型。
| 外部相机 | 腕部相机 |
|---|---|
![]() | ![]() |
“直接图像”和“RGB-D 视觉”有什么区别?
直接图像把原始 RGB 交给支持图像的模型,让模型自己判断方块、托盘和夹爪的关系。输入中没有物体或目标坐标,也不运行本地颜色检测器。模型仍知道末端位置、夹爪状态和接触反馈。首页的两段演示用的是这一条路线。
RGB-D 视觉先在本地寻找红色方块、蓝色目标和黄色障碍,再结合深度和相机标定估计坐标。模型收到的是检测结果,不是原始图片。检测器知道现有物体的颜色,以及方块边长为 4 cm;换了颜色或形状,需要调整检测器。
| 输入方式 | 本地颜色检测 | 原图发送给模型 | 模型获得物体坐标 |
|---|---|---|---|
| 仿真真值 | 否 | 否 | 仿真器直接提供 |
| RGB-D 视觉 | 是 | 否 | 检测器估计 |
| 直接图像 | 否 | 是 | 不提供 |
两条视觉路线的相机均来自仿真。接触反馈、安全检查和最终成功判断也由仿真器提供,当前还不是实物相机或真机控制。
被挡住时怎么办?
直接图像模式保留实际遮挡,由模型结合可见画面和近期动作决定下一步。页面上写出的“视觉依据”是模型的简短解释,仍需对照画面判断是否可信。
RGB-D 模式会在有限时间内保留最近定位;抓住方块后,还会结合末端位移和双指接触估计它的位置。双相机时优先采用外部检测,腕部补充缺失物体。必须的物体长期不可见、跟踪过期后会停止,不用仿真真值偷偷补齐。
怎样确认模型收到的是这张图?
实验 JSON 保存每张输入图的视角、采集编号、字节数和 SHA-256。视觉页的“下载观测帧”另存带 PNG 和清单的 ZIP,可以逐项核对。直接图像通过 Chat 的原生 image_url 或 Claude 的原生 image 块发送。
轨迹回放与相机输入要区分:网页时间轴重放保存的姿态,视觉页显示最近一次采样。首页视频则另外读取每步归档图,和记录的动作一起排版,详见视频导出说明。
本次验证
双相机原始图像的两个完成回合分别为 32 步和 43 步,另保留一次撤离不足和两次 API 超时,见视觉规划结果。
RGB-D+规则基线在双相机下重跑三个任务,各 seed 0,均以 8 动作完成,模型调用为 0。早期单外部 RGB-D 版本也保存了一局 GPT 搬运成功记录,8 动作、13 次调用。这些成绩分开保存在结果总览中,不能混成视觉规划成功率。
想替换检测器或连接真实相机,可从 perception.py 开始,补上标定、深度误差和遮挡处理。扩展入口见开发指南。

