VR 采集(Pico)¶
🎮 本页对应 OpenArmX + Pico4 Ultra 的 LeRobot 数据采集流程。
🧩 硬件清单¶
- 1 台 OpenArmX 双臂机器人
- 2 个 RealSense D405(左右手)
- 1 个 RealSense D435(头部)
- 1 台 遥操设备:Pico4 Ultra(VR 遥操作)
- 1 个 usb 3.0 高速拓展坞(至少3个usb接口)
- 1 个 千兆路由器
- 2 条 千兆网线
- 2 台 电脑:一台用来数据采集(我们配备的白色小工控机,需要的 usb 带宽比较高,数据发送端),一台用来训练和推理(高性能GPU,数据接收端) 如果您的工控机性能足够,可只用一台主机进行数据采集、训练和推理的所有任务!!采用分布式数据采集是因为部分主机的 usb 带宽不够不能使用三个相机
⚠️ 采集前安全检查¶
- 启动双臂前,确认 CAN 板已启动(蓝灯)
- 轻晃机械臂,确认电机有阻力(使能成功)
- 远离易燃、易爆、腐蚀性危险物
- 采集过程中与机器人保持安全距离
采集端(白色工控机)¶
1. 终端 1:启动双臂机器人¶
cd ~/openarmx_ws/
source install/setup.bash
ros2 launch openarm_bringup openarm.bimanual.launch.py \
control_mode:=mit \
robot_controller:=forward_position_controller \
use_fake_hardware:=false
2. 终端 2:启动 Pico 桥接¶
cd ~/openarmx_ws/
source install/setup.bash
ros2 run openarmx_teleop_bridge_vr_pico openarmx_teleop_bridge_vr_pico_node
3. 终端 3:启动 IK 逆解¶
cd ~/openarmx_ws/
source install/setup.bash
ros2 launch openarmx_teleop_vr_pico teleop_vr_pico.launch.py
4. 终端 4:启动相机发布¶
cd ~/openarmx_ws/
source install/setup.bash
ros2 launch openarmx_lerobot camera_publisher.launch.py \
width:=424 height:=240 fps:=15 \
cam_left_serial:=序列号 cam_left_type:=型号 \
cam_right_serial:=序列号 cam_right_type:=型号 \
cam_head_serial:=序列号 cam_head_type:=型号
示例:
ros2 launch openarmx_lerobot camera_publisher.launch.py \
width:=424 height:=240 fps:=15 \
cam_left_serial:=218622270388 cam_left_type:=D405 \
cam_right_serial:=218622274446 cam_right_type:=D405 \
cam_head_serial:=335522070220 cam_head_type:=D435
接收端(训练和推理的高性能主机)¶
5. 终端 5:启动 LeRobot 采集¶
lerobot-env
HF_HUB_OFFLINE=1 lerobot-record \
--robot.type=openarmx_follower_ros2 \
--teleop.type=openarmx_leader_ros2 \
--dataset.repo_id=local/你的数据名称 \
--dataset.single_task="你执行的任务名称" \
--dataset.num_episodes=采集的总组数 \
--dataset.episode_time_s=每组时长秒数 \
--dataset.reset_time_s=组间重置时长秒数 \
--dataset.push_to_hub=false \
--display_data=true
实例:
lerobot-env
HF_HUB_OFFLINE=1 lerobot-record \
--robot.type=openarmx_follower_ros2 \
--teleop.type=openarmx_leader_ros2 \
--dataset.repo_id=local/openarmx_dataset \
--dataset.single_task="Teleop OpenArmX robot" \
--dataset.num_episodes=100 \
--dataset.episode_time_s=60 \
--dataset.reset_time_s=5 \
--dataset.push_to_hub=false \
--display_data=true \
--dataset.vcodec=h264
# 编码器名称['h264', 'hevc', 'libsvtav1']
建议:采集不少于 50 组,效果更好。
默认保存路径:~/.cache/huggingface/lerobot/local
⌨️ 采集快捷键¶
→:结束并保存当前 episode←:丢弃当前 episodeEsc:停止录制并退出
🔍 常用参数速查¶
--dataset.repo_id:数据集名(如local/openarmx_dataset)--dataset.single_task:任务描述--dataset.num_episodes:总回合数--dataset.episode_time_s:每回合时长--dataset.reset_time_s:重置时长--display_data:可视化调试开关--dataset.root:自定义数据保存目录
🧠 经验建议¶
- 先小批量(10~20 组)验证链路,再长时采集
- 保持相机曝光和机位一致,减少训练分布漂移
- 每个任务单独建
repo_id,便于后续训练与复现
