一、什么是刚体运动
刚体运动:位置+姿态
例如:把相机看成三维空间的刚体,于是位置是指相机在空间中的哪个地方,而姿态则是指相机的朝向。
二、旋转矩阵
1、位置表示方法
某点在一个确定坐标系中的表示方法为:
其中
(
e
1
,
e
2
,
e
3
)
(e_1, e_2, e_3)
(e1,e2,e3)为该坐标系的基,
[
a
1
,
a
2
,
a
3
]
T
[a_1,a_2,a_3]^T
[a1,a2,a3]T为该坐标系的位置。
內积:
外积:
2、坐标系间的欧式变换
在机器人的运动过程中,常设定一个惯性坐标系(或者叫世界坐标系),可以认为它是固定不动的,如
x
W
,
y
W
,
z
W
x_W , y_W , z_W
xW,yW,zW 定义的坐标系。同时,相机或机器人则是一个移动坐标系,如
x
C
,
y
C
,
z
C
x_C , y_C , z_C
xC,yC,zC 定义的坐标系。相机视野中某个向量 p,它的坐标为
p
c
p_c
pc,而从世界坐标系下看,它的坐标
p
w
p_w
pw。这两个坐标之间通过矩阵 T 来进行变换。
我们设某个单位正交基
(
e
1
,
e
2
,
e
3
)
(e_1, e_2, e_3)
(e1,e2,e3) 经过一次旋转,变成了
(
e
′
1
,
e
′
2
,
e
′
3
)
(e′_1, e′_2, e′_3)
(e′1,e′2,e′3)。那么,对于同一个向量a(注意该向量并没有随着坐标系的旋转而发生运动),它在两个坐标系下的坐标为
[
a
1
,
a
2
,
a
3
]
T
[a_1, a_2, a_3]^T
[a1,a2,a3]T 和
[
a
′
1
,
a
′
2
,
a
′
3
]
T
[a′_1, a′_2, a′_3]^T
[a′1,a′2,a′3]T。根据坐标的定义,有:
为了描述两个坐标之间的关系,我们对上面等式左右同时左乘
[
e
1
T
,
e
2
T
,
e
3
T
]
T
[e_1^T,e_2^T,e_3^T]^T
[e1T,e2T,e3T]T,那么左边的
系数变成了单位矩阵,所以:
我们把中间的阵拿出来,定义成一个矩阵 R。矩阵R 描述了旋转本身。因此它又称为旋转矩阵。
注:旋转矩阵是一个行列式为1的正交矩阵
把旋转矩阵的集合定义如下:
S
O
(
n
)
SO(n)
SO(n)是特殊的正交群,旋转矩阵可以描述相机的旋转。
由于旋转矩阵为正交阵,它的逆(即转置)描述了一个相反的旋转。按照上面的定义方式,有:
在欧氏变换中,除了旋转之外还有一个平移。考虑世界坐标系中的向量 a,经过一次旋转(用 R 描述)和一次平移 t 后,得到了 a′,那么把旋转和平移合到一起,有:
3、变换矩阵与齐次坐标
T为变换矩阵
关于变换矩阵 T,它具有比较特别的结构:左上角为旋转矩阵,右侧为平移向量,左下角为 0 向量,右下角为 1。这种矩阵又称为特殊欧氏群(Special Euclidean Group):
与 SO(3) 一样,求解该矩阵的逆表示一个反向的变换: