stringtranslate.com

Формализмы вращения в трех измерениях

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

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

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

Вращения и движения

Формализмы вращения ориентированы на собственные ( сохраняющие ориентацию ) движения евклидова пространства с одной неподвижной точкой , к которой относится вращение . Хотя физические движения с фиксированной точкой являются важным случаем (например, описанные в системе центра масс или движения сустава ) , этот подход создает знания обо всех движениях. Любое собственное движение евклидова пространства распадается на вращение вокруг начала координат и перемещение . Какой бы порядок их композиции ни был, «чистая» составляющая вращения не изменится, однозначно определяемая полным движением.

«Чистые» вращения можно также понимать как линейные карты в векторном пространстве, снабженном евклидовой структурой, а не как карты точек соответствующего аффинного пространства . Другими словами, формализм вращения фиксирует только вращательную часть движения, содержащую три степени свободы, и игнорирует поступательную часть, содержащую еще три.

Представляя вращение в виде чисел на компьютере, некоторые люди предпочитают представление кватернионов или представление ось+угол, поскольку они избегают блокировки подвеса , которая может возникнуть при вращениях Эйлера. [1]

Альтернативы формализму

Матрица вращения

Упомянутую выше триаду единичных векторов еще называют базисом . Задание координат ( компонент ) векторов этого базиса в его текущем (повернутом) положении, в терминах опорных (неповернутых) координатных осей, позволит полностью описать вращение. Три единичных вектора, û , и ŵ , которые образуют повернутый базис, каждый состоит из 3 координат, что дает в общей сложности 9 параметров.

Эти параметры можно записать как элементы матрицы A 3 ×3 , называемой матрицей вращения . Обычно координаты каждого из этих векторов располагаются вдоль столбца матрицы (однако имейте в виду, что существует и широко используется альтернативное определение матрицы вращения, где координаты векторов, определенные выше, располагаются по строкам [2 ] ).

Не все элементы матрицы вращения независимы — как гласит теорема Эйлера о вращении, матрица вращения имеет только три степени свободы.

Матрица вращения имеет следующие свойства:

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

Вышеуказанные свойства эквивалентны

( û , , ŵ )ортонормированный базис

Два последовательных вращения, представленные матрицами A 1 и A 2 , легко объединяются как элементы группы,

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

Ось и угол Эйлера (вектор вращения)

Визуализация вращения, представленная осью Эйлера и углом.

Из теоремы Эйлера о вращении мы знаем, что любое вращение можно выразить как одиночный поворот вокруг некоторой оси. Ось — это единичный вектор (уникальный, за исключением знака), который остается неизменным при вращении. Величина угла также уникальна: его знак определяется знаком оси вращения.

Ось можно представить как трехмерный единичный вектор.

θ

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

Кто-то может пожелать выразить вращение как вектор вращения или вектор Эйлера , ненормализованный трехмерный вектор, направление которого определяет ось, а длина которого равна θ ,

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

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

Эйлеровы вращения

Эйлерово вращение Земли. Внутренний (зеленый), прецессия (синий) и нутация (красный)

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

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

Используемое соглашение обычно указывается путем указания осей, вокруг которых происходят последовательные вращения (до составления), ссылаясь на них индексом (1, 2, 3) или буквой (X, Y, Z) . Сообщества инженеров и робототехников обычно используют углы Эйлера 3-1-3. Обратите внимание, что после составления независимых вращений они больше не вращаются вокруг своей оси. Самая внешняя матрица вращает две другие, оставляя вторую матрицу вращения над линией узлов, а третью в кадре, сопровождающем тело. Существует 3 × 3 × 3 = 27 возможных комбинаций трёх основных вращений, но только 3 × 2 × 2 = 12 из них можно использовать для представления произвольных трехмерных вращений в виде углов Эйлера. Эти 12 комбинаций позволяют избежать последовательных вращений вокруг одной и той же оси (например, XXY), что может уменьшить количество отображаемых степеней свободы.

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

