您好,欢迎访问三七文档
第2章机器人位置运动学2.1引言本章将研究机器人正逆运动学。当已知所有的关节变量时,可用正运动学来确定机器人末端手的位姿。如果要使机器人末端手放在特定的点上并且具有特定的姿态,可用逆运动学来计算出每一关节变量的值。首先利用矩阵建立物体、位置、姿态以及运动的表示方法,然后研究直角坐标型、圆柱坐标型以及球坐标型等不同构型机器人的正逆运动学,最后利用Denavit-Hartenberg(D-H)表示法来推导机器人所有可能构型的正逆运动学方程。实际上,机器手型的机器人没有末端执行器,多数情况下,机器人上附有一个抓持器。根据实际应用,用户可为机器人附加不同的末端执行器。显然,末端执行器的大小和长度决定了机器人的末端位置,即如果末端执行器的长短不同,那么机器人的末端位置也不同。在这一章中,假设机器人的末端是一个平板面,如有必要可在其上附加末端执行器,以后便称该平板面为机器人的“手”或“端面”。如有必要,还可以将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。2.2机器人机构机器手型的机器人具有多个自由度(DOF),并有三维开环链式机构。在具有单自由度的系统中,当变量设定为特定值时,机器人机构就完全确定了,所有其他变量也就随之而定。如图2.1所示的四杆机构,当曲柄转角设定为120°时,则连杆与摇杆的角度也就确定了。然而在一个多自由度机构中,必须独立设定所有的输入变量才能知道其余的参数。机器人就是这样的多自由度机构,必须知道每一关节变量才能知道机器人的手处在什么位置。图2.1具有单自由度闭环的四杆机构如果机器人要在空间运动,那么机器人就需要具有三维的结构。虽然也可能有二维多自由度的机器人,但它们并不常见。机器人是开环机构,它与闭环机构不同(例如四杆机构),即使设定所有的关节变量,也不能确保机器人的手准确地处于给定的位置。这是因为如果关节或连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变且没有反馈。例如,在图2.2所示的四杆机构中,如果连杆AB偏移,它将影响2OB杆。而在开环系统中(例如机器人),由于没有反馈,之后的所有构件都会发生偏移。于是,在开环系统中,必须不断测量所有关节和连杆的参数,或者监控系统的末端,以便知道机器的运动位置。通过比较如下的两个连杆机构的向量方程,可以表示出这种差别,该向量方程表示了不同连杆之间的关系。1122OAABOOOB(2.1)11OAABBCOC(2.2)可见,如果连杆AB偏移,连杆2OB也会相应地移动,式(2.1)的两边随连杆的变化而改变。而另一方面,如果机器人的连杆AB偏移,所有的后续连杆也会移动,除非1OC有其他方法测量,否则这种变化是未知的。为了弥补开环机器人的这一缺陷,机器人手的位置可由类似摄像机的装置来进行不断测量,于是机器人需借助外部手段(比如辅助手臂或激光束)来构成闭环系统。或者按照常规做法,也可通过增加机器人连杆和关节强度来减少偏移,采用这种方法将导致机器人重量重、体积大、动作慢,而且它的额定负载与实际负载相比非常小。图2.2(a)闭环机构;(b)开环机构2.3机器人运动学的矩阵表示矩阵可用来表示点、向量、坐标系、平移、旋转以及变换,还可以表示坐标系中的物体和其他运动元件。2.3.1空间点的表示空间点P(如图2.3所示)可以用它的相对于参考坐标系的三个坐标来表示:xyzPaibjck(2.3)其中,,,xyzabc是参考坐标系中表示该点的坐标。显然,也可以用其他坐标来表示空间点的位置。图2.3空间点的表示2.3.2空间向量的表示向量可以由三个起始和终止的坐标来表示。如果一个向量起始于点A,终止于点B,那么它可以表示为()()()ABxxyyzzPBAiBAjBAk。特殊情况下,如果一个向量起始于原点(如图2.4所示),则有:xyzPaibjck(2.4)其中,,xyzabc是该向量在参考坐标系中的三个分量。实际上,前一节的点P就是用连接到该点的向量来表示的,具体地说,也就是用该向量的三个坐标来表示。图2.4空间向量的表示向量的三个分量也可以写成矩阵的形式,如式(2.5)所示。在本书中将用这种形式来表示运动分量:xyzaPbc(2.5)这种表示法也可以稍做变化:加入一个比例因子w,如果x,y,z各除以w,则得到,,xyzabc。于是,这时向量可以写为:xyPzw,其中,,xyxyabww等等(2.6)变量w可以为任意数,而且随着它的变化,向量的大小也会发生变化,这与在计算机图形学中缩放一张图片十分类似。随着w值的改变,向量的大小也相应地变化。如果w大于1,向量的所有分量都变大;如果w小于1,向量的所有分量都变小。这种方法也用于计算机图形学中改变图形与画片的大小。如果w是1,各分量的大小保持不变。但是,如果w=0,,,xyzabc则为无穷大。在这种情况下,x,y和z(以及,,xyzabc)表示一个长度为无穷大的向量,它的方向即为该向量所表示的方向。这就意味着方向向量可以由比例因子w=0的向量来表示,这里向量的长度并不重要,而其方向由该向量的三个分量来表示。例2.1有一个向量P=3i+5j+2k,按如下要求将其表示成矩阵形式:(1)比例因子为2(2)将它表示为方向的单位向量解:该向量可以表示为比例因子为2的矩阵形式,当比例因子为0时,则可以表示为方向向量,结果如下:61042P和3520P然而,为了将方向向量变为单位向量,须将该向量归一化使之长度等于1。这样,向量的每一个分量都要除以三个分量平方和的开方:222356.16,0.487,6.166.16XYZxyPPPPP其中,等等和0.4870.8110.3240unitP2.3.3坐标系在固定参考坐标系原点的表示一个中心位于参考坐标系原点的坐标系由三个向量表示,通常着三个向量相互垂直,称为单位向量,,noa,分别表示法线(normal)、指向(orientation)和接近(approach)向量(如图2.5所示)。正如2.3.3节所述,每一个单位向量都由它们所在参考坐标系着的三个分量表示。这样,坐标系F可以由三个向量以矩阵的形式表示为:xxxyyyzzznoaFnoanoa(2.7)图2.5坐标系在参考坐标系原点的表示2.3.4坐标系在固定参考坐标系中的表示如果一个坐标系不再固定参考坐标系的原点(实际上也可包括在原点的情况),那么该坐标系的原点相对于参考坐标系的位置也必须表示出来。为此,在该坐标系原点与参考坐标系原点之间做一个向量来表示该坐标系的位置(如图2.6所示)。这个向量由相对于参考坐标系的三个向量来表示。这样,这个坐标系就可以由三个表示方向的单位向量以及第四个位置向量来表示。0001xxxxyyyyzzzznoapnoapFnoap(2.8)图2.6一个坐标系在另一个坐标系中的表示如式(2.8)所示,前三个向量是w=0的方向向量,表示该坐标系的三个单位向量,,noa的方向,而第四个w=1的向量表示该坐标系原点相对于参考坐标系的位置。与单位向量不同,向量P的长度十分重要,因而使用比例因子为1。坐标系也可以由一个没有比例因子的34矩阵表示,但不常用。例2.2如图2.7所示的F坐标系位于参考坐标系中3,5,7的位置,它的n轴与x轴平行,o轴相对于y轴的角度为45°,a轴相对于z轴的角度为45°。该坐标系可以表示为:100300.7070.707500.7070.70770001F图2.7坐标系在空间的表示举例2.3.5刚体的表示一个物体在空间的表示可以这样实现:通过在它上面固连一个坐标系,再将该固连的坐标系在空间表示出来。由于这个坐标系一直固连在该物体上,所以该物体相对于坐标系的位姿是已知的。因此,只要这个坐标系可以在空间表示出来,那么这个物体相对于固定坐标系的位姿也就已知了(如图2.8所示)。如前所述,空间坐标系可以用矩阵表示,其中坐标原点以及相对于参考坐标系的表示该坐标系姿态的三个向量也可以由该矩阵表示出来。于是有:0001xxxxyyyyobjectzzzznoapnoapFnoap(2.9)如第1章所述,空间中的一个点只有三个自由度,它只能沿三条参考坐标轴移动。但在空间的一个钢体有六个自由度,也就是说,它不仅可以沿着X,Y,Z三轴移动,而且还可绕这三个轴转动。因此,要全面地定义空间以物体,需要用6条独立的信息来描述物体原点在参考坐标系中相对于三个参考坐标轴的位置,以及物体关于这三个坐标轴的姿态。而式(2.9)给出了12条信息,其中9条为姿态信息,三条为位置信息(排除矩阵中最后一行的比例因子,因为它们没有附加信息)。显然,在该表达式中必定存在一定的约束条件将上述信息数限制为6。因此,需要用6个约束方程将12条信息减少到6条信息。这些约束条件来自于目前尚未利用的已知的坐标系特性,即:三个向量,,noa相互垂直每个单位向量的长度必须为1图2.8空间物体的表示我们可以将其转换为以下六个约束方程:(1)0no(2)0na(3)0ao(4)1n(向量的长度必须为1)(2.10)(5)1o(6)1a因此,只有前述方程成立时,坐标系的值才能用矩阵表示。否则,坐标系将不正确。式(2.10)中前三个方程可以换用如下的三个向量的叉积来代替:noa(2.11)例2.3对于下列坐标系,求解所缺元素的值,并用矩阵来表示这个坐标系。?0?50.707??3??020001F解:显然,表示坐标系原点位置的值5,3,2对约束方程无影响。注意在三个方向向量中只有三个值是给定的,但这也已足够了。根据式(2.10),得:0xxyyzznonono或(0)0.707()()0xyzznono0xxyyzznanana或()0.707()(0)0xxyznaan0xxyyzzaoaoao或(0)()0()0xyyzaaoo2221xyznnn或2220.7071xznn2221xyzooo或22201yzoo2221xyzaaa或22201xyaa将这些方程化简得:0.7070yzzono0.7070xxynaa0yyao220.5xznn221yzoo221xyaa解这六个方程得:0.707,0,0,1,0.7070.707xzyzxynnooaa和。应注意,xxna和必须同号。非唯一解的原因是由于给出的参数可能得到两组在相反方向上相互垂直的向量。最终得到的矩阵如下:0.70700.70750.70700.707301020001F或0.70700.70750.70700.707301020001F由此可见,两个矩阵都满足约束方程的要求。但应注意三个方向向量所表述的值不是任意的,而是受这些约束方程的约束,因此不可任意给矩阵赋值。同样,可通过no与叉乘并令其等于a,即noa来求解,表示如下:xyzxyzxyzijknnnaiajakooo或表示为:()()()yzzyxzzxxyyxxyzinonojnonoknonoaiajak将值代入方程得:(0.707)()()0zzyxzxyxyionojnoknoaiajk同时解下面这三个方程:0.7070zzyxxzyxyonoanoano以此来代替三个点乘方程。联立三个单位向量长度的约束方程,便得到六个方程,求解这六个方程,可得到相同的未知参数的解。2.4齐次变换矩阵由于各种原因,变换矩阵应写成方型形式,33或44均可。首先,如后面看到的,计算方形矩阵的逆要比计算长方形矩阵的逆容易得多。其次,为使两矩阵相乘,它们的维数必须匹配,即第一矩阵的列数必须与
本文标题:机器人运动学
链接地址:https://www.777doc.com/doc-4701213 .html