Интернет магазин китайских планшетных компьютеров



Компьютеры - Кватернионы и вращение пространства

23 января 2011





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

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

Операции вращения

В этой секции даётся очень краткое описание из книги автора Altmann.

Представление пространства вращения

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

Два вращения вокруг разных осей и на разные углы в пространстве вращений.

Любое вращение в трёхмерном пространстве — это вращение на определённый угол вокруг определённой оси. Если угол равен нулю, то выбор оси не имеет значения, таким образом вращения на угол ноль градусов — это точка в пространстве вращения. Для крошечного, но ненулевого вращения, каждое возможное вращение — это маленькая сфера, окружающая единичное вращение, где каждая точка на этой сфере представляет собой ось, указывающую в определённом направлении. Чем больше угол вращения, тем дальше вращение от единичного вращения — о таких вращениях можно думать как о концентрических сферах с увеличивающимся радиусом. Таким образом, вблизи единичного вращения абстрактное пространство вращений выглядит как обычное трёхмерное пространство. При увеличении угла до \scriptstyle 360^\circ вращения вокруг различных осей перестают расходиться и начинают становиться похожими друг на друга, становясь идентичными когда угол достигает 360 градусов.

Гиперсфера вращений для вращений имеющих "горизонтальную" ось.

Мы можем увидеть похожее поведение на поверхности сферы. Если мы расположимся на северном полюсе и начнём чертить прямые линии, исходящие из него в различных направлениях, то сначала они будут расходиться, но затем снова сойдутся на южном полюсе. Концентрические круги, получившиеся вокруг северного полюса, стянутся в одну точку на южном полюсе — когда радиус сферы сравняется с расстоянием между полюсами. Если думать о разных направлениях из полюса как о разных осях вращения, а о разных расстояниях от полюса как о разных углах вращения, то мы получим пространство для вращений. Получившаяся сфера представляет вращение в трёхмерном пространстве, хотя является двухмерной поверхностью, что не позволяет смоделировать гиперсферу. Однако двухмерную поверхность сферы можно представлять как часть гиперсферы. Мы можем взять часть, например, для представления вращения вокруг осей в плоскостях x и y. Важно отметить, что угол вращения до экватора равен 180°; до южного полюса 360°.

Северный и южный полюс представляют одинаковые вращения. Это справедливо для двух любых диаметрально противоположных точек: если одна точка — это вращение на угол α вокруг оси v, то диаметрально противоположной является точка с вращением на угол \scriptstyle 360^\circ - \alpha вокруг оси −v. Таким образом, пространство вращений является не самой гиперсферой, а гиперсферой радиуса π с отождествлёнными диаметрально противоположными точками. Однако для большинства целей можно думать о вращениях как о точках на сфере, несмотря на то что они обладают двойной избыточностью.

Определение пространства вращения

Поверхность сферы можно охарактеризовать двумя координатами, например широтой и долготой. Однако такие координаты как широта и долгота на северном и южном полюсах начинают вести себя неопределённо, хотя северный и южный полюса принципиально не отличаются от любой другой точки поверхности сферы. Это показывает, что ни одна координатная система не может двумя координатами охарактеризовать положение в пространстве. Этого можно избежать поместив сферу в трёхмерное пространство, охарактеризовав её декартовыми координатами, помещая северный полюс на =, южный полюс на =, а экватор на w = 0, x² + y² = 1. Точки на сфере удовлетворяют отношению w² + x² + y² = 1. В итоге получаются две степени свободы, хотя имеется три координаты. Точка представляет вращение вокруг осей на угол \alpha = 2 \arccos w = 2 \arcsin \sqrt{x^2+y^2}.

Таким же образом гиперсферическое пространство трёхмерных вращений может быть охарактеризовано тремя углами, однако любое такое представление начинает вырождаться на некоторых точках гиперсферы. Этой проблемы можно избежать, используя евклидовы координаты w, x, y, z, где w² + x² + y² + z² = 1. Точка представляет вращение вокруг осей на угол \alpha = 2 \arccos w = 2 \arcsin \sqrt{x^2+y^2+z^2}.

Коротко о кватернионах

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

 = ac + ad\mathbf{i} + b\mathbf{i}c + b\mathbf{i}d\mathbf{i} = ac + ad\mathbf{i} + bc\mathbf{i} + bd\mathbf{i}^2 = + \mathbf{i}.

