位置描述:一旦建立了坐标系,就可以用一个3×1的位置矢量对世界坐标系中的任何点进行定位。因为在世界坐标系中还有其他坐标系,因此必须在位置矢量上附加信息,表明是在哪个坐标被定义的。位置矢量用一个前置的上标来表明其参考坐标系。例如:AP。表明AP的数值是在坐标系{A}中的表示。矢量中的各个元素用下标x,y,z来表明:AP=
[
p
x
p
y
p
z
]
\left[\begin{matrix}p_x\\p_y\\p_z\end{matrix}\right]
⎣⎡pxpypz⎦⎤
姿态描述:点的位置描述可用矢量描述,姿态可用固定在物体上的坐标系来描述。描述连体坐标系{B}的一种方法是利用坐标系{A}的三个主轴单位矢量来表示。我们用
X
^
B
\hat{X}_B
X^B,
Y
^
B
\hat{Y}_B
Y^B,
Z
^
B
\hat{Z}_B
Z^B来表示坐标系{B}主轴方向的单位矢量,当用坐标系{A}的坐标表达式时,它们被写成A
X
^
B
\hat{X}_B
X^B,A
Y
^
B
\hat{Y}_B
Y^B,A
Z
^
B
\hat{Z}_B
Z^B,将这三个单位矢量按照顺序排成一个3×3的矩阵,称该矩阵为旋转矩阵,记作:
B
A
R
{^A_B}R
BAR(矩阵{B}相对于矩阵{A}的表达)
(1)
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
32
r
33
]
{^A_B}R=\begin{bmatrix} ^A\hat{X}_B &^A\hat{Y}_B&^A\hat{Z}_B\\ \end{bmatrix}=\begin{bmatrix} r_{11} &r_{12}&r_{13}\\ r_{21} &r_{22}&r_{23}\\r_{31} &r_{32}&r_{33}\end{bmatrix}\tag{1}
BAR=[AX^BAY^BAZ^B]=⎣⎡r11r21r31r12r22r32r13r23r33⎦⎤(1)
于是,点的位置可用一个矢量来表示,物体的姿态可用一个矩阵来表示,上式中
r
i
j
r_{ij}
rij可用每个矢量在其参考坐标系中的单位方向上投影的分量来表示。于是
B
A
R
{^A_B}R
BAR的各个分量可用一对单位矢量的点积来表示:
(2)
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\hat{X}_B &^A\hat{Y}_B&^A\hat{Z}_B\\ \end{bmatrix}=\begin{bmatrix} \hat{X}_B \cdot \hat{X}_A &\hat{Y}_B \cdot \hat{X}_A&\hat{Z}_B \cdot \hat{X}_A\\ \hat{X}_B \cdot \hat{Y}_A &\hat{Y}_B \cdot \hat{Y}_A&\hat{Z}_B \cdot \hat{Y}_A\\\hat{X}_B \cdot \hat{Z}_A &\hat{Y}_B \cdot \hat{Z}_A&\hat{Z}_B \cdot \hat{Z}_A\end{bmatrix}\tag{2}
BAR=[AX^BAY^BAZ^B]=⎣⎡X^B⋅X^AX^B⋅Y^AX^B⋅Z^AY^B⋅X^AY^B⋅Y^AY^B⋅Z^AZ^B⋅X^AZ^B⋅Y^AZ^B⋅Z^A⎦⎤(2)
为简单起见,上式最右边矩阵内的前置上标被省略了。由于两个单位矢量的点积可得到二者之间夹角的余弦,因此旋转矩阵的各分量常被称作方向余弦。
观察式(2)第一行可知:矩阵
B
A
R
{^A_B}R
BAR的第一行就是
B
X
^
A
^B\hat{X}_A
BX^A在
X
^
B
\hat{X}_B
X^B,
Y
^
B
\hat{Y}_B
Y^B,
Z
^
B
\hat{Z}_B
Z^B上的投影的模,也就是
B
X
^
A
T
^B\hat{X}_A^T
BX^AT,则,
(3)
B
A
R
=
[
A
X
^
B
A
Y
^
B
A
Z
^
B
]
=
[
B
X
^
A
T
B
Y
^
A
T
B
Z
^
A
T
]
{^A_B}R=\begin{bmatrix} ^A\hat{X}_B &^A\hat{Y}_B&^A\hat{Z}_B\\ \end{bmatrix}=\begin{bmatrix} ^B\hat{X}_A^T \\^B\hat{Y}_A^T\\^B\hat{Z}_A^T\\ \end{bmatrix}\tag{3}
BAR=[AX^BAY^BAZ^B]=⎣⎡BX^ATBY^ATBZ^AT⎦⎤(3)
坐标系{A}对坐标系{B}的描述
A
B
R
{^B_A}R
ABR可由式(3)转置得到;即,
A
B
R
{^B_A}R
ABR=
A
B
R
T
{^B_A}R^T
ABRT,又因为旋转矩阵是正交矩阵,一个正交矩阵的逆等于它的转置,因此,
A
B
R
{^B_A}R
ABR=
A
B
R
T
{^B_A}R^T
ABRT=
A
B
R
−
1
{^B_A}R^{-1}
ABR−1
现在以三个欧拉角中的RotX为例(其余两个欧拉角以此类推),验证一下以上说的结论。
(1)由于X轴是垂直于YoZ平面的,所以
X
A
X_A
XA和
Y
B
Y_B
YB,
Z
B
Z_B
ZB的点乘结果为0,同时
X
B
X_B
XB和
Y
A
Y_A
YA,
Z
A
Z_A
ZA的点乘结果也为0。
(2)由于
X
A
X_A
XA,
X
B
X_B
XB都是单位向量,所以
X
A
X_A
XA和
X
B
X_B
XB的点乘结果为1。
(3)由于绕x轴旋转,所以我们观察
Y
B
Y_B
YB和
Z
B
Z_B
ZB分别在
Y
A
Y_A
YA和
Z
A
Z_A
ZA上的投影情况,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/a8c3ed572c99d44edf6fb485d2c5c818.png)
(4)
R
R
o
t
x
=
[
1
0
0
0
c
o
s
(
θ
)
−
s
i
n
(
θ
)
0
s
i
n
(
θ
)
c
o
s
(
θ
)
]
R_{Rotx}=\begin{bmatrix} 1&0&0\\ 0&cos(\theta)&-sin(\theta)\\0&sin(\theta)&cos(\theta) \end{bmatrix}\tag{4}
RRotx=⎣⎡1000cos(θ)sin(θ)0−sin(θ)cos(θ)⎦⎤(4)
坐标系描述:位置和姿态的组合称作坐标系,四个矢量为一组,表示了位置和姿态信息。例如,用,
B
A
R
{^A_B}R
BAR和
A
P
B
O
R
G
{^A}P_{BORG}
APBORG来描述坐标系{B},其中
A
P
B
O
R
G
{^A}P_{BORG}
APBORG是确定坐标系{B}原点位置矢量:
{
B
}
=
{
B
A
R
{B}={{^A_B}R
{B}={BAR,
A
P
B
O
R
G
}
{^A}P_{BORG}}
APBORG}
映射:坐标系到坐标系的变换:已知矢量对某坐标系{B}的描述,求出它相对另一坐标系{A}的描述。
A
P
=
B
A
T
B
P
{^A}P={^A_B}T^BP
AP=BATBP,其中
B
A
T
{^A_B}T
BAT为4×4齐次变换矩阵。