Кватернионные дельты с произвольной системой координат - PullRequest
0 голосов
/ 18 марта 2019

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

  • У меня есть микросхема сенсорного синтеза, которая производит кватернионы ориентации относительно системы координатчипа.Я назову эту опорную ось рамкой F .Он состоит из осей X, Y, и Z .

  • Я хочу иметь возможность установить произвольную восходящую ось и сохранитьего значение как кватерниона по отношению к F .Я назову эту ориентацию кватернионом Qp .

  • Используя Qp , я хочу повернуть кадр F , чтобы получить кадр F ', который состоит изосей X ', Y', и Z '

  • В этом примере я выбрал Qp так, чтобы Z '= X, X' = Z, Y '= Y

Теперь я хочу:

  • Пример положения датчикаQuaternion
  • Преобразовать это положение в углы Эйлера
  • Отслеживать общее перемещение по трем осям Эйлера.
  • В приведенном выше примере, если я вращаюсь вокруг оси Z ', я должен видеть соответственно увеличивающиеся / уменьшающиеся углы Зейлера.

Однако, что бы я ни пытался до сих пор, я не могу получить этот результат.Если я поверну вокруг оси Z ', значения X эйлера изменятся (это соответствует приведенному выше, где Z' = X )

Мой вопрос:

  • Какую комбинацию математики я должен сделать, чтобы получить этот результат?Кажется, что просто вычитание Qp из моих измеренных положений должно сработать, но полученные кватернионы всегда по-прежнему относительно моей исходной системы отсчета F .
  • Я также хочу, чтобы это работало для любых произвольно выбранных Qp - оси X ', Y', Z ' не всегда могут быть простыми заменами, как указано выше.

Если этой информации недостаточно, я предоставлю больше.Спасибо за ваше время всем!

1 Ответ

1 голос
/ 04 апреля 2019

У меня есть пара проблем с вопросом.Во-первых, кватернион определяет всю позицию, в то время как простая идентификация вектора «вверх», как вы предлагаете, не делает этого.Вам нужно два вектора, чтобы определить новый кадр.Начиная с «вверх», вам нужен еще один.

В любом случае, если он возвращает кватернионы, они представляют собой чип-кадр С ОТНОШЕНИЕМ к другому кадру: какой?Этот язык кажется неестественным, но он будет ясен позже при выполнении математики, поэтому напишите QF2p == Quaternion, выражая ориентацию части "p" относительно фрейма чипа или чего-то еще.Кватернион преобразует векторы из микросхемы (F) в (p) художественный кадр.(Извините, что педантично) (Кроме того, пытаясь использовать ваши подписки, переименовывая «Qp»).

Переходим: «выборка кватерниона датчика» Ваш датчик дает кватернион?Я думал, что у вас есть чип, который вычисляет кватернионы с учетом ориентации.Если у вас есть что-то, что определяет ориентацию, что это значит?Возможно другой кват?(извините, сбит с толку).

convert Quat -> euler тривиально, смотрите википедию, но следите за полярностью и определением кватернионов, по крайней мере, 2. Вам нужна помощь?

«Общее перемещение по 3 осям Эйлера» - хороший, но нетрадиционный язык: углы Эйлера, как правило, не являются «осями», потому что они не ортогональны, но вы можете интегрировать их ...

Переписать эксперимент: если выповерните вокруг z ', вы должны увидеть изменение угла Пси-Эйлера.Эйлер не является векторной или осевой системой, но я обычно упорядочиваю их [psi, theta, phi] относительно z, y, x соответственно.Заметьте, что под малыми углами вы бы предпочли [dPhi, dTheta, dPsi], чтобы изменение ориентации под малым углом (часть кватерниона) совпало с угловыми скоростями, из-за которых это произошло.Кроме того (ужасы), есть бесчисленные последовательности углов Эйлера, которые вы можете выбрать, и есть некоторые предположения о «стандартных самолетах» при выборе тех, которые я перечислю здесь.Возможно, дело в том, что если бы вы выполнили свой эксперимент, не видя таблицы проектирования вашего чипа, я бы предположил, что dPsi переместится и что это будет первый угол Эйлера.Это первый в последовательности.Как вы связываете это с «Х»?... может быть, это ошибка.

"Какую математику я должен делать?"Вычитание отношения - это умножение кватернионов.Вы не можете буквально вычесть кватернионы.

С наилучшими пожеланиями.

...