The libsurvive driver in Monado

Before enabling the libsurvive driver in Monado, libsurvive has to be installed as a library with a pkgconfig file. libsurvive currently requires this PR to be applied in order to be properly installed: https://github.com/cntools/libsurvive/pull/187.

When starting any libsruvive or OpenXR application, libsurvive will run calibration and save configuration and calibration data in the current working directory.

The controller (or HMD if no controller is enabled) 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 remove libsurvive’s calibration data (e.g. to force recalibration) delete the following files/directories in the current working directory:

rm -r *config.json calinfo

Though working and somewhat usable, support for the libsurvive driver is experimental and may induce motion sickness more than the 3DOF driver. Therefore with both meson and cmake, the survive driver has to be explicitly enabled with

#cmake
-DBUILD_WITH_LIBSURVIVE=On

#meson
-Ddrivers=auto,survive