nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Ликбез по кватернионам, часть 16: разложение кватерниона на повороты

Часть 1 - история вопроса
Часть 2 - основные операции
Часть 3 - запись вращения через кватернионы
Часть 4 - кватернионы и спиноры; порядок перемножения
Часть 5 - практическая реализация поворота
Часть 5 1/2 - введение метрики, "расстояния" между поворотами
Часть 6 - поворот по кратчайшему пути
Часть 6 1/4 - кратчайший поворот в общем случае
Часть 6 2/4 - поворот, совмещающий два направления
Часть 6 3/4 - кватернион из синуса и косинуса угла
Часть 7 - интегрирование угловых скоростей, углы Эйлера-Крылова
Часть 8 - интегрирование угловых скоростей, матрицы поворота
Часть 8 1/2 - ортонормирование матрицы и уравнения Пуассона
Часть 9 - интегрирование угловых скоростей с помощью кватернионов
Часть 10 - интегрирование угловых скоростей, методы 2-го порядка
Часть 10 1/2 - интегрирование с поддержанием нормы
Часть 11 - интегрирование угловых скоростей, методы высших порядков (в разработке)
Часть 12 - навигационная задача
Часть 13 - Дэвенпорт берёт след!
Часть 14 - линейный метод Мортари-Маркли
Часть 15 - среднее от двух кватернионов
Часть 15 1/2 - проверка и усреднение кватернионов
Часть 16 - разложение кватерниона на повороты

Могло сложиться впечатление, что кватернионы – «вещь в себе». Мы зачем-то их обрабатываем, получая из одних кватернионов другие кватернионы, или строя кватернионы из набора векторов (как в главах 6,9-14), но читатель вправе задать вопрос – а зачем это всё вообще надо? На табло кватернион не покажешь (показать можно, но не поймут), на двигатель не подашь, даже опорно-поворотное устройство нас не поймёт.

Вопрос вполне законный, это упущение автора, связанное со спецификой его работы.

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

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


Наверное, поэтому в этом ликбезе много посвящено измерительной части, но «просела» исполнительная часть – как правильно распорядиться кватернионом!

Основной способ приведения кватерниона назад, к «осязаемым» величинам – через преобразование (поворот) векторов. В конце концов, мы можем брать произвольный вектор и смотреть – куда он повернётся, и уже на основе преобразованных координат определять, что нам надо делать.

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


У нас есть кватернион Λ =λ0xi+λyj+λzk, выражающий определённый поворот в пространстве (поворот вокруг некоторой оси на некоторый угол). Нас же интересует, как представить этот поворот в виде композиции (последовательного действия) двух поворотов. Первый происходит по оси, перпендикулярной оси X (т.е она расположена где-то в плоскости OYZ), второй – вокруг оси X.

Такая задача возникает, в частности, при стыковке космических аппаратов. Мы получаем кватернион взаимной ориентации двух аппаратов, который можно представить в виде взаимного крена (как аппараты повёрнуты вокруг линии визирования друг относительно друга) и двух «пассивных углов», выражающих отклонение линии визирования от оси стыковочного узла.

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

Запишем полный поворот в виде композиции двух перечисленных:


Раскроем скобку:


Запишем отдельно равенства для первых двух компонент:




Возведя их в квадрат и сложив, получаем


Если нам нужно полное разложение (узнать не только значение α, но и второго кватерниона), то запишем



(с тем же успехом можно взять его со знаком "минус" - это будет второй кватернион, выражающий тот же поворот)
Подставляя μ0 в (16.1), (16.2), найдём:





Тем самым, мы узнали компоненты первого кватерниона (вращения вокруг оси X) и скалярную компоненту второго.

Теперь выпишем уравнения для оставшихся двух компонент:




Это не что иное, как поворот на плоскости на угол α/2. Чтобы найти μy и μz, произведём поворот в обратную сторону:





Задача решена.

Если нам нужно узнать лишь угол поворота по оси X, достаточно формулы


Здесь arctan2(y,x) - математическая функция, возращающая угол на плоскости между осью X и вектором (x,y), с учётом квадранта. Фактически,


эта функция присутствует в большинстве математических библиотек.

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

Из выражений (16.1), (16.2) получаем



и наконец,



Аналогично находим



Напомним, что есть достаточно простой способ осуществления обратного преобразования - получения синуса и косинуса половинных углов при известных синусе и косинусе полного угла. Подробности см. в Часть 6, дополнение 3.



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

PS. Принимаются пожелания, в каком порядке должны излагаться главы этого ликбеза. Возможно, часть из них надо переставить местами. Всякие "дополнения 3" сейчас переименую во что-то более осмысленное.
Tags: кватернионы-это просто (том 1), математика, работа
Subscribe

  • Лестница для самых жадных

    В эти выходные побывал на даче, после 3-недельной "самоизоляции". Забавно, как будто зима началась! Особенно грязные галоши остались на улице, в…

  • Возвращаемся к макету

    Очень давно макетом видеоизмерителя параметров сближения не занимался: сначала "громко думал" по поводу измерения его положения на аппарате, а потом…

  • Минутка живописи

    В процессе разгребания содержимого квартиры (после нескольких ремонтов) дошёл, наконец, и до картин. В кои-то веки их повесил. Куда их вешать -…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 6 comments