Dexcap复现代码运行逻辑全流程(一)——部署全流程代码逻辑梳理

Dexcap开源了数据采集、数据处理、数据集构建与策略训练四个部分

DexCap: Scalable and Portable Mocap Data Collection System for Dexterous Manipulation" (PaperWebsite) by Wang et al. at The Movement Lab and Stanford Vision and Learning Lab.

目录

1 安装

2 数据采集

3 数据处理

4 构建训练数据集

5 策略训练

6 致谢


1 安装

1. 在mini-PC (NUC) 上安装数据收集环境

此安装基于 Windows 平台。安装 Rokoko 动作捕捉手套软件和 Anaconda 后,创建 conda 环境:

cd DexCap/install
conda env create -n mocap -f env_nuc_windows.yml

2. 在 Ubuntu 工作站上安装数据处理和训练环境

工作站可以是无显示界面的服务器,用于构建数据集和训练:

conda create -n dexcap python=3.8
conda activate dexcap
cd DexCap/install
pip install -r env_ws_requirements.txt
cd STEP3_train_policy
pip install -e .

2 数据采集

1. 设置 Rokoko Studio 软件

确保 Rokoko Studio 可以检测到动作捕捉手套,选择“Livestreaming”功能,并使用以下设置:

Include connection: True
Forward IP: 192.168.0.200
Port: 14551
Data format: Json

NUC 必须连接便携式 Wi-Fi 路由器,且 IP 地址设置为 192.168.0.200(可修改)。开启数据流后,打开 conda 终端运行以下脚本捕获手套的原始数据:

conda activate mocap
cd DexCap/STEP1_collect_data
python redis_glove_server.py

2. 启动数据采集

在另一个终端中运行以下脚本开始数据采集:

python data_recording.py -s --store_hand -o ./save_data_scenario_1

数据将首先存储在内存中,完成当前录制后使用 Ctrl+C 停止,程序会自动将数据多线程保存到本地 SSD。数据结构如下:

save_data_scenario_1
├── frame_0
│   ├── color_image.jpg           # Chest camera RGB image
│   ├── depth_image.png           # Chest camera depth image
│   ├── pose.txt                  # Chest camera 6-DoF pose in world frame
│   ├── pose_2.txt                # Left hand 6-DoF pose in world frame
│   ├── pose_3.txt                # Right hand 6_DoF pose in world frame
│   ├── left_hand_joint.txt       # Left hand joint positions (3D) in the palm frame
│   └── right_hand_joint.txt      # Right hand joint positions (3D) in the palm frame
├── frame_1
└── ...

3 数据处理

首先,可视化收集的数据:

cd DexCap/STEP1_collect_data
python replay_human_traj_vis.py --directory save_data_scenario_1

此脚本会显示基于 Open3D 的点云可视化,可以看到捕获的手部动作,如下所示:

(可选)此外还提供了一个用于纠正 SLAM 初始漂移的接口。运行以下脚本,并使用数字键来纠正漂移,校正将应用于整个视频:

python replay_human_traj_vis.py --directory save_data_scenario_1 --calib
python calculate_offset_vis_calib.py --directory save_data_scenario_1

下一步,将点云和 mocap 数据转换到机器人操作空间。运行以下脚本,并使用数字键调整数据的世界坐标系,使其与机器人工作台坐标系对齐。此过程通常 <10 秒,且每个数据集只需要完成一次:

python transform_to_robot_table.py --directory save_data_scenario_1

最后,将整个数据 episode 分割为多个任务示例(task demos),运行:

python demo_clipping_3d.py --directory save_data_scenario_1

可以从 Link 中下载 raw dataset,并运行 replay_human_traj_vis.py 来可视化数据

4 构建训练数据集

在采集和处理 raw data 后,将数据转移到工作站,使用以下脚本,生成符合 robomimic 格式的 HDF5 数据集:

python demo_create_hdf5.py

此处理将使用逆运动学(基于 PyBullet)将机器人 LEAPHand 的指尖与 mocap 数据中的人类指尖进行配准。当人手在相机视图中可见时,使用正运动学构建的机器人手的点云网格将添加到点云观测中,如以下视频所示。多余的点云(背景、桌面)也将被删除

可以从  Link 中下载处理好的数据集

5 策略训练

生成 HDF5 数据集后,运行以下脚本和配置文件进行策略训练:

cd DexCap/STEP3_train_policy/robomimic
python scripts/train.py --config training_config/[NAME_OF_CONFIG].json

默认的训练配置将训练一个基于点云的扩散策略(Diffusion Policy),该策略以胸前摄像头的点云观测数据(已转换到固定的世界坐标系)作为输入,并生成一系列动作序列(共20步),用于控制机器人双手和手臂(总计46维)。有关算法的更多细节可以参考论文

6 致谢

策略训练基于 robomimicDiffusion Policy

机器人手臂控制基于 Deoxys

LEAPHAND 控制基于 LEAP_Hand_API

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值