stringtranslate.com

Кватернионы и пространственное вращение

Единичные кватернионы , известные как версоры , предоставляют удобные математические обозначения для представления пространственной ориентации и вращения элементов в трехмерном пространстве. В частности, они кодируют информацию о повороте оси на угол вокруг произвольной оси. Кватернионы вращения и ориентации находят применение в компьютерной графике , [1] компьютерном зрении , робототехнике , [2] навигации , молекулярной динамике , динамике полета , [3] орбитальной механике спутников , [4] и анализе кристаллографических текстур . [5]

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

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

Использование кватернионов в качестве вращений

3D визуализация сферы и поворот вокруг оси Эйлера ( ) на угол

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

Кватернионы дают простой способ закодировать это [7] представление оси и угла с помощью четырех действительных чисел и могут использоваться для применения (вычисления) соответствующего поворота к вектору положения (x,y,z) , представляющему точку относительно происхождение в R 3 .

Евклидовы векторы , такие как (2, 3, 4) или ( a x ,  a y ,  a z ) , можно переписать как 2  i + 3  j + 4  k или a x i + a y j + a z k , где i , j , k — единичные векторы, представляющие три декартовых оси (традиционно x , y , z ), а также подчиняются правилам умножения фундаментальных единиц кватернионов, интерпретируя евклидов вектор ( a x ,  a y ,  a z ) как часть вектора чистого кватерниона ( 0 , ax ,  ay ,  az ) .

Вращение угла вокруг оси, определяемой единичным вектором.

может быть представлено сопряжением единичным кватернионом q . Поскольку произведение кватернионов дает 1, используя ряд Тейлора экспоненциальной функции, получается расширение формулы Эйлера :

Можно показать [8] , что желаемое вращение может быть применено  к обычному вектору в трехмерном пространстве, рассматриваемому как векторная часть чистого кватерниона , путем оценки сопряжения' с q , определяемого формулой:

используя произведение Гамильтона , где векторная часть чистого кватерниона L( p ′) = (0, r x ,  r y ,  r z ) является новым вектором положения точки после вращения. В программной реализации сопряжение достигается путем построения чистого кватерниона, векторная часть которого равна p , а затем выполнения сопряжения кватернионов. Векторная часть полученного чистого кватерниона является искомым вектором r . Очевидно, обеспечивает линейное преобразование пространства кватернионов в себя; В [9] также, поскольку оно унитарно, преобразование является изометрией. Также и так оставляет векторы параллельными инвариантами. Итак, разложив вектор, параллельный векторной части , и вектор, нормальный к векторной части , и показав, что применение к нормальной составляющей вращает его, утверждение показано. Итак, пусть будет компонентом, ортогональным векторной части и пусть . Оказывается, векторная часть имеет вид

.

Сопряжение   p с помощью   q можно выразить с помощью меньшего количества арифметических операций следующим образом:

Геометрическим фактом, независимым от кватернионов, является существование отображения два к одному от физических вращений к матрицам вращательных преобразований. Если 0 ⩽ ⩽ , физическое вращение вокруг by и физическое вращение вокруг by оба достигают одной и той же конечной ориентации за счет непересекающихся путей через промежуточные ориентации. Подставив эти векторы и углы в приведенную выше формулу для q , можно обнаружить, что если q представляет собой первое вращение, - q представляет второе вращение. Это геометрическое доказательство того, что сопряжение по q и по - q должно давать одну и ту же матрицу вращательного преобразования. Этот факт подтверждается алгебраически, если отметить, что сопряжение квадратично по q , поэтому знак q сокращается и не влияет на результат. (См. отображение SU(2) в SO(3) 2:1 ) . Если оба поворота представляют собой полуоборот , то и q , и -q будут иметь действительную координату, равную нулю. В противном случае один будет иметь положительную действительную часть, представляющую поворот на угол, меньший , а другой будет иметь отрицательную действительную часть, представляющую поворот на угол, больший, чем .

