Что такое кватернионы и как они используются для представления динамики космического корабля?

Название говорит само за себя. Кватернионы широко используются для представления ориентации космического корабля. Почему так и как кватернионы соотносятся с другими альтернативами?

Интересно, применима ли сноска внизу этой страницы: github.com/moble/quaternion/blob/master/README.md
@uhoh - выполните точный поиск в Google по запросу «угол Эйлера — зло» (точный означает поиск в кавычках). Вы получите много хитов.

Ответы (1)

Что такое кватернионы и как они используются в динамике космических аппаратов?

Фон

Ньютоновская механика говорит, что мы живем во Вселенной с тремя пространственными измерениями и универсальным временем, которое является независимой переменной, с помощью которой мы можем описать перемещение и вращение. Теория относительности говорит, что мы живем во Вселенной с тремя переплетенными пространственными измерениями и одним временным измерением. Этот ответ игнорирует релятивистские аспекты.

При таком допущении легко описать перенос, по крайней мере, по сравнению с вращением. Центр масс объекта имеет положение в некоторой системе отсчета (предпочтительно инерциальной), которая меняется со временем. Гравитация, сопротивление и другие взаимодействия, такие как запуск поступательных двигателей, изменяют это значение как функцию времени. Смоделируйте эти взаимодействия, и вы получите симуляцию с тремя степенями свободы (3DOF).

Что делает моделирование 3DOF таким простым, так это то, что это коммутативное пространство. Пройдите десять метров на север, а затем пять метров на восток, и вы окажетесь в определенном месте. В качестве альтернативы, пройдя пять метров на восток и десять метров на север, вы окажетесь в том же месте. Перевод в евклидово пространство коммутирует. Вращение в трехмерном пространстве не коммутативно. Возьмите книгу и поверните ее вокруг оси, параллельной корешку книги, а затем поверните книгу вокруг оси, перпендикулярной лицевой стороне книги. Выполните эти действия по-другому (сначала поверните вокруг оси, перпендикулярной лицевой стороне книги, а затем вокруг ее корешка), и вы получите другой конечный результат.

Вращения в трехмерном пространстве

Поскольку вращения в трехмерном пространстве не коммутируют, какими бы они ни были, они не являются векторами. Коммутативность — необходимое качество вектора. Поскольку вращения не являются векторами, как их представить? Оказывается, есть много разных способов представления поворотов в трехмерном пространстве. Эйлер был одним из первых, кто исследовал этот вопрос, реализовав ряд ключевых концепций. Во-первых, твердое тело, вращающееся в трехмерном пространстве, всегда можно описать как мгновенно вращающееся вокруг одной оси. Эта концепция уникальна для трехмерного пространства, а также является ключом к тому, почему кватернионы (единичные кватернионы) полезны для описания вращения. Я обращусь к этому чуть позже.

Он также понял, что ориентация планеты или твердого тела в целом может быть описана в терминах трех вращений. Эйлер использовал последовательность из трех вращений: вращение вокруг оси Z, затем еще одно вращение вокруг оси X, повернутой один раз, а затем еще одно вращение вокруг оси Z, повернутой дважды. В этой канонической последовательности ZX'-Z'' нет ничего особенного. Все, что нужно, это чтобы первое и третье вращения были вокруг одной и той же оси, закрепленной за телом, и чтобы средний элемент был вокруг оси, закрепленной за телом, ортогональной другой оси. Связанная последовательность заключается в использовании трех ортогональных осей, закрепленных на теле. Этот выбор приводит (например) к последовательности крена-тангажа-рысканья. Существует шесть классических последовательностей Эйлера (например, ZX'-Z'') плюс шесть последовательностей Тейта-Брайана (например, вращение-тангаж-рыскание). Еще одна вариация на эту тему — вращение вокруг фиксированного набора осей. Это приводит к внешним последовательностям Эйлера. В совокупности существует 24 различных вещи, которые можно назвать последовательностями вращения Эйлера.

