二维平面的旋转表示与性质

1 定义
有时,我们需要在二维平面上处理旋转与平移问题。因此,为了方便计算,这里考虑二维平面上的表示。
在表示之前,这里对一个2维向量\(\mathbf{p}\) ,定义如下运算式  
(1)
$$
\mathbf{p}^\wedge=\begin{bmatrix}
p_x
\\
p_y
\end{bmatrix}^\wedge
=\begin{bmatrix}
0 & 1
\\
-1 & 0
\end{bmatrix} \mathbf{p}
=\begin{bmatrix}
p_y
\\
-p_x
\end{bmatrix}
$$
根据(1)的定义,可以得到如下结论  
(2)
$$
\begin{aligned}
\mathbf{p} &=-\mathbf{p}^{\wedge \wedge} =\mathbf{p}^{\wedge \wedge \wedge \wedge}
\\
(\mathbf{a}^\wedge)^T\mathbf{b}&=\mathbf{b}^T\mathbf{a}^\wedge=-\mathbf{a}^T\mathbf{b}^\wedge
\end{aligned}
$$

1.1 SO(2)
1.1.1 SO(2)定义

在平面坐标系里,只要绕着垂直平面的轴旋转指定角度,就可以得到一个旋转变换,也就是说,可以只用1个旋转角度来表示一个旋转变换。为了统一,这里约定,以右手坐标系里的x-y为平面,设绕z轴逆时针旋转 \(\theta\)角度时,得到的变换为对应为旋转变换。类似SO(3),这里定义如下SO(2)指数映射  
(3)
$$
\begin{aligned}
\exp(\theta) &= R =\begin{bmatrix}
\cos \theta & -\sin\theta
\\
\sin\theta &\cos\theta
\end{bmatrix}
\\
\log(R) &=\theta
\end{aligned}
$$
注意:

① (3)中的 \(\exp、\log\)函数本身只表示一种映射关系,也就是说\(\theta\)与\(R\)一一对应。

② 如果以正北方向为起始绕z轴逆时针旋转\(\theta\),按(3)得到的旋转矩阵表示局部到世界的表示方式,其可以直接用于坐标变化,这时得到的值可直接在一些地图软件上显示。

1.1.2 SO(2)性质
根据(3)中的定义,对于整数\(n\)有如下公式成立  
(4)
$$
\begin{aligned}
\\
\theta &= \arcsin \dfrac{R_{10}-R_{01}}{2}+2n\pi
\\
\exp(-\theta+2n\pi) &= R^T
\\
\exp(\theta_1+\theta_2+2n\pi)&=R_1R_2=R_2R_1
\\
\exp(\theta_1-\theta_2+2n\pi)&=R_1R_2^T=R_2^TR_1
\\
\exp(\theta_2-\theta_1+2n\pi)&=R_1^TR_2=R_2R_1^T
\end{aligned}
$$

1.1.3 SO(2)求导
由于SO(2)本质上只有一个的\(\theta\)变量,从公式(4)可以发现其有很好的性质,因此这里直接采用常规的加法更新求导即可。这里对常见的模型,采用常规加法规则,列举其求导结果如下  
(5) 
$$
\begin{aligned}
\dfrac{\partial R \mathbf{p}}{\partial \theta}&=
\begin{bmatrix}
\sin\theta & -\cos\theta
\\
\cos\theta &\sin\theta
\end{bmatrix}\mathbf{p}\\
&=R^T\begin{bmatrix}
0 & 1
\\
-1 & 0
\end{bmatrix}^T\mathbf{p}
\\
&=R^T(-\mathbf{p})^\wedge
\\
\\
\dfrac{\partial R^T \mathbf{p}}{\partial \theta}&=
\begin{bmatrix}
\sin\theta & \cos\theta
\\
-\cos\theta &\sin\theta
\end{bmatrix}\mathbf{p}
\\
&=R\begin{bmatrix}
0 & 1
\\
-1 & 0
\end{bmatrix}\mathbf{p}
\\
&=R\mathbf{p}^\wedge
\\
\\
\dfrac{\partial \log(R_1R_2R_3)}{\partial \theta_2}&=\dfrac{\theta_1+\theta_2+\theta_3+2n\pi}{\partial\theta_2}
\\&=1
\\
\\
\dfrac{\partial \log(R_1R_2^TR_3)}{\partial \theta_2}&=\dfrac{\theta_1-\theta_2+\theta_3+2n\pi}{\partial\theta_2}
\\&=-1
\end{aligned}
$$