Математически эта операция переносит набор всех «чистых» кватернионов p (те, у которых действительная часть равна нулю), которые составляют трехмерное пространство среди кватернионов, в себя посредством желаемого поворота вокруг оси u на угол θ. (Каждый реальный кватернион переносится в себя в результате этой операции. Но для вращения в трехмерном пространстве мы игнорируем реальные кватернионы.)

Вращение происходит по часовой стрелке, если наша линия взгляда направлена ​​в том же направлении, что и .

В этом (каком?) случае q является единичным кватернионом и

Отсюда следует, что сопряжение произведением двух кватернионов представляет собой композицию сопряжений этими кватернионами: если p и q — единичные кватернионы, то вращение (сопряжение) на  pq есть

,

что то же самое, что вращение (сопряжение) на  q , а затем на  p . Скалярная составляющая результата обязательно равна нулю.

Кватернион, инверсный вращению, является противоположным вращением, поскольку . Квадрат вращения кватерниона — это поворот на двойной угол вокруг той же оси. В более общем смысле q n — это вращение на  угол, умноженный на n , вокруг той же оси, что и q . Это можно распространить на произвольное вещественное значение n , обеспечивая плавную интерполяцию между пространственными ориентациями; см. Слерп .

Два кватерниона вращения можно объединить в один эквивалентный кватернион соотношением:

в котором q соответствует вращению q 1 , за которым следует вращение q 2 . Таким образом, произвольное количество вращений можно скомпоновать вместе, а затем применить как одно вращение. (Обратите внимание, что умножение кватернионов не является коммутативным .)

Пример операции сопряжения

Поворот на 120° вокруг первой диагонали циклически меняет местами i , j и k .

Сопряжение p с помощью q относится к операции pqpq −1 .

Рассмотрим вращение f вокруг оси , с углом поворота 120°, или2 π/3 радианы .

pq p для q =1 + я + j + к/2на единице 3-сферы . Обратите внимание, что это одностороннее (а именно, левое ) умножение дает поворот кватернионов на 60°.

Длина равна 3 , половина угла равнаπ/3(60°) с косинусом 1/2, ( cos 60° = 0,5 ) и синус 3/2, ( синус 60° ≈ 0,866 ). Таким образом, мы имеем дело с сопряжением единичным кватернионом

Если f - функция вращения,

Можно доказать, что инверсия единичного кватерниона получается простым изменением знака его мнимых компонентов. Как следствие,

и

Это можно упростить, используя обычные правила арифметики кватернионов, до

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

Матрица вращения, полученная из кватернионов

Вращение кватерниона (с ) можно алгебраически преобразовать в вращение матрицы , где матрица вращения определяется выражением: [10]

Здесь и если q — единичный кватернион, .

Это можно получить с помощью векторного исчисления и линейной алгебры , если выразить и как скалярную и векторную части и использовать формулу для операции умножения в уравнении . Если мы напишем as , as и as , где , наше уравнение превратится в . Используя формулу умножения двух кватернионов, которые выражаются в виде скалярной и векторной частей,

это уравнение можно переписать как

где обозначает внешний продукт , является единичной матрицей и является матрицей преобразования, которая при умножении справа на вектор дает перекрестное произведение .

Поскольку , мы можем определить как , что при расширении должно привести к выражению, записанному в матричной форме выше.

Восстановление представления угла оси

Выражение вращает любой векторный кватернион вокруг оси, заданной вектором, на угол , где и зависит от кватерниона .

и может быть найден из следующих уравнений:

где - арктангенс с двумя аргументами .

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

Состав пространственных вращений

Преимущество кватернионной формулировки композиции двух вращений RB и RA состоит в том , что она непосредственно дает ось вращения и угол составного вращения RC = RB R A .

Пусть кватернион, связанный с пространственным вращением R , построен из его оси вращения S с углом поворота вокруг этой оси. Соответствующий кватернион имеет вид

