Open CodeWitchBella opened 2 years ago
The rotation algorithm is able to figure out the amount and direction of rotation, but not the point the rotation is applied around.
It would be better to solve for the whole transform at once using a simpler linear equation as described here https://github.com/pushrax/OpenVR-SpaceCalibrator/issues/1
When I implemented that approach the calibration was less robust, but it was probably due to a mistake on my end or at least a missed opportunity. I ended up just keeping the current implementation since it does work fairly well, but if I were going to make further changes I’d probably try this other approach again. You can read about my attempt in https://github.com/pushrax/OpenVR-SpaceCalibrator/issues/1#issuecomment-672194590
Thank you for the quick response 🙂
I am currently in the process of implementing and measuring your calibration algorithm for my master's thesis. I will likely end up trying to improve on in some meaningful way. I'll report back if I am successful in doing so.
FYI - I've implemented this suggestion in my fork and hope to merge soon (looking for final test feedback before I pull the trigger on the big merge).
@CodeWitchBella, did you manage to measure the calibration algorithm and/or compare it to some groundtruth? I'm thinking of using this for system for one of my PhD projects (I need to combine the Quest 2 with the index controllers, a Vive v3.0 tracker - which goes on the user's waist, and 4 v2.0 base stations). It would be great if you have some work/paper which measures/validates of this system that I could reference.
@bdunderscore, did you manage to test your implementation and integrate into this repository? If so, when do you plan on merging with this repository?
I read through the calibration code and noticed that you first calibrate rotation and throw away all the samples. Then you collect a new list of samples and finally calibrate the translation. What is the reason for this? Is it only so that the new sample set is transformed by the rotation, or is there a more fundamental reason for them to be new samples?
I wonder if it would be possible to make the calibration faster by using the original set of samples for the translation step too.