В авиации ориентация самолета обычно выражается как внутренние углы Тейта-Брайана , соответствующие соглашению z - y' - x , которые называются курсом , возвышением и креном (или, синонимично, рысканьем , тангажем и креном ).

Кватернионы

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

Кватернионное представление вращения записывается как версор (нормализованный кватернион):

В приведенном выше определении кватернион хранится как массив в соответствии с соглашением, использованным в (Wertz 1980) и (Markley 2003). Альтернативное определение, используемое, например, в (Coutsias 1999) и (Schmidt 2001), определяет «скалярный» термин как первый элемент кватерниона, при этом другие элементы сдвинуты на одну позицию вниз.

По оси Эйлера

и угол θ компоненты этого версора выражаются следующим образом:

Проверка показывает, что параметризация кватернионов подчиняется следующему ограничению:

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

{ i , j , k }гиперкомплексные числа,

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

Таким образом, объединение двух последовательных вращений кватернионов так же просто, как использование матрицы вращения. Точно так же, как две последовательные матрицы вращения, A 1 и A 2 , объединяются как

Кватернионы являются очень популярной параметризацией благодаря следующим свойствам:

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

Кватернионы также отражают спинорный характер вращения в трех измерениях. Для трехмерного объекта, соединенного со своим (фиксированным) окружением слабыми веревками или лентами, веревки или ленты могут быть распутаны после двух полных оборотов вокруг некоторой фиксированной оси из исходного распутанного состояния. Алгебраически, кватернион, описывающий такое вращение, изменяется от скалярного значения +1 (первоначально), через (скаляр + псевдовектор) до скалярного значения -1 (за один полный оборот), через (скаляр + псевдовектор) значения обратно к скаляру +1 (при два полных оборота). Этот цикл повторяется каждые 2 хода. После 2 n оборотов (целое n > 0 ), без каких-либо промежуточных попыток распутывания, нити/ленты могут быть частично распутаны обратно в состояние 2 ( n − 1) оборотов при каждом применении той же процедуры, которая используется при распутывании от 2 оборотов к 0 поворотов. Применение одной и той же процедуры n раз вернет 2 n -запутанный объект обратно в распутанное состояние или состояние нулевого поворота. Процесс распутывания также устраняет любое скручивание, вызванное вращением самих струн/лент. Для демонстрации этих фактов можно использовать простые трехмерные механические модели.

Вектор Родригеса

Вектор Родригеса ( иногда называемый вектором Гиббса с координатами, называемыми параметрами Родригеса ) [3] [4] может быть выражен через ось и угол вращения следующим образом:

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

Он имеет разрыв при угле 180° ( π радиан): поскольку любой вектор вращения r стремится к углу в π радиан, его тангенс стремится к бесконечности.

Вращение g , за которым следует вращение f в представлении Родригеса, имеет простую форму композиции вращения.

Сегодня самый простой способ доказать эту формулу — это (точное) дублетное представление , где g = tan a и т. д.

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

RBRARC = RB R A с осью и углом вращения , определяемыми

Разверните это произведение кватернионов до

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

Это формула Родригеса для оси составного вращения, определенной через оси двухкомпонентных вращений. Эту формулу он вывел в 1840 г. (см. стр. 408). [3] Три оси вращения A , B и C образуют сферический треугольник, а двугранные углы между плоскостями, образованными сторонами этого треугольника, определяются углами поворота.

Модифицированные параметры Родригеса (MRP) можно выразить через ось Эйлера и угол следующим образом:

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

Параметры Кэли – Клейна

См. определение в Wolfram Mathworld.

Аналоги более высокой размерности

Закон векторного преобразования

Активные вращения трехмерного вектора p в евклидовом пространстве вокруг оси n на угол η можно легко записать через скалярные и векторные произведения следующим образом:

pnпроизведением
pn

является векторным произведением p на n .

Приведенная выше формула показывает, что продольная составляющая p остается неизменной, тогда как поперечная часть p поворачивается в плоскости, перпендикулярной n . Эта плоскость охватывает поперечную часть самого p и направление, перпендикулярное как p , так и n . Вращение непосредственно идентифицируется в уравнении как двумерное вращение на угол η .