RBRARC = RB R A, определяемыми.

Разверните этот продукт, чтобы получить

Разделим обе части этого уравнения на тождество, которое представляет собой закон косинусов на сфере :

Это формула Родригеса для оси составного вращения, определенной через оси двух вращений. Эту формулу он вывел в 1840 г. (см. стр. 408). [11]

Три оси вращения A , B и C образуют сферический треугольник, а двугранные углы между плоскостями, образованными сторонами этого треугольника, определяются углами поворота. Гамильтон [12] представил компонентную форму этих уравнений, показав, что произведение кватернионов вычисляет третью вершину сферического треугольника из двух заданных вершин и связанных с ними длин дуг, что также определяет алгебру для точек в эллиптической геометрии .

Композиция «ось-угол»

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

Или с тригонометрическими заменами со сложением углов ...

окончательно нормализуя ось вращения: или .

Дифференцирование по кватерниону вращения

Повернутый кватернион p' = q p q -1 необходимо дифференцировать относительно вращающегося кватерниона q , когда вращение оценивается с помощью численной оптимизации. Оценка угла поворота является важной процедурой при регистрации 3D-объекта или калибровке камеры. Для унитарного q и чисто мнимого p , то есть для вращения в трехмерном пространстве, производные повернутого кватерниона могут быть представлены с использованием обозначения матричного исчисления как

Вывод можно найти в [13] .

Фон

Кватернионы

Комплексные числа можно определить, введя абстрактный символ i , который удовлетворяет обычным правилам алгебры и, кроме того, правилу i 2 = −1 . Этого достаточно, чтобы воспроизвести все правила арифметики комплексных чисел: например:

Таким же образом кватернионы могут быть определены путем введения абстрактных символов i , j , k , которые удовлетворяют правилам i 2 = j 2 = k 2 = i j k = −1 и обычным алгебраическим правилам, за исключением коммутативного закона умножения (знакомый пример такого некоммутативного умножения есть матричное умножение ). Отсюда следуют все правила арифметики кватернионов, такие как правила умножения базисных элементов кватернионов . Используя эти правила, можно показать, что:

Мнимая часть кватерниона ведет себя как вектор в трехмерном векторном пространстве , а действительная часть a ведет себя как скаляр в R. Когда кватернионы используются в геометрии, их удобнее определять как скаляр плюс вектор :

Некоторым может показаться странным добавлять число к вектору , поскольку это объекты очень разной природы, или умножать два вектора вместе, поскольку эта операция обычно не определена. Однако, если вспомнить, что это просто обозначение действительной и мнимой частей кватерниона, это становится более законным. Другими словами, правильным рассуждением является добавление двух кватернионов: одного с нулевой векторной/мнимой частью, а другого с нулевой скалярной/действительной частью:

Мы можем выразить умножение кватернионов на современном языке векторного креста и скалярного произведения (которые на самом деле были вдохновлены кватернионами в первую очередь [14] ). При умножении векторных/мнимых частей вместо правил i 2 = j 2 = k 2 = ijk = −1 мы имеем правило умножения кватернионов:

где:

Умножение кватернионов некоммутативно (из-за перекрестного произведения, которое антикоммутирует ), тогда как скалярно-скалярное и скалярно-векторное умножение коммутирует. Из этих правил сразу следует, что ( подробнее см. ):

Мультипликативное обратное или обратное значение (левое и правое) ненулевого кватерниона определяется отношением сопряженного к норме ( см. подробности ):

что можно проверить прямым вычислением (обратите внимание на сходство с мультипликативным обратным комплексным числом ).

Идентификация вращения

Позвольте быть единичным вектором (ось вращения) и пусть . Наша цель — показать, что

дает вектор , повернутый на угол вокруг оси . Разворачивая (и учитывая, что ), мы имеем

Если мы положим и приравняем компоненты перпендикуляра и параллельности соответственно, то и , что приведет к