Другой способ представления вращений - через правильную ортогональную матрицу. Ортогональная матрица — это матрица NxN, в которой каждая строка (или каждый столбец) является единичным вектором и ортогональна всем другим строкам (или столбцам). Это представление является общим; это применимо к любому N-мерному декартову пространству. Представление 3x3 представляет особый интерес, поскольку мы живем в трехмерной вселенной. Ключевая проблема с матрицей NxN, используемой для представления ориентации, заключается в том, что повороты в N-мерном пространстве имеют ( Н 2 Н ) / 2 степеней свободы, а матрица имеет Н 2 элементы. Более половины элементов матрицы являются избыточными. (Эта проблема избыточности относится и к кватернионам. Вращения в трехмерном пространстве имеют три степени свободы. Кватернионы имеют четыре элемента.)

Еще один способ представить ориентацию/вращение в трехмерном пространстве — это теорема Эйлера об одной оси. Независимо от того, насколько странно ориентировано твердое тело, всегда существует ось в сочетании с поворотом на некоторый угол вокруг этой оси, которую можно использовать для представления ориентации рассматриваемого тела относительно некоторой заданной системы отсчета. Это представление оси/угла очень близко к кватернионному представлению. Учитывая единичный вектор ты ^ и угол θ , кватернион, скалярная часть которого равна потому что ( θ / 2 ) и чья векторная часть либо ты ^ грех ( θ / 2 ) или же ты ^ грех ( θ / 2 ) фиксирует всю информацию, необходимую для представления ориентации, полностью избегая проблем сингулярности, связанных с последовательностями Эйлера, и почти избегая проблемы чрезмерной спецификации, связанной с матрицами.

WTF - это кватернионы?

Вышеизложенное вызывает вопрос. Я написал о кватернионах до обсуждения того, что такое кватернионы. Уильям Роуэн Гамильтон изо всех сил пытался найти расширение комплексных чисел, где я знак равно 1 . Наконец, во время прогулки с женой к нему пришло озарение, и он изобрел кватернионы. Чтобы не забыть это невероятное озарение, он вырезал несколько граффити на мосту:

я 2 знак равно Дж 2 знак равно к 2 знак равно я Дж к знак равно 1

табличка на мосту с уравнением

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

Существует естественная прогрессия от кватернионов, открытых после Гамильтона. Октонионы состоят из восьми элементов, один из которых является вещественной частью, а остальные семь (каким-то образом) мнимыми. Седенионы имеют шестнадцать элементов, один из которых реальный, а остальные пятнадцать — воображаемые, и так далее, со степенью двойки. Проблема в том, что на каждом шагу вверх по лестнице теряется ключевое математическое понятие. Кватернионы не коммутируют (мультипликативно), октонионы даже не ассоциируются. Sedenions и выше, как правило, довольно бесполезны.

Кватернионная математика

Кватернионы имеют два ключевых бинарных оператора: сложение и умножение, а также аддитивные и мультипликативные элементы идентичности, аддитивные инверсии и, за исключением нуля, мультипликативные инверсии. Сложение работает аналогично сложению пары четырехмерных декартовых векторов. Умножение — вот где кватернионы становятся хитрыми. Из граффити Гамильтона можно сделать вывод (например), что я Дж знак равно к но это Дж я знак равно к . Умножение кватернионов некоммутативно. Если рассматривать кватернионы как состоящие из вещественной скалярной части и векторной мнимой части, произведение двух кватернионов ( а + б ) ( с + г ) является ( а с б г ) + ( а г + с б + б × г ) .

Это дает кватернионам именно то количество беспорядка, которое необходимо для описания разницы вращения между двумя системами отсчета в трехмерном пространстве. В частности, для некоторого кватерниона д и вектор в рассматривается как чисто воображаемый кватернион, операция кватерниона д в д 1 является еще одним чисто мнимым кватернионом. Эта операция поворачивает вектор в в трехмерном пространстве. Так же и операция д 1 в д .