1.2 SE(2)
1.2.1 SE(2)定义
由于SO(2)只能表示一个旋转,为了同时表示旋转\(\theta\)与平移\(\mathbf{t}\),这里使用3维度变量\(\xi\)来表示,即  
(6)
$$
\xi =\begin{bmatrix}
\theta
\\
\mathbf{t}
\end{bmatrix}
$$
注意,上面定义变量时直接使用旋转\(\theta\)与平移\(\mathbf{t}\)来表示,这与SE(3)不同。在SE(3)中,直接使用李代数向量来表示,里面并未直接使用\(\mathbf{t}\),因为\(\mathbf{t}\)里面还包含有旋转部分信息。这里之所以直接使用\(\theta\)与\(\mathbf{t}\),因为下面定义的SE(2)具有很好的性质,在向量与矩阵间转换中直接使用定义的映射就能快速计算。另一方面,在构建边求导过程中,这种定义也不冲突。

对于矩阵形式,参照SE(3)的构建方式,这里定义如下SE(2)映射
(7)
$$
\begin{aligned}
\exp(\xi) &= T = \begin{bmatrix}
R & \mathbf{t}
\\
\mathbf{0}^T &1
\end{bmatrix}
\\
\xi &=\log(T)
\end{aligned}
$$
注意,上面的函数\(\exp\)与\(\log\)仅表示一种映射关系。

1.2.2 SE(2)性质
根据(7)的定义,很容易得到如下性质  
(8)
$$
\begin{aligned}
T^{-1}&=
\exp(\begin{bmatrix}
-\theta+2n\pi
\\
-R^T\mathbf{t}
\end{bmatrix})
\\
T_1T_2&=\exp(\begin{bmatrix}
\theta_1+\theta_2+2n\pi
\\
R_1\mathbf{t}_2+\mathbf{t}_1
\end{bmatrix})
\end{aligned}
$$

1.2.3 SE(2)求导
由于SO(2)使用的常规加法更新求导,且(7)、(8)对加法更新具有很好的适应度,因此这里还是采用常规的加法更新求导模式,对于常见的函数,这里列举如下求导结果  
(9)
$$
\begin{aligned}
\dfrac{\partial (T\mathbf{p}')}{\partial \xi} &=\dfrac{\partial \begin{bmatrix}
R\mathbf{p}+\mathbf{t}
\\
1
\end{bmatrix}}{\partial \xi}
\\
&=\begin{bmatrix}
R\mathbf{p}^\wedge & \mathbf{I}
\\
0 & \mathbf{0}^T
\end{bmatrix}
\\
\\
\dfrac{\partial \log(T_1T_2T_3)}{\partial \xi_2} &=\dfrac{\partial \log(\begin{bmatrix}
R_1R_2R_3 &R_1R_2\mathbf{t}_3+R_1\mathbf{t}_2+\mathbf{t}_1
\\
\mathbf{0}^T & 1
\end{bmatrix})}{\partial \xi_2}
\\
&=\dfrac{\partial \begin{bmatrix}
\theta_1+\theta_2+\theta_3+2n\pi
\\R_1R_2\mathbf{t}_3+R_1\mathbf{t}_2+\mathbf{t}_1
\end{bmatrix}}{\partial \xi_2}
\\
&=\begin{bmatrix}
1 & \mathbf{0}^T
\\
R_1R_2^T(-\mathbf{t}_3)^\wedge & R_1
\end{bmatrix}
\\
\\
\dfrac{\partial \log(T_1T_2^{-1}T_3)}{\partial \xi_2} &=\dfrac{\partial \log(\begin{bmatrix}
R_1R_2^TR_3 &R_1R_2^T(\mathbf{t}_3-\mathbf{t}_2)+\mathbf{t}_1
\\
\mathbf{0}^T & 1
\end{bmatrix})}{\partial \xi_2}
\\
&=\dfrac{\partial \begin{bmatrix}
\theta_1-\theta_2+\theta_3+2n\pi
\\R_1R_2^T(\mathbf{t}_3-\mathbf{t}_2)+\mathbf{t}_1
\end{bmatrix}}{\partial \xi_2}
\\
&=\begin{bmatrix}
-1 & \mathbf{0}^T
\\
R_1R_2(\mathbf{t}_3-\mathbf{t}_2)^\wedge & -R_1R_2^T
\end{bmatrix}
\end{aligned}
$$