机器人导论第二章 空间描述和变换_第1页
机器人导论第二章 空间描述和变换_第2页
机器人导论第二章 空间描述和变换_第3页
机器人导论第二章 空间描述和变换_第4页
机器人导论第二章 空间描述和变换_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 空间描述和变换空间描述和变换2.1 概述2.2 描述:位置、姿态与坐标系2.3 映射:从坐标系到坐标系的变换2.4 算子:平移、旋转和变换2.5 总结和说明2.6 变换算法2.7 变换方程2.8 姿态的其他描述方法2.9 自由矢量的变换2.10 计算分析2.1 概述概述v机器人操作:通过某种机构使零件和工具在空间中运动。这自然就需要表达零件、工具以及机构本身的位置和姿态。v如何定义和运用表达操作臂位姿的数学量?我们必须定义坐标系并并给出表达规则。v位姿的描述是表达线速度和角速度、力和力矩的基础。v世界坐标系:讨论任何问题都能够参照这个坐标系,定义的位姿都是参照世界坐标系或者由世界

2、坐标系定义的笛卡尔坐标系。2.2 描述:位置、姿态与坐标系描述:位置、姿态与坐标系 描述描述:用来确定一个操作系统处理的各种对象的特性。这些对象包括零件、工具和操作臂本身。在本节中,我们将讨论位姿的描述以及包含这两个描述的统一体:坐标系。位置描述位置描述v一旦建立了坐标系,我们就能用一个31位置矢量对世界坐标系中的任何点进行定位。其它坐标系球坐标系柱坐标系向量向相应轴的投影注意:位置矢量必须附加信息,标明是在哪一个坐标系被定义的这个前置的上标a标明此位置矢量是在坐标系a中定义的姿态姿态描述描述v对于一个刚体来说,我们发现不仅经常需要表示它在空间中的位置,还经常需要描述空间中物体的姿态。v为了描

3、述刚体的姿态,我们将在刚体上固定一个坐标系并且给出此坐标系相对于参考系的表达。333131232221131211rrrrrrrrrzyxrbababaababababababababababbababaabzzzyzxyzyyyxxzxyxxzyxrzyxabababbababaabzyxrtbabaabrrr1v以上表明旋转矩阵的逆矩阵等于它的转置矩阵3izyxrrababababababbatbazyxtbaabrrv(1)方向角v,称为向量oa的方向角v(2)方向余弦vcos,cos,cos称为向量oa的方向余弦222coscbaara222coscbabrb222coscbacrcv

4、(3)性质 cos,cos,cos,1coscoscos222rrrcbaoa62031612131612131p坐标系坐标系的描述的描述v完整描述图中的操作手位姿所需的信息为位置和姿态v我们可在物体上任选一点描述其位置,为方便起见,将其作为连体坐标系的原点。v在机器人学中,位置和姿态经常成对出现,于是我们将此组合称作坐标系,四个矢量为一组,表示了位置和姿态信息。旋转矩阵原点位置矢量v坐标系可用三个标有箭头单位矢量定义的坐标系的主轴来描述;v从原点到另一点的箭头表示了一个矢量,这个矢量表示了箭头处的原点相对于箭尾所在坐标系的位置;例如在图中,箭头方向表示c相对于a的关系而不是a相对于c的关系。

5、v一个参考系可以用一个坐标系相对于另一坐标系的关系来描述。坐标系的图形表示坐标系的图形表示2.3 映射映射:从坐标系到坐标系的变换:从坐标系到坐标系的变换在机器人学的许多问题中,需要用不同的参考坐标系来表达同一个量。在上节中介绍了位置、姿态和坐标系的描述方法;现在为了描述从一个坐标系到另一个坐标系的变换,我们讨论映射的数学方法。关于平移坐标系的映射关于平移坐标系的映射两个坐标系具有相同的姿态borgabapppb不同于a的只是平移,可用矢量表示b的原点相对于a的位置这个例子说明了如何将一个矢量从一个坐标系映射到另一个坐标系。映射的概念,即描述一个坐标系到另一个坐标系的变换。关于关于旋转坐标系的

6、旋转坐标系的映射映射v我们已知矢量相对于某坐标系b的定义 ,怎样求矢量相对另一个坐标系a的定义 ?且这两个坐标系原点重合。pbpazyxabababbababaabzyxrv例2.1 图中表示坐标系b相对于坐标系a绕 轴旋转30度。这里 轴指向为由纸面向外。zzb绕 轴旋转30度zv在a中写出b单位矢量,将它们按列组成旋转矩阵,得到:000. 1000. 0000. 0000. 0866. 0500. 0000. 0500. 0866. 0rab已知:求出 :pa0 . 00 . 20 . 0pb000. 0732. 1000. 1prpbaba这里, 的作用是将相对于坐标系a描述的 映射到

7、。注意:从映射的角度看,原矢量p在空间并没有改变,我们只不过求出了这个矢量相对于另一个坐标系的新的描述。abrpbpa10000),(00100),(00001),(cssczcsscycsscxrrrv这些旋转变换可以通过右图推导zbzaybxbyaybxbxappppppppcossinsincoszbybxbzayaxapppppp1000cossin0sincos关于关于一般坐标系的映射一般坐标系的映射v问题:我们已知矢量相对某坐标系b的描述,想求出它相对于另一个坐标系a的描述。v一般的情形:v(1)坐标系b和坐标系a不具有相同的姿态v(2)坐标系b和坐标系a原点不重合v(1)在坐标系

8、b和坐标系a之间有一个矢量偏移v(2) b 相对于a有旋转,用 描述v问题:给出 ,试着计算rabpbpaaborgpborgababpprpaptpbaba110001pprpbborgaaba111000333231232221131211333231232221131211333231232221131211zayaxazbybxbbozaboyaboxazabozazbybxbyaboyazbybxbxaboxazbybxbbozaboyaboxazbybxbboababzayaxaappppppprrrprrrprrrppprprprppprprprppprprprpppppprrr

9、rrrrrrpprppppv上式的一般映射矩阵可以写为:v齐次变换矩阵,综合表示了平移变换和旋转变换的复合v上式可以写为:v vp点在a和b中的位置矢量分别增广为:v而齐次变换公式和变换矩阵变为:v 11010pprpbbaabatbbbbtaaaazyxzyx1,1pp10,0baababbabaprtptpv齐次坐标齐次坐标v所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示.有一个特定的投影附加于n维空间,也可以把它看作一个附加于每个矢量的比例系数. v三维直三维直v角坐标角坐标 twwzwywxv v齐次齐次v坐标坐标显然显然,齐次坐标表达并不是唯一的齐次坐标表达并不是唯一

10、的,随随w值的不同而不同值的不同而不同.在计算机图学中在计算机图学中,w 作为通用比例因子作为通用比例因子,它可取任意正值它可取任意正值,但在机器人的运动分析中但在机器人的运动分析中,总是取总是取w=1. tzyxv v机器人的坐标变换主要包括平移和旋转变换,平移是矩阵相加运算,旋转则是矩阵相乘,综合起来可以表示为p = m1*p + m2(m1旋转矩阵,m2为平移矩阵,p为原向量,p为变换后的向量).引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,合并后可以表示为p = m*p的形式.即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法. v为

11、什么要引进齐次坐标为什么要引进齐次坐标,它有什么优点它有什么优点?v例2.2 图2-8表示了一个坐标系b,它绕坐标系a的 轴旋转了30度,沿 平移10个单位,再沿 平移5个单位。已知 ,求 。axayz图2-8 经平移和旋转的坐标系btb0 . 00 . 70 . 3p pav坐标系b的定义为:按照b的定义和已知条件进行变换:已知:10000 . 0000. 1000. 0000. 00 . 5000. 0866. 0500. 00 .10000. 0500. 0866. 0tab0 . 00 . 70 . 3pb000. 0562.12098. 9ptpbaba2.4 算子:平移、旋转和变换

12、算子:平移、旋转和变换算子:用于坐标系间点的映射的通用数学表达式,包括点的平移算子、矢量旋转算子和平移加旋转算子。平移算子空间点的平移与此点向另一个坐标系的映射具有相同的数学描述。当一个矢量相对于一个坐标系“向前移动”时,既可以认为是矢量“向前移动”,也可以认为坐标系“向后移动”,二者的数学表达式是相同的,只不过是观察位置不同。如图2-9表示矢量 怎样通过矢量 进行平移。这里,矢量 给出了进行平移的信息。1apaqaq运算结果是得到一个新的矢量2apqppaaa12用矩阵算子写出平移变换,有: 12pqdpaqa算子dq可被看成是一个特殊形式的齐次变换: 1000100010001zyxqqq

13、qqd旋转算子旋转矩阵还可以用旋转变换算子来定义,它将一个矢量 用旋转r变换成一个新的矢量 。通常,当一个旋转矩阵作为算子时,就无需写出下标或上标,因为它不涉及两个坐标系。因此可写为:1ap2ap12prpaa矢量经某一旋转r得到的旋转矩阵与一个坐标系相对于参考坐标系经某一旋转r得到的旋转矩阵是相同的。尽管将旋转矩阵看作为一个算子是很简单的,但是我们将用另一个符号定义旋转算子以明确地说明是绕哪个轴旋转的: 12prpaka 1000010000cossin00sincoszr例2.3 图2-10给出一个矢量 。计算绕 轴旋转30度得到的新矢量 。2ap1ap将矢量绕 轴旋转30度得到的旋转矩阵

14、与一个坐标系相对于参考坐标系 轴旋转30度得到的旋转矩阵是相同的。因此,正确的旋转算子是zz000. 1000. 0000. 0000. 0866. 0500. 0000. 0500. 0866. 00 .30zr已知求得 为0 . 00 . 20 . 01pa2ap000. 0732. 1000. 10 .3012prpazaz变换算子与矢量和旋转矩阵一样,坐标系还可以用变换算子来定义。在这个定义中,只涉及到一个坐标系,所以符号t没有上下标。算子t将一个矢量 平移并旋转得到一个新的矢量:1ap12ptpaa经旋转r和平移q的齐次变换矩阵与一个坐标系相对于参考坐标系经旋转r和平移q的齐次变换矩

15、阵是相同的。一个变换通常被认为是由一个广义旋转矩阵和位置矢量分量组成的齐次变换的形式。例2.4 图2-11给出一个矢量 。将其绕 轴旋转30度并沿 轴平移10个单位,沿 轴平移5个单位,已知 ,求 。1ap1370tap 进行平移和旋转的算子t为:2ap10000 . 0000. 1000. 0000. 00 . 5000. 0866. 0500. 00 .10000. 0500. 0866. 0t0 . 00 . 70 . 31pa000. 0562.12098. 912ptpaazaxay已知将t看做算子:2.5 总结总结和说明和说明首先介绍了平移的概念,然后介绍了旋转的概念,最后介绍了旋

16、转和平移的一般情况。介绍了一个包括姿态和位置信息的4x4齐次变换矩阵,作为表示坐标系的一般工具。给出了齐次变换矩阵的三个定义:(1)它是坐标系的描述。 表示相对于坐标系a的坐标系b。特别是, 的各列是坐标系b主轴方向上的单位矢量, 确定了b的原点。(2)它是变换映射。 是映射 。(3)它是变换算子。 将 变换为 。tababraborgptabbappt1ap2ap由此可见,坐标系和变换都可用位置矢量加上姿态来描述。一般来说坐标系主要是用于描述,而变换常用来表示映射或算子。变换是平移和旋转的组合;但有时在纯旋转(或纯平移)情况下也常用变换这个术语。2.6 变换算法变换算法本节介绍变换的乘法和变

17、换的逆运算。这两个基本运算组成了一套功能完备的变换算子。v混合变换(乘法变换)v已知 ,求已知坐标系c相对于坐标系b,并且已知坐标系b相对于坐标系a。pcpav即,我们知道v答案:v步骤(1)将 变换成 :v步骤(2)将 变换成 :v步骤(3)联立步骤(1)、(2),消去中间项 ,得到pcpapbpbpbv给定已知的b 和 c的描述:v可以得到从 c到a的齐次变换矩阵:逆变换逆变换v 已知坐标系b相对于坐标系a 的描述,即已知怎样求a相对于b的描述?v 一个可能的方法:直接对矩阵 求逆v另一种方法:利用变换的性质求逆,即利用矩阵 的特殊结构tabtabv步骤1) 由 计算出v步骤2) 由 计算

