第2章 机器人位置运动学
2.1 引言
本章将研究机器人正逆运动学。当已知所有的关节变量时,可用正运动学来确定机器人末端手的位姿。如果要使机器人末端手放在特定的点上并且具有特定的姿态,可用逆运动学来计算出每一关节变量的值。首先利用矩阵建立物体、位置、姿态以及运动的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示方法,然后研究直角坐标型、圆柱坐标型以及球坐标型等不同构型机器人的正逆运动学,最后利用Denavit-Hartenberg(D-H)表示法来推导机器人所有可能构型的正逆运动学方程。
实际上,机器手型的机器人没有末端执行器,多数情况下,机器人上附有一个抓持器。根据实际应用,用户可为机器人附加不同的末端执行器。显然,末端执行器的大小和长度决定了机器人的末端位置,即如果末端执行器的长短不同,那么机器人的末端位置也不同。在这一章中,假设机器人的末端是一个平板面,如有必要可在其上附加末端执行器,以后便称该平板面为机器人的“手”或“端面”。如有必要,还可以将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。
2.2 机器人机构
机器手型的机器人具有多个自由度(DOF),并有三维开环链式机构。
在具有单自由度的系统中,当变量设定为特定值时,机器人机构就完全确定了,所有其他变量也就随之而定。如图2.1所示的四杆机构,当曲柄转角设定为120°时,则连杆与摇杆的角度也就确定了。然而在一个多自由度机构中,必须独立设定所有的输入变量才能知道其余的参数。机器人就是这样的多自由度机构,必须知道每一关节变量才能知道机器人的手处在什么位置。
图2.1 具有单自由度闭环的四杆机构
如果机器人要在空间运动,那么机器人就需要具有三维的结构。虽然也可能有二维多自由度的机器人,但它们并不常见。
机器人是开环机构,它与闭环机构不同(例如四杆机构),即使设定所有的关节变量,也不能确保机器人的手准确地处于给定的位置。这是因为如果关节或连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变且没有反馈。例如,在图2.2所示的四杆机构中,如果连杆AB偏移,它将影响
杆。而在开环系统中(例如机器人),由于没有反馈,之后的所有构件都会发生偏移。于是,在开环系统中,必须不断测量所有关节和连杆的参数,或者监控系统的末端,以便知道机器的运动位置。通过比较如下的两个连杆机构的向量方程,可以表示出这种差别,该向量方程表示了不同连杆之间的关系。
(2.1)
(2.2)
可见,如果连杆AB偏移,连杆
也会相应地移动,式(2.1)的两边随连杆的变化而改变。而另一方面,如果机器人的连杆AB偏移,所有的后续连杆也会移动,除非
有其他方法测量,否则这种变化是未知的。
为了弥补开环机器人的这一缺陷,机器人手的位置可由类似摄像机的装置来进行不断测量,于是机器人需借助外部手段(比如辅助手臂或激光束)来构成闭环系统。或者按照常规做法,也可通过增加机器人连杆和关节强度来减少偏移,采用这种方法将导致机器人重量重、体积大、动作慢,而且它的额定负载与实际负载相比非常小。
图2.2 (a)闭环机构;(b)开环机构
2.3 机器人运动学的矩阵表示
矩阵可用来表示点、向量、坐标系、平移、旋转以及变换,还可以表示坐标系中的物体和其他运动元件。
2.3.1 空间点的表示
空间点P(如图2.3所示)可以用它的相对于参考坐标系的三个坐标来表示:
(2.3)
其中,
是参考坐标系中表示该点的坐标。显然,也可以用其他坐标来表示空间点的
位置。
图2.3 空间点的表示
2.3.2 空间向量的表示
向量可以由三个起始和终止的坐标来表示。如果一个向量起始于点A,终止于点B,那么它可以表示为
。特殊情况下,如果一个向量起始于原点(如图2.4所示),则有:
(2.4)
其中
是该向量在参考坐标系中的三个分量。实际上,前一节的点P就是用连接到该点的向量来表示的,具体地说,也就是用该向量的三个坐标来表示。
图2.4 空间向量的表示
向量的三个分量也可以写成矩阵的形式,如式(2.5)所示。在本书中将用这种形式来表示运动分量:
(2.5)
这种表示法也可以稍做变化:加入一个比例因子w,如果x, y, z各除以w,则得到
。于是,这时向量可以写为:
,其中
等等 (2.6)
变量w可以为任意数,而且随着它的变化,向量的大小也会发生变化,这与在计算机图形学中缩放一张图片十分类似。随着w值的改变,向量的大小也相应地变化。如果w大于1,向量的所有分量都变大;如果w小于1,向量的所有分量都变小。这种方法也用于计算机图形学中改变图形与画片的大小。
如果w是1,各分量的大小保持不变。但是,如果w=0,
则为无穷大。在这种情况下,x,y和z(以及
)表示一个长度为无穷大的向量,它的方向即为该向量所表示的方向。这就意味着方向向量可以由比例因子w=0的向量来表示,这里向量的长度并不重要,而其方向由该向量的三个分量来表示。
例2.1 有一个向量P=3i+5j+2k,按如下要求将其表示成矩阵形式:
(1)比例因子为2
(2)将它表示为方向的单位向量
解:
该向量可以表示为比例因子为2的矩阵形式,当比例因子为0时,则可以表示为方向向量,结果如下:
和
然而,为了将方向向量变为单位向量,须将该向量归一化使之长度等于1。这样,向量的每一个分量都要除以三个分量平方和的开方:
,等等和
2.3.3 坐标系在固定参考坐标系原点的表示
一个中心位于参考坐标系原点的坐标系由三个向量表示,通常着三个向量相互垂直,称为单位向量
,分别表示法线(normal)、指向(orientation)和接近(approach)向量(如图2.5所示)。正如2.3.3节所述,每一个单位向量都由它们所在参考坐标系着的三个分量表示。这样,坐标系F可以由三个向量以矩阵的形式表示为:
(2.7)
图2.5 坐标系在参考坐标系原点的表示
2.3.4 坐标系在固定参考坐标系中的表示
如果一个坐标系不再固定参考坐标系的原点(实际上也可包括在原点的情况),那么该坐标系的原点相对于参考坐标系的位置也必须表示出来。为此,在该坐标系原点与参考坐标系原点之间做一个向量来表示该坐标系的位置(如图2.6所示)。这个向量由相对于参考坐标系的三个向量来表示。这样,这个坐标系就可以由三个表示方向的单位向量以及第四个位置向量来表示。
(2.8)
图2.6 一个坐标系在另一个坐标系中的表示
如式(2.8)所示,前三个向量是w=0的方向向量,表示该坐标系的三个单位向量
的方向,而第四个w=1的向量表示该坐标系原点相对于参考坐标系的位置。与单位向量不同,向量P的长度十分重要,因而使用比例因子为1。坐标系也可以由一个没有比例因子的3
4矩阵表示,但不常用。
例2.2 如图2.7所示的F坐标系位于参考坐标系中3,5,7的位置,它的n轴与x轴平行,o轴相对于y轴的角度为45°,a轴相对于z轴的角度为45°。该坐标系可以表示为:
图2.7 坐标系在空间的表示举例
2.3.5 刚体的表示
一个物体在空间的表示可以这样实现:通过在它上面固连一个坐标系,再将该固连的坐标系在空间表示出来。由于这个坐标系一直固连在该物体上,所以该物体相对于坐标系的位姿是已知的。因此,只要这个坐标系可以在空间表示出来,那么这个物体相对于固定坐标系的位姿也就已知了(如图2.8所示)。如前所述,空间坐标系可以用矩阵表示,其中坐标原点以及相对于参考坐标系的表示该坐标系姿态的三个向量也可以由该矩阵表示出来。于是有:
(2.9)
如第1章所述,空间中的一个点只有三个自由度,它只能沿三条参考坐标轴移动。但在空间的一个钢体有六个自由度,也就是说,它不仅可以沿着X,Y,Z三轴移动,而且还可绕这三个轴转动。因此,要全面地定义空间以物体,需要用6条独立的信息来描述物体原点在参考坐标系中相对于三个参考坐标轴的位置,以及物体关于这三个坐标轴的姿态。而式(2.9)给出了12条信息,其中9条为姿态信息,三条为位置信息(排除矩阵中最后一行的比例因子,因为它们没有附加信息)。显然,在该表达式中必定存在一定的约束条件将上述信息数限制为6。因此,需要用6个约束方程将12条信息减少到6条信息。这些约束条件来自于目前尚未利用的已知的坐标系特性,即:
三个向量
相互垂直
每个单位向量的长度必须为1
图2.8 空间物体的表示
我们可以将其转换为以下六个约束方程:
(1)
(2)
(3)
(4)
(向量的长度必须为1) (2.10)
(5)
(6)
因此,只有前述方程成立时,坐标系的值才能用矩阵表示。否则,坐标系将不正确。式(2.10)中前三个方程可以换用如下的三个向量的叉积来代替:
(2.11)
例2.3 对于下列坐标系,求解所缺元素的值,并用矩阵来表示这个坐标系。
解:
显然,表示坐标系原点位置的值5,3,2对约束方程无影响。注意在三个方向向量中只有三个值是给定的,但这也已足够了。根据式(2.10),得:
或
或
或
或
或
或
将这些方程化简得:
解这六个方程得:
。应注意,
必须同号。非唯一解的原因是由于给出的参数可能得到两组在相反方向上相互垂直的向量。最终得到的矩阵如下:
或
由此可见,两个矩阵都满足约束方程的要求。但应注意三个方向向量所表述的值不是任意的,而是受这些约束方程的约束,因此不可任意给矩阵赋值。
同样,可通过
叉乘并令其等于
,即
来求解,表示如下:
或表示为:
将值代入方程得:
同时解下面这三个方程:
以此来代替三个点乘方程。联立三个单位向量长度的约束方程,便得到六个方程,求解这六个方程,可得到相同的未知参数的解。
2.4 齐次变换矩阵
由于各种原因,变换矩阵应写成方型形式,3
3或4
4均可。首先,如后面看到的,计算方形矩阵的逆要比计算长方形矩阵的逆容易得多。其次,为使两矩阵相乘,它们的维数必须匹配,即第一矩阵的列数必须与第二矩阵的行数相同。如果两矩阵是方阵则无上述要求。由于要以不同顺序将许多矩阵乘在一起得到机器人运动方程,因此,应采用方阵进行计算。
为保证所表示的矩阵为方阵,如果在同一矩阵中既表示姿态又表示位置,那么可在矩阵中加入比例因子使之成为4
4矩阵。如果只表示姿态,则可去掉比例因子得到3
3矩阵,或加入第四列全为0的位置数据以保持矩阵为方阵。这种形式的矩阵称为齐次矩阵,它们写为:
(2.12)
2.5 变换的表示
变换定义为空间的一个运动。当空间的一个坐标系(一个向量、一个物体或一个运动坐标系)相对于固定参考坐标系运动时,这一运动可以用类似于表示坐标系的方式来表示。这是因为变换本身就是坐标系状态的变化(表示坐标系位姿的变化),因此变换可以用坐标系来表示。变换可为如下几种形式中的一种:
纯平移
绕一个轴的纯旋转
平移与旋转的结合
为了解它们的表示方法,我们将逐一进行探讨。
2.5.1 纯平移变换的表示
如果一坐标系(它也可能表示一个物体)在空间以不变的姿态运动,那么该坐标就是纯平移。在这种情况下,它的方向单位向量保持同一方向不变。所有的改变只是坐标系原点相对于参考坐标系的变化,如图2.9所示。相对于固定参考坐标系的新的坐标系的位置可以用原来坐标系的原点位置向量加上表示位移的向量求得。若用矩阵形式,新坐标系的表示可以通过坐标系左乘变换矩阵得到。由于在纯平移中方向向量不改变,变换矩阵T可以简单地表示为:
(2.13)
图2.9 空间纯平移变换的表示
其中
是纯平移向量
相对于参考坐标系
轴的三个分量。可以看到,矩阵的前三列表示没有旋转运动(等同于单位阵),而最后一列表示平移运动。新的坐标系位置为:
(2.14)
这个方程也可用符号写为:
(2.15) 首先,如前面所看到的,新坐标系的位置可通过在坐标系矩阵前面左乘变换矩阵得到,后面将看到,无论以何种形式,这种方法对于所有的变换都成立。其次可以注意到,方向向量经过纯平移后保持不变。但是,新的坐标系的位置是
和
向量相加的结果。最后应该注意到,齐次变换矩阵与矩阵乘法的关系使得到的新矩阵的维数和变换前相同。
例2.4 坐标系F沿参考坐标系的x轴移动9个单位,沿z轴移动5个单位。求新的坐标系位置。
解:由式(2.14)或式(2.15)得:
=
和
2.5.2 绕轴纯旋转变换的表示
为简化绕轴旋转的推导,首先假设该坐标系位于参考坐标系的原点并且与之平行,之后将结果推广到其他的旋转以及旋转的组合。
假设坐标系(
)位于参考坐标系(
)的原点,坐标系(
)绕参考坐标系的x轴旋转一个角度
,再假设旋转坐标系(
)上有一点P相对于参考坐标系的坐标为
,相对于运动坐标系的坐标为
。当坐标系绕x轴旋转时,坐标系上的点P也随坐标系一起旋转。在旋转之前,P点在两个坐标系中的坐标是相同的(这时两个坐标系位置相同,并且相互平行)。旋转后,该点坐标
在旋转坐标系(x ,y ,z)中保持不变,但在参考坐标系中
却改变了(如图2.10所示)。现在要求找到运动坐标系旋转后P相对于固定参考坐标系的新坐标。
让我们从x轴来观察在二维平面上的同一点的坐标,图2.10显示了点P在坐标系旋转前后的坐标。点P相对于参考坐标系的坐标是
,而相对于旋转坐标系(点P所固连的坐标系)的坐标仍为
。
由图2.11可以看出,
不随坐标系统x轴的转动而改变,而
和
却改变了,可以证明:
(2.16)
写成矩阵形式为:
(2.17)
图2.10 在坐标系旋转前后的点的坐标
图2.11 相对于参考坐标系的点的坐标和从x轴上观察旋转坐标系
可见,为了得到在参考坐标系中的坐标,旋转坐标系中的点P(或向量P)的坐标必须左乘旋转矩阵。这个旋转矩阵只适用于绕参考坐标系的x轴做纯旋转变换的情况,它可表示为:
(2.18)
注意在式(2.17)中,旋转矩阵的第一列表示相对于x轴的位置,其值为1,0,0,它表示沿x轴的坐标没有改变。
为简化书写,习惯用符号
表示
以及用
表示
。因此,旋转矩阵也可写为:
(2.19)
可用同样的方法来分析坐标系绕参考坐标系y轴和z轴旋转的情况,可以证明其结果为:
和
(2.20)
式(2.18)也可写为习惯的形式,以便于理解不同坐标系间的关系,为此,可将该变换表示为
(读作坐标系R相对于坐标系U(Universe)的变换),将
表示为
(P相对于坐标系R),将
表示为
(P相对于坐标系U),式(2.18)可简化为:
(2.21)
由上式可见,去掉R便得到了P相对于坐标系U的坐标。
例2.5 旋转坐标系中有一点P
,此坐标系绕参考坐标系x轴旋转90度。求旋转后该点相对于参考坐标系的坐标,并且用图解法检验结果。
解:
由于点P固连在旋转坐标系中,因此点P相对于旋转坐标系的坐标在旋转前后保持不变。该点相对于参考坐标系的坐标为:
如图2.12所示,根据前面的变换,得到旋转后P点相对于参考坐标系的坐标为2,-4,3.
图2.12 相对于参考坐标系的坐标系旋转
2.5.3 复合变换的表示
复合变换是由固定参考坐标系或当前运动坐标系的一系列沿轴平移和绕轴旋转变换所组成的。任何变换都可以分解为按一定顺序的一组平移和旋转变换。例如,为了完成所要求的变换,可以先绕x轴旋转,再沿
轴平移,最后绕y轴旋转。在后面将会看到,这个变换顺序很重要,如果颠倒两个依次变换的顺序,结果将会完全不同。
为了探讨如何处理复合变换,假定坐标系(
)相对于参考坐标系(
)依次进行了下面三个变换:
(1)绕x轴旋转
度;
(2)接着平移
(分别相对于
轴);
(3)最后绕y轴旋转
度。
比如点
固定在旋转坐标系,开始时旋转坐标系的原点与参考坐标系的原点重合。随着坐标系(
)相对于参考坐标系旋转或者平移时,坐标系中的P点相对于参考坐标系也跟着改变。如前面所看到的,第一次变换后,P点相对于参考坐标系的坐标可用下列方程进行计算。
(2.22)
其中,
是第一次变换后该点相对于参考坐标系的坐标。第二次变换后,该点相对于参考坐标系的坐标是:
同样,第三次变换后,该点相对于参考坐标系的坐标为:
可见,每次变换后该点相对于参考坐标系的坐标都是通过用每个变换矩阵左乘该点的坐标得到的。当然,矩阵的顺序不能改变。同时还应注意,对于相对于参考坐标系的每次变换,矩阵都是左乘的。因此,矩阵书写的顺序和进行变换的顺序正好相反。
例2.6 固连在坐标系(
)上的点P
经历如下变换,求出变换后该点相对于参考坐标系的坐标。
(1)绕z轴旋转90度;
(2)接着绕y轴旋转90度;
(3)接着再平移[4,-3,7]。
解:
表示该变换的矩阵方程为:
从图2.13可以看到,(
)坐标系首先绕z轴旋转90度,接着绕y轴旋转,最后相对于参考坐标系的
轴平移。坐标系中的P点相对于
轴的位置如图所示,最后该点在
轴上的坐标分别为4+2=6,-3+7=4,7+3=10。请确认也能从图中理解上述结果。
图2.13 三次顺序变换的结果
例2.7 根据上例,假定(
)坐标系上的点
经历相同变换,但变换按如下不同顺序进行,求出变换后该点相对于参考坐标系的坐标。
(1)绕z轴旋转90度;
(2)接着平移[4,-3,7];
(3)接着再绕y轴旋转90度。
解:
表示该变换的矩阵方程为:
不难发现,尽管所有的变换与例2.6完全相同,但由于变换的顺序变了,该点最终坐标与前例完全不同。用图2.14可以清楚地说明这点,这时可以看出,尽管第一次变换后坐标系的变化与前例完全相同,但第二次变换后结果就完全不同,这是由于相对于参考坐标系轴的平移使得旋转坐标系
向外移动了。经第三次变换,该坐标系将绕参考坐标系y轴旋转,因此向下旋转了,坐标系上点P的位置也显示在图中。
请证明该点相对于参考坐标系的坐标为7+2=9,-3+7=4和-4+3=-1,它与解析的结果相同。
图2.14 变换的顺序改变将改变最终结果
2.5.4 相对于旋转坐标系的变换
到目前为止,本书所讨论的所有变换都是相对于固定参考坐标系。也就是说,所有平移、旋转和距离(除了相对于运动坐标系的点的位置)都是相对参考坐标系轴来测量的。然而事实上,也有可能做相对于运动坐标系或当前坐标系的轴的变换。例如,可以相对于运动坐标系(也就是当前坐标系)的n轴而不是参考坐标系的x轴旋转90度。为计算当前坐标系中的点的坐标相对于参考坐标系的变化,这时需要右乘变换矩阵而不是左乘。由于运动坐标系中的点或物体的位置总是相对于运动坐标系测量的,所以总是右乘描述该点或物体的位置矩阵。
例2.8 假设与例2.7中相同的点现在进行相同的变换,但所有变换都是相对于当前的运动坐标系,具体变换出如下。求出变换完成后该点相对于参考坐标系的坐标。
(1)绕
轴旋转90度;
(2)然后沿
轴平移[4,-3,7];
(3)接着绕
轴旋转90度。
解:
在本例中,因为所作变换是相对于当前坐标系的,因此右乘每个变换矩阵,可得表示该坐标的方程为:
如所期望的,结果与其他各例完全不同,不仅因为所作变换是相对于当前坐标系的,而且也因为矩阵顺序的改变。下面的图展示了这一结果,应注意它是怎样相对于当前坐标来完成这个变换的。
同时应注意,在当前坐标系中p点的坐标7,3,2是变换后得到相对于参考坐标系的坐标0,6,0的。
图2.15 相对于当前坐标系的变换
例2.9 坐标系B绕x轴旋转90°,然后沿当前坐标系a轴做了3英寸的平移,然后在绕z轴旋转90,最后沿当前坐标系o轴做5英寸的平移。
(a)写出描述该运动的方程。
(b)求坐标系中的点p(1,5,4)相对于参考坐标系的最终位置。
解:
在本例中,相对于参考坐标系以及当前坐标系的运动是交替进行的。
(a)相应地左乘或右乘每个运动矩阵,得到:
=Rot(z,90)Rot(x,90)Trans(0,0,3)Trans(0,5,0)
(b)带入具体的矩阵并将它们相乘,得到:
2.6 变换矩阵的逆
正如前面所提到的,在机器人分通过析中有很多地方要用到矩阵的逆,在下面的例子中可以看到一种涉及变换矩阵的情况。在图2.16中,假设机器人要在零件p上钻孔而须向零件p处移动。机器人基座相对于参考坐标系u的位置用坐标系R来描述,机器人手用坐标系H来描述,末端执行器(即用来钻孔的钻头的末端)用坐标系E来描述,零件的位置用坐标系P来描述。钻孔的点的位置于参考坐标系U可以通过两个独立的路径发生联系:一个是通过该零件的路径,另一个是通过机器人的路径。因此,可以写出下面的方程:
(2.24)
这就是说,该零件中点E的位置可以通过从U变换到P,并从P变换到E来完成,或者从U变换到R,从R变换到H,再从H变换到E。
图2.16 全局坐标系、机器人坐标系、手坐标系、零件坐标系及末端执行器坐标系
事实上,由于在任何情况下机器人的基座位置在安装时就是已知的,因此变换
(坐标系R相对于坐标系U的变换)时已知的。比如,一个机器人安装在一个工作台上,由于它被紧固在工作台上,所以它的基座的位置时已知的。即使机器人时可移的或放在传送带上,因为控制器始终掌控着机器人基座的运动,因此它在任意时刻的位置也是已知的。由于用于末端执行器的任何器械都是已知的,而且其尺寸和结构也是已知的,所以
(机器人末端执行器相对于机器人手的变换)也是已知的。此外,
(零件相对于全局坐标系的变换)也是已知的,还必须要知道将在其上面钻孔的零件的位置,该位置可以通过将该零件放在钻模上,让后用照相机,视觉系统,传送带,传感器或其他类似仪器来确定。最后需要知道零件上钻孔的位置,所以
也是已知的。此时,唯一未知的变换就是
(机器人手相对于机器人基座的变换)。因此,必须找出机器人的关节变量(机器人旋转关节的角度以及滑动关节的连杆长度),以便将末端执行器定位在要钻孔的位置上。可见,必须要计算出这个变换,它指出机器人需要完成的工作。后面将用所求出的变换来求解机器人关节的角度和连杆的长度。
不能像在代数方程中那样来计算这个矩阵,即不能简单的用方程的右边除以方程的左边,而应该用合适的矩阵的逆并通过左乘或右乘来将它们从左边去调。因此有:
(2.25)
由于
和
,式(2.25)的左边可简化为
,于是得:
(2.26)
该方程的正确性可以通过认为
与
相同来加以检验。因此,该方程可重写为:
(2.27)
显然为了对机器人运动学进行分析,需要能够计算变换矩阵的逆。
我们来看看关于x轴的简单旋转矩阵的求逆计算情况。关于x轴的旋转矩阵是:
(2.28)
必须采用一下的步骤来计算矩阵的逆:
计算矩阵的行列式;
将矩阵转置;
将转置矩阵的每个元素用它的子行列式(伴随矩阵)代替;
用转换后的矩阵除以行列式。
将上面的步骤用到该旋转,得到:
现在计算每一个子行列式(伴随矩阵)。例如,元素2,2的子行列式是
,元素1,1的子行列式
。可以注意到,这里的每一个元素的子行列式与其本身相同,因此有:
由于原旋转矩阵的行列式为1,因此用
矩阵除以行列式仍得出相同的结果。因此,关于x轴的旋转矩阵的逆的行列式与它的转置矩阵相同,即:
(2.29)
当然,如果采用附录A中提到的第二种方法也能得到同样的结果。具有这种特征的矩阵称为酉矩阵,也就是说所有的旋转矩阵都是酉矩阵。因此,计算旋转矩阵的逆就是将该矩阵转置。可以证明,关于y轴和z轴的旋转矩阵同样也是酉矩阵。
应注意,只有旋转矩阵才是酉矩阵。如果一个矩阵不是一个简单的旋转矩阵,那么它也许就不是酉矩阵。
以上结论只对简单的不表示位置的3×3旋转矩阵成立。对一个齐次的4×4变换矩阵而言,它的求逆可以将矩阵分为两部分。矩阵的旋转部分仍是酉矩阵,只需简单的转置;矩阵的位置部分是向量
分别与
向量点积的负值,其结果为:
(2.30)
如上所示,矩阵的旋转部分是简单的转置,位置的部分由点乘的负值代替,而最后一行(比例因子)则不受影响。这样做对于计算变换矩阵的逆是很有帮助的,而直接计算4×4矩阵的逆是一个很冗长的过程。
例2.10 计算表示
的矩阵
解:绕x轴旋转40°的矩阵为:
其矩阵的逆是:
需注意的是,由于矩阵的位置向量为0,它与
向量的点积也为零。
例2.11 计算如下变换矩阵的逆。
解:
根据先前的计算,变换矩阵的逆是:
可以证明
是单位阵。
例2.12 一个具有六个自由度的机器人的第五个连杆上装有照相机,照相机观察物体并测定它相对于照相机坐标系的位置,然后根据以下数据来确定末端执行器要到达物体所必须完成的运动。
解:
参照式(2.24),可以写出一个与它类似的方程,它将不同的变换和坐标系联系在一起。
由于方程两边都有
,所以可以将它消去。除了
之外所有其他矩阵都是已知的,所以:
将矩阵及矩阵的逆代入前面的方程,得:
EMBED Equation.DSMT4
2.7 机器人的正逆运动学
假设有一个构型已知的机器人,即它的所有连杆长度和关节角度都是已知的,那么计算机器人手的位姿就称为正运动学分析。换言之,如果已知所有机器人关节变量,用正运动学方程就能计算任一瞬间机器人的位姿。然而,如果想要将机器人的手放在一个期望的位姿,就必须知道机器人的每一个连杆的长度和关节的角度,才能将手定位在所期望的位姿,这就叫做逆运动学分析,也就是说,这里不是把已知的机器人变量代入正向运动学方程中,而是要设法找到这些方程的逆,从而求得所需的关节变量,使机器人放置在期望的位姿。事实上,逆运动学方程更为重要,机器人的控制器将用这些方程来计算关节值,并以此来运行机器人到达期望的位姿。下面首先推导机器人的正运动学方程,然后利用这些方程来计算逆运动学方程。
对正运动学,必须推导出一组与机器人特定构型(将构件组合在一起构成机器人的方法)有关的方程,以使得将有关的关节和连杆变量代入这些方程就能计算出机器人的位姿,然后可用这些方程推出逆运动学方程。
根据第一章中的相关内容,要确定一个刚体在空间的位姿,须在物体上固连一个坐标系,然后描述该坐标系的原点位置和它三个轴的姿态,总共需要六个自由度或六条信息来完整地定义该物体的位姿。同理,如果要确定或找到机器人手在空间的位姿,也必须在机器人手上固连一个坐标系并确定机器人手坐标系的位姿,这正是机器人正运动学方程所要完成的任务。换言之,根据机器人连杆和关节的构型配置,可用一组特定的方程来建立机器人手的坐标系和参考坐标系之间的联系。图2.17所示为机器人手的坐标系、参考坐标系以及它们的相对位姿,两个坐标系之间的关系与机器人的构型有关。当然,机器人可能有许多不同的构型,后面将会看到将如何根据机器人的构型来推导出与这两个坐标系相关的方程。
为使过程简化,可分别分析位置和姿态问题,首先推导出位置方程,然后再推导出姿态方程,再将两者结合在一起而形成一组完整的方程。最后,将看到关于Denavit-Hartenberg表示法的应用,该方法可用于对任何机器人构型建模。
图2.17 机器人的手坐标系相对于参考坐标系
2.7.1 位置的正逆运动学方程
对于机器人的定位,可以通过相对于任何惯用坐标系的运动来实现。比如,基于直角坐标系对空间的一个点定位,这意味着有三个关于
轴的线性运动,此外,如果用球坐标来实现,就意味着需要有一个线性运动和两个旋转运动。常见的情况有:
(a)笛卡尔(台架,直角)坐标
(b)圆柱坐标
(c)球坐标
(d)链式(拟人或全旋转)坐标
2.7.1.1 笛卡尔(台架,直角)坐标
这种情况下有三个沿
轴的线性运动,这一类型的机器人所有的驱动机构都是线性的(比如液压活塞或线性动力丝杠),这时机器人手的定位是通过三个线性关节分别沿三个轴的运动来完成的(如图2.18所示)。台架式机器人基本上就是一个直角坐标机器人,只不过是将机器人固连在一个朝下的直角架上。IBM7565机器人就是一个台架式直角坐标机器人。
图2.18 直角坐标
当然,如果没有旋转运动,表示向P点运动的变换矩阵是一种简单的平移变换矩阵,下面将可以看到这一点。注意这里只涉及坐标系原点的定位,而不涉及姿态。在直角坐标系中,表示机器人手位置的正运动学变换矩阵为:
(2.31)
其中
是参考坐标系与手坐标系原点P的变换矩阵,而
表示直角坐标变换矩阵。对于逆运动学的求解,只需简单地设定期望的位置等于P.
例2.13 要求笛卡尔坐标机器人手坐标系原点定位在点P=
,计算所需要的笛卡儿坐标运动。
解:
设定正运动学方程用式(2.31)中的
矩阵表示,根据期望的位置可得知如下结果:
2.7.1.2 圆柱坐标
圆柱型坐标系统包括两个线性平移运动和一个旋转运动。其顺序为:先沿
轴移动
,再绕
轴旋转
角,最后沿
轴移动
,如图2.19所示。这三个变换建立了手坐标系与参考坐标系之间的联系。由于这些变换都是相对于全局参考坐标系的坐标轴的,因此由这三个变换所产生的总变换可以通过依次左乘每一个矩阵而求得:
(2.32)
(2.33)
经过一系列变换后,前三列表示了坐标系的姿态,然而我们只对坐标系的原点位置即最后一列感兴趣。显然,在圆柱型坐标运动中,由于绕z轴旋转了
角,运动坐标系的姿态也将改变,这一改变将在后面讨论。
实际上,可以通过绕
坐标系中的
轴旋转
角度使坐标系回转到和初始参考坐标系平行的状态,它等效于圆柱坐标矩阵右乘旋转矩阵
,其结果是,该坐标系的位置仍在同一地方,但其姿态再次平行于参考坐标系,如下所示:
图2.19 圆柱坐标
由此可见,运动坐标系的原点位置没有改变,但它转回到了与参考坐标系平行的状态。需注意的是,最后的旋转是绕本地坐标系的
轴的,其目的是为了不引起坐标系位置的任何改变,而只改变姿态。
例2.14 假设要将圆柱坐标机器人手坐标系的原点放在
,计算该机器人的关节变量。
解:
根据式(2.33)的
矩阵,将手坐标系原点的位置分量设置为期望值,可以得到:
于是有:
将
代入其中任何一个方程,可得
,最终结果是:
应注意:必须确保在机器人运动学中计算的角度位于正确的象限。在这个例子中,请注意
和
都是正的,并且
也是正的,这样角度
便在第一象限,且为53.1°。
2.7.1.3 球坐标
如图2.20所示,球坐标系统由一个线性运动和两个旋转运动组成,运动顺序为:先沿z轴平移r,再绕y轴旋转
并绕z轴旋转
。这三个变换建立了手坐标系与参考坐标系之间的联系。由于这些变换都是相对于全局参考坐标系的坐标轴的,因此有这三个变换所产生的总变换可以通过一次左乘每一个矩阵而求得:
(2.34)
(2.35)
图2.20 球坐标
前三列表是了经过一系列变换后的坐标系的姿态,而最后一列则表示了坐标系原点的位置。以后还要进一步讨论该矩阵的姿态部分。
这里也可回转最后一个坐标系,使它与参考坐标系平行。这一问题将作为练习留给读者,要求找出正确的运动顺序来获得正确的答案。
球坐标的逆运动学方程比简单的直角坐标和圆柱坐标更复杂,因为两个角度
和
是耦合的。让我们通过下例来说明如何求解球坐标的逆运动学方程。
例2.15 假设要将球坐标机器人手坐标系原点放在
,计算机器人的关节变量。
解:
根据式(2.35)的
矩阵,将手坐标系原点的位置分量设置为期望值,可以得到:
=3
=4
=7
由第三个方程,我们得出
是正数,但没有关于
是正或负的信息。将前两个方程彼此相除,因为不知道
的实际符号是什么,因此可能会有两个解。下面的方法给出了两个可能的解,后面还必须对这最后的结果进行检验以确保它们是正确的。
tan
=
EMBED Equation.3
=
或 233.1
S
=0.8
或 -0.8
C
=0.6 或 -0.6
S
=
=5
或
-5
C
=7
=35.5
或 -35.5
=8.6
可以对这两组解进行检验并正是这两组解都能满足所有的位置方程。如果沿给定的三维坐标轴旋转这些角度,物理上的确能到达同一点。然而必须注意,其中只有一组解能满足姿态方程。换句话说,前两种解将产生同样的位置,但处于不同的姿态。由于目前并不关心手坐标系在这点的姿态,因此两个位置解都是正确的。实际上,由于不能对三自由度的机器人指定姿态,所以无法确定两个解中哪一个和特定的姿态有关。
2.7.1.4 链式坐标
如图2.21所示,链式坐标由三个旋转组成。后面在讨论Denavit-Hartenberg表示法时,将推导链式坐标的矩阵表示法。
图2.21
链式坐标
2.7.2 姿态的正逆运动学方程
假设固连在机器人手上的运动坐标系已经运动到期望的位置上,但它仍然平行于参考坐标系,或者假设其姿态并不是所期望的,下一步是要在不改变位置的情况下,适当地旋转坐标系而使其达到所期望的姿态。合适的旋转顺序取决于机器人手腕的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
以及关节装配在一起的方式。考虑以下三中常见的构型配置:
(a) 滚动角、俯仰角、偏航(RPY)角
(b) 欧拉角
(c) 链式关节
2.7.2.1 滚动角、俯仰角和偏航角
这是分别绕当前
轴的三个旋转顺序,能够把机器人的手调整到所期望的姿态。此时,假定当前的坐标系平行于参考坐标系,于是机器人手的姿态在RPY(滚动角、俯仰角、偏航角)运动前与参考坐标系相同。如果当前坐标系不平行于参考坐标系,那么机器人手最终的姿态将会是先前的姿态与RPY右乘的结果。
因为不希望运动坐标系原点的位置有任何改变(它已被放在一个期望的位置上,所以只需要旋转她到所期望的姿态),所以RPY的旋转运动都是相对于当前的运动轴的。否则。如前面所看到的,运动坐标系的位置将会改变。于是,右乘所有由RPY和其他旋转所产生的与姿态改变有关的矩阵。
图2.22
绕当前坐标轴的RPY旋转
参考图2.22,可看到RPY旋转包括以下几种:
· 绕
轴(运动坐标系的z轴)旋转
叫滚动;
· 绕
轴(运动坐标系的y轴)旋转
叫俯仰;
· 绕
轴(运动坐标系的x轴)旋转
叫偏航。
表示RPY姿态变化的矩阵为:
(2.36)
这个矩阵表示了仅由RPY引起的姿态变化。该坐标系相对于参考坐标系的位置和最终姿态是表示位置变化和RPY的两个矩阵的乘积。例如,假设一个机器人是根据球坐标和RPY来设计的,那么这个机器人就可以表示为:
关于RPY的你运动学方程的解比球坐标更复杂,因为这里有三个耦合角,所以需要所有三个角各自的正弦和余弦值的信息才能解出这个角。为解出这三个角的正弦值和余弦值,必须将这些角解耦。因此,用
的逆左乘方程两边,得:
(2.37)
假设用RPY得到的最后所期望的姿态是用
矩阵来表示的,则有:
(2.38)
进行矩阵相乘后得:
(2.39)
在式(2.38)中的
分量表示了最终的期望值,它们通常是给定或已知的,而RPY角的值是未知的变量。
让式(2.39)左右两边对应的元素相等,将产生如下结果(关于ATAN2函数的解释请参考附录A):
根据2,1元素得:
(2.40)
根据3,1元素和1,1元素得:
(2.41)
根据2,2元素和2,3元素得:
(2.42)
例2.16
下面给出了一个笛卡尔坐标-RPY型机器人手所期望的最终位姿,求滚动角,俯仰角,偏航角和位移。
解:
根据上述方程,得到两组解:
或235
或128
或195
例2.17
与例2.16中的位姿一样,如果机器人是圆柱坐标-RPY型,求所有关节变量。
解:
在这种情况下,可用:
这个方程右边有4个角,它们是耦合的,因此必须像前面那样将它们解耦。但是,因为对于圆柱坐标系z轴旋转
角并不影响a轴,所以它仍平行于z轴。其结果是,对于RPY绕a轴旋转的
角可简单地加到
上。这意味着,求出的
实际上是
(参见图2.23)。根据给定的位置数据,可求得例2.16的解。参考式(2.33),得到:
同例2.16一样
当然,可以用类似的解法求出第二组解。
图2.23
例2.17的圆柱和RPY坐标
2.7.2.2 欧拉角
除了最后的旋转使然当前的a轴外,欧拉角的其他方面均与RPY相似(参见图2.24)。我们仍需要使所有旋转都是绕当前的轴转动以防止机器人的位置有任何改变。表示欧拉角的转动如下:
· 绕
轴(运动坐标系的z轴)旋转
度;
· 接着绕
轴(运动坐标系的y轴)旋转
度;
· 最后再绕
轴(运动坐标系的x轴)旋转
度。
表示欧拉角姿态变化的矩阵是:
(2.43)
图2.24
绕当前坐标轴的欧拉旋转
再次强调,该矩阵只是表示了由欧拉角所引起的姿态变化。相对于参考坐标系,这个坐标系的最终位姿是表示位置变化的矩阵和表示欧拉角的矩阵的乘积。
欧拉角的逆运动学求解与RPY非常相似。可以使欧拉方程的两边左乘
来消去其中一边的
。让两边的对应元素相等,就可得到以下方程(假设由欧拉角得到的最终所期望的姿态是由
矩阵表示):
(2.44)
或
(2.45)
记住,式(2.44)中的
表示了最终的期望值,它们通常是给定或已知的。欧拉角的值是未知变量。
让式(2.45)左右两边对应的元素相等,可得到如下结果:
根据2,3元素,可得:
或
(2.46)
由于求得了值,因此式(2.45)左边所有的元素都是已知的。根据2,1元素和2,2元素得:
(2.47)
最后根据1,3元素和3,3元素,得:
(2.48)
例2.18 给定一个直角坐标系—欧拉角型机器人手的最终期望状态,求相应的欧拉角。
解:根据前面的方程,得到:
或
将
和
的正弦值和余弦值应用于其他部分,可得:
或
或
2.7.2.3
链式关节
链式关节由3个旋转组成,而不是上面刚提出来的旋转模型,这些旋转取决于关节的设计。就像在2.7.1(d)中所做的那样,我们将在讨论D-H表示法时来推导表示链式关节的矩阵。
2.7.3 位姿的正逆运动学方程
表示机器人最终位姿的矩阵是前面方程的组合,该矩阵取决于所用的坐标。假设机器人的运动是由直角坐标和RPY的组合关节组成,那么该坐标系相对于参考坐标系的最终位姿是表示直角坐标位置变化的矩阵和RPY矩阵的乘积。它可表示为:
(2.49)
如果机器人是采用球坐标定位、欧拉角定姿的方式所设计的,那么将得到下列方程。其中位置由球坐标决定,而最终姿态既受球坐标角度的影响也受欧拉角的影响。
(2.50)
由于有多种不同的组合,所以这种情况下的正逆运动学解不在这里讨论。对于复杂的设计,推荐用D_H表示法来求解,并将在下面对此进行讨论。
2.8 机器人正运动学方程的D-H表示法
在1955年,Denavit和Hartenberg在“ASME Journal of Applied Mechanics”发表了一篇论文,后来利用那个这篇论文来对机器人进行表示和建模,并导出了它们的运动方程,这已成为表示机器人和对机器人运动进行建模的标准方法,所以必须学习这部分内容。Denavit-Hartenberg(D_H)模型表示了对机器人连杆和关节进行建模的一种非常简单的方法,可用于任何机器人构型,而不管机器人的结构顺序和复杂程度如何。它也可用于表示已经讨论过的在任何坐标中的变换,例如直角坐标、圆柱坐标、球坐标、欧拉角坐标及RPY坐标等。另外,它也可以用于表示全旋转的链式机器人、SCARA机器人或任何可能的关节和连杆组合。尽管采用前面的方法对机器人直接建模会更快、更直接,但D-H表示法有其附加的好处,使用它已经开发了许多技术,例如,雅克比矩阵的计算和力分析等。
假设机器人由一系列关节和连杆组成。这些关节可能是滑动(线性)的或旋转(转动)的,它们可以按任意的顺序放置并处于任意的平面。连杆也可以是任意的长度(包括零),它可能被弯曲或扭曲,也可能位于任意平面上。所以任何一组关节和连杆都可以构成一个我们想要建模和表示的机器人。
为此,需要给每个关节指定一个参考坐标系,然后,确定从一个关节到下一个关节(一个坐标系到下一个坐标系)来进行变换的步骤。如果将从基座到第一个关节,再从第一个关节到第二个关节直至到最后一个关节的所有变换结合起来,就得到了机器人的总变换矩阵。在下一节,将根据D-H表示法确定一个一般步骤来为每个关节指定参考坐标系,然后确定如何实现任意两个相邻坐标系之间的变换,最后写出机器人的总变换矩阵。
图2.25
通用关节—连杆组合的D-H表示
假设一个机器人由任意多的连杆和关节以任意形式构成。图2.25表示了三个顺序的关节和两个连杆。虽然这些关节和连杆并不一定与任