Используя тригонометрические тождества Пифагора и тождества двойного угла , мы тогда имеем

Это формула вращения вокруг оси u .

Операции вращения кватернионов

Очень формальное объяснение свойств, используемых в этом разделе, дает Альтман. [15]

Гиперсфера вращений

Визуализация пространства вращений

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

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

Чтобы представить себе пространство вращений, полезно рассмотреть более простой случай. Любое вращение в трех измерениях можно описать поворотом на некоторый угол вокруг некоторой оси ; для наших целей мы будем использовать вектор оси, чтобы определить направленность нашего угла. Рассмотрим частный случай, когда ось вращения лежит в плоскости xy . Затем мы можем указать ось одного из этих вращений с помощью точки на круге, через которую пересекает вектор, и выбрать радиус круга для обозначения угла поворота .

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

Обратите внимание, что с помощью этой визуализации можно увидеть ряд характеристик таких вращений и их представлений. Пространство вращений непрерывно, каждое вращение имеет окрестность вращений, которые почти одинаковы, и эта окрестность становится плоской по мере сжатия окрестности. Кроме того, каждое вращение фактически представлено двумя противоположными точками на сфере, которые находятся на противоположных концах линии, проходящей через центр сферы. Это отражает тот факт, что каждое вращение можно представить как вращение вокруг некоторой оси или, что то же самое, как отрицательное вращение вокруг оси, направленной в противоположную сторону (так называемое двойное покрытие ). «Широта» круга, представляющего определенный угол вращения, будет равна половине угла, представленного этим вращением, поскольку при перемещении точки с северного полюса на южный широта колеблется от нуля до 180 градусов, а угол вращения варьируется от 0 до 360 градусов. («Долгота» точки тогда представляет собой конкретную ось вращения.) Однако обратите внимание, что этот набор вращений не замкнут при композиции. Два последовательных вращения с осями в плоскости xy не обязательно дадут вращение, ось которого лежит в плоскости xy , и поэтому не может быть представлена ​​как точка на сфере. Этого не произойдет с общим вращением в трехмерном пространстве, в котором вращения действительно образуют замкнутое множество при композиции.

Сфера вращений для вращений, имеющих «горизонтальную» ось (в плоскости xy ).

Эту визуализацию можно расширить до общего вращения в трехмерном пространстве. Тождественное вращение представляет собой точку, а небольшой угол поворота вокруг некоторой оси можно представить как точку на сфере малого радиуса. По мере увеличения угла поворота сфера увеличивается, пока угол поворота не достигнет 180 градусов, после чего сфера начинает сжиматься, становясь точкой, когда угол приближается к 360 градусам (или нулю градусов от отрицательного направления). Этот набор расширяющихся и сжимающихся сфер представляет собой гиперсферу в четырехмерном пространстве (3-сферу). Как и в более простом примере выше, каждому вращению, представленному как точка на гиперсфере, соответствует противоположная точка на этой гиперсфере. «Широта» гиперсферы будет равна половине соответствующего угла поворота, и окрестность любой точки станет «более плоской» (т.е. будет представлена ​​трехмерным евклидовым пространством точек) по мере сжатия окрестностей. Этому поведению соответствует набор единичных кватернионов: общий кватернион представляет точку в четырехмерном пространстве, но ограничение его единичной величины дает трехмерное пространство, эквивалентное поверхности гиперсферы. Величина единичного кватерниона будет равна единице, что соответствует гиперсфере единичного радиуса. Векторная часть единичного кватерниона представляет собой радиус 2-сферы, соответствующей оси вращения, а ее величина равна синусу половины угла поворота. Каждое вращение представлено двумя единичными кватернионами противоположного знака, и, как и в пространстве вращений в трех измерениях, кватернионное произведение двух единичных кватернионов даст единичный кватернион. Кроме того, пространство единичных кватернионов «плоское» в любой бесконечно малой окрестности данного единичного кватерниона.

