.. _6 进阶功能: 6.进阶功能 =============================== 6.1 大空间定位功能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 功能介绍 --------------- 提供在超大空间的精准、稳定定位的能力,部署方式灵活多变,可适应各种物理空间。 2 定位信标介绍 ----------------- beacon也称为红外发射器,用于发射定位信号给RhinoX头显,将信标批量部署,可实现大空间精准定位。 目前根据应用场景设计了多种信标,如下: .. image:: _static/bigMarker.png 3 部署方式介绍 ----------------- 定位信标支持垂直部署、水平部署、多种信标混合部署 参考样例: .. image:: _static/bigMarker_sample.png 4 配置步骤 ---------------- **1). 在物理空间部署定位信标;** 部署要求: - 以场景的中心点为原点,围绕着原点部署信标,测量出每个信标相对于原点的位置(包括位置和角度); - 部署之后,不能移动定位信标; **2). 将部署信标和原点位置关系填入配置文件,并设置到软件中;** 在第1步中,我们已经得到每个信标相对于原点的位置关系,每个信标是有一个id号的,将位置关系填入xxxx.json文件中,json格式如下: .. code-block:: 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配置文件,填入配置文件路径 .. code-block:: json -bigm /sdcard/xxxx.json (2) 将CloudXRlaunchOptions.txt 和 xxxx.json存放到头显sdcard目录下 (3) 启动CloudXR client(要求v0.3.14以上版本),通过长按menu键弹出的菜单,查看大空间配置是否已经生效,如果生效Big Space Config显示已经配置的文件 .. image:: _static/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是相对于原点的关系; .. image:: _static/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) ...... .. image:: _static/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) .. image:: _static/BigMarker_sample_circle.png 6.2 CloudXR启动项配置说明 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ CloudXR启动项是英伟达提供的一种控制某些运行时特性的功能,英文解释为:Command-line Options或者Launch Options,详细介绍 请参考CLoudXR官网 `CloudXR_Lauch-Options`_ .. _CloudXR_Lauch-Options: https://docs.nvidia.com/cloudxr-sdk/usr_guide/cmd_line_options.html 下面我们主要介绍如何在RhinoX Pro头显上使用此功能 1 配置项说明 ---------------------- **客户端(头显端)配置项** =========== ================================================================================ 属性 描述 =========== ================================================================================ -s 连接服务器的IP,直接在属性空格后面输入IP地址 -bigm 设置大空间配置文件的路径,属性空格后面输入配置文件路径 -mb 设置传输视频流的最大码率,单位为Mbps,属性空格后面输入数值 -3dof 设置头显是否使用3dof跟踪,配置属性后头显只跟踪旋转不跟踪位置,不配置则默认使用6dof -rc 设置连接失败后的重连次数,属性空格后面输入数值 -srip 状态变化时,会将状态以udp包发送到该服务器,属性空格后面输入服务器IP地址 -srp 状态变化时,会将状态以udp包发送到该服务器,属性空格后面输入服务器端口号 -src 状态变化时,所发送状态udp包的次数,属性空格后面输入数值 -siev 设置是否发送外设数据到PC服务器,配置该属性则表示发送数据,否则不发送 -sa 打开发送音频到服务端的功能,配置该属性则表示开启该功能,否则关闭 =========== ================================================================================ 配置格式可参考下图: .. image:: _static/launchoptions.png .. note:: 请勿添加不需要的配置项,添加有需要的配置项即可 点击 `配置示例`_ 下载模板进行参考 .. _配置示例: https://xms-developer.oss-cn-shenzhen.aliyuncs.com/release/cloudxr/CloudXRLaunchOptions.zip 2 使用步骤 ------------------------- 1. 创建一个名为 **CloudXRLaunchOptions.txt** 的txt文件,也可以直接在上面下载的配置示例基础上修改 2. 配置完成后将文件拷贝到头显的sdcard根目录下 .. image:: _static/cloudxrconfigpath.png 3. 重新启动SteamVR以及头显上的X-Edgelink进行连接即可 .. note:: 1. 为了防止冲突,我们会优先使用X-Edgelink里面配置的IP地址,如果您希望通过配置项配置IP,则请务必不要在X-Edgelink中输入任何IP 2. 如果您没有使用配置项的需求,请不要使用此功能,防止出现异常。 3 使用头显麦克风功能 ---------------------------- 如果您需要在串流的同时,使用头显的麦克风进行收音,您可以参考以下步骤进行配置。 1. 参考上面的属性配置介绍,在 **CloudXRLaunchOptions.txt** 中配置 **-sa** 属性 2. 修改PC的 C:\Users\\AppData\Local\NVIDIA\CloudXR\CloudXRServerOptions.txt 文件,在其中加入 **-ra** 属性。(如果没有该文件可以手动创建) 3. 打开电脑的声音设置,在 **输出** 中选择显卡对应的输出设备,在 **输入** 中选择对应的麦克风设备(不使用电脑自带设备) 4. 使用电脑的录音功能测试配置是否成功,配置成功即可正常使用。