阅读提示:
本文是基于《机器人学导论》第三版的学习笔记,除去书中内容,有一些自己的心得和理解。所以会对一些方面进行概括,长话短说。若需要专业解释强烈建议找到原书翻看定义,收获会很大!
2.1 位置、姿态和坐标系
要描述一个机械臂的姿态,我们应当明白,假设我们要描述手的姿态,容易想知对于指端来说,操作目标物体的轨迹应当在一个坐标系内被描述。然而,对于多元件的机械臂系统来说,仅仅靠这一个坐标系是不够的,甚至很混乱。所以我们应当设立一个参考系,然后建立操作手的坐标系,这样就能完全确定操作手的位置。
因此,点的位置可用矢量描述,物体的姿态可用坐标系描述。描述连体坐标系可用固定在物体上的坐标系来描述。
我们用参考系A的三个主轴单位矢量来描述连体坐标系B。设其为XA,YA,ZA,将这三个单位矢量排列成一个3×3的矩阵,称其为旋转矩阵。它是一个相对表达,是坐标系B相对于坐标系A的表达,所以用符号AP来表示。

由两个单位矢量的点积可得到二者之间夹角的余弦,所以,旋转矩阵的各分量也常被称为方向余弦。

进一步观察式子,

因此,可得:ABR=BART。(重要结论)
进一步可得,旋转矩阵的逆矩阵等于它的转置:
ABRBART=AX^BTAY^BTAZ^BT(AX^BTAY^BTAZ^BT)=I3实际上,一个正交阵的逆等于它的转置,这个结论也能很快证明上述结论。
BAR=ABR−1=ABRT得到了位置和姿态,描述坐标系,需要一个原点。我们为方便起见,将物体上任选的一点作为连体坐标系的原点。于是我们将一个位置矢量和一个旋转矩阵组合在一起,描述一个坐标系:
{B}={BAR,APBORG}其中APBORG是确定坐标系原点的位置矢量。
特别地,如果参考系中的位置矢量是零矢量,那么它表示的就是姿态。
2.2 映射
映射描述从坐标系到坐标系的变换。
我们将讨论三种映射,并引入齐次变换矩阵这一重要工具。
2.2.1 平移坐标系的映射

这是最简单的一种映射,用矢量相加的方法表示:
AP=BP+APBORG2.2.2 旋转坐标系的映射
我们有之前所得的旋转矩阵的转置和逆的结论:
BAR=ABR−1=ABRT一个旋转矩阵即为三个一组的列向量或者三个一组的行向量:
BAR=(AX^BAY^BAZ^B)=BX^ATBY^ATBZ^AT因此,可知AP的分量计算如下:
Apx=BX^A⋅BPApy=BY^A⋅BPApz=BZ^A⋅BP写成简化形式:
AP=BARBP问题:如何表示坐标系B相对于坐标系A绕Z轴旋转30度?Z轴指向纸面向外。
先作图:

1.在A中写出B的单位矢量,排成旋转矩阵。
得:

稍微解释一下,我们知道第一列表示的是AX^B,取单位矢量eb表示B的X轴在A中的位置,可由30°角得(0.866,0.5,0),其中0表示相对于Z轴无移动。以此类推。
2.已知:

3.求出:

2.2.3 一般坐标系的映射
一般坐标系的映射可以概括为两步。
首先将BP变换到一个中间坐标系,这个坐标系与A的姿态相同、原点与B的原点重合。这可以用左乘矩阵BAR得到。
然后用简单的矢量加法平移原点:
AP=BARBP+APBORG更进一步地,我们可以将这组操作变换为使用一个矩阵算子表示从一个坐标系到另一个坐标系的映射。这个矩阵算子是4×4的矩阵,将最后一行作为[0,0,0,1],在4x1矩阵中添加最后一个分量为1。亦即:

