1、本文内容
四元数、罗德里格斯公式、欧拉角、旋转矩阵推导和资料
2、转载请注明出处:
https://blog.csdn.net/qq_41102371/article/details/126002167
四元数
Understanding Quaternions 中文翻译《理解四元数》 https://www.qiujiawei.com/understanding-quaternions/
http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf
几种三维空间旋转的表达方式转换
三维旋转:欧拉角、四元数、旋转矩阵、轴角之间的转换 https://zhuanlan.zhihu.com/p/45404840
彻底搞懂“旋转矩阵/欧拉角/四元数”,让你体会三维旋转之美 https://blog.csdn.net/weixin_45590473/article/details/122884112
展示欧拉角与四元数动态变换关系的网站
https://quaternions.online/
https://en.wikipedia.org/wiki/Rodrigues’_rotation_formula
罗德里格斯公式(Rodrigues Formula) https://blog.csdn.net/weixin_40215443/article/details/123950141
二维xy坐标旋转 https://blog.csdn.net/qq_41102371/article/details/116245483#t4
先放这,有空来推一遍
K
K
K是
k
k
k的叉乘矩阵,即
K
=
k
∧
\mathbf{K}=\mathbf{k}^{\land}
K=k∧,(
k
\mathbf{k}
k的叉乘矩阵也可表示为
k
×
\mathbf{k}_{\times}
k×)
1、
R
=
I
+
(
1
−
cos
θ
)
K
2
+
(
sin
θ
)
K
=
I
+
(
1
−
cos
θ
)
[
k
∧
]
2
+
(
sin
θ
)
k
∧
2、
由
K
2
=
k
∧
k
∧
=
k
k
T
−
I
\mathbf{K}^2=\mathbf{k}^{\land}\mathbf{k}^{\land}=\mathbf{k}\mathbf{k}^T-\mathbf{I}
K2=k∧k∧=kkT−I
可得
R
=
I
+
(
1
−
cos
θ
)
(
k
k
T
−
I
)
+
(
sin
θ
)
k
∧
=
cos
θ
I
+
(
1
−
cos
θ
)
k
k
T
+
(
sin
θ
)
k
∧
3、
高博的14讲中推导了指数映射

R
=
e
x
p
(
θ
k
∧
)
=
cos
θ
I
+
(
1
−
cos
θ
)
k
k
T
+
(
sin
θ
)
k
∧
\mathbf{R}=exp(\theta \mathbf{k}^{\land})=\cos\theta\mathbf{I}+(1-\cos\theta)\mathbf{k}\mathbf{k}^T+(\sin\theta)\mathbf{k}^{\land}
R=exp(θk∧)=cosθI+(1−cosθ)kkT+(sinθ)k∧
根据http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf,四元数转旋转矩阵为:


G
L
C
(
q
ˉ
)
=
(
2
q
4
2
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
q
q
T
=
(
2
q
4
2
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
[
q
×
]
2
+
2
∣
q
∣
2
⋅
I
3
×
3
=
(
2
q
4
2
+
2
∣
q
∣
2
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
[
q
×
]
2
=
(
2
q
4
2
+
2
(
q
1
2
+
q
2
2
+
q
3
2
)
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
[
q
×
]
2
=
(
2
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
[
q
×
]
2
=
I
3
×
3
−
2
q
4
[
q
×
]
+
2
[
q
×
]
2
其中
q
ˉ
=
[
q
q
4
]
=
[
q
1
,
q
2
,
q
3
,
q
4
]
T
\bar{q}=
则
G
L
R
=
[
1
−
2
q
2
2
−
2
q
3
2
2
(
q
1
q
2
+
q
3
q
4
)
2
(
q
1
q
3
−
q
2
q
4
)
2
(
q
1
q
2
−
q
3
q
4
)
1
−
2
q
1
2
−
2
q
3
2
2
(
q
2
q
3
+
q
1
q
4
)
2
(
q
1
q
3
+
q
2
q
4
)
2
(
q
2
q
3
−
q
1
q
4
)
1
−
2
q
1
2
−
2
q
2
2
]
{}_G^L\!R=
即将世界坐标系下的点
P
G
P^G
PG旋转到局部坐标系下的点
P
L
P^L
PL
P
L
=
G
L
R
P
G
P^L={}_G^L\!R P^G
PL=GLRPG
而
三维旋转:欧拉角、四元数、旋转矩阵、轴角之间的转换 https://zhuanlan.zhihu.com/p/45404840中是将局部坐标系下的点
P
L
P^L
PL转换到世界坐标系下的
P
G
P^G
PG:
L
G
R
=
[
1
−
2
q
2
2
−
2
q
3
2
2
(
q
1
q
2
−
q
3
q
4
)
2
(
q
1
q
3
+
q
2
q
4
)
2
(
q
1
q
2
+
q
3
q
4
)
1
−
2
q
1
2
−
2
q
3
2
2
(
q
2
q
3
−
q
1
q
4
)
2
(
q
1
q
3
−
q
2
q
4
)
2
(
q
2
q
3
+
q
1
q
4
)
1
−
2
q
1
2
−
2
q
2
2
]
{}_L^G\!R=
P
G
=
L
G
R
P
L
P^G={}_L^G\!R P^L
PG=LGRPL
这正好满足:
G
L
R
=
L
G
R
T
(
G
L
R
=
L
G
R
−
1
)
{}_G^L\!R ={{}_L^G\!R}^T({}_G^L\!R ={{}_L^G\!R}^{-1})
GLR=LGRT(GLR=LGR−1)
根据http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf原文当
δ
q
ˉ
\delta\bar{q}
δqˉ非常小时

以下为个人理解的推导
G
L
C
(
q
ˉ
)
=
(
2
q
4
2
−
1
)
I
3
×
3
−
2
q
4
[
q
×
]
+
2
q
q
T
≈
(
2
×
1
2
−
1
)
I
3
×
3
−
2
×
1
[
1
2
δ
θ
×
]
+
2
×
0
3
×
3
=
I
3
×
3
−
[
δ
θ
×
]
其中
q
q
T
≈
0
3
×
3
qq^T\approx0_{3\times3}
qqT≈03×3
还是参考http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf,
q
ˉ
=
[
q
q
4
]
=
[
q
1
q
2
q
3
q
4
]
=
[
k
x
sin
(
θ
/
2
)
k
y
sin
(
θ
/
2
)
k
z
sin
(
θ
/
2
)
cos
(
θ
/
2
)
]
=
[
k
^
sin
(
θ
/
2
)
cos
(
θ
/
2
)
]
,
k
^
=
[
k
x
,
k
y
,
k
z
]
T
,
q
4
=
cos
(
θ
/
2
)
\bar{q}=
文中已列出
如有错漏,敬请指正
--------------------------------------------------------------------------------------------202207