-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replacing YPR state storaging with Hmd quaternion rotation state #8
base: master
Are you sure you want to change the base?
Conversation
I also added moving the position offset to the direction of view of HMD |
Hi, thanks for your pull request, however if we reassign yprOffset we can no longer center the helmet in Euler angle mode, which is a pretty important feature |
Added a reset and rotation of the HMD quaternion to current IMU readings inside SetCentering function. Now, when we press Num5, the helmet is centered. |
As soon as I can test it, I will accept your changes, thank you very much! |
Thank you. I am glad to help you. |
Hi, I checked the fixes, unfortunately in "yaw, pitch, roll mode" the axes start "adding offsets" and stop working correctly. Does everything work correctly for you? |
Hello. Thank you for testing. I also just came across this effect of accumulation of rotation errors. I am currently in the process of finding a solution for this problem. |
Hello. I was able to eliminate the gimbal lock between the pitch and roll axes by sequentially applying separate rotation quaternions along each of the axes. Please check it with yourself. |
Thank you! I'll try to check it soon. |
Hi, I checked, it seems there is no cumulative offset now, but the axes seem to be incorrect. I will probably add something to the config for the axes settings and then implement your modifications. |
Hi. I am glad to hear that the accumulation of errors has stopped. The order in which quaternions are applied is the basis of the fix to prevent Gimbal Lock. Please keep this in mind. |
When rotating HMD left and right, we encounter a gimbal lock situation. To avoid this, I suggest storing the HDD rotation state also in a quaternion, which rotates incrementally from the IMU sensor.