将这个4x4的矩阵称为齐次变换矩阵。由于它可以表示坐标系间的变换,所以这是一个非常重要的概念!同时可以说,将来的运算将紧紧围绕齐次变换展开,请务必巩固相关知识。
2.3 算子:平移,旋转和变换
算子:用于坐标系间点的映射的通用数学表达式。
本章主要介绍平移算子,旋转算子和平移加旋转算子。
2.3.1 平移算子
实际上我们之前已经介绍了平移的矢量计算式。本节介绍将这种运算浓缩为一个算子,对算子的表示进行进一步探讨。
我们知道平移计算方法:
AP2=AP1+AQ用算子写出平移变换:
AP2=DQ(q)AP1算子DQ(q)可被看做一个特殊的齐次变换阵:

由齐次变换矩阵分块可知,旋转矩阵是一个单位阵,原点阵的分量是平移矢量Q的分量。其中,q=qx2+qy2+qz2。
现在我们初步认识了符号DQ(q),这个符号今后将用来表示坐标系和映射。
2.3.2 旋转算 子
可以用旋转变换算子来定义旋转矩阵。
旋转矩阵不涉及两个具体的坐标系。所以,写的时候不需要写下标或上标。引入旋转矩阵R,这个已经比较熟悉的公式:
AP2=RAP1用另一个符号定义旋转算子,以明确是绕哪个轴旋转:
AP2=RK(θ)AP1符号RK(θ)是一个旋转算子,表示绕K轴旋转θ角度。这个算子可写成齐次变换矩阵。
代入到式子:
BAR=(AX^BAY^BAZ^B)=BX^ATBY^ATBZ^AT可得:
RK(θ)=cosθsinθ00−sinθcosθ0000100001再回到刚刚那个例子,也就是绕Z轴旋转30度。此时,旋转算子可写成:

2.3.3 变换算子
即平移加旋转的算子。一个变换通常被认为是由一个广义旋转矩阵和位置矢量分量组成的齐次变换的形式。
如下例:
AP2=TAP1这几节的核心就在于这个齐次变换矩阵。它有3个定义:
-
它是坐标系的描述。
-
它是变换映射。
-
它是变换算子。
2.4 变换算法
本节介绍变换的乘法和变换的逆运算。
2.4.1 混合变换
我们有这样一个目标:即已知CP,求AP。
已知坐标系C相对于坐标系B,并且已知坐标系B相对于坐标系A。所以,我们可将CP变换成BP:
BP=CBTCP
然后将BP变换成AP:
AP=BATBP联立上两式可以得到确定解。换言之,我们实际运算中,需要寻找ab和bc的这两个变换式,实现变换的传递。
由此定义:
CAT=BATCBT2.4.2 逆变换
由公式
BAT=ABT−1得若需要得到A相对于B的描述,需要求这个矩阵的逆。
利用变换的性质求逆:
为了求ABT,必须由BAR和APBORG求出BAT和BPAORG。首先,回顾关于旋转矩阵的讨论:
ABR=BART其次利用
AP=BARBP+APBORG将APBORG转变成在B中的描述:
B(APBORG)=ABRAPBORG+BPAORG左边应为0,因为在A原点处离B原点的距离变换为在B原点处离B原点的距离就是0。所以变换后可得:
BPAORG=−ABRAPBORG=−BARTAPBORG从而写出:

变换方程
回顾之前所学我们发现简单变换方程的构造依赖于三个坐标系所确定的两个变换式,那么多个坐标系也以此类推,使用的总是变换相乘的方法:

从而:

由这个变换方程我们可以解出:

从这个变换方程中我们可以得出C的两个可能的描述为:

和

例:假定已知上图中变换TBT描述了操作臂指端的坐标系T,它是相对于操作臂基座的坐标系B的,又已知工作台相对于操作臂基座的空间位置(因为已知与工作台相连的坐标系S是SBT),并且已知工作台上螺栓的坐标系相对于工作台坐标系的位置,即GST。计算螺栓相对操作手的位姿,GTT。
由公式推导得到相对于操作手坐标系的螺栓坐标系为:

姿态的其他描述方法
旋转矩阵又被称为标准正交矩阵。由正交矩阵的凯莱公式可得,对于任何正交阵R,存在一个反对称矩阵S,满足:
R=(I3−S)−1(I3+S)式中是一个3×3单位阵。一个3维反对称阵(即S=−ST)可由三个参数(sx,sy,sz)表示为
S=0sz−sy−sz0sxsy−sx0