Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

LeRobot MuJoCo 训练ACT、SmolVLA、Pi0教程

本仓库提供了一个最小可运行示例:用于采集示教数据,并在自定义数据集上训练(或微调)视觉-语言-动作(VLA)模型。

目录

安装

我们在 Python 3.10 上测试通过。

不建议直接使用 pip install lerobot,可能会报错。

安装 MuJoCo 相关依赖和 lerobot:

conda create -n py310 python=3.10
pip install -r requirements.txt
conda install jupyterlab
pip install ipywidgets ipykernel
python -m ipykernel install --user --name py310 --display-name "py310"
jupyter lab .
# 在当前目录启动


# 如果torch的cuda有问题:
pip uninstall -y torch torchvision torchaudio
pip install --no-cache-dir --force-reinstall --index-url https://download.pytorch.org/whl/cu124 torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0
python -c "import torch; print(torch.__version__, torch.version.cuda, torch.cuda.is_available())"

请确认 MuJoCo 版本为 3.1.6

解压资源文件:

cd asset/objaverse
unzip plate_11.zip

更新计划

  • Viewer 更新
  • 增加多种 mug、plate,对应不同语言指令
  • 增加 pi_0 训练与推理
  • 增加 SmolVLA

1. 采集示教数据

运行 1.collect_data.ipynb

在给定环境中采集示教数据。任务是抓起杯子并放到盘子上。当杯子在盘子上、夹爪打开且末端执行器位于杯子上方时,环境判定成功。

键位说明:

  • WASD:x-y 平面移动
  • R/F:z 轴移动
  • Q/E:倾斜
  • 方向键:其余旋转
  • 空格:切换夹爪状态
  • Z:重置环境,并丢弃当前回合缓存数据

叠加图像说明:

  • 右上:Agent 视角
  • 右下:腕部(第一人称)视角
  • 左上:侧视图
  • 左下:俯视图

数据集结构:

fps = 20,
features={
    "observation.image": {
        "dtype": "image",
        "shape": (256, 256, 3),
        "names": ["height", "width", "channels"],
    },
    "observation.wrist_image": {
        "dtype": "image",
        "shape": (256, 256, 3),
        "names": ["height", "width", "channel"],
    },
    "observation.state": {
        "dtype": "float32",
        "shape": (6,),
        "names": ["state"], # x, y, z, roll, pitch, yaw
    },
    "action": {
        "dtype": "float32",
        "shape": (7,),
        "names": ["action"], # 6 个关节角 + 1 个夹爪
    },
    "obj_init": {
        "dtype": "float32",
        "shape": (6,),
        "names": ["obj_init"], # 仅物体初始位置,训练中不使用
    },
},

数据默认保存在 ./demo_data 目录。仓库中已提供示例数据:demo_data_example

2. 回放数据

运行 2.visualize_data.ipynb

在重建后的仿真场景中可视化你的动作。主窗口会回放动作;右上和右下叠加图像来自数据集。

3. 训练 Action-Chunking-Transformer(ACT)

运行 3.train.ipynb

大约需要 30~60 分钟

在自定义数据集上训练 ACT。示例中 chunk_size=10

训练好的 checkpoint 会保存在 ./ckpt/act_y

可通过与数据集真值动作对比,评估策略误差。

PicklingError: Can't pickle <function <lambda>...> 如遇 pickling 错误,请将 `num_workers` 设为 `0`,例如:
dataloader = torch.utils.data.DataLoader(
    dataset,
    num_workers=0, # 4
    batch_size=64,
    shuffle=True,
    pin_memory=device.type != "cpu",
    drop_last=True,
)

4. 部署 ACT 策略

运行 4.deploy.ipynb

如果没有可用于训练的 GPU,可从 Google Drive 下载 checkpoint:

5-6. 语言条件环境中的采集与可视化

  • 5.language_env.ipynb:键盘遥操作采集数据(键位与第一个环境一致)
  • 1中只采集一条数据,5中采集20条数据,两个任务,红杯子和蓝杯子
  • 6.visualize_data.ipynb:可视化已采集数据

数据示例

模型与数据集

Model 🤗 Dataset 🤗
pi_0 finetuned dataset
smolvla finetuned 同上

th>

pi_0 finetuned datawhale_eai_pnp_language smolvla finetuned 同上

7. 训练与部署 pi_0

训练命令:

python train_model.py --config_path pi0_datawhale_eai.yaml

部署效果:

训练日志:

配置示例:

dataset:
  repo_id: datawhale_eai_pnp_language
  root: ./demo_data_language
policy:
  type : pi0
  chunk_size: 5
  n_action_steps: 5

save_checkpoint: true
output_dir: ./ckpt/pi0_datawhale_eai
batch_size: 16
job_name : pi0_datawhale_eai
resume: false
seed : 42
num_workers: 8
steps: 20_000
eval_freq: -1
log_freq: 50
save_checkpoint: true
save_freq: 10_000
use_policy_training_preset: true

wandb:
  enable: true
  project: pi0_datawhale_eai
  entity: <your_wandb_entity>
  disable_artifact: true

8. 训练与部署 SmolVLA

训练命令:

python train_model.py --config_path smolvla_datawhale_eai.yaml

部署效果:

训练日志:

配置示例:

dataset:
  repo_id: datawhale_eai_pnp_language
  root: ./demo_data_language
policy:
  type : smolvla
  chunk_size: 5
  n_action_steps: 5
  device: cuda

save_checkpoint: true
output_dir: ./ckpt/smolvla_datawhale_eai
batch_size: 16
job_name : smolvla_datawhale_eai
resume: false
seed : 42
num_workers: 8
steps: 20_000
eval_freq: -1
log_freq: 50
save_checkpoint: true
save_freq: 10_000
use_policy_training_preset: true

wandb:
  enable: true
  project: smolvla_datawhale_eai
  entity: <your_wandb_entity>
  disable_artifact: true

后续,我们还会为大家补充展示多条数据训练ACT和diffusion训练抓取实验。敬请期待。

致谢