18、出v上式的左边是坐标系b的原点在b中的描述,所以左边=0rabrbaborgapaorgbpv步骤3)综上,计算 的方法如下:v上式是求齐次逆变换的一般且非常有用的方法v注意,使用符号tba1abbatt1000prrtborgatabtabba一般,若1000zzzzyyyyxxxxpaonpaonpaont则10001apopnptzyxzyxzyxaaaooonnntzyxtzyxtzyxtzyxaaaooonnnpppaonp,例2.5 图2-13表示坐标系b绕坐标系a的 轴旋转30度,沿 轴平移4个单位,沿 轴平移3单位,于是得到 ,求 。abtbat定义坐标系b:10000 . 0

19、000. 1000. 0000. 00 . 3000. 0866. 0500. 00 . 4000. 0500. 0866. 0tab计算得到:10000 . 0000. 1000. 0000. 0598. 0000. 0866. 0500. 0964. 4000. 0500. 0866. 0tbazaxay2.7 变换方程变换方程图2-14表示坐标系d可以用两种不同的方式表达成变换相乘的形式。第一个第二个将两个表达式构造成一个变换方程tttaduaudttttcdbcubudtttttcdbcubadua如有n个未知变换和n个变换方程,这个变换可由变换方程解出。设式(2-50)中的所有变换除

