HTC Vive Tracker Setup
Take data from steamvr without headset
Setup SteamVR (for using openvr to track HTC Vive tracker)
-
Install Steam & SteamVR.
-
Open SteamVR, then exit it.
-
Force to use null driver as the HMD driver
-
edit
~/.steam/steam/steamapps/common/SteamVR/resources/settings/default.vrsettings
"requireHmd": false, "forcedDriver": "null" "activateMultipleDrivers": true
-
edit
~/.steam/steam/steamapps/common/SteamVR/drivers/null/resources/settings/default.vrsettings
"driver_null" : { "enable" : true }
-
-
Plug tracker receiver in.
-
Restart SteamVR.
If there's unkillable popup window when SteamVR is started on Linux
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/577
sed -ri 's/("preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/drivers/lighthouse/resources/webhelperoverlays.json
sed -ri 's/("preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/resources/webhelperoverlays.json
#sed -ri 's/("_preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/drivers/vrlink/resources/webhelperoverlays.json
Disable auto popup of room setup
This is to prevent the room setup popup when SteamVR is started. Sometimes the popup window can't be closed on Linux, so it looks better to disable it.
sed -ri 's/("preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/drivers/lighthouse/resources/webhelperoverlays.json
sed -ri 's/("preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/resources/webhelperoverlays.json
#sed -ri 's/("_preload".*)true/\1false/g' ~/.steam/steam/steamapps/common/SteamVR/drivers/vrlink/resources/webhelperoverlays.json
Using with libsurvive
如果是 Python 版,直接 pip 安装即可。
Install libsurvive
git clone https://github.com/cntools/libsurvive.git --recursive
cd libsurvive
sudo cp ./useful_files/81-vive.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo apt update && sudo apt install build-essential zlib1g-dev libx11-dev libusb-1.0-0-dev freeglut3-dev liblapacke-dev libopenblas-dev libatlas-base-dev cmake
make
./bin/survive-cli
# For visulization
sudo apt install websocketd
./bin/survive-websocketd & xdg-open ./tools/viz/index.html
使用 SteamVR 标定以提高追踪精度
- 删除原有的标定文件。在不同平台上,我们将 Steam 有关 Lighthouse 的配置路径称为
STEAM_CONFIG_PATH
。删除STEAM_CONFIG_PATH/lighthousedb.json
- Linux:
~/.steam/steam/config/lighthouse/
- Windows:
<Steam-install-path>\config\lighthouse\
,可能是C:\Program Files (x86)\Steam\config\lighthouse
- Linux:
- 打开 SteamVR ,并确保tracker已被识别。此时
lighthousedb.json
的配置被生成。 - 将新产生的标定文件放置到
~/.steam/steam/config/lighthouse/
目录下.或者留下来后续手动指定。 - 删除运行survive代码设备上的
~/.config/libsurvive/config.json
- 执行
survive-cli --steamvr-calibration
, 这个选项后面可以显式的传入标定文件, 待出现Info: MPFIT success <...>
后,终止代码。libsurvive
将从lighthousedb.json
中读取标定参数,并保存到~/.config/libsurvive/config.json
中。 - 标定后基站不可更改位姿,否则需要重新标定。
- 运行时可以带上
--globalscenesolver 0
以禁止运行时对基站位姿进行优化。打开实时优化效果可能会更好
Concepts
坐标系
- Tracker坐标系: 充电口指向y轴正向,螺纹安装面指向z轴正向,x轴正向为右手定则确定。
- Lighthouse坐标系: 背面指向y轴正向,上面指向z轴正向,x轴正向为右手定则确定。
- Tracker的位姿是在 Lighthouse B 坐标系下的。
- 第一代 Lighthouse (正面为方形)在两个一起使用时,必须一个为 B,一个为 C。 A模式仅在有同步线连接的情况下使用。