R1 Pro VR遥操作使用教程 ROS2 Humble
1. 启动前准备
1.1 硬件准备
物品 | 数量 | 备注 |
---|---|---|
Meta Quest 3 VR设备 | 1 | 包含1个头戴设备、2个手持遥控器和Type-C连接线。 |
R1 Pro Base | 1 | 机器人本体 |
R1 Pro 遥控器 | 1 | 控制 R1 Pro 机器人 |
R1 Pro 上位机(双系统,非虚拟机) | 1 | 系统:Ubuntu22.04 |
局域网 | 1 | 用于连接VR设备和 R1 Pro Base |
1.2 软件准备
查看R1 Pro软件版本更新日志,获取最新的SDK版本。整机ATC SDK版本中包含所有产品软件资源。
同时,下载VR设备配置SDK: - 百度云:https://pan.baidu.com/s/1SCpvwFIjvAV7EtchW-cssA?pwd=vrvr
- Meta 相关安装包.zip:用于新设备激活。
- platform-tools-latest-windows.zip:adb文件,用于安装VR头显内部的数据采集APP。
- vr_teleop-0.1.4-20250620.apk:VR头显内部的数据采集APP。
2. VR 设备配置
如您的VR设备由星海图配套提供,可以跳过第2.1节~第2.5节,直接查看第2.6节。
2.1 VR设备开发者模式激活
请参考 Meta Quest 3 开发者模式使用说明 完成激活。
2.2 VR设备SDK安装
- 解压ADB文件:下载并解压
platform-tools-latest-windows.zip
文件。 - 连接VR设备:使用Type-C数据线将VR设备连接到电脑。
- 如已安装过旧版apk,请先删除。
- 授权USB连接:在VR设备中,确认并允许USB设备连接(如图所示)。
- 进入ADB解压路径:打开文件资源管理器,进入解压后的ADB工具文件夹路径。
- 拷贝APK文件:将
vr_teleop-0.1.4-20250620.apk
文件拷贝到该路径下。 - 安装APK:在该路径下打开命令提示符(CMD),执行以下命令安装应用:
如果命令执行后显示 Success,则表示安装成功。
2.3 VR 设备配置
在 Meta Quest 3 的初始界面下,连接与R1 Pro 相同的WiFi网络。
注意:提示网络受限是正常现象,因为该网络无法访问外网。
2.4 关闭 Quest 边界系统
- 打开 设置 > 高级 > 开发者。
- 关闭 实际空间功能。
注意: - 关闭后,系统不再提示设置边界,采集过程中即使位移或离开原地,也不会打断流程。 - 主菜单页面将无法启用透视视图(Passthrough)。 - 关闭边界后请务必确保操作环境安全,避免发生碰撞风险。
2.5 避免系统休眠
- 打开菜单 → 设置(Settings)
- 点击 常规 > 电源 > 显示屏已关闭
- 将息屏时间设置为 4 小时
注意:关闭系统休眠是为了实现「可摘下佩戴」方案,使用结束后请手动点击关闭Meta Quest3S 电源,避免电量耗尽。
注意:请尽量维持 VR 头显设备和手柄的电量在充足的状态,低电量会影响 VR 手柄位姿发送的帧率,造成遥操卡顿。
2.6 获取VR设备的IP地址
在VR设备内,点击已连接的WiFi,打开网络页面后向下划找到并记录IP地址,如192.168.5.24。
2.7 数据采集时佩戴方式
为避免长时间佩戴头显带来的不适,我们提供「可摘下佩戴」方案。
在使用前,请先完成「避免系统休眠」和「关闭边界系统」设置(最新发售机器已预先配置,如未配置请参考上文说明)。
- 移除头显顶部固定条带(Top Strap)与头显顶部的连接,并摘下面部支撑连接件(Facial Interface),以方便后续挂在颈部灵活调整。
- 将头显挂于颈部,调整至正面朝前,显示面垂直于地面(如图所示)。
此挂载方式可确保手柄始终处于头显摄像头的可视角范围内(约 100° 水平视场角),避免操作中超出追踪范围。该佩戴方式不仅保证手柄追踪稳定,还能让长时间的数据采集操作更舒适和轻松。
⚠️ 注意:请在安全、开阔的环境中使用,确保操作时不会发生碰撞。
3. R1 Pro 配置
-
下载并拷贝SDK文件(例如:
{r1pro_vr_teleop_sdk_name}.tar.gz
),执行以下命令拷贝SDK到 R1 Pro 上。 -
登陆 R1 Pro
-
解压SDK到 R1 Pro
-
安装额外依赖
-
配置设备序列号及设备名称
# 获取 R1Pro 序列号 (发货清单查询,如找不到可以联系星海图客服) # 如:S2RL100P25110 sudo mkdir -p /opt/galaxea sudo chown -R nvidia:nvidia /opt/galaxea mkdir -p /opt/galaxea/body echo "S2RL100P25110" | tee /opt/galaxea/body/RSN > /dev/null echo "S2RL100P25110" | tee /opt/galaxea/body/RSN_REAL > /dev/null echo "R1PRO" | tee /opt/galaxea/body/ROBOT_NAME > /dev/null # 检验是否写入成功 cat /opt/galaxea/body/RSN cat /opt/galaxea/body/RSN_REAL cat /opt/galaxea/body/ROBOT_NAME
-
配置数据采集模块
数据录制和可视化平台 EDP平台免费试用 - 请在完成后查看First Data - EDP 入门手册。
升级完成后,将 R1 Pro 关机并重新启动。重启后,软件包配置即完成,VR遥操作功能即可使用。
升级完成后,将机器人下电并重新启动。重启后,软件包配置完成,VR遥操作功能即可使用。
4. 遥操作启动
注意:每次启动时都需要完成并确认本章节的所有操作。
3.1 R1 Pro 本体程序启动
-
登录R1 Pro
-
进入软件包启动目录
-
启动程序
4.2 VR设备程序启动
注意:请佩戴好VR设备并手持两个遥控器,开始以下操作。
4.2.1. 连接WiFi
确认VR设备已成功连接到与 R1 Pro 本体相同的WiFi网络。
4.2.2. 启动GalaxeaVR APP
-
打开GalaxeaVR应用:
点击右下角的正方体图标启动GalaxeaVR应用。
-
输入R1 Pro的IP地址:
进入GalaxeaVR应用后,将VR手柄发射的射线对准绿色的IP输入框。
等待绿色输入框轻微变色后,用右控制器的T键(食指键)点击输入框(光标位置需要偏下一些)。
键盘弹出后,输入机器人端的IP地址(即 R1 Pro的IP地址)。
设置好IP后点击Start按钮开始。
-
操控VR设备:
双手立刻自然下垂放在身体两侧,等待3秒后,单击左右遥控器的G键解除暂停,开始操控。
注意:此时机器人会同步您的操作,请注意安全,先进行小幅移动,确保周围没有障碍物。
使用以下步骤完成遥控器简易操作:
- 停止操作:长按右遥控器 B 键 2 秒以上,停止VR遥操作。
- 控制夹爪:手的移动会控制机器人手臂的移动。左遥控器的 T 键和右遥控器的 T 键分别控制左右手的夹爪闭合。
- 暂停右臂:短按右遥控器 G 键一下,右臂会停在当前的位置;再按一下 G 键解除暂停。
- 暂停左臂:短按左遥控器 G 键一下,左臂会停在当前的位置;再按一下 G 键解除暂停。
详细操作说明请参考第6章节:遥操作控制说明。
5. 遥操作控制说明
请在确保人员与物品安全的情况下,于开阔场地练习本产品的使用。
建议待熟悉本产品的使用后,再开始正式数据采集。
5.1 遥控器使用说明
5.1.1 R1 Pro 航空遥控器
遥控器使用说明如下:
注意:在进行任何操作之前,请确认所有拨杆开关(SWA/SWB/SWC/SWD)都拨至最上方档位,这样能使 R1 Pro 处于停止状态,防止其意外运行。
在不同功能下,各拨杆开关切换到不同位置的操作说明如下:
5.1.2 VR手持遥控器
5.2 VR设备APP显示按键
5.3 模式切换
遥操作启动后,默认模式为双臂操控模式。用户可以通过VR设备遥控器切换不同的操作模式。
模式 | 切换方式 | 备注 |
---|---|---|
双臂操控模式 (BIMANUAL) | 左右两个摇杆同时向下长按1秒 | 默认模式,如需控制底盘,需要开启 R1 Pro 遥控器,并将 SWA,SWB,SWC,SWD全部拨至上方。 |
躯干模式 (Torso) | 右摇杆向下长按1秒 | - |
复位模式 (Reset) | 左摇杆向下长按1秒 | - |
5.3.1 双臂操控模式
功能 | 描述 | 备注 |
---|---|---|
双手跟随 | R1 Pro 机械臂末端位置会跟随VR手持遥控器的移动而移动。 | - |
夹爪夹取 | VR右遥控器的 T 键控制右夹爪开合VR左遥控器的 T 键控制左夹爪开合 | - |
手臂暂停 | VR右遥控器的 G 键控制右臂的暂停VR左遥控器的 G 键控制左臂的暂停按一下暂停,再按一下解除暂停 | 解除暂停时,要确保手持遥控器的位置与点击暂停时的位置一致,否则机械臂可能会出现较大幅度的突然移动。 |
底盘前进/后退 | VR左遥控器摇杆向前/向后 | - |
底盘平移 | VR左遥控器摇杆向左/向右 | - |
底盘自旋 | VR右遥控器摇杆向左/向右 | - |
5.3.2 躯干模式
功能 | 描述 | 备注 |
---|---|---|
腰部左右旋转(关节1) | VR左遥控器摇杆向左/向右 | |
腰部前后俯仰(关节2) | VR左遥控器摇杆向前/向后 | |
躯干上下升降(关节3) | VR右遥控器摇杆向前/向后 | |
躯干前后俯仰(关节4) | VR右遥控器 T/G 键 |
5.3.3 复位模式
功能 | 描述 | 备注 |
---|---|---|
复位双臂到初始位置 | VR左遥控器 T + G 键 VR右遥控器 T + G 键 四个按键一起按下,会 reset 机器人双臂位置到初始启动位置 |
- |
# 如需修改初始启动位置,请修改launch文件内的关节位置
vim ~/vr_workspace/install/teleoperation_ros2/share/teleoperation_ros2/launch/vr_teleoperation.launch.py
# 修改如下初始启动关节位置
{'vr_initializer_left_target_joint_states_r1pro': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]},
{'vr_initializer_right_target_joint_states_r1pro': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
# 修改如下来改变夹爪的量程
'gripper_openning_threshold', default value='80.0' #最大值:100.0
'gripper_closing_threshold', default value='0.0' #最小值:0.0
5.4 连接腕部相机
5.4.1 连接前准备
请在连接腕部相机前,准备好以下物品:
物品 | 数量 | 备注 |
---|---|---|
腕部相机 | 2 | - |
腕部相机支架 | 2 | 用于固定相机至机器人腕部 |
USB-A转USB-C转接线 | 2 | 用于连接机器人背部的USB-A外设接口和腕部相机的USB-C接口 转接线的长度需≥1.5m |
5.4.2 连接相机线束
- 安装腕部相机支架至机器人腕部,并固定相机。
- 使用USB-A转USB-C转接线,连接机器人背部的任一USB-A外设接口和腕部相机的USB-C接口。
5.4.3 配置相机
注意:为避免在配置相机过程中混淆两个相机的序列号,建议您先连接一个相机进行配置,然后再连接第二个相机进行配置。
- 进入腕部相机配置目录:
-
(以先连接左腕相机为例)连接左腕相机线束后,执行以下命令查看并记录该相机的序列号
Serial Number
: -
连接右腕相机线束后,再次执行命令查看并记录该相机的序列号
Serial Number
:注意:序列号的排列先后与相机连接的顺序无关,因此建议您先连接一个相机并记录其序列号后,再连接第二个相机记录其序列号。
-
使用vim工具修改launch文件中的相机序列号:
在对应名称的位置填入此前记录的两个相机序列号。 -
重新启动程序:
- 检查相机帧率:
若出现两个摄像头的数值,且数值均在15hz左右即为连接成功。
cd /home/nvidia/vr_workspace/install/ source setup.bash ros2 topic hz /hdas/camera_wrist_right/color/image_raw/compressed ros2 topic hz /hdas/camera_wrist_left/color/image_raw/compressed
注意:每台机器人的腕部相机仅需配置一次,后续可按照5.1的方式,在启动机器人时直接启动相机。
6. 数据采集流程
数据录制和可视化平台 EDP平台免费试用 - 请在完成后查看First Data - EDP 入门手册。
6.1 数据格式介绍
数据采集的文件格式为ros2 bag,文件后缀为*.mcap
。
6.2 数据获取
默认存储路径:/home/nvidia/GalaxeaDataset/{data}/
date 为当天日期,格式如下:20250307
6.3 数据录制配置文件介绍
默认数据录制使用的配置文件位于:
配置文件说明:配置文件用于描述此次采集任务的信息,用户可以根据需求自行修改。
{
"project_info": {
"project_name": "sop_test"
},
"task_info": {
"task_name": "sop_test_data_collection",
"task_owner": "hengyi.fei"
},
"operation_info": {
"teleoperation_type": "VR",
"location": "suzhou",
"operator_name": "jiahao.wu"
}
}
6.4 数据落盘文件介绍
数据以 文件夹 + json
格式保存,文件一一对应。例如:
# 例如以下一个文件夹和一个json文件代表了一个数据包
# 文件夹里包含了 .mcap 数据文件和 meta 信息
S2R12000P18245_20240213173320125_RAW
S2R12000P18245_20240213173320125_RAW.json
# 格式为 robot_serial_number+timestamp+RAW
# robot_serial_number:机器人序列号,位于 /opt/galaxea/body/RSN
# timestamp:数据采集的时间戳精确到毫秒。
# RAW:代表数据采集原始落盘数据
6.5 开启录制
通过VR左遥控器进行数据录制操作:
功能 | 操作 | 描述 |
---|---|---|
开启录制 | 左手柄 X 键点击一下 | 开始数据录制 |
停止录制 | 左手柄 Y 键点击一下 | 停止数据录制 |
删除当前录制 | 左手柄 X 键点击一下 | 已经有录制在进行中,再点击一下X键,则结束并删除当前录制,不会落盘。 |