Roll Pitch и Yaw взаимозависимость - PullRequest
0 голосов
/ 06 мая 2019

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

Однако, когда я начинаю тестировать его, я замечаю резкие изменения рыскания при небольшом перемещении устройства по крену и тангажу. Когда устройство находится на столе и вращается в нем, кажется, дает правильные значения.

Я также замечаю, когда смотрю на рулон - который, кажется, дает правильные значения при вращении его в режиме вращения - что небольшое смещение его по высоте внезапно резко меняет значение.

Являются ли приведенные значения не изолированы друг от друга - вращения от заданной referenceframe


Обратите внимание, что в библиотеке используется кватернион - поэтому не должно быть проблемы с блокировкой карданного подвеса - или она возникает из простого представления поворота в градусах (с углами Эйлера)?

Здесь - исходный код


Edit: Я изменил реагировать на собственные датчики , чтобы дать мне отношение CMDeviceMotions на iOS (крен, тангаж, рыскание). Они дали мне вращение независимо друг от друга - что решило проблему.

1 Ответ

1 голос
/ 08 мая 2019

Замок Gimbal является неотъемлемым свойством представления поворота с использованием углов Эйлера (т. Е. Рыскание, наклон, крен или любая другая комбинация).Хотя вы правы в том, что кватернионы не страдают от этой проблемы, представление углов Эйлера, в которое вы их преобразуете, делает.

«Решение», часто используемое на практике, если вы хотите продолжать использовать углы Эйлера для представленияваши повороты - это переключиться с представления yaw-pitch-roll (xyz) на другую комбинацию, которая лучше работает в вашей системе координат - посмотрите вики-страницу для комбинаций, которые вы можете попробовать.По сути, это просто помещает замок карданного подвеса в другую комбинацию углов, но для практических применений с четко определенными диапазонами значений этого часто достаточно, чтобы избежать проблем.

В зависимости от вашего варианта использования, больше "«Правильным» решением может быть полное переключение на кватернионное представление, что полностью исключает проблему.

...