Параметризация пространства вращений

Мы можем параметризовать поверхность сферы двумя координатами, такими как широта и долгота. Но широта и долгота ведут себя плохо ( вырождаются , как описано в теореме о волосатом шаре ) на северном и южном полюсах, хотя полюса по своей сути не отличаются от любых других точек сферы. На полюсах (широты +90° и −90°) долгота теряет смысл.

Можно показать, что ни одна двухпараметрическая система координат не может избежать такого вырождения. Мы можем избежать таких проблем, вложив сферу в трехмерное пространство и параметризовав ее тремя декартовыми координатами ( w ,  x ,  y ) , поместив северный полюс в ( w ,  x ,  y ) = (1, 0, 0) , южный полюс в точке ( w ,  x ,  y ) = (−1, 0, 0) и экватор в точке w = 0 , x 2 + y 2 = 1 . Точки на сфере удовлетворяют ограничению w 2 + x 2 + y 2 = 1 , поэтому у нас все еще есть только две степени свободы , хотя координат три. Точка ( w ,  x ,  y ) на сфере представляет собой вращение в обычном пространстве вокруг горизонтальной оси, направленной вектором ( x ,  y , 0) на угол .

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

Объяснение свойств кватернионов с помощью вращений

Некоммутативность

Некоммутативное вращение игральных костей

Умножение кватернионов некоммутативно . Этот факт объясняет, как вообще может работать формула pq p q −1 , имеющая q q −1 = 1 по определению. Поскольку умножение единичных кватернионов соответствует композиции трехмерных вращений, это свойство можно сделать интуитивно понятным, показав, что трехмерные вращения в целом не являются коммутативными.

Рисунок справа иллюстрирует это с помощью игральных костей. Правой рукой сделайте пару поворотов на 90 градусов. Оба кубика изначально настроены так, как показано в верхнем левом углу (с 1 точкой на верхней грани). Путь A начинается с вращения вокруг оси –y (с использованием правила правой руки ), за которым следует поворот вокруг ось +z , в результате чего получается конфигурация, показанная в левом нижнем углу (5 точек на верхней грани). Путь B меняет порядок операций на обратный, в результате чего вверху появляются 3 точки.

Если у вас нет кубиков, положите две книги рядом друг с другом. Поверните один из них на 90 градусов по часовой стрелке вокруг оси Z , затем поверните его на 180 градусов вокруг оси X. Возьмите другую книгу, переверните ее сначала на 180° вокруг оси X , а затем на 90° по часовой стрелке вокруг оси Z. Эти две книги не оказываются параллельными. Это показывает, что в общем случае композиция двух разных вращений вокруг двух разных пространственных осей не коммутирует.

Ориентация

Векторное векторное произведение , используемое для определения представления оси и угла, действительно придает пространству ориентацию («направленность»): в трехмерном векторном пространстве три вектора в уравнении a  ×  b = c всегда будут образовывать правую сторону. -множество (или левостороннее множество, в зависимости от того, как определено векторное произведение), тем самым фиксируя ориентацию в векторном пространстве. Альтернативно, зависимость от ориентации выражается в обращении к такому , что задает вращение относительно осевых векторов . В кватернионном формализме выбор ориентации пространства соответствует порядку умножения: ij = k , но ji = − k . Если изменить ориентацию на противоположную, то приведенная выше формула принимает вид pq −1 p q , т. е. единица q заменяется сопряженным кватернионом – такое же поведение, как и для осевых векторов.

Альтернативные конвенции

Сообщается [16] , что существование и дальнейшее использование альтернативного соглашения о кватернионах в аэрокосмической отрасли и, в меньшей степени, в робототехнике влечет за собой значительные и постоянные затраты [ sic ]. Это альтернативное соглашение было предложено доктором медицинских наук Шустером в [17] и отходит от традиции, изменяя определение умножения базисных элементов кватернионов так, что согласно соглашению Шустера, тогда как определение Гамильтона равно . Эту конвенцию также называют «конвенцией Лаборатории реактивного движения» из-за ее использования в некоторых частях Лаборатории реактивного движения НАСА .

