Skip to content

快速开始

本项目实现了 L2(数据生成层)的三种轨迹来源,产出统一的 HDF5 格式,供 L3 转换为 LeRobot v2 dataset。

三种来源对比

维度ScriptedRLTeleop
原理状态机 / motion plannerPPO 训练后 rollout人类键盘控制
数据量10⁵+ 条/天10³–10⁴ 条10²–10³ 条
质量单调但稳定包含 recovery / 长尾最高(人类意图)
速度最快(GPU 并行)中等(需先训练)最慢(人手操作)
用途底座技能覆盖失败恢复轨迹高质量示教
成本低(写一次 SM)中(训练 10-20 分钟)高(人工录制)

混合训练策略:scripted 提供量,RL 提供 recovery,teleop 提供质量。GR00T 训练时对 teleop 数据上采样。

快速开始

1. Scripted(推荐先跑)

bash
# 采集 10 个 demo(~30 秒)
uv run sim2lerobot scripted collect --num_demos 10 --num_envs 4

# 可选:录制视频(每 5 个 episode 录一个)
uv run sim2lerobot scripted collect --num_demos 50 --num_envs 4 --video --video_interval 5

# 检查 schema
uv run h5_inspect data/lift_cube/scripted/{run_id}/episodes.hdf5

产物

  • data/lift_cube/scripted/{run_id}/episodes.hdf5
  • data/lift_cube/scripted/{run_id}/videos/episode-*.mp4(可选)
  • data/lift_cube/scripted/{run_id}/{run.log,meta.json}(运行日志 + 元信息)

2. RL

bash
# 训练 PPO(~10-20 分钟,A100)
uv run sim2lerobot rl train

# Rollout 录制(用训练好的 checkpoint)
uv run sim2lerobot rl rollout \
    --checkpoint data/lift_cube/rl/latest.pt \
    --num_demos 100 \
    --num_envs 32

# 可选:录制视频
uv run sim2lerobot rl rollout \
    --checkpoint data/lift_cube/rl/latest.pt \
    --num_demos 100 \
    --num_envs 32 \
    --video --video_interval 10

产物

  • data/lift_cube/rl/{run_id}/model_*.pt
  • data/lift_cube/rl/latest.pt(symlink,指向最近一次 train run 的最终 checkpoint)
  • data/lift_cube/rl/{run_id}/episodes.hdf5
  • data/lift_cube/rl/{run_id}/videos/episode-*.mp4(可选)

3. Teleop

bash
# 录制 5 个 demo(需要 GUI,人工操作)
uv run sim2lerobot teleop record --num_demos 5

# 可选:录制视频
uv run sim2lerobot teleop record --num_demos 5 --video

按键(Se3Keyboard):

  • 平移:W/S (±X)、A/D (±Y)、Q/E (±Z)
  • 转动:Z/X (roll)、T/G (pitch)、C/V (yaw)
  • 夹爪:K(切换开/合)
  • 重置:R(丢弃当前 episode)

产物

  • data/lift_cube/teleop/{run_id}/episodes.hdf5
  • data/lift_cube/teleop/{run_id}/videos/episode-*.mp4(可选)

合并到 LeRobot v2

三个来源的 HDF5 schema 完全一致,可以直接合并:

bash
uv run convert_lerobot data data/lerobot/lift_cube_v0_mixed/

视频录制说明

所有三个来源都支持 --video 参数:

  • 用途:质量检查、演示展示
  • 性能开销:~10-20% 运行时间
  • 磁盘占用:每个 episode 约 1-5 MB
  • 采样策略:用 --video_interval N 每 N 个 episode 录一个(减少磁盘占用)

详见 视频录制功能

下一步