Единичные кватернионы

Поскольку мы имеем дело с инверсиями, имеет смысл масштабировать эти кватернионы так, чтобы они были унитарными. Инверсия кватерниона - это его сопряжение, деленное на квадрат величины. Для единичного кватерниона д , его обратный и кватернионно-сопряженный одно и то же: д 1 знак равно д * для всех единичных кватернионов д .

Другая причина использования единичных кватернионов заключается в том, что они формируют правильную математическую структуру, необходимую для представления вращения в трехмерном пространстве. Единичные кватернионы представляют собой математическую группу, как и вращения в трехмерном пространстве. Каждый единичный кватернион представляет некоторое вращение в трехмерном пространстве, и каждое вращение в трехмерном пространстве может быть представлено единичным кватернионом. На самом деле каждое вращение в трехмерном пространстве можно представить двумя единичными кватернионами. Умножьте единичный кватернион на -1, и вы получите еще один единичный кватернион, представляющий тот же поворот, что и первый. Единичные кватернионы образуют двойное покрытие при вращениях в трехмерном пространстве.

Как кватернионы используются для представления вращения в трехмерном пространстве?

Это ключевой вопрос. Ответ заключается в том, что существует очень простое соотношение между одноосным представлением вращения и единичным кватернионом. Скалярная часть (также известная как действительная часть) этого кватерниона равна потому что ( θ / 2 ) , куда θ - угол поворота одной оси, а мнимая часть - либо ты ^ грех ( θ / 2 ) или же ты ^ грех ( θ / 2 ) , куда ты ^ - единичный вектор вдоль оси вращения. Использование знака плюс или минус совершенно произвольно. Это, конечно, приводит к ряду аргументов по поводу «правильного способа сделать это». Нет правильного пути. Оба подхода одинаково верны.

Каковы некоторые из ошибок?

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

  1. Левые и правые кватернионы.
    Есть два способа использования единичных кватернионов для представления вращения или преобразования в трехмерном пространстве: д в д * или же д * в д . Оба подхода одинаково справедливы математически; единственная разница заключается в том, находится ли несопряженный кватернион перед или после вектора, который нужно преобразовать или повернуть.
  2. Преобразование против вращения кватернионов. Кватернионы можно использовать для представления физического вращения вектора в трехмерном пространстве и для представления преобразования того же вектора из одной системы координат в другую. Это оказывается сопряженными операциями.
  3. Порядок элементов.
    Кватернионы имеют четыре элемента, скалярную действительную часть и векторную мнимую часть. Что должно идти первым, реальная или мнимая часть, при их хранении или обмене с кем-то другим? Ответ заключается в том, что нет правильного ответа.
  4. Как их численно интегрировать.
    Вышеупомянутые три являются только репрезентативными вопросами. Этот последний вопрос достаточно сложен, чтобы его можно было решить отдельно.

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

Как численно интегрировать единичные кватернионы?

Есть ряд причин, по которым может потребоваться интегрировать единичный кватернион с течением времени. Ненулевая угловая скорость изменяет ориентацию космического корабля. В своей работе я использую левые кватернионы единиц преобразования. Производная по времени такого кватерниона равна д ˙ я Б знак равно 1 2 ю д я Б куда д я Б – кватернион левого преобразования инерции к корпусу КА, а ю – угловая скорость КА, выраженная в координатах корпуса. Численное интегрирование неизбежно включает в себя шаги по линии Икс ( т + Δ т ) знак равно Икс ( т ) + Икс ˙ ( т ) Δ т .

