本文仅提供在Windows中通过SteamVR获取VIVE Tracker/Controller定位的技术参考,如遇技术问题,网上和相关技术社区有丰富资料,请自行尝试解决。
Tracker在Unity/UE中的使用可访问VIVE官网或自行搜索相关资料。
使用VIVE Tracker请遵守其官方各项规则,所遇问题由使用方自行承担,与宇叠科技无关。
从官网安装Steam客户端,随后下载安装SteamVR。
官网地址:
在搜索栏输入VR,从工具选项中可以找到SteamVR。
在左侧窗口内右键点击SteamVR,选择管理->浏览本地文件,打开SteamVR本地的安装目录。
安装完毕后请先正常运行一次SteamVR,不需要任何操作,运行后即可关闭。
随后请根据下方图片所示的路径分别编辑两个配置文件。将第一处的default.vrsetting中enable条目的false更改为true。
将第二处的default.vrsetting中的requireHmd条目更改为false,forcedDriver条目更改为"null",activateMultipleDrivers条目更改为true。
请注意:上述配置更改适用于无头显接入的情况,如果需要正常使用头显及手柄进行SteamVR串流,请将上述文件中的配置(除了activateMultipleDrivers条目以外)都更改为初始默认值。
以上配置更改有可能会随SteamVR软件更新被重置,遇到新版本更新后请重新根据路径再次更改配置,或是关闭Steam的软件自动更新功能。
2. TrackerCatch Project
我们已将此工程开源,如遇技术问题,请仔细阅读代码后自行修改解决,同时欢迎您就代码BUG或优化问题提供反馈。
请使用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移出基站识别范围或被遮挡时,获取的数据将归零。
函数说明: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