跳到主要内容

VR端基本操作指南

更新时间:2026-07-01 10:36:54

一、设备介绍

Pico4 Ultra外观和按键说明

1、佩戴调节旋钮:操作者佩戴VR头显,调节旋钮适配操作者头部大小

调节旋钮

2、开机和音量键:下图红色框为开机键,长按开机;绿色框为音量调节按钮。

头显按键

3、手柄按键说明

手柄按键

二、设备连网

点击右手手柄Home键,唤醒菜单页面,在控制中心中点击WIFI设置,可以将设备连网。

设备联网1 设备联网2

三、APP基本操作

3.1 启动

点击Home键唤出菜单,随后扣动扳机选择菜单栏中的资源库,扣动扳机启动APP程序BlackEyeVision

APP启动1
APP启动2
APP启动3

3.2 登录页面

1、启动后默认界面是登录页面,可以使用管理员创建的账号登录,也可以使用用户手机号注册的账号登录
APP登录

2、如果使用管理员创建的账号登录,在下图中自由体系账号选择开启;如果使用手机号直接注册的账号登录,自由体系账号选择关闭
APP登录2

3、 局域网直接发现设备,在下图中选择局域网查询,同一个局域网设备会自动被发现上来
APP局域网

3.3 设备列表页面

APP局域网

1、显示公网和局域网设备,点击设备跳转到设备控制页面;

2、点击头像进入个人信息详情页面;

3、位置按钮:打开MR混合模式,外部场景会加载到app场景内部;

4、刷新按钮:点击刷新设备数据;

5、添加按钮:点击绑定新设备(只适用于非自由体系账号);

6、机器狗:点击进行机器人和机器狗模式切换;机器狗模式下才可遥操机器狗;机器人模式下发送位姿数据

3.4 设备控制页面

机器狗模式

APP设备控制1机器狗模式

机器人模式

APP设备控制2机器人模式

从左到右,从上到下依次为:

1、显示设备名称;

2、数据通道(机器人模式):是否发送头显,手柄的位姿和操作数据到服务器端;

3、跟随按钮:点击跟随头显位置;

4、双向语音按钮:点击开启双向语音;vr端和设备端进行双向语音通话;

5、截图按钮:点击截图视频画面保存在本地;

6、录屏按钮:点击录取视频画面保存在本地;

7、视频切换按钮:进行多路视频源显示和取消显示操作;

8、设置按钮:进行多种指令的相关操作;

9、网络状态显示;

10、设备在线状态显示;

11、信息开关按钮:显示视频源的相关信息;

12、起立按钮(机器狗模式):点击起立和蹲下;

13、急停按钮(机器狗模式):点击机器狗进行断电模式(慎用)

3.5 个人信息页面

APP个人信息

1、个人资料显示和编辑;进入个人资料编辑:修改头像和昵称;注销账号;

2、设备分享:可查看可分享的设备和分享设备给指定的用户;

3、退出账号

3.6 使用手柄进行机器狗的运动控制

机器狗模式下的按键说明

VR手柄功能示意图
左摇杆前后前进后退前进后退
左摇杆左右左移右移左移右移
右摇杆左右左转右转左转右转
X/A按下弹起起立
Y/B按下弹起坐下
右手部扳机按住弹起双击退出沉浸模式,显示UI面板退出

四、其他服务说明

4.1 人型机器人拓展安装包

安装包名称:cockpit_package_fk.tar.gz

(拓展安装包请联系当虹技术支持人员获取)

上传并解压安装包到设备后,执行一键安装脚本

sudo ./install_cockpit.sh

4.2 数据监听服务

目前通过监听指定的端口获取PICO端发送的数据,监听的端口为127.0.0.1:5560;

查看设备的接收的数据

tail -f /userdata/arcvideo/robotEngine/logs/cockpit_application.log

日志内容:

日志内容

4.3 机器人模式下:人形机器人通讯数据格式