Согласно соглашению Шустера, формула умножения двух кватернионов изменяется так, что

Формула вращения вектора кватернионом изменена на следующую:

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

Наконец, формула преобразования кватерниона в матрицу вращения изменена и теперь выглядит так:

что в точности является транспонированием матрицы вращения, преобразованной в соответствии с традиционным соглашением.

Программные приложения по используемому условию

В таблице ниже приложения группируются по их приверженности любому соглашению о кватернионах: [16]

Хотя использование любого соглашения не влияет на возможности или корректность созданных таким образом приложений, авторы [16] утверждают, что от соглашения Шустера следует отказаться, поскольку оно отходит от гораздо более старого соглашения Гамильтона об умножении кватернионов и никогда не может быть принято области математической или теоретической физики.

Сравнение с другими представлениями вращений

Преимущества кватернионов

Представление вращения в виде кватерниона (4 числа) более компактно, чем представление в виде ортогональной матрицы (9 чисел). Более того, для заданной оси и угла можно легко построить соответствующий кватернион, и наоборот, для данного кватерниона можно легко считать ось и угол. И то и другое гораздо сложнее с матрицами или углами Эйлера .

В видеоиграх и других приложениях часто интересует «плавное вращение», означающее, что сцена должна вращаться медленно, а не за один шаг. Этого можно добиться, выбрав кривую, такую ​​как сферическая линейная интерполяция в кватернионах, где одна конечная точка представляет собой тождественное преобразование 1 (или какое-либо другое начальное вращение), а другая — предполагаемое окончательное вращение. Это более проблематично с другими представлениями вращений.

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

Кватернионы также избегают явления, называемого блокировкой карданного подвеса , которое может возникнуть, когда, например, в системах вращения по тангажу/рысканию/крену , тангаж поворачивается на 90° вверх или вниз, так что рыскание и крен соответствуют одному и тому же движению, и степень теряется свобода вращения. Например, в аэрокосмической инерциальной навигационной системе на карданном подвесе это может иметь катастрофические последствия, если самолет находится в крутом пикировании или наборе высоты.

Преобразование в матричное представление и обратно

От кватерниона к ортогональной матрице

Ортогональная матрица , соответствующая вращению единичным кватернионом z = a + b i + c j + d k| z | = 1 ), когда после умножения на вектор-столбец определяется выражением

Эта матрица вращения используется на векторе w как . Кватернионное представление этого вращения определяется следующим образом:

где сопряженный кватернион , заданный формулой

Кроме того, умножение кватернионов определяется как (при условии, что a и b являются кватернионами, как z выше):

где порядок a , b важен, поскольку векторное произведение двух векторов не является коммутативным.

Более эффективный расчет, в котором кватернион не нуждается в нормализации единицы, приведен в [20]

где определены следующие промежуточные величины:

От ортогональной матрицы к кватерниону

Следует быть осторожным при преобразовании матрицы вращения в кватернион, поскольку некоторые простые методы имеют тенденцию быть нестабильными, когда след ( сумма диагональных элементов) матрицы вращения равен нулю или очень мал. Чтобы узнать о стабильном методе преобразования ортогональной матрицы в кватернион, см. матрицу вращения#Quaternion .

Установка кватернионов

В приведенном выше разделе описано, как восстановить кватернион q из матрицы вращения Q 3 × 3 . Предположим, однако, что у нас есть некоторая матрица Q , которая не является чистым вращением - например, из-за ошибок округления - и мы хотим найти кватернион q , который наиболее точно представляет Q . В этом случае мы строим симметричную матрицу 4 × 4

