1.so(3)上的指数映射
对于so(3)中的任意元素
ϕ
\phi
ϕ我们想计算它对应的李群SO(3)中的对应元素R,根据李群与李代数的引出及解析推导有指数映射:
R
=
e
x
p
(
ϕ
∧
)
(
1.1
)
R=exp(\phi^{\wedge}) \ (1.1)
R=exp(ϕ∧) (1.1)
那么如何去计算矩阵的e指数呢?我们首先想到的就是泰勒展开:
e
x
p
(
ϕ
∧
)
=
∑
n
=
0
∞
1
n
!
(
ϕ
∧
)
n
(
1.2
)
exp(\phi^{\wedge})=\sum_{n=0}^{\infty}\frac{1}{n!}(\phi^{\wedge})^{n} \ (1.2)
exp(ϕ∧)=n=0∑∞n!1(ϕ∧)n (1.2)
但是公式(1.2)中包含矩阵的无穷次幂,计算起来很麻烦,下面将推导一种计算指数映射的简便方法:
由于 ϕ \phi ϕ是三维向量,我们可以定义模长和方向,分别记作 θ \theta θ和 a a a,于是有 ϕ = θ a ( 1.3 ) \phi=\theta a \ (1.3) ϕ=θa (1.3)。这里a是一个长度为1的方向向量,即 ∥ a ∥ = 1 ( 1.4 ) \left\|a \right\|=1 (1.4) ∥a∥=1(1.4)。
有了上述定义我们就可以进行推导了,我采用Ipad手写推导:


图1
经过上述推导最终得到公式(1.7),,如果大家学过机器人学可以发现这个公式与旋转向量到旋转矩阵的转换几乎一致,被称为罗德里格斯公式,这表明so(3)就是由所谓的旋转向量组成的空间。通过这个公式可以把so(3)中任意一个向量对应到一个位于SO(3)中的旋转矩阵。
反之如果定义对数映射,也能把SO(3)中的元素对应到so(3)中:
ϕ
=
l
n
(
R
)
∨
=
(
∑
n
=
0
∞
(
−
1
)
n
n
+
1
(
R
−
I
)
n
+
1
)
∨
(
1.8
)
\phi=ln(R)^{\vee}=(\sum_{n=0}^{\infty}\frac{(-1)^{n}}{n+1}(R-I)^{n+1})^{\vee} \ (1.8)
ϕ=ln(R)∨=(n=0∑∞n+1(−1)n(R−I)n+1)∨ (1.8)
和指数映射一样,我们没必要直接使用泰勒展开计算对数映射,可以使用由旋转矩阵求解旋转角和旋转轴的方法,旋转角相当于
θ
\theta
θ,旋转角相当于
a
a
a,我直接给出公式:
{
θ
=
a
r
c
c
o
s
t
r
(
R
)
−
1
2
R
a
=
a
(
1.9
)
\left\{\begin{matrix} \theta=arccos \frac{tr(R)-1}{2}\\ Ra=a\\ \end{matrix}\right. \ (1.9)
{θ=arccos2tr(R)−1Ra=a (1.9)
解
R
a
=
a
Ra=a
Ra=a时等同于求矩阵R特征值1对应的特征向量。
值得注意的是,每个SO(3)中的元素,都可以找到一个so(3)元素与之对应,但是可能存在多个so(3)中的元素,对应同一个SO(3),直观的理解是旋转角
θ
\theta
θ是周期性的,多转360度和没有转是一样的。
总结一下,三维旋转李群与李代数的关系如图2所式。

图2
2.se(3)上的指数映射
首先我写一下李群SE(3):
s
e
(
3
)
=
{
ζ
=
[
ρ
ϕ
]
∈
R
6
,
ρ
∈
R
3
,
ϕ
∈
s
o
(
3
)
,
ζ
∧
=
[
ϕ
∧
ρ
0
T
0
]
∈
R
4
×
4
}
(
2.1
)
se(3)=\left\{\zeta=\begin{bmatrix} \rho \\ \phi \\ \end{bmatrix} \in \texttt{R}^{6},\rho \in \texttt{R}^{3},\phi \in so(3),\zeta^{\wedge}=\begin{bmatrix} \phi^{\wedge}&\rho \\ 0^{T} &0 \\ \end{bmatrix} \in \texttt{R}^{4\times4} \right\} \ (2.1)
se(3)={ζ=[ρϕ]∈R6,ρ∈R3,ϕ∈so(3),ζ∧=[ϕ∧0Tρ0]∈R4×4} (2.1)
然后直接写出指数映射:
e
x
p
(
ζ
∧
)
=
[
∑
n
=
0
∞
1
n
!
(
ϕ
∧
)
n
∑
n
=
0
∞
1
(
n
+
1
)
!
(
ϕ
∧
)
n
ρ
0
T
1
]
exp(\zeta^{\wedge})=\begin{bmatrix} \sum_{n=0}^{\infty}\frac{1}{n!}(\phi^{\wedge})^{n} & \sum_{n=0}^{\infty}\frac{1}{(n+1)!}(\phi^{\wedge})^{n}\rho \\ 0^{T} &1 \\ \end{bmatrix}
exp(ζ∧)=[∑n=0∞n!1(ϕ∧)n0T∑n=0∞(n+1)!1(ϕ∧)nρ1]
=
[
R
J
ρ
0
T
1
]
=
T
(
2.2
)
=\begin{bmatrix} R & J\rho \\ 0^{T} & 1 \\ \end{bmatrix}=T \ (2.2)
=[R0TJρ1]=T (2.2)
注意
J
ρ
=
t
J\rho=t
Jρ=t,
t
t
t就是传统意义上的平移矩阵。
之后进行Ipad手写证明:


图3
以上就是证明过程。
观察公式(2.2)发现该式与罗德里格斯公式有些相似,但不完全一样。平移部分经过指数映射后发生了一次以
J
J
J为系数矩阵的线性变换。
同样的,我们虽然也可以类比推得对数映射,不过根据变换矩阵T求so(3)上的对应向量也有更简便的方法:
从左上角直接计算旋转向量,而右上角的t满足:
t
=
J
ρ
(
2.6
)
t=J\rho \ (2.6)
t=Jρ (2.6)
解线性方程即可得到
ρ
\rho
ρ。
总结一下,三维变换李群与李代数的关系如图2所式。

图4
之后的博客我会去写李群和李代数如何用于优化问题,并且会介绍一些优化方法,以及3d视觉中的BA法PnP。