Anti "yaw drift" utility

If the yawvr tracker is used for motion compensation in ovrmc, after a certain time it may happen that the seat no longer faces forward when it is supposed to. As a result, your in-game view is no longer aligned. 😕 This is because the IMU (the tracking unit built in the seat) "drifts" from time to time. It is a natural issue affecting every IMU, including smartphone IMUs. If you use an external tracker like a vive tracker, the in-game image won't drift, but at the end of your gaming session you may find that the bowl is facing in the wrong direction.

To address this problem, a common idea is to reset the center position of the seat whenever it physically reaches the center point. I therefore tried a simple approach which only requires a webcam and OpenTrack, a free software designed to serve as a head tracking for non vr games. If you use a steamvr controller or vive tracker as a source for motion compensation, you can also use it (obviously skip step 1 below).

Step 1: install the Aruco tracker on your seat

An Aruco tracker is a specifc kind of trackable image that can be easily identified by a cam, achieving better and faster results than a face tracker. You can download (or generate) the image from this page: Aruco tracker · opentrack/opentrack Wiki (github.com), then print it at a size of about 15 x 15 cm.

Then attach the image on your seat. The best place is at the back of the back rest, the center of the image being at about 10 cm above the top of the bowl. The most important thing is when you roll the seat the image won't move laterally, it only rotates. For lighting reasons I put mine on the front, it also works:

Step 2: install OpenTrack

Install OpenTrack on your PC (it can also be an other computer, I use a notebook that I place in front of my yaw). Download it from here: Releases · opentrack/opentrack (github.com)

In OpenTrack select "aruco" as the input (or SteamVR if you have an external tracker) and select "UDP over network" as the output. In the UDP protocol settings, enter the IP address of the machine running the utility (step 3 below) or enter 127.0.0.1 if on the same machine. The port must be 29061. Then place the webcam in good view of the aruco tracker, at a distance allowing the webcam to follow the tracker when the seat move (I placed my webcam at about 1.5 distance).

Step 3: install the Auto-center utility

Finally, download and run this utility:

To use it, enter the IP address of your seat. Then specify which value from OpenTrack must be used to trigger the reset. Prefer the X value (lateral movement) for a webcam as it is more precise than yaw (but take the Yaw value if you use the steamvr tracker). When you're in your game and ready to fly, click on the recenter button to fix the value corresponding to the front position of the seat. That's all to it.

It's far from perfect as the utility will brutally send a reset each time the seat crosses the center. You'll see the same brutal movement in your HMD, but it doesn't occur too often. Also, the reset won't happen if for some reason you never or rarely cross the front center. If you feel the reset happens at the wrong position, it's probably because the detection quality is not good or fast enough. An electrical trigger would be much better, if someone has a good idea, reach me on discord.

Sign In or Register to comment.