Пассивные вращения можно описать той же формулой, но с обратным знаком либо η , либо n .

Формулы преобразования между формализмами

Матрица вращения ↔ углы Эйлера

Углы Эйлера ( φ , θ , ψ ) можно извлечь из матрицы вращения A путем проверки матрицы вращения в аналитической форме.

Матрица вращения → Углы Эйлера ( z - x - z внешние)

Используя соглашение x , внешние углы Эйлера 3-1-3 φ , θ и ψ (вокруг оси z , оси x и снова оси) можно получить следующим образом:

Обратите внимание, что atan2( a , b ) эквивалентен arctanа/бгде также учитывается квадрант , в котором находится точка ( b , a ) ; см. Атан2 .

При реализации преобразования необходимо учитывать несколько ситуаций: [5]

Углы Эйлера ( z - y ′- x внутренние) → матрица вращения

Матрица вращения A генерируется из внутренних углов Эйлера 3-2-1 путем умножения трех матриц, созданных вращением вокруг осей.

Оси вращения зависят от конкретного используемого соглашения. В соответствии с соглашением x вращения происходят вокруг осей x , y и z с углами φ , θ и ψ , отдельные матрицы имеют следующий вид:

Это дает

правосторонней

Интерпретация этих правосторонних матриц вращения заключается в том, что они выражают преобразования координат ( пассивные ), а не точечные преобразования ( активные ). Поскольку A выражает поворот от локального кадра 1 к глобальному кадру 0 (т. е. A кодирует оси кадра 1 относительно кадра 0 ), элементарные матрицы вращения составляются, как указано выше. Поскольку обратное вращение — это просто транспонированное вращение, если бы мы хотели выполнить глобальное вращение из кадра 0 в кадр 1 , мы бы написали

Матрица вращения ↔ ось/угол Эйлера

Если угол Эйлера θ не кратен π , ось Эйлера ê и угол θ можно вычислить из элементов матрицы вращения A следующим образом:

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

Собственное разложение матрицы вращения дает собственные значения 1 и cos θ ± i sin θ . Ось Эйлера — это собственный вектор, соответствующий собственному значению числа 1, а θ можно вычислить по остальным собственным значениям.

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

Чтобы преобразовать другим способом, матрицу вращения, соответствующую оси Эйлера ê и углу θ , можно вычислить в соответствии с формулой вращения Родригеса (с соответствующей модификацией) следующим образом:

где I 3 — единичная матрица 3 × 3 , и

матрица перекрестного произведения .

Это распространяется на:

Матрица вращения ↔ кватернион

При вычислении кватерниона из матрицы вращения возникает неоднозначность знака, поскольку q и q представляют одно и то же вращение.

Один из способов вычисления кватерниона

A

Есть три других математически эквивалентных способа вычисления q . Числовую неточность можно уменьшить, избегая ситуаций, в которых знаменатель близок к нулю. Один из трех других методов выглядит следующим образом: [6] [7]

Матрица вращения, соответствующая кватерниону q, может быть вычислена следующим образом:

или эквивалентно

Углы Эйлера ↔ кватернион

Углы Эйлера ( z - x - z внешние) → кватернион

Мы рассмотрим внешние углы Эйлера x -конвенции 3-1-3 для следующего алгоритма. Условия алгоритма зависят от используемого соглашения.

Мы можем вычислить кватернион

( φ , θ , ψ )

Углы Эйлера ( z - y ′- x внутренние) → кватернион

Кватернион, эквивалентный углам рыскания ( ψ ), тангажа ( θ ) и крена ( φ ). или внутренние углы Тейта – Брайана, соответствующие соглашению z - y ′- x , могут быть вычислены по формуле

Кватернион → Углы Эйлера ( z - x - z внешние)

Учитывая кватернион вращения

углы Эйлераx -конвенции ( φ , θ , ψ )

Кватернион → Углы Эйлера ( z - y ′- x внутренние)