и найдите собственный вектор ( x ,  y ,  z ,  w ) , соответствующий наибольшему собственному значению (это значение будет равно 1 тогда и только тогда, когда Q является чистым вращением). Полученный таким образом кватернион будет соответствовать вращению, наиболее близкому к исходной матрице Q [ сомнительно ] . [21]

Сравнение производительности

В этом разделе обсуждаются последствия использования кватернионов для производительности по сравнению с другими методами (матрицы оси/угла или вращения) для выполнения поворотов в 3D.

Полученные результаты

Только три компонента кватерниона являются независимыми, поскольку вращение представлено единичным кватернионом. Для дальнейших расчетов обычно нужны все четыре элемента, поэтому все расчеты потребуют дополнительных затрат из-за восстановления четвертого компонента. Аналогичным образом, угол-ось можно сохранить в трехкомпонентном векторе, умножив единичное направление на угол (или его функцию), но это требует дополнительных вычислительных затрат при использовании его для вычислений.

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

Используемые методы

Существует три основных подхода к вращению вектора v :

  1. Вычислите матричное произведение матрицы вращения R 3 × 3 и исходной матрицы -столбца 3 × 1 , представляющей v . Для этого требуется 3 × (3 умножения + 2 сложения) = 9 умножений и 6 сложений, что является наиболее эффективным методом вращения вектора.
  2. Вращение может быть представлено кватернионом единичной длины q = ( w ,  r ) со скалярной (действительной) частью w и векторной (мнимой) частью r . Вращение можно применить к трехмерному вектору v по формуле . Для вычисления требуется всего 15 умножений и 15 сложений (или 18 умножений и 12 сложений, если коэффициент 2 выполняется посредством умножения). Эта формула, первоначально предполагалось использовать с обозначением оси/угла (формула Родригеса), также может быть применяется к обозначениям кватернионов. Это дает тот же результат, что и менее эффективная, но более компактная формула умножения кватернионов .
  3. Используйте формулу угла/оси , чтобы преобразовать угол/ось в матрицу вращения R , затем умножить на вектор, или, аналогично, используйте формулу для преобразования обозначения кватернионов в матрицу вращения, а затем умножить на вектор. Преобразование угла/оси в R требует 12 умножений, 2 вызовов функций (sin, cos) и 10 сложений/вычитаний; из пункта 1, вращение с помощью R добавляет дополнительные 9 умножений и 6 сложений, всего 21 умножение, 16 сложений/вычитаний и 2 вызова функций (sin, cos). Преобразование кватерниона в R требует 12 умножений и 12 сложений/вычитаний; из пункта 1 вращение с помощью R добавляет еще 9 умножений и 6 сложений, всего 21 умножение и 18 сложений/вычитаний.

Пары единичных кватернионов как вращения в 4D-пространстве

Пара единичных кватернионов z l и z r может представлять любое вращение в четырехмерном пространстве . Учитывая четырехмерный вектор v и предполагая, что это кватернион, мы можем повернуть вектор v следующим образом:

Пара матриц представляет вращение ℝ 4 . Обратите внимание, что, поскольку , две матрицы должны коммутировать. Следовательно, в группе четырехмерных вращений существуют две коммутирующие подгруппы . Произвольные четырехмерные вращения имеют 6 степеней свободы; каждая матрица представляет 3 из этих 6 степеней свободы.

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

Смотрите также

