机器人学基础(第2版)
2.1位置和姿态的表示
位置描述: 一旦建立了坐标系,就可以用一个3×1的位置矢量对世界坐标系中的任何点进行定位。因为在世界坐标系中还有其他坐标系,因此必须在位置矢量上附加信息,表明是在哪个坐标被定义的。位置矢量用一个前置的上标来表明其参考坐标系。例如: A P ^AP AP。表明 A P ^AP AP的数值是在坐标系{A}中的表示。矢量中的各个元素用下标x,y,z来表示:
(2.1)
A
P
=
[
p
x
p
y
p
z
]
^AP=\begin{bmatrix} p_{x} \\ p_{y} \\ p_{z} \end{bmatrix} \tag{2.1}
AP=⎣⎡pxpypz⎦⎤(2.1)
姿态描述:物体的姿态(orientation)。物体的姿态可由某个固接于此物体的坐标系描述。为了规定空间某刚体B的姿态,设置直角坐标系{B}与此刚体固接。用坐标系{B}的三个单位主矢量
x
B
,
y
B
,
z
B
x_B,y_B,z_B
xB,yB,zB相对于参考坐标系{A}的方向余弦组成的3X3矩阵。
(2.2) B A R = [ A x B A y B A z B ] = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 23 r 33 ] ^A_{B}R=\begin{bmatrix} ^A{x_{B}} & ^A{y_{B}} & ^A{z_{B}} \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{23} & r_{33} \end{bmatrix} \tag {2.2} BAR=[AxBAyBAzB]=⎣⎡r11r21r31r12r22r23r13r23r33⎦⎤(2.2) B A R ^A_{B}R BAR称为旋转矩阵, B A R ^A_{B}R BAR记作(矩阵{B}相对于矩阵{A}的表达),且满足条件 B A R − 1 = B A R T ^A_{B}R^{-1} = {^A_{B}R^T} BAR−1=BART; ∣ B A R ∣ = 1 \left| ^A_{B}R\right| =1 ∣∣BAR∣∣=1
于是,点的位置可用一个矢量来表示,物体的姿态可用一个矩阵来表示,上式中 r i j r_{ij} rij可用每个矢量在其参考坐标系中的单位方向上投影的分量来表示。于是 B A R {^A_B}R BAR 的各个分量可用一对单位矢量的点积来表示:
(2.3) B A R = [ A x B A y B A z B ] = [ X B ⋅ X A Y B ⋅ X A Z B ⋅ X A X B ⋅ Y A Y B ⋅ Y A Z B ⋅ Y A X B ⋅ Z A Y B ⋅ Z A Z B ⋅ Z A ] ^A_{B}R = \begin{bmatrix} ^A{x_{B}} & ^A{y_{B}} & ^A{z_{B}} \end{bmatrix} = \begin{bmatrix} X_B⋅X_A & Y_B⋅X_A & Z_B⋅X_A \\ X_B⋅Y_A & Y_B⋅Y_A & Z_B⋅Y_A \\ X_B⋅Z_A & Y_B⋅Z_A & Z_B⋅Z_A\end{bmatrix} \tag {2.3} BAR=[AxBAyBAzB]=⎣⎡XB⋅XAXB⋅YAXB⋅ZAYB⋅XAYB⋅YAYB⋅ZAZB⋅XAZB⋅YAZB⋅ZA⎦⎤(2.3)
对应于轴x,y,z作转角为
θ
\theta
θ的旋转变换,其旋转矩阵分别为:
(2.4)
R
(
x
,
θ
)
=
[
1
0
0
0
c
θ
−
s
θ
0
s
θ
c
θ
]
R\left( x,\theta \right) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & c\theta & -s\theta \\ 0 & s\theta & c\theta \end{bmatrix} \tag {2.4}
R(x,θ)=⎣⎡1000cθsθ0−sθcθ⎦⎤(2.4)
(2.5)
R
(
y
,
θ
)
=
[
c
θ
0
s
θ
0
1
0
−
s
θ
0
c
θ
]
R\left( y,\theta \right) = \begin{bmatrix} c\theta & 0 & s\theta \\ 0 & 1 & 0 \\ -s\theta & 0 & c\theta \end{bmatrix} \tag {2.5}
R(y,θ)=⎣⎡cθ0−sθ010sθ0cθ⎦⎤(2.5)
(2.6)
R
(
z
,
θ
)
=
[
c
θ
−
s
θ
0
s
θ
c
θ
0
0
0
1
]
R\left( z,\theta \right) = \begin{bmatrix} c\theta & -s\theta & 0 \\ s\theta & c\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \tag {2.6}
R(z,θ)=⎣⎡cθsθ0−sθcθ0001⎦⎤(2.6)
s表示sin,c表示cos
现在以三个欧拉角中的Rot(X)为例(其余两个欧拉角以此类推),验证一下以上说的结论。
由于
B
A
R
^A_{B}R
BAR 的的三个列向量
A
X
B
^AX_B
AXB,
A
Y
B
^AY_B
AYB 和
A
Z
B
^AZ_B
AZB都是单位矢量,且两两相互垂直,因而满足6个约束条件:
(1)
A
X
B
⋅
A
X
B
=
A
Y
B
⋅
A
Y
B
=
A
Z
B
⋅
A
Z
B
=
1
{^AX_B} ⋅ {^AX_B} = {^AY_B} ⋅ {^AY_B} = {^AZ_B} ⋅ {^AZ_B} = 1
AXB⋅AXB=AYB⋅AYB=AZB⋅AZB=1
(2)
A
X
B
⋅
A
Y
B
=
A
Y
B
⋅
A
Z
B
=
A
Z
B
⋅
A
X
B
=
0
{^AX_B} ⋅ {^AY_B} = {^AY_B} ⋅ {^AZ_B} = {^AZ_B} ⋅ {^AX_B} = 0
AXB⋅AYB=AYB⋅AZB=AZB⋅AXB=0
由于绕x轴旋转,所以我们观察
Y
B
Y_B
YB 和
Z
B
Z_B
ZB 分别在
Y
A
Y_A
YA 和
Z
A
Z_A
ZA 上的投影情况,如下图所示。
(2.7) R ( x , θ ) = [ 1 0 0 0 c θ − s θ 0 s θ c θ ] R\left( x,\theta \right) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & c\theta & -s\theta \\ 0 & s\theta & c\theta \end{bmatrix} \tag {2.7} R(x,θ)=⎣⎡1000cθsθ0−sθcθ⎦⎤(2.7)
位姿描述:我们采用位置矢量描述点的位置,而用旋转矩阵描述物体的姿态。相对于参考系{A},坐标系{B}的原点位置和坐标轴的姿态,分别由位置矢量
A
P
B
o
^AP_{B_o}
APBo和旋转矩阵
B
A
R
{^A_B}R
BAR 描述。这样,刚体B的位姿可由坐标系{B}描述,即有
(2.8)
B
=
{
B
A
R
,
A
P
B
o
}
{B}=\left\{{^A_B}R , \ ^AP_{B_o}\right\} { }\tag {2.8}
B={BAR, APBo}(2.8) 当表示位置时,式(2.8)中的旋转矩阵
B
A
R
=
I
{^A_B}R=I
BAR=I (单位矩阵);当表示姿态时,式(2.8)中位置矢量
A
P
B
o
=
o
^AP_{B_o} = o
APBo=o
参考文章:https://blog.csdn.net/qq_21834027/article/details/85041809