Ликбез по кватернионам, часть 6 1/4, кратчайший поворот в общем случае

Jul 15, 2018 04:23

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


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

Кватернион поворота по кратчайшему пути, общий случай
Нам даны два вектора
и
произвольной длины (но не нулевые!). Мы хотим найти такой поворот, который переведёт направление
в направление
по кратчайшему пути.
Разумеется, задачу можно свести к предыдущей, отнормировав векторы
и
, но тогда нам понадобится в общей сложности три извлечения квадратного корня - мы можем и лучше!


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



(7.10)

Снова выпишем кватернион поворота по кратчайшему пути:

(7.5)

и преобразуем его, принимая во внимание (7.10):




Принимая во внимание формулу косинуса двойного угла:


Получаем выражение:




Как и раньше, нам не требуется считать знаменатель «в лоб». Лучше найдём сначала ненормированный кватернион:


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


Далее, если
, нормируем его и получаем ответ. Нулевое значение, как и раньше, возникает в ситуации, когда
и
направлены в противоположные стороны,
. Тогда поворот на 180 градусов по любому из направлений будет одинаково «коротким», и нам придётся выбрать какой-нибудь из них самостоятельно, например, тем же способом, что в главе 7.1.

Тогда, итоговый метод выглядит так:




(7.11)

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

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

UPD. Страшно подумать - я начал писать этот ликбез уже чуть более года назад... Но не беспокойтесь - у меня в загашниках лежит 3 главы, которые я пока не переложил в формат ЖЖ, 2 приложения, список литературы, да и коллекция упражнений потихоньку набирается.

кватернионы-это просто (том 1), математика, работа

Previous post Next post
Up