OpenVR-SpaceCalibrator
OpenVR-SpaceCalibrator copied to clipboard
Feature: Track Quest with an extra Vive Sensor
It would be great to add an extra Vive Tracker to an Oculus Quest to keep the spaces connected better in VirtualDesktop wireless mode. This feature idea was mentioned https://github.com/pushrax/OpenVR-SpaceCalibrator/issues/15#issuecomment-672171217 and https://github.com/pushrax/OpenVR-SpaceCalibrator/issues/6#issuecomment-678332234 .
Creating an issue so we can track interest - I'm re calibrating in VRChat with this setup every 10 minutes or so while dancing, and I would love to skip buying a Cosmos+wireless+etc just to make it smoother.
This software rocks so hard! Fingers crossed that this would improve the wireless Quest experience.
Sidenote: I've ordered the longer Oculus Link cable, and will report back whether that stays in calibration better than VD.
I definitely think this is doable and would work. It would still be an automatic calibration, and would allow any HMD to be used, regardless of drifting reference frames. I'd like to use this setup as well, though I've been extremely busy at work and haven't used VR much recently. It's possible I will implement this late Nov. or Dec. when work will settle down.
This would be really nice! I had a Quest 1 and had this issue too. Now I am waiting for my HP Reverb G2 (WMR) and have a Quest 2 as well, so this solution would be very nice to completely "disable" the inside-out tracking and for preventing HMD shift. I would be really appreciate your work into this!
I just bought a Vive Tracker 2018 and I look forward to see this feature soon! Thanks for your work! :-)
I have the Oculus Q2 with the pro strap, so I was trying to figure out where best to mount a tracker. After taking some time, I think the top headstrap was the place to put it, or front top of the HMD.
The best place I thought it would be would be the top headstrap as with the pro strap, its hard and curved in the back as well as the tightening knob which makes mounting the tracker difficult. I chose the top headstrap as no matter what headset you use, there is almost always a headstrap of some type to mount to.
Another viable spot is the top of the HMD itself. As this would work well, especially in terms of accurate head tracking, it does add extra weight to the front of the HMD which could add discomfort during long play.
Thoughts?
The extra weight on the HMD has to be tested by myself, could be a bummer. At the end the position is not important for the tracking I guess, when it's at least visible for the Lighthouses? But it's important to mount it very tight as every movement will cause movement within VR. Therefore a velcro strap onto the HMD would be the best, but as described by you it could be too heavy.
The only issue with mounting to the head strap is that it could move slightly during play, and move slightly more between sessions. However, that may not be too much of an issue in practise, especially if it's placed close to the HMD on the strap. I printed a bunch of these years ago https://www.thingiverse.com/thing:2706598, and tried one on the Quest 1 strap last time I started implementing this. When the HMD is on your head, the tracker seems very stable.
For between-session drift (where you take the HMD off your head, allowing the tracker to move more), a quick recalibration might be fine, since it should be super easy as you don't need to hold several things in one hand. It will just require pressing the Calibrate button and walking around a bit.
The top of the HMD could still be a good option, avoiding the extra torque from mounting on the front of the HMD, and if mounted securely could avoid recalibration forever.
Guess Ill need to order another tracker soon but till be worth it
I realized something today. Wouldnt it better to calibrate one tracker and just mount it somewhere stationary in a room where the basestations can see it? That way you dont ever have to worry about your own movement or that tracker moving. Just plug it set it on a shelf and let it stay powered indefinitely and the stations have a constant and consistent point of reference.
I think this would be good as well and additionally, but that would not make the drifting better, would it?
An additional tracker in the room only helps to reduce lighthouse system drift, which is already negligible when set up correctly.
To determine the relative frame of reference between the lighthouse and quest systems, we need a lighthouse tracked device and a quest tracked device to be physically fixed together. If the two systems are stable, that can be done once (i.e. the current calibration process), but if one system is unstable, like the quest, the only way to correct for the instability is to track the unstable device with a stable tracker.
To determine the relative frame of reference between the lighthouse and quest systems, we need a lighthouse tracked device and a quest tracked device to be physically fixed together.
Do they have to be both physically linked together and moving in space? Because if not, would it not be sufficient to just leave an Oculus/WMR controller powered on and affixed to a Vive tracker somewhere in the room?
I definitely think this is doable and would work. It would still be an automatic calibration, and would allow any HMD to be used, regardless of drifting reference frames. I'd like to use this setup as well, though I've been extremely busy at work and haven't used VR much recently. It's possible I will implement this late Nov. or Dec. when work will settle down.
Do you have any other contact info, maybe through discord? I’d like to ask a couple question about the entire project of making SteamVR tracking work on non SteamVR headsets like the reverb.
As far as I know Trackers have generally lower tracking precision than HMDs. You could already redirect Vive Tracker position to HMD using OpenVR Input Emu (one of the updated forks). But it results in a bit shaky head position.
Just mounting Vive puck on unstable HMD maybe could allow to remove initial calibration step, and make calibration continuous. The continuously working calibration, would smooth out tracker imprecisions, and would continuously, but slowly, update transformation matrix between tracked universes. In the end HMD and it's controllers would track normally, but alignment would slowly compensate any drifts, because normally during gameplay you move your head a lot and in different ways.
@mdovgialo exactly, I want to use the tracker for the low frequency component and the HMD's built in tracking for the high frequency component.
Do they have to be both physically linked together and moving in space? Because if not, would it not be sufficient to just leave an Oculus/WMR controller powered on and affixed to a Vive tracker somewhere in the room?
That would indeed work! However, many controllers these days are tracked by cameras on the HMDs (Rift 2, Quest, all WMR that I know of), so it wouldn't be robust in those cases. Though it would make recalibrating easy (just look at this pair of devices for long enough for the controller to start tracking).
Do they have to be both physically linked together and moving in space? Because if not, would it not be sufficient to just leave an Oculus/WMR controller powered on and affixed to a Vive tracker somewhere in the room?
That would indeed work! However, many controllers these days are tracked by cameras on the HMDs (Rift 2, Quest, all WMR that I know of), so it wouldn't be robust in those cases. Though it would make recalibrating easy (just look at this pair of devices for long enough for the controller to start tracking).
Ah, brilliant! Well then, looks like there are plenty of options for making recalibration even easier (as you and I discussed at length a couple months ago here as well). Looking forward to the next OpenVR-SpaceCalibrator update, I ordered a Vive tracker today so I'll be ready :)
Wanted to add, this could be an absolute boon for anyone wanting to homebrew their own headset, or use a 3DoF headset like the Oculus Go or anything else supported by RiftCat / Trinus PSVR and wanted to have them lighthouse tracked with relative ease. The thing though is, for those use cases, there is no native high frequency positional tracking to fall back on, at all. There's basically always an IMU even in the most basic of headsets, but no positional tracking to speak of. Would any hypothetical "Vive Tracker for HMD tracking" functionality be able to work just as well for the aforementioned more edge-case uses too?
On the topic of easy callibration, and to avoid having to wait till the SLAM HMD re-detects a controller you look at. What if you could just touch the two sides of your HMD with your lighthouse-tracked controllers? This could be relatively accurate if you touch your headset in the same two spots everytime. Plus because it's two spots you can correct rotational drift two? (ehm at least on two axis I think)
On the topic of easy callibration, and to avoid having to wait till the SLAM HMD re-detects a controller you look at. What if you could just touch the two sides of your HMD with your lighthouse-tracked controllers? This could be relatively accurate if you touch your headset in the same two spots everytime. Plus because it's two spots you can correct rotational drift two? (ehm at least on two axis I think)
I like this idea as well, at least exploring its feasibility!
As someone who uses an additional 2 pucks to turn the WMR controllers from Inside Out to Outside in Tracking, this would be fantastic to clear off drifting. I only get severe drifting when using those 2 pucks alongside 3 for FBT thankfully
Another motivation for this feature: https://www.reddit.com/r/MixedVR/comments/kltbz8/controller_shift_sometimes_after_restart/ghb1eyp/
Rather regularly at the start of play sessions, my Reverb G2 isn't able to determine its location in my room using physical light (measuring its distance from the corner of my TV, the edge of a carpet, etc) and so everything in SteamVR home moves with the HMD rather than the HMD moving within SteamVR home (very nausea inducing). This requires taking the headset off, and walking around/spinning it around for 5-10 seconds so that it can get its bearings on where it is in physical space. By using a Vive tracker, it'd be relying on the IR light from the basestations to orient itself in space, which (as we know from the superior tracking of the knuckles controllers and Vive trackers) is significantly more reliable and accurate.
Are there any news of your work in December @pushrax ? :-) would be great and thankful to hear about your progress as my vive tracker is waiting in it's box to help out soon! :-)
Are there any news of your work in December @pushrax ? :-) would be great and thankful to hear about your progress as my vive tracker is waiting in it's box to help out soon! :-)
I'm looking forward to trying this out
I have the Oculus Q2 with the pro strap, so I was trying to figure out where best to mount a tracker. After taking some time, I think the top headstrap was the place to put it, or front top of the HMD.
The best place I thought it would be would be the top headstrap as with the pro strap, its hard and curved in the back as well as the tightening knob which makes mounting the tracker difficult. I chose the top headstrap as no matter what headset you use, there is almost always a headstrap of some type to mount to.
Another viable spot is the top of the HMD itself. As this would work well, especially in terms of accurate head tracking, it does add extra weight to the front of the HMD which could add discomfort during long play.
Thoughts?
i made a bracket for my puck that slides onto the q2 i personlay dont have a problem with it being off balance or anything but others might just what i came up with for esey atachment and removal

I placed it at the back as a bit of a counter weight like this:

@thehhmdb this looks good. Are you using this right now? I am waiting for the update of SpaceCal and my Vive Tracker is laying around since November without a use...
@derpaufler I'm in the same situation as you. Whilst waiting, I've been essentially trying to make a wireless Index with those additional headphones, custom face gasket and the SpaceCal tracking will hopefully be the last part of the puzzle
Where are these Headphones from?
They are custom made 3d printed case with Tectonic TEBM35C10-4 BMRs inside. I slightly modified the idea from here: https://prettygood3d.com/post/999028410814/quest-2-off-ear-bmr-v01