VR使用开发案例
说明
- 本案例使用VR设备为Quest3,可以通过VR手柄实现机器人手臂和灵巧手的遥操以及机器人的基本运动,可用于具身智能的数据采集。
QUEST 3 设备
手柄
Quest3 相关使用
介绍
在使用遥操作的时候我们需要用到 Quest3 的设备来捕捉用户的动作控制机器人来搜集数据。在这个文档中我们会介绍在使用 Quest3 的过程中会遇到的几个问题或者需要用到的操作
安装 SideQuest
如果无法下载,可以使用我们提供的源来安装。我们提供的地址是:SideQuest下载地址,请注意这个源不会和官方的版本同步更新,目前同步的日期是 2024/11/22。请大家如果在发现版本距离久的时候自行下载软件。
基本使用请参考官方视频,或者 Bilili 的视频: SideQuest的基本使用
如何在 Quest3 里面授权的视频: Quest3 允许授权
如何更新 Quest3 的系统固件
目前已知的是 V68 的系统固件版本会存在卡顿和遥控器定位的问题。大家的设备如果是 V68 需要升级系统固件。
升级系统固件需要把 Quest3 连接在一个可以访问 meta 服务器网络的环境下。
具体升级的方法请参考: Quest3 更新系统固件
如何启动已安装的程序
手柄: 如何启动程序-手柄
手势识别: 如何启动程序-手势
如何导出已录制的视频
在我们技术支持的时候工程师可能需要大家录制一段在软件里面的操作画面然后发送给我们。
录制视频的方法请参考:Quest3 录制视频
导出视频的方法请参考: Quest3 录屏分享
如何去除空间限制
默认 Quest3 会需要用户建立一个虚拟空间,当你操作 VR 的时候走出这个空间就会自动暂停我们的程序提示回到虚拟空间上。在展馆之类的场景的时候就有限制。如果想要去掉这个限制,可以参考以下视频。注意:按照视频中说明操作之后主界面的 paththrough 会不起作用,但是进入程序里面是可以透视的,不影响使用。
参考视频:Quest3 突破空间限制
如何实时查看到 Quest3 投屏的屏幕
先完成授权的步骤,请参考前面: <如何在 Quest3 里面授权的视频>
根据自己的系统安装
- scrcpy-linux-x86_64-v3.1.tar.gz
- scrcpy-macos-aarch64-v3.1.tar.gz
- scrcpy-macos-x86_64-v3.1.tar.gz
- scrcpy-win64-v3.1.zip
各自解压之后在对应的目录下启动终端,确保当前电脑已经通过 USB 连接 Quest3, 并且 Quest3 已经开机
执行对应的 scrcpy 指令
示例视频
QUEST3 VR控制
准备
设备准备:
- QUEST 3 头显
- KUAVO_HAND_TRACK VR 应用(请联系乐聚工作人员安装)
网络准备:
- 确保 VR 设备和机器人连接同一 WiFi
使用
若您的机器末端执行器为夹爪
检查下位机本地的
<kuavo-ros-opensource>/src/kuavo_assets/config/kuavo_v$ROBOT_VERSION/kuavo.json这个文件- 找到
"EndEffectorType": ["qiangnao", "qiangnao"],这一行 - 将其修改为
"EndEffectorType": ["lejuclaw", "lejuclaw"],(若已为"lejuclaw"则不需要修改)
- 找到
检查下位机本地的
<kuavo-ros-opensource>/src/manipulation_nodes/noitom_hi5_hand_udp_python/launch/launch_quest3_ik.launch这个文件- 找到
<arg name="ee_type" default="qiangnao"/>这一行 - 将其修改为
<arg name="ee_type" default="lejuclaw"/>(若已为"lejuclaw"则不需要修改)
- 找到
检查下位机本地的
<kuavo-ros-opensource>/src/humanoid-control/humanoid_controllers/launch/load_kuavo_real_with_vr.launch这个文件- 找到
<arg name="ee_type" default="qiangnao"/>这一行 - 将其修改为
<arg name="ee_type" default="lejuclaw"/>(若已为"lejuclaw"则不需要修改)
- 找到
注意:该配置在更新代码仓库后会失效, 需要重新进行检查和配置
正常启动机器人完成站立
启动VR节点
- 运行
旧版镜像如果没有包含VR相关依赖,需要手动安装:
cd src/manipulation_nodes/noitom_hi5_hand_udp_python && pip install -r requirements.txt && cd -
source devel/setup.bash
# VR先和机器人连到同一局域网, VR 会广播 自身IP 到局域网中
roslaunch noitom_hi5_hand_udp_python launch_quest3_ik.launch如果手动输入VR的IP地址, 在启动命令后追加参数
ip_address:=192.168.3.32(替换成VR的实际IP地址)现在 VR 头盔中的 APP 会自动广播自身IP,启动节点不需要手动输入 ip,但是假如 VR 节点程序关掉了,你需要在 VR 头盔中重新打开 VR 程序,才会重新广播IP
- 运行
如果希望同时映射躯干的运动(上下蹲和弯腰),可以增加选项
control_torso:=1,使用前务必在站立状态下长按VR右手柄的meta键以标定躯干高度。注意:不能长时间执行蹲下和弯腰动作,且在执行躯干运动时幅度不宜过大
启动程序之后,将手柄放置视野外,会触发启动VR中的手势识别功能,手臂跟随模式下可以控制机器人手臂和手指跟随运动,这时要注意避免视角中出现多个检测目标(多双手),手势检测效果如下图:
默认控制双手,如果需要控制单手,可以增加选项
ctrl_arm_idx:=0, 其中0,1,2分别对应左手,右手,双手
开启手势识别,可以增加选项
predict_gesture:=true,利用神经网络预测手势,灵巧手会直接根据手势预测结果进行运动,目前支持的手势有(只有当预测结果同时满足:高置信度(>80%)明显优于第二预测(差值>0.3)预测分布集中(熵值<0.8)才会返回具体的手势类别。否则会认为预测失败,灵巧手会采用原来的方式控制)
- 参考灵巧手手势使用案例
- 同时启动VR节点和机器人
- 运行
sudo su
source devel/setup.bash
roslaunch humanoid_controllers load_kuavo_real_with_vr.launch
QUEST3 视频流
本程序可以将上位机的摄像头画面传输到 VR 设备中显示。具体设置步骤如下:
- 在上位机(带有摄像头的设备)上安装依赖:
- 需要克隆下位机kuavo-ros-opensource仓库,然后配置依赖:
cd <kuavo-ros-opensource>
sudo apt install v4l-utils
sudo su
python3 -m pip install aiortc==1.9.0
catkin build noitom_hi5_hand_udp_python
- 启动视频流:
- 安装依赖:
sudo apt install libv4l-dev
- 在上位机运行:
cd <kuavo_ros_application>/
source devel/setup.bash
# 打开摄像头
# 旧版4代, 4Pro
roslaunch dynamic_biped load_robot_head.launch
# 标准版, 进阶版, 展厅版, 展厅算力版
roslaunch dynamic_biped load_robot_head.launch use_orbbec:=true
# Max版
roslaunch dynamic_biped load_robot_head.launch use_orbbec:=true enable_wrist_camera:=true - 在下位机运行:
# 下面程序已经启动了VR控制程序,请勿重复遥控器启动
roslaunch noitom_hi5_hand_udp_python launch_quest3_ik_videostream_robot_camera.launch # ip_adress:=填入VR IP地址
若发现VR设备显示的视频流数据画面翻转,并且机器人摄像头为奥比中光摄像头,可以按下面操作解决
前置准备
准备USB数据线
用于连接电脑和Quest 3设备安装ADB工具(如已安装可跳过)
- Windows: 下载 scrcpy-win64-v3.3.1.zip 并解压,adb.exe位于解压目录中
- Linux: 下载 scrcpy-linux-x86_64-v3.3.1.tar.gz 并解压
tar -xzf scrcpy-linux-x86_64-v3.3.1.tar.gz
cd scrcpy-linux-x86_64-v3.3.1
安装步骤
步骤1:连接设备并授权
- 用USB线连接Quest 3和电脑
- 戴上VR头显,会看到USB调试授权提示,选择「始终允许」并确认
步骤2:将APK文件放到adb工具目录
- Windows: 将下载的APK文件复制到解压后的scrcpy目录(与adb.exe同目录)
- Linux:
cp /path/to/leju_kuavo_hand-0.0.1-298-gdc7cfac.apk ./
步骤4:安装APK
在终端中执行(需在adb所在目录):
- Windows:
.\adb.exe install leju_kuavo_hand-0.0.1-298-gdc7cfac.apk
- Linux:
./adb install leju_kuavo_hand-0.0.1-298-gdc7cfac.apk
注意事项
- ⚠️ 安装前请确保VR设备电量充足
- ⚠️ 确保USB线支持数据传输(部分充电线不支持数据传输)
- 💡 安装成功后会显示"Success"提示
- 💡 如果adb一直显示"waiting for device",检查VR设备是否已授权USB调试