Это математически неверно для единичных кватернионов; единичные кватернионы не имеют оператора сложения. Это справедливо для кватернионов в целом, но в результате неизбежно получается неединичный кватернион. Одним из простых способов является нормализация результата. Это работает, немного, для очень маленьких шагов. За последние два десятилетия было проделано огромное количество работ по геометрическим интеграторам, в частности, по групповым интеграторам Ли. Единичные кватернионы представляют собой довольно простую группу Ли. Касательное пространство — это чисто мнимые кватернионы. Это пространство, в котором живут угловые скорости. Чисто мнимые кватернионы образуют алгебру, в частности алгебру Ли. Вся работа, проделанная над методами интеграции групп Ли, относится непосредственно к единичным кватернионам.

Это еще не все. Есть книги на эту тему. Я не хочу писать книгу, но, чтобы отдать должное этой теме, требуется немного больше, чем несколько абзацев.
Любым редакторам: мой ответ (пока) длинный и поэтому почти наверняка полон грамматических ошибок. Пожалуйста, не стесняйтесь исправлять.
Хорошая обзорная статья, которая, очевидно, не является совершенно секретной, NOFORN: введение в групповые интеграторы Lie — основы, новые разработки и приложения . Это с открытым исходным кодом и находится в свободном доступе.
Вкратце, как можно преобразовать квартенион в знакомую тангаж-рыскание-качок?
@SF См . web.archive.org/web/20160103223542/http://… . Это какой-то код, который я написал, который кто-то другой преобразовал в java, а затем сделал общедоступным. (Никаких жалоб. Я рад, что он это сделал.) Google закрыл googlecode.com, но, к счастью, archive.org зафиксировал эту ссылку. В частности, см. функцию set_from_matrix. Здесь используется матрица преобразования, а не кватернион. Преобразование кватерниона в матрицу преобразования довольно просто.
Мне нравится этот ответ. А как насчет нескольких слов о карданном замке? Блокировка карданного подвеса — одна из наиболее важных причин, по которой во многих вычислениях и моделях предпочтение отдается кватернионам, а не матрицам 3x3.
@Polygnome - Эти слова скоро появятся, замок карданного подвеса - одна из многих причин, по которым углы Эйлера (во всех 48 заклинаниях) кусают пули. Кватернионы не страдают карданной блокировкой.
Недавно я вступил в еще одну дискуссию (или спор) о том, как использовать кватернионы для представления поворотов. Другая сторона пожаловалась на то, что не использовала правильную форму. Если бы не тот факт, что они косвенно оплачивали счет, ПОЧТИ ИХ. Есть левые кватернионы ( Вопрос в Вопрос * ), правые кватернионы ( Вопрос * в Вопрос ) и кватернионы, в которых часть вектора хранится первой или последней. Не существует единственного «правильного способа» сделать это, так что вы, черт возьми, должны быть готовы и способны решать эти двусмысленности, работая с кем-то еще.
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Этот ответ чрезвычайно полезен для меня, потому что он описывает способ думать о кватернионах, который дает мне гораздо больше понимания, чем сухое математическое описание. Зная, «как они работают» и что они могут сделать, теперь гораздо легче приблизиться к математике. Есть ли шанс, что вы также можете пролить немного света на матрицу перехода состояний?
Дополнительный респект за правильное и талантливое использование фразы «напрашивается вопрос»!
@BobJacobsen - За исключением того, что я использовал его неправильно. «Задать вопрос» — это логическая ошибка, которую я, кажется, не совершал. Вместо этого я должен был написать «поднимает вопрос». Я оставлю это "напрашивается вопрос" как есть и попрошу прощения.
@ Дэвид-Хаммен Ну, разумные люди могут отличаться. Я читал, что вопрос был поднят, когда ОП написал: «Кватернионы широко используются для обозначения ориентации космического корабля. Почему это так?» Первая часть вашего ответа была примерно такой: «Вот теперь, чтобы представлять ориентацию» — эта часть вашего ответа, если оставить ее в покое, «наводила бы на вопрос», потому что предполагала, что «Кватернионы… используются для представления… ориентация»; он не отвечал на вопрос «Почему?». Но зато вы дали четкий, полный ответ на заданный вопрос. Хорошая работа! Абсолютно не нужно прощение.