Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

Problem: Adjusting rigid bodies in ART DTrack to fit with HMD eye coordinate system is time-consuming and the result might not be sufficiently accurate.

Solution: Most HMDs are pre-calibrated for SteamVR Lighthouse tracking. We introduce a tool that allows the calibration of a DTrack rigid body against Lighthouse tracking data. In this way a body adjustment with equivalent quality as the built-in Lighthouse calibration can be achieved.

Calibration Procedure

  • Download the calibration tool from this link.

  • Arrange a tracking setup where the Lighthouse Base Stations and ART cameras can both see the HMD. ART tracking and Lighthouses need to be turned on simultaneously. Lighthouse tracking can fail or become unreliable if the ART cameras are too close. An example setup is shown schematically in the image below:

  • Create a rigid body for the HMD in DTrack. The default orientation is OK. Save the rigid body to a file (e.g. standard b15.txt). Use the Calibration → Body menu in DTrack as shown in the screenshots below.

  • In case you have LPVR installed on your system already temporarily disable it:

  • Run the calibration tool from the command line as below:

$ ./lh_art_calib.exe --port 5000 --trackedDevice 1 --bodyId 15 --bodyFile "standard b15.txt"

The flags are as following:

--port

The Port where ART data is available

--trackedDevice

The SteamVR device number. You can find it in the SteamVR system report (see screenshot), the headset will always be number one which is also the default if you omit this flag.

--bodyID

The bodyId as in the DTrack GUI (defaults to one)

--bodyFile

The input ART body file. For each of the different calibration algorithms an output is generated. E.g. for the input file ‘standard b15.txt’ in the example, the following outputs are generated:

  • 'standard b15.txt_ANDREFF.txt'

  • 'standard b15.txt_DANIILIDIS.txt'

  • 'standard b15.txt_HORAUD.txt'

  • 'standard b15.txt_PARK.txt'

  • 'standard b15.txt_TSAI.txt'

Please use the HOURAD output file as your reference in DTrack.

Once you have started the calibration tool, slowly turn the HMD into different orientations. Stop briefly at various angles to allow the application some time to calculate. The output of the program should look similar to this:

Entering SteamVR thread
SteamVR started
Seen first Lighthouse
Seen first DTrack

Added new pose for a total of 1
Added new pose for a total of 2
Added new pose for a total of 3
Added new pose for a total of 4
Added new pose for a total of 5
Added new pose for a total of 6
Added new pose for a total of 7
Added new pose for a total of 8
Added new pose for a total of 9
Added new pose for a total of 10

Trafo ANDREFF (2.725 ms):
q: { "w": 0.49103332221891893, "x": 0.7380062844026215, "y": 0.44517646778122855, "z": 0.1266921986024284 }
t: { "x": 0.12520467297698248, "y": -0.09627498600148687, "z": -0.17244104033968682 }

Trafo DANIILIDIS (1.394 ms):
q: { "w": 0.21417663057806421, "x": 0.3764478195323916, "y": 0.6434715255267607, "z": 0.6311575127650773 }
t: { "x": 1.3247440707639884, "y": -0.8383919119259011, "z": 0.4059862309437135 }

Trafo HORAUD (1.396 ms):
q: { "w": 0.4803956695611906, "x": 0.7425409895273323, "y": 0.45038504638513427, "z": 0.12249975318867472 }
t: { "x": 0.12565131465807822, "y": -0.09203906087189956, "z": -0.1784956029328849 }

Trafo PARK (1.694 ms):
q: { "w": 0.4916130479133607, "x": 0.7377514760583256, "y": 0.4448744186543404, "z": 0.1269886700538725 }
t: { "x": 0.12674354907942934, "y": -0.09184751263383542, "z": -0.1773999147224412 }

Trafo TSAI (1.072 ms):
q: { "w": 0.938447539615928, "x": 0.3445367188341199, "y": 0.019253565485262854, "z": 0.01549080307584292 }
t: { "x": 0.15955689770021605, "y": -0.1220802287962029, "z": -0.10712930967985748 }

The application will acquire 10 poses until a result is calculated. In this example the algorithms aside form DANIILIDIS and TSAI agree to several digits, so we can be fairly confident in the result.

  • Import the calibration output file xxx_HOURAD.txt into the body administration of DTrack. A correctly aligned rigid body will be the result. Please verify it in DTrack’s body administration window. NOTE: This procedure also works for the hand controllers.

  • No labels