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

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

Я понимаю, что обычно требуется 3 параметра для представления вращения трехмерного объекта (например, из Goldstein, Poole, and Safko, Classical Mechanics, 3rd Ed. Ch. 4). Однако я не могу быть уверен, что 3 угла Эйлера могут быть такими 3 параметрами.

На данный момент я принимаю, что для любого трехмерного поворота в группе SO(3) существует уникальная матрица, которая преобразует координаты точки в повернутом объекте. Я также принимаю, что такая матрица для вращения вокруг г -ось по углу α выражается как

р г ( α ) знак равно ( потому что α грех α 0 грех α потому что α 0 0 0 1 ) ,
и это вращение вокруг у -ось имеет аналогичное матричное представление. Поэтому я понимаю, что для данного А е С О ( 3 ) , я могу вычислить углы Эйлера, сравнивая 3 элемента А (например, некоторые элементы в 3-й строке и 3-м столбце в принятом ниже соглашении) со следующим произведением 3-х матриц, соответствующих поворотам на 3 угла Эйлера,
р г ( α ) р у ( β ) р г ( γ ) знак равно ( потому что α грех α 0 грех α потому что α 0 0 0 1 ) ( потому что β 0 грех β 0 1 0 грех β 0 потому что β ) ( потому что γ грех γ 0 грех γ потому что γ 0 0 0 1 ) .
Однако я не могу быть уверен, что рассчитанные углы Эйлера всегда приравнивают другие элементы, не используемые в расчете.

Существует ли простое доказательство без долгих алгебраических манипуляций?

«Как можно доказать, что любое вращение твердого объекта в трехмерном (3D) пространстве может быть представлено последовательностью трех вращений вокруг предварительно фиксированных осей на 3 угла Эйлера?» Но это не то, как работают вращения Эйлера - оси второго и третьего вращения (представленные матрицами в приведенной выше матричной последовательности) не фиксированы заранее, а зависят от предыдущих вращений. См. en.wikipedia.org/wiki/Euler_angles
Иногда углы Эйлера терпят неудачу, когда у вас есть вырожденная система. Так что не может быть доказательства, так как оно не будет работать для всех случаев. Кроме того, поскольку вам не нужно использовать углы Эйлера, но вы можете использовать другие методы, это означает, что углы Эйлера не являются уникальным представлением вращений.
@JohnAlexiou Даже в вырожденном случае (также известном как «карданный замок») углы Эйлера не терпят неудачу в том смысле, что решения не существует. Проблема в том, что в случае карданного замка решение не единственное.
@JánLalinský Этот вопрос касается внешних последовательностей Эйлера, серии из трех поворотов вокруг осей в исходной системе координат. Вы писали о внутренних последовательностях Эйлера, серии трех осей вращения, которые были повернуты. Они математически связаны: просто измените порядок.

Ответы (3)

Алгоритм, который решает α , β , и γ для любой заданной правильной матрицы вращения 3 × 3 представляет собой конструктивное доказательство.

р г ( α ) р у ( β ) р г ( γ ) знак равно ( потому что α грех α 0 грех α потому что α 0 0 0 1 ) ( потому что β 0 грех β 0 1 0 грех β 0 потому что β ) ( потому что γ грех γ 0 грех γ потому что γ 0 0 0 1 )

Умножение этого дает

р г у г знак равно р г ( α ) р у ( β ) р г ( γ ) знак равно ( горячий беспорядок горячий беспорядок потому что α грех β горячий беспорядок горячий беспорядок + грех α грех β грех β потому что γ грех β грех γ потому что β )

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

β знак равно арккос ( р 3 , 3 )
Обратите внимание, что два других элемента последнего столбца дают выражение для α , и что два других элемента последней строки дают выражение для γ :

α "=" арктический ( + р 2 , 3 р 1 , 3 ) β "=" арктический ( + р 3 , 2 + р 3 , 1 )
Вам нужно будет использовать версию с двумя аргументами арктический для устранения неоднозначности между (например) 60 градусов (pi/3) и 240 градусов (4/3*pi). Я не буду вдаваться в математику, но это решение повторяет «горячий беспорядок», который я проигнорировал.

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

р г у г знак равно ( ± потому что ( α + γ ) ± грех ( α + γ ) 0 грех ( α + γ ) потому что ( α + γ ) 0 0 0 ± 1 )
Вы можете решить для α + γ в случае карданного замка, но нет однозначного решения для α и γ . Это нормально; просто выберите произвольное значение (обычно ноль) для γ (или α ) и решить для другого, учитывая, что вы можете решить для α + γ .


Ваша последовательность zyz довольно странная в двух отношениях. Каноническая последовательность вращения Эйлера - это вращение вокруг z , за которым следует второе вращение вокруг оси x , повернутой один раз, за ​​которым следует третье вращение вокруг оси z , повернутой дважды . У вас есть вращение вокруг начальной оси z , за которым следует второе вращение вокруг начальной оси y , а затем третье вращение вокруг начальной оси z . Это лишь две из двадцати четырех различных последовательностей вращения, которые часто называют углами Эйлера. Во всех двадцати четырех случаях вы обнаружите, что

  • Ровно один элемент матрицы вращения либо грех β , грех β , или потому что β , куда β представляет второе вращение в последовательности (что позволяет вам решить для β ),
  • Что другие четыре элемента в той же строке / в том же столбце, что и этот специальный элемент, не являются «горячим беспорядком»,
  • За исключением случая карданного замка, это дает уникальные решения для двух других элементов последовательности вращения, и
  • В случае карданного замка вы можете решить для α + γ или α γ . В этом случае произвольно выберите значение для γ (обычно ноль), и вы сможете найти α .
Это должно быть в стороне, потому что следующая ссылка исчезнет через несколько месяцев, когда Google удалит googlecode.com. Семь лет назад я придумал, как мне казалось, умный алгоритм для обработки всех 12 внутренних углов Эйлера. Государственный служащий НАСА хотел, чтобы я опубликовал это. Я провел соответствующий поиск литературы и обнаружил, что я не так умен, как думал. Очень похожий алгоритм был опубликован в тексте компьютерной графики. Поскольку мое решение не было уникальным, ерунда ITAR не применялась, и этот государственный служащий преобразовал мой код в Java для использования в соревновании по броску. ...
Я бы добавил небольшую деталь, что для β знак равно арккос ( р 3 , 3 ) чтобы дать нам реальный угол β необходимо, чтобы | р 3 , 3 | 1 . К счастью, это гарантировано, потому что р г у г является ортонормированной матрицей.
Хотя кода Google уже давно нет, алгоритм обратного пути все еще имеет этот алгоритм: web.archive.org/web/20160103223542/http://… .

Есть конструктивное доказательство, которое можно понять интуитивно. Я предполагаю, что z вертикально, а y вперед/назад. Вы вращаете объект вокруг оси z, пока вершина не окажется где-то на плоскости xz, т.е. y=0. Это делает верхнюю часть объекта перпендикулярной оси Y, поэтому вы можете вращать вокруг оси Y, пока она не будет направлена ​​вверх. И теперь вам просто нужно повернуть его по оси Z, пока вперед не укажет правильное направление.

Если вы хотите узнать, каково было первоначальное вращение, просто выполните противоположные каждому из этих шагов и расположите их в обратном порядке. Например, если вы повернули на 10°, -30°, 50°, то для получения исходного поворота от правильного поворота это всего лишь -50°, 30°, -10°.

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

Редактировать:

Если вам нужно нечто более математическое, предположим, что у вас есть ортогональная система векторов, Икс знак равно ( Икс 1 , Икс 2 , Икс 3 ) , у знак равно ( у 1 , у 2 , у 3 ) , и г знак равно ( г 1 , г 2 , г 3 ) .

г является вершиной объекта, поэтому сначала мы поворачиваем его так, г 2 знак равно 0 . Мы просто поворачиваем его на арктический г 2 г 1 , и в итоге он указывает на г знак равно ( ± г 1 2 + г 2 2 , 0 , г 3 ) . И поверните его еще раз 180 если это получило отрицательный, а не положительный, так что это г знак равно ( г 1 2 + г 2 2 , 0 , г 3 ) . арктический г 2 г 1 действительно не определено только в случае г 1 знак равно г 2 знак равно 0 , и в этом случае не поворачивайте его вообще.

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

С у г и мы только вращаемся, у г .

Оттуда мы знаем у 3 знак равно 0 , так что у нас есть у знак равно ( у 1 , у 2 , 0 ) .

