激光SLAM学习笔记:一
第二章
几何学
本来这里不想记的,但是书中既然提到了坐标变换和基底变换的不同,那就写一下吧,(其实我一开始也没反应过来)
在本书中所用的旋转矩阵都是描述同一个点在不同坐标系下的坐标的变换,例如:点$P$在世界坐标系下的坐标是$p_{w}$,在汽车坐标系下的坐标是$p_{b}$,那旋转矩阵$Rwb$和平移向量$t_{wb}$就表示从汽车坐标系到世界坐标系的变换,写为:$$p_{w}=R_{wb} p_{b}+t_{wb}$$
为了能够二者的区别,现在只考虑纯旋转的情况,下面思考如何使用基底来表示这个旋转,如果用$R_{bw}$表示从世界坐标系到汽车坐标系的旋转,那汽车坐标系的基底又怎么表示呢?
这里面其实就是一个看点还是看基底的问题,直观的想:无非就是一种是考虑点相对于坐标系的运动,一个是关注坐标系相对于点的运动。它们一个是互为逆运算,下面使用简单的例子说明。
如图所示,两坐标系的关系就是汽车坐标系相对于世界坐标系旋转了$\theta$,不变的量是$\overrightarrow{OP}$都一样,变的是$P$在两个坐标系下的坐标不一样了,因为两个坐标系的基底不一样了。
假设世界坐标系的基底是$\overrightarrow{e_{1}},\overrightarrow{e_{2}}$,且$\overrightarrow{e_{1}}=(1,0),\overrightarrow{e_{2}}=(0,1)$,汽车坐标系的基底是$\overrightarrow{u_{1}},\overrightarrow{u_{2}}$,且$$\overrightarrow{OP}=a\overrightarrow{e_{1}}+b\overrightarrow{e_{2}}=c\overrightarrow{u_{1}}+d\overrightarrow{u_{2}}$$
则$$p_{w}=(a,b)^T,\;\;\;\;p_{b}=(c,d)^T$$
定义$R_{bw}$满足:$$p_{b}=R_{bw}p_{w},\;\;\;\; p_{w}=R_{bw}^{-1} p_{b}$$
下面关注基底的变换,从初始的式子入手:$$a\overrightarrow{e_{1}}+b\overrightarrow{e_{2}}=c\overrightarrow{u_{1}}+d\overrightarrow{u_{2}}$$
写为矩阵形式:$$(\overrightarrow{e_{1}},\overrightarrow{e_{2}}) (a,b)^T=(\overrightarrow{u_{1}},\overrightarrow{u_{2}}) (c,d)^T$$
其中:$$(\overrightarrow{e_{1}},\overrightarrow{e_{2}})=\left( \begin{matrix}
1 & 0 \\ 0 & 1
\end{matrix} \right
)=I$$
故:$$(a,b)^T=(\overrightarrow{u_{1}},\overrightarrow{u_{2}}) (c,d)^T$$
即:$$p_{w}=(\overrightarrow{u_{1}},\overrightarrow{u_{2}}) p_{b}$$
所以:$$(\overrightarrow{u_{1}},\overrightarrow{u_{2}})=R_{bw}^{-1}$$
可以看到基底变换和一般使用的$R$是互为逆的关系。
其实我一开始觉得这个很简单,但是一仔细想,直观上感觉是对的,但是总是感觉缺点什么,心里没法承认这个结论,所以还是写了一下,发现过程还是有一点绕的。