20、了外均已知。这里,有一个变换方程和一个未知变换,很容易解出:11ttttcdudubbc在图2-15中,c的两个可能的描述为:ttttdcdauauc1tttbcubuc还可用式(2-52)和式(2-53)解出tttttdadcbcubua1例2.6 假定已知图2-16中变换描述了操作臂指端的坐标系t,它是相对于操作臂基座的坐标系b的,又已知工作台相对于操作臂基座的空间位置(因为已知与工作台相连的坐标系s是),并且已知工作台上螺旋的坐标系相对于工作台坐标系的位置,即。计算螺旋相对操作手的位姿。由公式推导(按照要求和我们的理解)得到相对于操作手坐标系的螺旋坐标系为:ttttsgbsbttg12.

21、8 姿态的其他描述方法姿态的其他描述方法33旋转矩阵是一种特殊的各列相互正交的单位矩阵。旋转矩阵也可被称为标准正交矩阵,“标准”是指其行列式的值为+1.能否用少于九个数字来表示一个姿态。线性代数的结论告诉我们,对于任何正交矩阵r,存在一个反对称矩阵s,满足 sisir313zz000 xyxysssssss任何33旋转矩阵可用三个参量确定。显然,旋转矩阵的九个分量线性相关。实际上,对于一个旋转矩阵r很容易写出六个线性无关的分量。如上所述,假定r为三列:rxyz这三个矢量是参考坐标系中某坐标系的单位轴。每个矢量都是单位矢量,且相互垂直,所以9个矩阵元素有6个约束:000111zyzxyxzyx自

22、然要问是否能找到这样一种姿态表示法,用三个参量就能简单进行表述。本节将给出几个姿态表示法。沿着三个垂直的轴的平移运动比较直观,而旋转似乎不太直观。例2.7 考虑两个旋转,一个绕轴 转30度,而另一个绕 轴转30度:000. 1000. 0000. 0000. 0866. 0500. 0000. 0500. 0866. 030zr866. 0500. 0000. 0500. 0866. 0000. 0000. 0000. 0000. 130xr87. 043. 025. 050. 075. 043. 000. 050. 087. 0303087. 050. 000. 043. 0-75. 050

23、. 025. 043. 0-87. 03030zxxzrrrr旋转矩阵一般不是互逆的,即 与 不同。abbcr rbacbr rzx因为旋转既可被看作算子又可被看作是对姿态的描述,因此毋庸置疑对于不同的用途就有不同的表示法。旋转矩阵可作为算子,、当乘以矢量时,旋转矩阵就起到旋转运算的作用。但是,用旋转矩阵来确定姿态有些不便。一个计算机终端操作员在输入一个机械手的期望姿态时,需要烦琐地输入一个九个元素的正交矩阵。而一种只需三个数的表示法就显得简便些。12种欧拉角坐标系:x-y-z x-z-yy-x-z y-z-xz-x-y z-y-xx-y-x x-z-xy-x-y y-z-yz-x-z z-y

24、-z12种固定角坐标系:x-y-z x-z-yy-x-z y-z-xz-x-y z-y-xx-y-x x-z-xy-x-y y-z-yz-x-z z-y-zx-y-z固定角坐标系描述坐标系b姿态的一种方法:首先将坐标系b和一个参考坐标系a重合。先将b绕 旋转 角,再绕 旋转 角,最后绕 转 角。每个旋转都是绕着固定参考坐标系a的轴。我们规定这种姿态的表示法为x-y-z固定角坐标系。“固定”一词是指旋转是在固定(即不运动的)参考坐标系中确定的。有时把它们定义为回转角、俯仰角和偏转角。axayaz cssccssccsscrrrrxyzxyzab000010010010000,ccscssccss

25、ccssscssscsccssscccrxyzab,333231232221131211,rrrrrrrrrrxyzabcrcracrcrarrra/,/2tan/,/2tan2tan33321121212112,3122,122tan0 . 00 .90rra22,122tan-0 . 00 .90-rraatan2(y,x)计算tan-1(y/x)时,可根据x和y的符号可判别求得的角所在的象限。例如,atan2(-2,-2)=-135,而atan2(2,2)=45,一个反正切函数的解可能被丢失。我们经常在360的范围内计算角度,因此一般应用atan2函数。注意,当两个解都是0时,atan2

26、成为不定的。有时称它为“4象限反正切”,一些编程语言库中对其作了预定义。z-y-x欧拉角坐标系b的另一种表示法如下:首先将坐标系b和一个已知参考坐标系a重合。先将b绕 旋转 角,再绕 旋转 角,最后绕 旋转 角。在这种表示法中,每次都是绕运动坐标系b的各轴旋转而不是绕固定坐标系a的各轴旋转。这样三个一组的旋转被称为欧拉角。注意每次旋转所绕的轴的方位取决于上次的旋转。由于三个旋转分别是绕着z,y和x,所以称这种表示法为z-y-x欧拉角。bzbybxrrrrbbbbabab 001000010000100abzyxz y xrrrrcscssccsscsc abz y xc cc s ss cc

27、s cs srs cs s sc cs s cc ssc sc c z-y-z欧拉角坐标系b的另一种表示法为:首先将坐标系b和一个已知参考坐标系a重合。先将b绕 旋转 角,再绕 旋转 角,最后绕 旋转 角。相对于运动坐标系b的旋转描述是一个欧拉角描述。因为三个旋转是依次绕z,y和z,所以称为此描述为z-y-z欧拉角。按上一节的推导,可得到等效矩阵 ,abz y zc s cs cc c ss cc srs c cc ss c sc cs ss cs sc bzbybz从等效矩阵得出z-y-z欧拉角介绍如下:已知 111213212223313233,abz y zrrrrrrrrrr 2231

28、323323133231tan2,tan2/,/tan2/,/arrrarsrsarsrs11,12-2tan0 . 00 . 0rra11,12-2tan0 . 00 .180rra ,abz y zc s cs cc c ss cc srs c cc ss c sc cs ss cs sc 其他角坐标系的表示法已经介绍了三种表示姿态的惯用方法:x-y-z固定角、z-y-x欧拉角和z-y-z欧拉角。每个表示法均需要按一定顺序进行三次绕主轴的旋转。这些表示法是24种表示法中的典型方法,且都被称作角坐标系表示法。其中,12种为固定角坐标系,另12种为欧拉角坐标系。注意到由于二者的对偶性,对于绕主

29、轴连续旋转的旋转矩阵实际上只有12种唯一的参数表示法。等效轴角坐标系表示法符号 表示绕一个给定轴 旋转30度的方位。这是一个等效轴角坐标系表示法的例子。如果轴的方向是一般方向,任何方位都可通过选择适当的轴和角度来得到。30.0xrx坐标系b的表述如下:首先将坐标系b和一个已知参考坐标系a重合将b绕矢量 按右手定则旋转 角。 cos0sin010sin0coscossin0sincos0011yxrr 1000cossin0sincoszr yxxxyzxzkxyzyyyzxxzyyzxzzk k vck k vk sk k vk srk k vk sk k vck k vk sk k vk s

30、k k vk sk k vcak从一个给定的旋转矩阵求出 和 ,这个逆问题大部分留在习题中,单在此给出一部分结果。如果 333231232221131211rrrrrrrrrrkab21cos332211rrra122131132332sin21rrrrrrk那么k例2.8 坐标系b最初与坐标系a重合。我们使坐标系b绕矢量 旋转,转角 ,求坐标系b的描述。0 . 10 . 00 . 00 . 00 . 0866. 0354. 0354. 00 . 0354. 0933. 0067. 00 . 0354. 0067. 0933. 0tab到此为止,我们讨论过的所有旋转都是绕经过参考系原点的轴进行

31、。如果我们遇到的问题不属于这种情况时,我们可以定义另外一个坐标系,该坐标系的原点在轴上,为此将这类问题简化为“经过原点的轴”的情况来解决,然后再求解这个变换方程。0.707 0.70 70.0tak 30例2.9 坐标系b最初与坐标系a重合。我们使坐标系b绕矢量 旋转,转角 ,求坐标系b的描述。0 . 10 . 00 . 00 . 00 . 30 . 10 . 00 . 00 . 20 . 00 . 10 . 00 . 10 . 00 . 00 . 1taa0 . 10 . 00 . 00 . 00 . 30 . 10 . 00 . 00 . 20 . 00 . 10 . 00 . 10 . 00 . 00 . 1tbb0 . 10 . 00 . 00 . 00 . 0866. 0354. 0354. 00 . 0354. 0933. 0067. 00 . 0354. 0067. 0933. 0tab0.707 0.70 70.0tak 30最后,我们可以用一个变换方程来计算要求的坐标系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论