Просто поверните его на г -ось по арктический у 1 у 2 плюс дополнительный 180 если он обращен не в ту сторону, и мы получаем у знак равно ( 0 , у 1 2 + у 2 2 , 0 ) . И это только ( 0 , 1 , 0 ) , так как это единичный вектор.

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

Так как мы вращались на г -ось, и г был уже на г -ось, г знак равно г .

Все, что у нас осталось, это Икс . С Икс знак равно у × г , а мы только вращаемся, Икс знак равно у × г .

Икс знак равно ( 0 , 1 , 0 ) × ( 0 , 0 , 1 )

Икс знак равно ( 1 , 0 , 0 )

Дорогой Дэниел. Я бы очень хотел понять это рассуждение. Не могли бы вы определить «верхнюю часть» объекта. Кроме того, если бы вы могли перефразировать его так, чтобы ваш «объект» был ортогональным фреймом единичных векторов Икс ^ , Д ^ , Z ^ и описывать их образы после каждого составляющего поворота, думаю будет намного понятнее.
Спасибо Даниэль. Круто и интуитивно понятно. Я почти убежден, но я думаю, что мы можем быть более точными, как предложил WetSavannaAnimal, также известный как Род Вэнс.

Для удобства я сначала хотел бы изменить соглашение о знаках. То есть,

р г ( α ) знак равно ( потому что α грех α 0 грех α потому что α 0 0 0 1 ) , р у ( β ) знак равно ( потому что β 0 грех β 0 1 0 грех β 0 потому что β ) , р г ( γ ) знак равно ( потому что γ грех γ 0 грех γ потому что γ 0 0 0 1 ) ,
и мы считаем
р ( α , β , γ ) р г ( α ) р у ( β ) р г ( γ ) .

Далее вспомним, что трехмерная матрица вращения р ( α , β , γ ) однозначно определяется путем указания, где три единичных вектора е ^ 1 ( 1 , 0 , 0 ) Т , е ^ 2 ( 0 , 1 , 0 ) Т , и е ^ 3 ( 0 , 0 , 1 ) Т сопоставляются с. [Это на самом деле три столбца р ( α , β , γ ) .]

Это просто проверить е ^ 3 сопоставляется с

е ^ 3 р ( α , β , γ ) е ^ 3 знак равно ( грех β потому что α , грех β грех α , потому что β ) Т н ^ ( β , α ) ,
куда н ^ ( β , α ) - единичный вектор с полярным углом β и азимутальный угол α . Обратите внимание на это, настроив α и β , мы можем сделать р ( α , β , γ ) е ^ 3 быть любым единичным вектором, который мы выберем.

Далее предположим, что мы фиксируем α и β , и установите γ знак равно 0 . У нас есть е ^ 3 знак равно н ^ ( β , α ) , и два единичных вектора е ^ 1 и е ^ 2 (определяется аналогично е ^ 3 ) удовлетворяют следующим условиям:

(1) Оба лежат в плоскости, перпендикулярной н ^ ( β , α ) и содержит происхождение.

(2) Они имеют фиксированную ориентацию [потому что г е т р ( α , β , γ ) знак равно 1 ].

(3) е 1 е 2 .

Дальнейшим вращением вокруг н ^ ( β , α ) под произвольным углом γ , мы можем настроить е ^ 1 и е ^ 2 быть любыми двумя единичными векторами, удовлетворяющими указанным выше ограничениям. Следовательно, произвольная трехмерная матрица вращения М может быть представлен

М знак равно р н ^ ( α , β ) ( γ ) р ( α , β , 0 ) знак равно р н ^ ( α , β ) ( γ ) р г ( α ) р у ( β ) .
Здесь, α и β определять М е ^ 3 , а для фиксированного М е ^ 3 , γ определяет М е ^ 1 и М е ^ 2 .

Теперь обратите внимание, что р ( α , β , 0 ) отображает г единичный вектор (т.е. е ^ 3 ) к н ^ ( α , β ) . Следовательно,

р н ^ ( α , β ) ( γ ) знак равно р ( α , β , 0 ) р г ( γ ) р ( α , β , 0 ) 1 ,
и
М знак равно р н ^ ( α , β ) ( γ ) р ( α , β , 0 ) знак равно р ( α , β , 0 ) р г ( γ ) знак равно р г ( α ) р у ( β ) р г ( γ ) знак равно р ( α , β , γ ) .