Учитывая кватернион вращения

рысканиеуглы тангажавнутренние углы Тейта – Брайана,z - y ′- x

Ось Эйлера – угол ↔ кватернион

Учитывая ось Эйлера ê и угол θ , кватернион

может быть вычислено с помощью

Учитывая кватернион вращения q , определите

êθ

Матрица вращения ↔ вектор Родригеса

Вектор Родригеса → Матрица вращения

Поскольку определение вектора Родригеса может быть связано с кватернионами вращения:

q2
р

Приводим к окончательной формуле:

Формулы преобразования производных инструментов

Матрица вращения ↔ угловые скорости

Вектор угловой скорости

производной по временид А/д т

Вывод адаптирован из Иоффе [8] следующим образом:

Для любого вектора r 0 рассмотрим r ( t ) = A ( t ) r 0 и продифференцируем его:

Производная вектора — это линейная скорость его кончика. Поскольку A является матрицей вращения, по определению длина r ( t ) всегда равна длине r0 и, следовательно , не меняется со временем. Таким образом, когда r ( t ) вращается, его кончик движется по окружности, а линейная скорость его кончика касается окружности; т. е. всегда перпендикулярно r ( t ) . В этом конкретном случае связь между вектором линейной скорости и вектором угловой скорости равна

круговое движениевекторное произведение

Ввиду транзитивности приведенных выше уравнений

что подразумевает

Кватернион ↔ угловые скорости

Вектор угловой скорости

д q/д т[9]
q

И наоборот, производная кватерниона равна

Роторы в геометрической алгебре

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

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

Бивекторы в GA обладают некоторыми необычными свойствами по сравнению с векторами. Под геометрическим произведением бивекторы имеют отрицательный квадрат: бивектор x̂ŷ описывает xy -плоскость. Его квадрат равен ( x̂ŷ ) 2 = x̂ŷx̂ŷ . Поскольку единичные базисные векторы ортогональны друг другу, геометрическое произведение сводится к антисимметричному внешнему произведению — и ŷ можно свободно менять местами за счет коэффициента −1. Квадрат уменьшается до x̂x̂ŷŷ = −1 , поскольку сами базисные векторы квадратичны до +1.

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

плоскость вращенияR в степенной рядтригонометрические функцииab , равна
обратным

Пример. Вращение вокруг оси

i = x̂ŷẑ

Однако в трехмерном пространстве зачастую проще оставить выражение для = iv̂ , используя тот факт, что я коммутирует со всеми объектами в 3D, а также возводит в квадрат -1. Тогда поворот вектора в этой плоскости на угол θ равен

Признавая, что

v̂x̂v̂

Тогда результат вращения

Простая проверка этого результата — угол θ =2/3π . Такое вращение должно отобразить в ŷ . Действительно, вращение сводится к

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

R βγ
R γR α

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

Хотя роторы в геометрической алгебре работают почти идентично кватернионам в трех измерениях, сила этого формализма заключается в его общности: этот метод подходит и действителен в пространствах с любым количеством измерений. В 3D вращение имеет три степени свободы, степень для каждой линейно независимой плоскости (бивектора), в которой может происходить вращение. Известно, что пары кватернионов могут использоваться для создания вращений в 4D, что дает шесть степеней свободы. и подход геометрической алгебры подтверждает этот результат: в 4D существует шесть линейно независимых бивекторов, которые можно использовать в качестве генераторов вращений.

Угол-угол-угол

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

Натуральный логарифм кватерниона представляет собой искривление пространства на 3 угла вокруг 3 осей вращения и выражается в длине дуги; аналогичны углам Эйлера, но не зависят от порядка. [10] Существует определение формулы произведения Ли для сложения вращений, которое заключается в том, что они представляют собой сумму бесконечно малых шагов каждого вращения, применяемого последовательно; это будет означать, что вращения являются результатом всех вращений, примененных в один и тот же момент, а не серии вращений, примененных впоследствии.

