Комментарии 5
Как-то ниочем. Где мясо-то? Ни что такое гиперкомплексные числа, ни как с помощью из записать поворот, ни простейших преобразований, ни примеров. И группы ли тут тоже не нужны.
Кватернион это гиперкомплексное число q={w,x,y,z}=w+i∙x+j∙y+k∙z действительная часть w и 3 мнимых вектора i,j,k. Обладающие следующими свойствами i∙i=j∙j=k∙k=-1, i∙j=k, j∙i=-k, i∙k=-j, k∙i=j, j∙k=i, k∙j=-i
Далее как для обычно комплексного числа вводятся сложения, умножения и
Операция комплексного сопряжения: conj(q)={w,-x,-y,-z}
Норма q: norm(q)=q∙conj(q)=w∙w+x∙x+y∙y+z∙z
Алгебра кватенионов похожа на обычные числа, но не коммутативна т.е. надо учитывать что q1∙q2 ≠ q2∙q1
Далее можно показть что если |q|=1 то его можно записать в виде q={ cos(a/2), n∙sin(a/2) } где n единичный вектор. ( q={w,x,y,z}={ cos(a/2), nx∙sin(a/2), ny∙sin(a/2), nz∙sin(a/2) }
Тогда выражение r' = q∙r∙conj(q)
или в развёрнутом виде:
rx'=rx∙(w∙w+x∙x-y∙y-z∙z)+2∙(ry∙(x∙y+w∙z)+rz∙(x∙z-w∙y))
ry'=ry∙(w∙w-x∙x+y∙y-z∙z)+2∙(rz∙(y∙z+w∙x)+rx∙(x∙y-w∙z))
rz'=rz∙(w∙w-x∙x-y∙y+z∙z)+2∙(rx∙(x∙z+w∙y)+ry∙(y∙z-w∙x))
r'=(rx',ry',rz') будет вектором который получается из вектора r=(rx,ry,rz) путём поворота на угол a вокруг единичного вектора n=(nx,ny,nz). То есть кватернион может быть использован для описание ориентации твёрдого тела (камеры например) и его можно однозначно преобразовать в матрицу вращения и обратно. (При этом q и -q описывают одно и тоже преобразование).
Можно определить
Rx(a)={ cos(a/2), sin(a/2),0,0 }
Ry(a)={ cos(a/2), 0,sin(a/2),0 }
Rz(a)={ cos(a/2), 0,0,sin(a/2) }
При этом умножение кватернионов позволяет накапливать изменение ориентации простым умножением кватернионов. q12=q1∙q2 например Rx(a)*Rx(a)=Rx(2a)
И с помощью них явно определить координаты Эйлера или другие использемые координаты
Euler(α,β,γ)=Rz(γ)∙Rx(β)∙Rz(α)
HPR(head,pitch,roll)=Ry(head)∙Rx(pitch)∙Rz(-roll)
т.к. есть разночтения (особенно если учесть что бывают левые и правые системы отсчета).
Про rigid body motion, bundle adjustment и прочее есть замечательный курс Д. Кремерса
https://youtube.com/playlist?list=PLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4&si=hK3ere10IhOUU6Np
Спасибо за ссылку! Хороший курс, но очень много математики

Введение в Visual SLAM ч. 2: Движение твёрдого тела