前言
学SLAM一直折腾不清楚变换矩阵T or 旋转矩阵R的物理意义(主要是总是搞不清这个变换矩阵是从A到B还是B到A,当然他们之间只差一个逆就是了),于是花时间探究整理了一下,主要定义来自SLAM十四讲,和其他教材定义冲突请以具体情况为准。
正篇
1.变换矩阵T与点(常见的说法)
首先明确一点,对于空间中一点
X
X
X,以及坐标系A与坐标系B,以下说法等价(说的是一个东西):
1.把
X
X
X在A下的坐标
x
A
x_A
xA变换到
X
X
X在B下的坐标
x
B
x_B
xB的变换矩阵
T
T
T;
2.从A到B的变换矩阵
T
B
A
T_{BA}
TBA;
3.以坐标系A为基础(参考坐标系),坐标系B的变换矩阵
T
T
T。
其中1的说法是有明确数学阐述的,即 x B = T x A x_B = Tx_A xB=TxA。其他两个说法也较为常见,遇见时转化成1的说法去理解和应用即可。对于说法3,其实默认将变换矩阵 T T T作为坐标系B的一种描述了,换句话说,只要给定了基础(参考)坐标系,变换矩阵 T T T可以唯一确定坐标系B,坐标系B也可以确定一个变换矩阵 T T T。
2.变换矩阵T与坐标系(直观理解变换矩阵描述的变换)
上面的说法其实只给出了变换矩阵 T T T对点的作用,现在考虑对坐标系的作用(即对坐标系基的作用),便于直观理解变换矩阵 T T T是个怎样的变换(这里直接给出结论):
设变换矩阵
T
T
T的旋转部分(旋转矩阵)为
R
R
R,平移部分为
t
t
t,则分情况:
1.当
t
≠
0
t \neq 0
t=0 时,只关注平移部分
t
t
t即可简单区分,即坐标系B的原点坐标即为
−
t
-t
−t;
2.当
t
=
0
t = 0
t=0 时,显然有
x
B
=
R
x
A
x_B = Rx_A
xB=RxA,且坐标系B的基在坐标系A下的坐标写成列向量,并起来就会形成矩阵
R
−
1
R^{-1}
R−1。又因为旋转矩阵均为正交矩阵,即
R
R
R 的三行,就是坐标系B的三个基。
也就是说,直接看 R − 1 R^{-1} R−1就可以知道坐标系B是什么样子,自然就可以直观理解从从A到B的变换矩阵 T T T是个什么样的变换了。