6.进阶功能

6.1 大空间定位功能

1 功能介绍

提供在超大空间的精准、稳定定位的能力,部署方式灵活多变,可适应各种物理空间。

2 定位信标介绍

beacon也称为红外发射器,用于发射定位信号给RhinoX头显,将信标批量部署,可实现大空间精准定位。 目前根据应用场景设计了多种信标,如下:

_images/bigMarker.png

3 部署方式介绍

定位信标支持垂直部署、水平部署、多种信标混合部署

参考样例:

_images/bigMarker_sample.png

4 配置步骤

1). 在物理空间部署定位信标;

部署要求:

  • 以场景的中心点为原点,围绕着原点部署信标,测量出每个信标相对于原点的位置(包括位置和角度);

  • 部署之后,不能移动定位信标;

2). 将部署信标和原点位置关系填入配置文件,并设置到软件中;

在第1步中,我们已经得到每个信标相对于原点的位置关系,每个信标是有一个id号的,将位置关系填入xxxx.json文件中,json格式如下:

[{
            "beacon_id": "100",
            "position": [0, 0, 0],
            "rotation": [0, 0, 0],
            "group_id": -1,
            "coord_system_flag": 1,
            "confidence_thresh": 0.85,
            "max_distance_thresh": 2.0,
            "min_distance_thresh": 0.1,
            "drift_recenter_angle_threshold": 1.0,
            "drift_recenter_distance_threshold": 1.0
    },
    {
            "beacon_id": "101",
            "position": [-2.5, 0, 0],
            "rotation": [0, 0, 0],
            "group_id": -1,
            "coord_system_flag": 1,
            "confidence_thresh": 0.85,
            "max_distance_thresh": 2.0,
            "min_distance_thresh": 0.1,
            "drift_recenter_angle_threshold": 1.0,
            "drift_recenter_distance_threshold": 1.0
    }]

Note

json配置字段的说明,请参考<5 json配置文件规则>

2). 将配置文件设置到头显;

  1. 在CloudXRlaunchOptions.txt配置文件,填入配置文件路径

-bigm    /sdcard/xxxx.json
  1. 将CloudXRlaunchOptions.txt 和 xxxx.json存放到头显sdcard目录下

  2. 启动CloudXR client(要求v0.3.14以上版本),通过长按menu键弹出的菜单,查看大空间配置是否已经生效,如果生效Big Space Config显示已经配置的文件

_images/BigMarker_CloudXR_Config.png

配置项介绍:


Big Space Config: 是指大空间定位功能是否开启,开启之后显示配置的文件,

  • Not used: 没有配置,如果配置的文件异常,显示Not used(sample_8_8.json config error)

  • xxx.json: 表示设置了该json配置

Controller Rotation: 是指控制器Rotation使用了那种算法,默认是Fusion

  • Fusion: Tag光学Rotation和IMU Rotation混合使用

  • IMU:只使用IMU的Rotation


3). 修改测试的demo场景,场景里虚拟信标和物理信标的位置关系保持一致,启动demo场景验证配置文件的设置准确;

验证方法:在头显上观察虚拟场景beacon和物理空间beacon信标基本对齐

4). 至此,大空间定位功能配置完成。

5 json配置文件规则

1). 原点可以是场景的任意一个点;

2). 每个beacon的position和rotation是相对于原点的关系;

_images/bigMarker_config.png

6 配置文件样例

1). 8*8米场景地埋式部署sample_8_8.json

编号100的信标为原点(0,0,0), 信标的位置关系如下:

100, position(0,0,0), rotation(0,0,0)

101, position(-2.5,0,0), rotation(0,0,0)

107, position(-5,0,0), rotation(0,0,0)

104, position(0,0,2.5), rotation(0,0,0)

105, position(-2.5,0,2.5), rotation(0,0,0)

106, position(-5,0,2.5), rotation(0,0,0)


_images/bigMarker_sample8.png

2). 圆形定位信标sample_circle_beacon.json

编号1的信标为原点(0,0,0), 信标的位置关系如下:

  1. position(0,0,0), rotation(0,0,0)

  2. position(0,0,1), rotation(0,0,0)

  3. position(0,0,2), rotation(0,0,0)

_images/BigMarker_sample_circle.png

6.2 CloudXR启动项配置说明

CloudXR启动项是英伟达提供的一种控制某些运行时特性的功能,英文解释为:Command-line Options或者Launch Options,详细介绍 请参考CLoudXR官网 CloudXR_Lauch-Options

下面我们主要介绍如何在RhinoX Pro头显上使用此功能

1 配置项说明

客户端(头显端)配置项

属性

描述

-s

连接服务器的IP,直接在属性空格后面输入IP地址

-bigm

设置大空间配置文件的路径,属性空格后面输入配置文件路径

-mb

设置传输视频流的最大码率,单位为Mbps,属性空格后面输入数值

-3dof

设置头显是否使用3dof跟踪,配置属性后头显只跟踪旋转不跟踪位置,不配置则默认使用6dof

-rc

设置连接失败后的重连次数,属性空格后面输入数值

-srip

状态变化时,会将状态以udp包发送到该服务器,属性空格后面输入服务器IP地址

-srp

状态变化时,会将状态以udp包发送到该服务器,属性空格后面输入服务器端口号

-src

状态变化时,所发送状态udp包的次数,属性空格后面输入数值

-siev

设置是否发送外设数据到PC服务器,配置该属性则表示发送数据,否则不发送

-sa

打开发送音频到服务端的功能,配置该属性则表示开启该功能,否则关闭

-gql

空格后输入0-3之间的数字,选择不同分辨率;0:0:1024x1024, 1:1408x1408,

2:1824x1824, 3:2144x2144 (修改后需要重启SteamVR才能生效)

配置格式可参考下图:

_images/launchoptions.png

Note

请勿添加不需要的配置项,添加有需要的配置项即可

点击 配置示例 下载模板进行参考

2 使用步骤

  1. 创建一个名为 CloudXRLaunchOptions.txt 的txt文件,也可以直接在上面下载的配置示例基础上修改

  2. 配置完成后将文件拷贝到头显的sdcard根目录下

_images/cloudxrconfigpath.png
  1. 重新启动SteamVR以及头显上的X-Edgelink进行连接即可

Note

  1. 为了防止冲突,我们会优先使用X-Edgelink里面配置的IP地址,如果您希望通过配置项配置IP,则请务必不要在X-Edgelink中输入任何IP

  2. 如果您没有使用配置项的需求,请不要使用此功能,防止出现异常。

3 使用头显麦克风功能

如果您需要在串流的同时,使用头显的麦克风进行收音,您可以参考以下步骤进行配置。

  1. 参考上面的属性配置介绍,在 CloudXRLaunchOptions.txt 中配置 -sa 属性

  2. 修改PC的 C:Users<user>AppDataLocalNVIDIACloudXRCloudXRServerOptions.txt 文件,在其中加入 -ra 属性。(如果没有该文件可以手动创建)

  3. 打开电脑的声音设置,在 输出 中选择显卡对应的输出设备,在 输入 中选择对应的麦克风设备(不使用电脑自带设备)

  4. 使用电脑的录音功能测试配置是否成功,配置成功即可正常使用。