The libsurvive driver in Monado
Before enabling the libsurvive driver in Monado, libsurvive has to be installed as a library before compiling monado. For example with cmake and ninja
git clone https://github.com/cntools/libsurvive.git cd libsurvive cmake -DCMAKE_INSTALL_PREFIX=/usr -G Ninja -DCMAKE_BUILD_TYPE=Release -Bbuild ninja -C build install
When starting any libsurvive or OpenXR application, libsurvive will use cached calibration in
~/.config/libsurvive/config.json or run a fresh calibration if this config does not exist yet.
The device the calibration is performed on should not be moved during calibration. Calibration and running with libsurvive may work best when as many device sensors as possible can “see” both basestations at the same time, and when the distance to the basestations is at least 0.5-1 meter.
To force calibration with a specific device, any libsurvive application (but not monado) process command line parameters. To calibrate using a Valve Index HMD, run for example
survive-cli --requiredtrackersforcal T20 --allowalltrackersforcal 0.
To remove libsurvive’s calibration data (e.g. to force recalibration or after a significant libsurvive update) delete the configuration file:
When building monado with either meson or cmake, the survive driver has to be explicitly enabled with
#cmake -DXRT_BUILD_DRIVER_SURVIVE=On #meson -Ddrivers=auto,survive