Дэвенпорт VS Мортари-Маркли, раунд 3

Sep 28, 2021 19:00

Оглавление "Ликбеза по кватернионам":
[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


Всё-таки не давала покоя мне эта тема, решил ещё чуточку поковыряться.

На этот раз выставил угол поворота в 0°. И довольно быстро увидел, что кватернионы поворота, а значит, и ошибки определения поворота у двух методов совпадают эдак до 6-го знака после запятой:




То есть, для нулевого угла методы по сути оказываются эквивалентными. В этом есть смысл...


Ведь чтобы определить, насколько точно один вектор (rk) переходит в другой (тогда мы его называли bk), в методе Мортари-Маркли мы по сути проводим касательную и отмеряем на ней отрезки нужной длины:



Если ось поворота и угол поворота верны, мы, стартуя из точки O, должны по обоим путям (через вектор rk и bk) прийти в одну и ту же точку O'. А там ещё прибавим продольную компоненту каждого вектора, ведь они тоже должны совпасть, если мы правильно выбрали поворот (часть вектора ВДОЛЬ оси поворота должна остаться неизменной).

Так вот, чем больше становится угол поворота - тем больше расстояние OO', и значит, алгоритм обращает "повышенное внимание" на совмещение векторов именно в этой плоскости (изображённой на рисунке), т.к даже малейшая ошибка в угле будет давать довольно приличную разность. Когда угол 90° (как было в первый раз), OO' больше длины векторов в корень из 2 раз, что создаёт некую "анизотропию".

Давайте в кои-то веки посчитаем ошибку измерения поворота не "в целом" по трём осям, а конкретно вдоль оси Z, если именно по оси Z был сделан поворот в 90°, то получим среднюю ошибку в 0,0844° для Дэвенпорта и 0,0841° для Мортари-Маркли, то есть, действительно по этой оси он измеряет точнее! На 0,3% точнее, но всё же!

Сходная картина наблюдается, если смотреть УГОЛ поворота, игнорируя его НАПРАВЛЕНИЕ. Средняя ошибка измерения угла составляет 0,0903° для метода Дэвенпорта и 0,0899° для Мортари-Маркли.

А вот когда угол 0°, у нас длина касательных сокращается до нуля - и расстояние OO' сокращается попросту до длины векторов, в этом случае изотропия восстанавливается - мы оцениваем компоненты разности этого вектора с равными весами. И как только это происходит - два метода начинают выдавать одинаковые данные. Полагаю, небольшие расхождения вызваны уже неточностью моего исполнения метода Дэвенпорта - я сейчас не применял метод Ньютона для уточнения собственного значения.

На этот раз победила дружба. Как видно, если угол поворота небольшой - два метода абсолютно идентичны. По мере роста угла они начинают работать по-разному, в методе Мортари-Маркли проявляется "анизотропия" - он старается очень точно найти угол поворота, но при этом куда меньше заботится об оси поворота. Может, в каких-то приложениях это даже предпочтительнее. Впрочем, если шумы измерений довольно малы - то и здесь методы начинают показывать всё более и более близкие результаты.

Poll Битва титанов

кватернионы-это просто (том 1), странные девайсы, математика, ПЛИС, программки, работа

Previous post Next post
Up