LCDP-Sim 是一个端到端视觉-语言-动作 (VLA) 系统,利用扩散策略 (Diffusion Policy) 通过自然语言指令控制机械臂。
- 端到端学习: RGB 图像 + 语言指令 -> 动作序列
- 扩散策略: 基于 DDPM/DDIM 的动作生成
- 语言条件: 集成 CLIP 文本编码器
- 动作分块: 预测未来 16 步轨迹 (Action Chunking)
LCDP-Sim/
├── configs/ # 配置文件 (环境, 训练)
├── lcdp/ # 核心代码包
│ ├── models/ # 模型定义 (Diffusion, U-Net, Encoders)
│ ├── data/ # 数据处理 (Dataset, Loader)
│ └── envs/ # 环境包装器
├── scripts/ # 可执行脚本
│ ├── train.py # 训练入口
│ ├── eval.py # 评估与可视化
│ ├── collect_data.py # 仿真数据采集
│ ├── convert_real_data.py # 真实数据转换工具
│ └── visualize.py # 数据可视化工具
├── checkpoints/ # 模型权重
├── data/ # 数据集 (.zarr)
├── logs/ # 训练日志
├── videos/ # 评估视频
└── requirements.txt # 依赖包
# 创建环境
conda create -n lcdp python=3.8 -y
conda activate lcdp
# 安装依赖
pip install -r requirements.txt
pip install -e .方式 A: 使用现有数据集 (推荐) 自动下载并处理 ManiSkill2 官方演示数据:
python scripts/prepare_maniskill_data.py --env PickCube-v0 --output data/pick_cube_demos.zarr方式 B: 仿真数据采集 使用脚本专家在本地生成数据:
python scripts/collect_data.py --env PickCube-v0 --num-episodes 100 --output data/pick_cube_demos.zarr方式 C: 真实数据 将真实数据整理为图片和动作序列,使用转换脚本:
python scripts/convert_real_data.py --input_dir /path/to/raw_data --output data/real_robot_data.zarrpython scripts/train.py --config configs/train_config.yaml --data data/pick_cube_demos.zarr --output checkpoints/model_v1注意: 8GB 显存用户建议在 configs/train_config.yaml 中将 batch_size 调小至 16 或 8。
仿真评估 (保存视频):
python scripts/eval.py --checkpoint checkpoints/model_v1/best.pth --env PickCube-v0 --save-videos实时可视化 (Human Render):
python scripts/eval.py --checkpoint checkpoints/model_v1/best.pth --env PickCube-v0 --renderMIT License