Оси вращения выровнены по стандартным декартовым осям x , y , z . Эти повороты можно просто складывать и вычитать, особенно когда вращаемые кадры закреплены друг за другом, как в цепочках IK. Различия между двумя объектами, находящимися в одной системе отсчета, можно найти путем простого вычитания их ориентации. Вращения, которые применяются из внешних источников или происходят из источников относительно текущего вращения, по-прежнему требуют умножения, предусмотрено применение формулы Родригеса.

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

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

Для «читабельных» углов можно использовать 1-норму для изменения масштаба углов, чтобы они выглядели более «подходящими»:

Представление кватернионов

Вычисление базовой матрицы

Это было построено путем вращения векторов (1,0,0) , (0,1,0) , (0,0,1) и уменьшения констант.

Учитывая ввод Q = [ X , Y , Z ] ,

Которые используются для вычисления результирующей матрицы

Альтернативный базисный расчет

Альтернативно это можно использовать. Учитывая A = [ X , Y , Z ] , преобразуйте в угловую ось θ = ‖ A и [ x , y , z ] =А/А.

Вычислите некоторые частичные выражения:

Вычислите полученную матрицу:

Расширено:

Векторное вращение

Вращайте вектор v = ( X , Y , Z ) вокруг вектора вращения Q = ( X , Y , Z ) .

Угол поворота будет θ = ‖ Q .

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

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

Поворот вектора вращения

Используя составную формулу вращения Родригеса , для данного вектора вращения Q = ( X , Y , Z ) и другого вектора вращения A = ( X ′, Y ′, Z ′) для вращения кадра вокруг.

Из начальных векторов вращения извлеките углы и оси:

Результирующий угол поворота равен

Результирующая ненормализованная ось вращения:

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

И конечная координата поворота кадра:

Вращение вращения вокруг фиксированной оси

Вектор вращения Q представляет три оси; их можно использовать как сокращение для поворота вращения с использованием описанного выше метода для поворота вектора вращения. Эти выражения лучше всего представить в виде фрагментов кода.

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

Преобразование из базовой матрицы

Вычислите определитель матрицы:

результирующий угол-угол-угол равен nθ .

Преобразование из нормального вектора ( Y )

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

Это предполагает нормализованный входной вектор в направлении нормали.

xzyxZyzX
(0,0,0)
Y

Выровнять нормально, используя основу

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

Выровнять нормаль напрямую

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

и, наконец, вычислить полученный логарифмический кватернион.

Преобразование из угла оси

Это предполагает, что входная ось a = [ X , Y , Z ] нормализована. Если вращение равно нулю, результат будет равен (0,0,0)

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

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

  1. ^ «Отслеживание фидуциальных маркеров для дополненной реальности» .
  2. ^ Вайсштейн, Эрик В. «Матрица вращения». Математический мир .
  3. ^ аб Родригес, Олинде (1840). «Des lois géometriques qui regissent les déplacements d'un system Solide dans l'espace, et de lavariation des coordonnées producant de ces déplacement, рассматриваемые как независимые причины, которые могут быть произведены». Дж. Математика. Приложение Pures . 5 : 380–440.В сети
  4. ^ см. Дж. Уиллард Гиббс (1884). Элементы векторного анализа , Нью-Хейвен, с. 67
  5. ^ Конспекты лекций по прямой и обратной кинематике, стр. 5.
  6. ^ Мебиус, Йохан (2007). «Вывод формулы Эйлера-Родригеса для трехмерных вращений из общей формулы для четырехмерных вращений». arXiv : math/0701759 .
  7. ^ Шустер, Малкольм Д. (1993). «Обзор представлений об отношениях» (PDF) . Журнал астронавтических наук . 41 (4): 439–517.
  8. ^ [1] Физика - Марк Иоффе - W ( t ) в терминах матриц
  9. ^ Конспекты лекций по кватернионам и вращению, с. 14-15
  10. ^ d3x0r. «Репозиторий STFRфизики». Гитхаб .{{cite web}}: CS1 maint: numeric names: authors list (link)

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

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