4.3.1 采集头部和手柄的位姿数据:

每帧数据格式为:

数据格式

数据内容详解:

1、头显位姿

P1P2P3P4P5P6P7
x轴位置y轴位置z轴位置四元数w四元数x四元数y四元数z

2、左手位姿(定义同头显位姿)

3、右手位姿(定义同头显位姿)

4、左手柄按键(8个值)

B1B2B3B4T1T2T3T4
A/X键B/Y键菜单键摇杆键值抓握键板机键摇杆x方向摇杆y方向

5、左手柄按键(定义同左手柄按键,其中B3赋值为1,不关联按键)

6、时间戳(1个double):VR头显发送数据的时间戳

7、校验和(1个uint32)

CRC32校验和,用于数据完整性验证

坐标系使用OpenXR中的定义,手柄位姿选取前端坐标系

4.3.2 全身骨骼数据,需要配合Pico的动捕设备

{
"body_joints_pose": [...],
"timestamp_ns": 123456789,

"left_trigger": 0.0,
"right_trigger": 0.0,

"left_grip": 0.0,
"right_grip": 0.0,

"left_menu_button": false,
"right_menu_button": false,

"left_axis": [0.0,0.0],
"right_axis": [0.0,0.0],

"A_button": false,
"B_button": false,
"X_button": false,
"Y_button": false,

"left_axis_click": false,
"right_axis_click": false
}
body_joints_posetimestamp_nsleft_triggerright_triggerleft_gripright_gripleft_menu_buttonright_menu_button
24个骨骼节点时间戳左手扳机键右手扳机键左手抓握键右手抓握键左手菜单键无;默认值
left_axisright_axisA_buttonB_buttonX_buttonY_buttonleft_axis_clickright_axis_click
左摇杆右摇杆右手A右手B左手X左手Y左摇杆按下右摇杆按下

1、body_joints_pose

数据类型:float[24][7] 表示24个骨骼节点。

每个节点:[x,y,z,qx,qy,qz,qw] 含义同头显位姿

骨骼索引定义

public enum BodyTrackerRole
{
Pelvis = 0, // 骨盆
LEFT_HIP = 1, // 左侧臀部
RIGHT_HIP = 2, // 右侧臀部
SPINE1 = 3, // 脊柱
LEFT_KNEE = 4, // 左腿膝盖
RIGHT_KNEE = 5, // 右腿膝盖
SPINE2 = 6, // 脊柱
LEFT_ANKLE = 7, // 左脚踝
RIGHT_ANKLE = 8, // 右脚踝
SPINE3 = 9, // 脊柱
LEFT_FOOT = 10, // 左脚
RIGHT_FOOT = 11, // 右脚
NECK = 12, // 颈部
LEFT_COLLAR = 13, // 左侧锁骨
RIGHT_COLLAR = 14, // 右侧锁骨
HEAD = 15, // 头部
LEFT_SHOULDER = 16, // 左肩膀
RIGHT_SHOULDER = 17, // 右肩膀
LEFT_ELBOW = 18, // 左手肘
RIGHT_ELBOW = 19, // 右手肘
LEFT_WRIST = 20, // 左手腕
RIGHT_WRIST = 21, // 右手腕
LEFT_HAND = 22, // 左手
RIGHT_HAND = 23 // 右手
}

2、时间戳,VR头显发送数据的时间戳

数据类型:int64

3、左手Trigger

数据类型:float

4、右手Trigger

数据类型:float

5、left_grip

数据类型:float

6、right_grip

数据类型:float

7、left_menu_button

数据类型:bool

8、right_menu_button

数据类型:bool

9、left_axis

数据类型:float[2]

内容:[x,y] 范围:-1.0 ~ +1.0

10、right_axis 数据类型 同上

11、ABXY按键

数据类型:bool

12、left_axis_click

数据类型:bool

13、right_axis_click

数据类型:bool