REPLAY
通过 dataset 传输层回放一段录制好的 episode——无需策略服务器,可连续播放或逐 chunk 放行。
概览
REPLAY 是控制台六个标签页(DEBUG · MANUAL · COLLECT · REPLAY · EVAL · RESULT)之一。DEBUG 向实时策略询问下一步动作;REPLAY 则从磁盘上的录制文件读取动作并按顺序重新发布。COLLECT 与推理运行录下的内容都能回放——两者保存的都是 LeRobot v2.1 格式。磁盘布局见数据采集。
加载 episode
以数据集回放预设启动控制台(具体文件见用配置使 REPLAY 就绪):
eva --config configs/00_openloop/dual_agilex_AGILEX_openloop.py --web-port 8080
打开 http://localhost:8080 并点击 REPLAY。填入左侧面板的输入项后,控制台便将该 episode 挂载为本次会话的只读源——无需重启。
| 输入项 | 填什么 |
|---|---|
| 数据集目录 | 录制文件的根目录路径——即包含 meta/、data/、videos/ 的那个文件夹。示例:examples/agilex_dataset/。控制台会先读取该目录,得知 episode 数量与列。 |
| Episode | 要播放哪一次录制,从 0 开始计数。5 个 episode 的数据集合法取值为 0–4。探查目录后会显示数量。 |
| 状态 / 动作列 | 用哪些保存的列提供状态与动作。留空则从数据集自动推断。 |
| 动作模式 | 录制的动作是 qpos 还是 eef。EEF 动作会经由实时运行所用的同一套 IK 步骤还原。 |
加载后可调整播放速率,并通过拖动条定位到任意帧、将 3D 机械臂冻结在该帧。当前帧与总帧数显示在状态信息中。
回放:连续或逐步
与 DEBUG 一样,REPLAY 提供两种模式:连续播放,或在每个 chunk 之前暂停、逐段放行。与 DEBUG 唯一的区别在于 chunk 的来源——磁盘上的录制,而非实时策略。
| 控件 | 作用 |
|---|---|
| RUN / STOP / RESET | 连续播放、停止、或让机械臂回到起始位姿。 |
| SIM ↻ | 前进一个 chunk,仅在仿真机械臂上演示——真机不动。 |
| REAL ▶ | 把刚预览的 chunk 下发到真机。 |
「先 SIM 后 REAL」是与 DEBUG 完全一致的分段放行流程——见 DEBUG → STEP。
实时视图
右侧是各标签页共用的 3D 视图。回放期间:
- 3D 机械臂——由进行中 chunk 的关节角度驱动。
- 相机条——随数据一同保存的相机视频。
- ACTION / STATE 曲线——进行中 chunk 的逐轴曲线图;停止后拖动条解锁,可回看历史。
实时视图完整机制:DEBUG → 实时舞台。
用配置使 REPLAY 就绪
REPLAY 也可完全由配置就绪,使控制台一启动就从磁盘读取动作。EVA 为每种机器人提供数据集回放预设,位于 configs/00_openloop/<robot>_openloop.py。这些预设把传输层设为从已保存的数据集读取——无需真机、ROS 或策略服务器。
复制对应机器人的预设(双臂 AGILEX 为 configs/00_openloop/dual_agilex_AGILEX_openloop.py),只改两个指向你录制的字段。transport 字段:
字段(位于 transport 下) | 用途 |
|---|---|
type | 'dataset'。保持原样。 |
dataset_dir | 必填——录制文件的根目录路径。 |
episode_id | 播放哪个 episode,从 0 开始计数。默认 0。 |
dataset_keys | 把保存的列映射到状态/动作/视频。默认值与 EVA 录制相符;video_keys 为空时回退到 observation.images.{相机名}。 |
transport = dict( type='dataset', dataset_dir='<你的数据集路径>', # ← 必填。 episode_id=0, )
启动:
eva --config <你的_openloop.py 路径> --web-port 8080
你能回放什么
EVA 产出的任何 LeRobot v2.1 录制:
| 来源 | 包含内容 |
|---|---|
| COLLECT episode | 遥操作录制——测得状态与人演示动作配对。 |
| 推理运行 | 每次运行一个 episode——状态与策略实际下发的动作配对。 |
示例数据集随附在 examples/agilex_dataset/(带三个相机的双臂 AGILEX 录制)。把数据集目录或 dataset_dir 指向它即可。磁盘布局见数据采集。