2.6 刚体运动与刚体变换
所有可能的刚体(Rigid Body)运动变换空间是李群的一个范例。刚体变换都是由旋转、平移和反射(reflections)构成的,实际机械没有反射。
在机器人机构学中,关心的是一系列质点组成的刚体的运动。
定义 2.10 刚体是任意两点之间距离保持不变的点的集合。若
P
P
P和
Q
Q
Q是刚体上任意两点,则当刚体运动时,必须满足
∣
∣
p
(
t
)
−
q
(
t
)
∣
∣
=
∣
∣
p
(
0
)
−
q
(
0
)
∣
∣
=
c
o
n
s
t
||p(t)-q(t)||=||p(0)-q(0)||=const
∣∣p(t)−q(t)∣∣=∣∣p(0)−q(0)∣∣=const
定义2.11 刚体运动(rigid body motion)是指物体上任意两点之间距离始终保持不变的连续运动。对于刚体而言,从一个位形到达另一个位形的刚体运动称为刚体位移(rigid body displacement)。典型的刚体位移包括平移运动(translation,简称移动)和旋转运动(rotation,简称转动)。
刚体变换定义1 对于由 R 3 R^3 R3的子集 O O O描述的刚体,其刚体运动可以用一系列连续变换 g ( t ) : O → R 3 g(t):O\rightarrow R^3 g(t):O→R3 来描述,即将刚提上各点相对于某个固定坐标系的运动描述为时间的函数。这样,刚体位移就可以用反映刚体上各点从初始位形到终止位形的单一映射 g : O → R 3 g:O\rightarrow R^3 g:O→R3 来表示,并称为刚体变换(rigid body transformation),记作 g ( p ) g(p) g(p).
刚体变换定义2 同时满足以下两个条件的变换 g : O → R 3 g: O\rightarrow R^3 g:O→R3,称为刚体变换。
(1). 保持刚体上任意两点间的距离(向量的范数)不变。
(2). 保持刚体上任意两矢量间的夹角不变。
对于刚体变换的矩阵表示,可表示为如下的
4
×
4
4\times 4
4×4矩阵
A
=
[
R
P
0
1
]
A=\begin{bmatrix} R & P\\ 0 & 1 \end{bmatrix}
A=[R0P1]
其中:
R
R
R 是
3
×
3
3\times 3
3×3 的旋转矩阵;
P
P
P是一个平移向量。
刚体变换矩阵作用于空间的一个点可以表示为:
(
q
′
1
)
=
[
R
P
0
1
]
(
q
1
)
(
R
q
+
P
1
)
\begin{pmatrix} q'\\ 1 \end{pmatrix}= \begin{bmatrix} R & P\\ 0 & 1 \end{bmatrix} \begin{pmatrix} q\\ 1 \end{pmatrix}\begin{pmatrix} Rq+P\\ 1 \end{pmatrix}
(q′1)=[R0P1](q1)(Rq+P1)
进一步地,我们得到一般刚体变换的逆为:
A
−
1
=
[
R
P
0
1
]
−
1
[
R
T
−
R
T
P
0
1
]
A^{-1}=\begin{bmatrix} R & P \\ 0 & 1 \end{bmatrix}^{-1} \begin{bmatrix} R^T & -R^TP \\ 0 & 1 \end{bmatrix}
A−1=[R0P1]−1[RT0−RTP1]
刚体的位姿描述离不开坐标系。在机构与机器人分析中,经常采用两类坐标系:
一类是与地(或机架)固定连接的定坐标系,即参考坐标系(reference coordinate frame),一般用 A {A} A 表示。
另一类是与活动构件固定连接且随之一起运动的动坐标系,称之为物体坐标系(body coordinate frame),一般用
B
B
B 表示。
A
P
=
(
x
y
z
)
,
B
P
=
(
u
v
w
)
^AP= \begin{pmatrix} x \\ y \\ z \end{pmatrix} ,^BP= \begin{pmatrix} u \\ v \\ w \end{pmatrix}
AP=
xyz
,BP=
uvw
刚体转动与三维旋转群
旋转矩阵 B A R ^A_BR BAR是一个单位正交的正定矩阵(其它各类机器人学教材都有,我这里懒得打字了)
我们可以把这样的
3
×
3
3\times 3
3×3旋转矩阵集合
R
R
R称为三维旋转群(rotation group).
S
O
(
3
)
=
{
R
∈
R
3
×
3
∣
R
T
R
=
I
,
d
e
t
R
=
1
}
SO(3)=\{R\in R^{3\times 3}| R^TR=I, det R=1\}
SO(3)={R∈R3×3∣RTR=I,detR=1}
进一步推广到
n
n
n维,即:
S
O
(
n
)
=
{
R
∈
R
n
×
n
∣
R
T
R
=
I
,
d
e
t
R
=
1
}
SO(n)=\{R\in R^{n\times n}| R^TR=I, det R=1\}
SO(n)={R∈Rn×n∣RTR=I,detR=1}
可以证明,这些旋转矩阵满足群的四大基本特征:封闭性、幺元律、可逆性与结合律。
更有趣的是,旋转矩阵
R
∈
S
O
(
3
)
R\in SO(3)
R∈SO(3) 不仅可以表示刚体上某一点在不同坐标系中的坐标变换,还可以表示刚体相对于固定坐标系旋转后的位形。用参数化的
p
(
t
)
∈
S
O
(
3
)
p(t)\in SO(3)
p(t)∈SO(3)可以表示相应的运动轨迹,可以记作:
p
(
t
)
=
R
p
(
0
)
,
t
∈
[
0
,
T
]
p(t)=Rp(0), t\in[0,T]
p(t)=Rp(0),t∈[0,T]
它也满足旋转矩阵的合成法则
C
A
R
=
B
A
R
⋅
C
B
R
^A_CR=^A_BR·^B_CR
CAR=BAR⋅CBR
此时的刚体变换性质:假设旋转变换 R ∈ S O ( 3 ) R\in SO(3) R∈SO(3)是一个刚体变化,满足:
(1).
R
R
R 保持距离不变:对任意
p
,
q
∈
R
3
p,q\in R^3
p,q∈R3,有:
∣
∣
R
q
−
R
P
∣
∣
=
∣
∣
q
−
p
∣
∣
||Rq-RP||=||q-p||
∣∣Rq−RP∣∣=∣∣q−p∣∣
(2).
R
R
R 保持两矢量夹角不变。