LPVR-DUO Calibration Manual

LPVR-DUO Calibration Manual

LPVR is optimized to work with ART optical tracking. Should you use LPVR with an Optitrack optical tracking system, please refer to this article for the correct marker arrangement and body adjustment in Motive.

Overview

Make sure the LPVR-DUO driver is correctly installed as described in the Setup Instructions.

The calibration of LPVR-DUO consists of 2 parts:

  • Calibration of the HMD rigid body

  • Calibration of the vehicle-fixed IMU

Adjustments to the calibration are all done via the JSON configuration script of LPVR.

JSON Configuration File

See below a default configuration file for LPVR-DUO.

It is stored in your system as [path_to_your_driver]\resources\configuration\settings.json. You can edit the file directly using your favorite editor or use the LPVR web interface at http://localhost:7118/index.html.

NOTE:

  • In the web interface of LPVR-DUO { "PoseMachineConfig": will not be displayed, it is only visible in the source code of the configuration file.

  • The web interface will only be displayed if the driver is running, i.e. SteamVR with the driver activated is running.

  • If there is an unexpected error in starting your current configuration a dummy configuration is displayed. Check the SteamVR log for the source of the error and edit settings.json directly.

{ "PoseMachineConfig": { "absoluteSources": { "my_dtrack": { "settings": { "_this port": "needs to be the same port used by Dtrack; see below" "port": 5000, "oneBasedCounting": true }, "type": "DTrack" } }, "emitters": { "HMD": { "settings": { "type": "HMD" }, "type": "OpenVR" }, "console": { "type": "Console" } }, "imuSources": { "hmd_imu": { "type": "ViveHeadset" }, "ref_imu": { "type": "OpenZen", "settings": { "autodetectType": "ig1" } }, "no_imu": { "type": "None" } }, "trackedObjects": [ { "absoluteSource": { "_the headset body id": "goes here", "name": "my_dtrack", "trackingId": 1 }, "combinerType": "DifferentialImu", "emitterName": "HMD", "imuSource": "hmd_imu", "settings": { "ignoreGravity": true, "opticalWeight": 0.005, "referenceImu": "ref_imu", "referenceOrientationQuat": { "w": 1, "x": 0, "y": 0, "z": 0 }, "referenceToOpticalQuat": { "w": 1, "x": 0, "y": 0, "z": 0 } } }, { "absoluteSource": { "_the reference IMU body": "goes here", "name": "my_dtrack", "trackingId": 2 }, "emitterName": "console", "imuSource": "no_imu" } ] } }

With this configuration file

  • the internal HMD IMU is automatically detected and used,

  • the vehicle-fixed LPMS-IG1 IMU is automatically detected.

What you need to adjust manually:

  • ART DTrack output port (5000 in this example)

  • HMD rigid body ID from ART DTrack (1 in this example)

  • Vehicle fixed IMU rigid body ID from ART DTrack (2 in this example)

  • referenceToOpticalQuat from vehicle-fixed IMU calibration procedure (see below)

  • referenceOrientationQuat from vehicle-fixed IMU calibration procedure (see below)

ART DTrack Setup

Please follow the instructions on the dedicated page LPVR-CAD / DUO System Calibration (HMD Target Calibration).

Troubleshooting of HMD IMU Calibration

If alignment problems persist, please take the following steps to isolate the source of the problem:

Track headset with IMU-only (no optical)

  • Stop ART tracking in DTrack

  • Set "ignoreGravity": false to turn on the vertical gravity reference

  • Set "combinerType": "Default" to turn off relative orientation tracking with the reference IMU

  • Push to driver

With these settings the headset will be tracked by the HMD IMU only. When wearing the headset, if the IMU alignment settings are correct, orientation tracking should feel natural. Please note that without optical system there is no position tracking. If orientation tracking is not working well, the alignment between IMU and the HMD optics (display, lenses) is not good.

Track headset with optical system-only (no IMU)

  • Make sure ART tracking is running

  • If it doesn’t exist yet, in imuSources create

    { "id": "no_imu", "type": "None” }
  • Set "imuSource": "no_imu" in trackedObjects

  • Push to driver

Within the range of the optical system, the HMD should now be orientation and position tracked. The tracking will feel a lot less smooth when only using the optical system. However, this mode is a good way to assess the quality of the rigid body adjustment. If orientation tracking completely off, it is better to readjust the rigid body.

Adjustment of Vehicle Fixed IMU

Pre-defined Orientation

Calibration Procedure

  • Follow this tutorial to install and run the vehicle-fixed LPMS-IG1 IMU.

  • In a first step the orientation of the internal coordinate system of the vehicle fixed IMU and the optical tracking system needs to be defined. For this purpose, attach an optical marker to the enclosure of the IMU and create a new rigid body in the optical tracking software.

  • To activate the calibration features of LPVR, click on Show Additional Features on the LPVR configuration page. 

  • Activate the automatic pivot point calibration by selecting the optical tracking system in the absolute source field with rigid body id tracking id and the vehicle fixed IMU in the imu source field. Clicking Find Rotation will start the calibration process.

  • During the calibration process, slowly rotate the IMU with attached optical marker within the view of the optical tracking system. Pause the rotation from time-to-time to allow for some internal processing. After the calibration process is finished the result will be output below the calibration feature dialog. The output quaternion needs to be manually inserted into referenceToOpticalQuat.

  • Fix the reference IMU to the vehicle with the optical marker still attached. Check the SteamVR console output for the orientation quaternion of the reference IMU optical marker. This value needs to be applied to the field referenceOrientationQuat in the configuration script.

After the above procedure the optical marker can be detached from the reference IMU.

NOTE: The reference IMU should now not be moved anymore. The system should now be sufficiently calibrated for operation.

You should now be able to display content fixed to the vehicle coordinate system. E.g. when you drive a curve in a vehicle and keep looking straight ahead, objects in VR/AR should not change their position and orientation.