Восстановление абсолютного количества изменений в ротации из неполного кватернионного набора данных - PullRequest
3 голосов
/ 03 февраля 2020

(хотя этот вопрос действительно касается размерности / геометрии единичных кватернионов, я думаю, что он подходит здесь лучше, чем по математике. Поскольку он очень применим и касается обработки конкретного набора данных)

Уважаемые все ,

Я записал данные о вращении человеческой головы в виртуальной реальности, используя Unity, и допустил ошибку:

Хотя я думал, что зарегистрировал углы Эйлера x y z, я фактически зарегистрировал значения кватерниона x y z (давая мне угол поворота), пропуская значение w (которое дало бы мне величину поворота вокруг заданной оси).

Так выглядят сохраненные данные (обратите внимание на отсутствие quat_w значение):

index,quat_x,quat_y,quat_z
...
78,-0.6110323,0.03070354,0.0267202
79,-0.6051921,0.03211467,0.02481551
80,-0.5986348,0.03383164,0.02287504
81,-0.5914301,0.03582972,0.02073469
82,-0.5838193,0.03801479,0.01857705
83,-0.5749278,0.04081578,0.0161825
84,-0.5650933,0.04400427,0.01373928
85,-0.5529117,0.04804236,0.01112504
86,-0.5384405,0.05273005,0.008707636
...

(полный фрагмент в https://pastebin.com/a17nfxm9)

Информация, которую я хотел бы получить из моих данных: абсолютная величина вращения по заданному набору последующих рядов (выборки были записаны при 90 Гц). Таким образом, интуитивно, если субъекты многократно поворачивали голову, выходное значение должно быть выше, чем если бы они вращали его меньше.

Поскольку Unity использует нормализованные кватернионы, я могу восстановить четвертое пропущенное значение w до его знак (с x^2 + y^2 + z^2 + w^2 = 1). Это, однако, не дает уникальных результатов, когда я придерживаюсь всех положительных или отрицательных значений для w и применяю формулу для \theta (наименьший угол поворота для перехода от одного кватерниона к другому), представленной в этот ответ и суммируйте результаты для соседних строк.

Есть ли способ получить требуемую информацию из моего неполного набора данных или я должен отказаться от поиска?

Большое спасибо заранее.

...