Таким же образом кватернионы могут быть определены введением абстрактных символов i, j, k, умножение которых задаются по правилу

\mathbf{i}^2 = \mathbf{j}^2 = \mathbf{k}^2 = -1
\mathbf{i}\mathbf{j} = \mathbf{k}
\mathbf{j}\mathbf{k} = \mathbf{i}
\mathbf{k}\mathbf{i} = \mathbf{j}

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

 = ae + be\mathbf{i} - bh\mathbf{j} + ah\mathbf{k}.

Мнимая часть b\mathbf{i} + c\mathbf{j} + d\mathbf{k} кватерниона ведёт себя так же, как и вектор  \in \R^3, а вещественная часть a ведёт себя так же, как и скаляр в \R. При использовании кватернионов удобнее описывать их как скаляр и вектор и использовать векторное и скалярное произведения \times и \cdot. При этом они связаны с обычным кватернионным умножением следующей формулой:

\mathbf{v} \times \mathbf{w} = \mathbf{vw} + \mathbf{v} \cdot \mathbf{w}.

Векторное произведение некоммутативно, а произведения скаляр-скаляр и скаляр-вектор коммутативны. Из этих правил следует:

 = +.

Обратным для ненулевого кватерниона s + \mathbf{v} является

^{-1} = \frac{s - \mathbf{v}}{s^2 + |\mathbf{v}|^2},

что может быть проверено прямым вычислением.

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

Допустим — координаты вращения, согласно прежнему описанию. Тогда кватернион q можно определить как

q = w + x\mathbf{i} + y\mathbf{j} + z\mathbf{k} = w + = \cos + \mathbf{u} \sin,

где \mathbf{u} — единичный вектор. Таким образом, произведение

q \mathbf{v} q^{-1}

вращает вектор \mathbf{v} на угол α вокруг оси \mathbf{u}. Вращение происходит по часовой стрелке, если рассматривать вращение по направлению вектора \mathbf{u}.

Вращение на кватернионы можно объединить, перемножив их. Таким образом, вращения на кватернионы p и q равно

p q \mathbf{v}^{-1} = p q \mathbf{v} q^{-1} p^{-1}

что то же самое, что и вращение на q, а затем на p.

Инверсия кватерниона — это то же, что и вращение в противоположном направлении, таким образом q^{-1} q = \mathbf{v}. Квадрат кватерниона — это вращение на двойной угол вокруг той же оси. В общем смысле, q — это вращение вокруг оси q на угол в n раз больший первоначального. Вместо n может быть любое вещественное число, позволяя использовать кватернионы для плавной интерполяции между двумя положениями в пространстве.

Вращение на единичный кватернион

Пусть u — это единичный вектор, а q = \cos \frac{\alpha}{2} + \mathbf{u} \sin \frac{\alpha}{2} кватернион. Наша цель показать, что

\mathbf{v}' = q \mathbf{v} q^{-1} = \left \, \mathbf{v} \, \left

вращает вектор v на угол α вокруг оси u. Раскрыв скобки, получаем

\begin{array}{lll}
\mathbf{v}' &=& \mathbf{v} \cos^2 \frac{\alpha}{2} + \sin \frac{\alpha}{2} \cos \frac{\alpha}{2} - \mathbf{uvu} \sin^2 \frac{\alpha}{2} \\
&=& \mathbf{v} \cos^2 \frac{\alpha}{2} + 2 \sin \frac{\alpha}{2} \cos \frac{\alpha}{2} - - 2 \mathbf{u}) \sin^2 \frac{\alpha}{2} \\
&=& \mathbf{v} + + \mathbf{u} \\
&=& \mathbf{v} \cos \alpha + \sin \alpha + \mathbf{u} \\
&=&) \cos \alpha + \sin \alpha + \mathbf{u} \\
&=& \mathbf{v}_{\bot} \cos \alpha + \sin \alpha + \mathbf{v}_{\|}
\end{array}

где \mathbf{v}_{\bot} и \mathbf{v}_{\|} — это компоненты вектора v, которые перпендикулярны и параллельны оси u соответственно. Получившийся результат является формулой вращения на угол α вокруг оси u.



Просмотров: 4553


<<< Кривая Безье