Windows SteamVR获取VIVE Tracker/Controller定位指南

circle-exclamation

1. SteamVR配置

从官网安装Steam客户端,随后下载安装SteamVR。

官网地址:

在搜索栏输入VR,从工具选项中可以找到SteamVR。

在左侧窗口内右键点击SteamVR,选择管理->浏览本地文件,打开SteamVR本地的安装目录。

安装完毕后请先正常运行一次SteamVR,不需要任何操作,运行后即可关闭。

随后请根据下方图片所示的路径分别编辑两个配置文件。将第一处的default.vrsetting中enable条目的false更改为true。

将第二处的default.vrsetting中的requireHmd条目更改为false,forcedDriver条目更改为"null",activateMultipleDrivers条目更改为true。

circle-exclamation

2. TrackerCatch Project

circle-exclamation
file-archive
45MB

请使用IDE(推荐Visual Studio 2022) 打开C++项目TrackerCatch。

该项目基于OpenVR所做,官方参考:

文件夹bin,header和lib均取自OpenVR项目的引用,主体运行脚本为TrackerCatch文件夹内的TrackerCatch.cpp,其中main内编写了一个运行示例。Build后会在bin->win64内生成可执行的TrackerCatch.exe。

启动exe前请先启动SteamVR,不然会导致闪退。如果SteamVR内配置执行有误或运行处于非正常状态时,也会自动闪退。

当vive tracker连接与基站识别高亮时,启动程序会打印Tracker数据,正常打印信息表示接入流程畅通。

运行效果:

当tracker移出基站识别范围或被遮挡时,获取的数据将归零。

2.1. 参数及接口函数定义

  • 初始化

函数说明:OpenVR初始化,包含初始化连接SteamVR server及调用。

返回值说明:若成功则返回true,失败返回false。

  • 终止连接

函数说明:OpenVR终止与vrclient连接,在析构函数内调用。

  • 数据更新

函数说明:运行数据更新方法,获取SteamVR中已连接设备的信息,每次运行时获取一次。

  • 自动打印设备信息

参数说明:控制在RunDataUpdate()方法运行时是否会自动打印已连接设备数值,默认为false。

  • 获取已连接的设备名列表

函数说明:获取SteamVR上已连接的设备,使用ALVR时默认有虚拟头显。

返回值说明:参数为字符串的vector数组,无设备时为空。

  • 获取已连接设备的全局坐标矩阵

函数说明:根据设备名得到该设备在SteamVR中的全局坐标矩阵。

参数说明:设备名称的字符串。

返回值说明:vr::HmdMatrix34_t 类型的矩阵,设备未连接时为空。

  • 获取三维坐标数值

函数说明:根据坐标矩阵信息计算出相应的三维位置数据。

参数说明:vr::HmdMatrix34_t 右手坐标系矩阵

返回值说明:vr::HmdVector3_t 类型的三维坐标。

  • 获取旋转四元数数值

函数说明:根据坐标矩阵信息计算出相应的旋转四元数。

参数说明:vr::HmdMatrix34_t 右手坐标系矩阵

返回值说明:vr::HmdQuaternion_t类型的四元数。

Last updated