iDP3复现代码运行逻辑全流程(一)——部署全流程代码逻辑梳理(Learning)
Improved 3D Diffusion Policy (iDP3) 是一种新的基于3D视觉的运动策略,使用了以自我为中心的3D视觉表征,实现了人形机器人在不同场景中自主执行技能
代码开源了两部分:Learning & Deployment of iDP3 和 Humanoid Teleoperation
本文详细分析 iDP3 的训练和部署流程
目录
1. 前言
2. 安装
2.1. 训练机
2.2. 部署机
3. 使用
3.1 训练
3.2 部署
3.3 可视化
1. 前言
训练方面,在Google Drive开源了训练数据示例,可以使用自己采集的数据集训练模型
此外:
训练机:使用一台带有 Nvidia RTX 4090 (24G内存)的本地计算机
部署机:使用傅立叶 GR1 中板载计算机的 cpu
使用RealSense L515作为深度相机。Note:RealSense D435提供非常不精确的深度数据,不建议用于训练3D策略
iDP3 是适用于任何机器人的通用3D视觉运动策略。使用 iDP3 可以不做相机校准和点云分割
2. 安装
2.1. 训练机
安装conda环境和库
conda remove -n idp3 --all
conda create -n idp3 python=3.8
conda activate idp3# for cuda >= 12.1
pip3 install torch==2.1.0 torchvision --index-url https://download.pytorch.org/whl/cu121
# else,
# just install the torch version that matches your cuda version# install my visualizer
cd third_party
cd visualizer && pip install -e . && cd ..
pip install kaleido plotly open3d tyro termcolor h5py
cd ..# install 3d diffusion policy
pip install --no-cache-dir wandb ipdb gpustat visdom notebook mediapy torch_geometric natsort scikit-video easydict pandas moviepy imageio imageio-ffmpeg termcolor av open3d dm_control dill==0.3.5.1 hydra-core==1.2.0 einops==0.4.1 diffusers==0.11.1 zarr==2.12.0 numba==0.56.4 pygame==2.1.2 shapely==1.8.4 tensorboard==2.10.1 tensorboardx==2.5.1 absl-py==0.13.0 pyparsing==2.4.7 jupyterlab==3.0.14 scikit-image yapf==0.31.0 opencv-python==4.5.3.56 psutil av matplotlib setuptools==59.5.0cd Improved-3D-Diffusion-Policy
pip install -e .
cd ..# install for diffusion policy if you want to use image-based policy
pip install timm==0.9.7# install for r3m if you want to use image-based policy
cd third_party/r3m
pip install -e .
cd ../..
2.2. 部署机
安装 realsense 库
# first, install realsense driver
# check this version for RealSenseL515: https://github.com/IntelRealSense/librealsense/releases/tag/v2.54.2# also install python api
pip install pyrealsense2==2.54.2.5684
3. 使用
在 Google Drive 中提供了一套训练数据样例,从而可以尝试使用样例训练模型。下载并解压缩,然后在 scripts/train_policy.sh 中指定数据集路径
例如,将数据集放在 /home/ze/projects/Improved-3D-Diffusion-Policy/training_data_example 中,并在 scripts/train_policy.sh 中设置 dataset_path=/home/ze/projects/Improved-3D-Diffusion-Policy/training_data_example
然后训练策略并部署
3.1 训练
训练策略
# 3d policy
bash scripts/train_policy.sh idp3 gr1_dex-3d 0913_example# 2d policy
bash scripts/train_policy.sh dp_224x224_r3m gr1_dex-image 0913_example
3.2 部署
训练完策略后,使用类似指令部署策略
# 3d policy
bash scripts/deploy_policy.sh idp3 gr1_dex-3d 0913_example# 2d policy
bash scripts/deploy_policy.sh dp_224x224_r3m gr1_dex-image 0913_example
Note:在没有机器人的情况下可能无法运行部署代码(不同的机器人有不同的API)
所提供的代码更像是展示如何部署策略的示例
可以修改代码以适应自己的机器人(任何带摄像头的机器人都可以)
3.3 可视化
可以可视化训练数据样例,运行(记得设置数据集路径):
bash scripts/vis_dataset.sh
你可以指定 vis_cloud=1 来渲染论文中的点云