Рекомендации

  1. ^ Шумейк, Кен (1985). «Анимация вращения с помощью кватернионных кривых» (PDF) . Компьютерная графика . 19 (3): 245–254. дои : 10.1145/325165.325242.Представлено на SIGGRAPH '85.
  2. ^ Дж. М. Маккарти, 1990, Введение в теоретическую кинематику, MIT Press
  3. ^ Амнон Кац (1996) Вычислительная динамика жестких транспортных средств , ISBN Krieger Publishing Co. 978-1575240169 
  4. ^ Дж. Б. Койперс (1999) Кватернионы и последовательности вращения: учебник для начинающих с приложениями к орбитам, аэрокосмической отрасли и виртуальной реальности , Princeton University Press ISBN 978-0-691-10298-6 
  5. ^ Карстен Кунце, Хельмут Шебен (ноябрь 2004 г.). «Распределение кватернионов по Бингаму и его сферическое преобразование Радона в анализе текстур». Математическая геология . 36 (8): 917–943. дои :10.1023/Б:МАТГ.0000048799.56445.59. S2CID  55009081.
  6. ^ Евклидова и неевклидова геометрия. Патрик Дж. Райан, Издательство Кембриджского университета, Кембридж, 1987.
  7. ^ И. Л. Кантор. Гиперкомплексные числа, Springer-Verlag, Нью-Йорк, 1989.
  8. ^ Эндрю Дж. Хэнсон. Визуализация кватернионов, издательство Morgan Kaufmann, Амстердам, 2006.
  9. ^ Дж. Х. Конвей и Д. А. Смит. О кватернионах и октонионах, А. К. Петерс, Натик, Массачусетс, 2003.
  10. ^ "Часто задаваемые вопросы по comp.graphics.algorithms" . Проверено 2 июля 2017 г.
  11. ^ Родригес, О. (1840), Des lois géométriques qui régissent les déplacements d'un système Solide dans l'espace, et lavariation des coordonnées provenant de ses déplacements, рассматриваемые независимо от причин, которые могут быть произведены, Journal de Mathématiques Pures et Appliquées de Liouville 5, 380–440.
  12. ^ Уильям Роуэн Гамильтон (1844–1850) О кватернионах или новой системе воображаемых чисел в алгебре, Philosophical Magazine , ссылка на коллекцию Дэвида Р. Уилкинса в Тринити-колледже, Дублин
  13. ^ Ли, Бюнг-Ук (1991), «Дифференциация с кватернионами, Приложение B» (PDF) , Стереосопоставление ориентиров черепа (докторская диссертация), Стэнфордский университет, стр. 57–58
  14. ^ Альтманн, Саймон Л. (1989). «Гамильтон, Родригес и скандал с кватернионами». Журнал «Математика» . 62 (5): 306. дои : 10.2307/2689481. JSTOR  2689481.
  15. ^ Саймон Л. Альтман (1986) Вращения, кватернионы и двойные группы , Dover Publications (см. особенно главу 12).
  16. ^ abc Соммер, Х. (2018), «Почему и как избежать умножения перевернутых кватернионов», Aerospace , 5 (3): 72, arXiv : 1801.07478 , Bibcode : 2018Aeros...5...72S, doi : 10.3390 /aerospace5030072 , ISSN  2226-4310
  17. ^ Шустер, доктор медицины (1993), «Обзор представлений об отношении», Журнал астронавтических наук , 41 (4): 439–517, Бибкод : 1993JAnSc..41..439S, ISSN  0021-9142
  18. ^ "Кватротат MATLAB Aerospace Toolbox" .
  19. ^ MATLAB Aerospace Toolbox использует соглашение умножения Гамильтона, однако, поскольку он применяет *пассивные*, а не *активные* вращения, перечисленные кватернионы фактически являются активными вращениями с использованием соглашения Шустера. [18]
  20. ^ Алан Уотт и Марк Уотт (1992) Передовые методы анимации и рендеринга: теория и практика , ACM Press ISBN 978-0201544121 
  21. ^ Бар-Ицхак, Ицхак Ю. (ноябрь – декабрь 2000 г.), «Новый метод извлечения кватерниона из матрицы вращения», Journal of Guidance, Control and Dynamics , 23 (6): 1085–1087, Bibcode : 2000JGCD.. .23.1085B, номер документа : 10.2514/2.4654, ISSN  0731-5090
  22. ^ Эберли, Д., Представления вращения и проблемы производительности.
  23. ^ "Битбакет". bitbucket.org .

дальнейшее чтение

Внешние ссылки и ресурсы