您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 机器人学导论第2章1
第2章机器人位置运动学§2.1引言§2.2机器人机构§2.3机器人运动学的矩阵表示§2.4齐次变换矩阵§2.5变换的表示§2.6变换矩阵的逆§2.7机器人的正逆运动学§2.8机器人正运动学方程的D-H表示法§2.9机器人的逆运动学解§2.10机器人的逆运动学编程§2.11设计项目1:SCARA机器人§小结§2.1引言位置运动学正运动学∶逆运动学∶关节变量位姿位姿关节变量{假设:在本章中,我们假设机器人末端是一个平板面,并称其为“手”或“端面”。只有在必要时,才将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。说明:实际上,机械手型机器人没有末端执行器,用户可根据实际应用为其附加不同末端执行器。而末端执行器的大小和长短决定机器人末端位置。2.2机器人机构大家先来看右边这幅图从这幅图我们可以看到,当曲柄转角设定为120°时,连杆与摇杆的角度也就确定了。这是典型的单自由度闭环结构,当变量设定为特定值时,机器人的机构就完全确定了,所有其他变量也就随之确定。但实际上,为了使机器人能在三维空间运动,机器人通常具有多个自由度,并且有三维开环链式机构,二维多自由度的机器人并不常见。而对于开环控制系统来说,由于没有反馈,如果关节和连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变,而且没有反馈。所以,对于一个实际的机器人来说,即使设定所有的关节,也不能确保机器人的手准确地处于给定的位置。只有不断测量所有关节和连杆的参数,或者监控系统的末端才能知道机器人手的运动位置。我们比较一下这两幅图,有谁能说出二者最本质的区别?大家再来看这样两幅图二者的本质区别就是,左图是一个闭环机构,而右图是一个开环机构。让我们分别列出两个机构的向量方程,用来表示这种区别。O1A+AB=O1O2+O2Ba图O1A+AB+BC=O1Cb图在式一中,如果连杆AB偏移,则O1A也会相应移动,但是,在等式右边,因为O1O2是可设定的,所以只需测出AB和O1A的变化,O2B就可测得了。而在式二中,如果左式中的AB变化了,显然,我们是无法预测O1C的变化的,除非AB,O1A和BC的变化都被测得。该怎样弥补开环机器人的缺陷呢?借助摄像机等装置来构成闭环系统增加连杆和关节强度来减少偏移§2.3机器人运动学的矩阵表示矩阵表示的范围:点,向量,坐标系,平移,旋转以及变换,还可以表示坐标系中的物体和其他运动元件。§2.3.1空间点的表示大家看下面这幅图,该用什么方法表示点P呢?我们可以这样来表示P=axi+byj+czk其中ax,by,cz是参考坐标系中表示该点的坐标。显然,也可以用其他坐标来表示空间点的位置。∧∧∧§2.3.2空间向量的表示让我们再来看下面这幅图,图中的向量P该怎样表示呢?向量可用三个起始和终止的坐标来表示。如果一个向量起始于A,终止于B,那么它可以表示为PAB=(Bx-Ax)i+(By-Ay)j+(Bz-Az)k如果一个向量的起点是原点,则上式就变成了点的表示形式,则有:P=axi+byj+czk其中ax,by,cz是该向量在参考坐标系中的分量。以上是我们比较熟悉的表示方法,下面我们来介绍一种矩阵表达的形式。∧∧∧∧∧∧上述向量也可表示为P=axbycz这种表示法也可以稍作变化:我们加入一个比例因子w,如果x、y、z各除以w,则得到ax、by、cz。于是,这时向量可以写为:P=XYZw其中,ax=x,by=yww等等随着w的变化,向量大小也随之发生变化,这类似于计算机图形学中对图片的放大或缩小。让我们来讨论一下w的取值w1时,向量的所有分量都变大w=1时,各分量大小保持不变w1时,向量的所有分量都变小w=0时,向量长度无穷大,方向由x,y,z确定注意:这就是矩阵表示法中方向向量的表示方法。接下来我们看这样一个例子例2.1有一个向量P=3i+5j+2k,按如下要求将其表示成矩阵形式:(1)比例因子为2(2)将它表示为方向的单位向量解:该向量可以表示为比例因子为2的矩阵形式,当比例因子为0时,则可以表示为方向向量,结果如下:P=和P=∧∧∧610423520接下来我们将方向向量变为单位向量。我们只需把每一个分量都除以三个分量平方和的开方,最终的答案是P=0.4870.8110.3240§2.3.3坐标系在固定参考坐标系原点的表示[][在上一节中我们得知,每一个向量都可由它们所在参考坐标系中的三个分量表示,我们不妨用三个相互垂直的单位向量来表示一个中心位于参考坐标系原点的坐标系,分别为n,o,a,依次表示法线(normal),指向(oritentation),和接近(approach)。这样,坐标系就可以由三个向量以矩阵的形式表示为F=[]nxoxaxnyoyaynzozaz§2.3.4坐标系在固定参考坐标系中的表示如果一个坐标系不在固定参考坐标系的原点,那么该坐标系的原点相对于参考坐标系该怎样表示呢?我们可以在该坐标系的原点与参考坐标系原点之间做一个向量,而这个向量由上节中提到的参考坐标系的三个坐标向量表示。这样,这个坐标系就可以由三个表示方向的单位向量以及第四个位置向量来表示。F=nxoxaxpxnyoyaypynzozazpz0001在上式中,前三个向量是w=0的方向向量,表示该坐标系三个单位向量n,o,a的方向,而第四个w=1的向量表示该坐标系原点相对于参考坐标系的位置。与单位向量不同,向量P的长度十分重要,因而使用比例因子为1。大家想一想,右图中的F坐标系该怎样表示呢?(它位于参考坐标系的3,5,7的位置。n轴与x轴平行,o轴相对于y轴角度45°,a轴相对于z轴角度45°)F=100300.707-0.707500.7070.70770001§2.3.5刚体的表示我们该怎样对一个物体进行空间表示呢?通常的做法是:首先在它上面固连一个坐标系,再将该固连的坐标系在空间表示出来。因为物体一直和该坐标系固连在一起,所以相对于该坐标系的位姿是已知的,而这个坐标系又可以通过参考坐标系来表示,因此这个物体相对于参考坐标系的位姿也就已知了。我们可以用矩阵表示这个位姿,其中坐标原点和相对于参考坐标系的表示该坐标姿态的三个向量同样可以用该矩阵表示出来。Fobject=nxoxaxpxnyoyaypynzozazpz0001大家再来想一想,一个刚体在空间有几个自由度?是三个吗?正确的答案是:六个因为刚体除了有沿三条参考坐标轴移动的三个自由度外,它自身还可以绕这三个轴旋转。所以如果要全面地定义一物体,就需要6条独立的信息来描述物体原点在参考坐标系中的位置,以及物体关于这三个坐标轴的姿态。如下图所示还记得前面列出的这个矩阵吗?大家来想一想,这个矩阵中有几条信息?Fobject=nxoxaxpxnyoyaypynzozazpz0001正确的答案是:12条因为最后一行的比例因子没有附加信息,所以我们将其排除。在剩下的12条中,9条为姿态信息,3条为位置信息。如果我们利用一些约束条件,是不是可以将上述信息减少到6条呢?答案是肯定的。但是,这需要利用6个存在的约束条件。这些条件来自于目前尚未利用的已知坐标系特性。谁能说一说是哪些特性?首先,三个向量n,o,a是相互垂直的其次,每个单位向量的长度必须为1我们可以将其转换为以下六个约束方程:n·o=0︱n︱=1n·a=0︱o︱=1a·o=0︱a︱=1对于左边的三个方程,我们也可以这样表示n×o=a求解所缺元素的值,并用矩阵来表示这个坐标系。F=?0?50.707??3??020001思路点拨:应用六个约束条件经过计算我们会得到nx=±0.707,nz=0,oy=0,oz=1,ax=±0.707,ay=-0.707大家想想为什么会出现多组解呢?这是因为利用给出的参数我们得到了两组在相反方向相互垂直的向量。除此之外,nx与ax必须同号,你知道为什么吗?最终我们得到了如下两个矩阵F=0.70700.70750.7070-0.707301020001或F=-0.7070-0.70750.7070-0.707301020001除了这种解法,我们也可以利用n×o=a来求解,大家回去不妨试试。§2.4齐次变换矩阵变换矩阵应写成方型形式理由:1计算方型矩阵的逆要比计算长方形矩阵的逆容易的多2为使两矩阵相乘,它们的维数必须匹配。由于要以不同顺序将许多矩阵乘在一起来得到机器人运动方程,因此应采用方阵进行计算。具体做法:1加入比例因子使之成为4x4矩阵,既表示姿态又表示位置2只表示姿态,去掉比例因子得到3x3矩阵3加入第四列全为零的位置数据以保持矩阵为方阵。这种形式的矩阵称为齐次矩阵,它们写为:F=nxoxaxpxnyoyaypynzozazpz0001§2.5变换的表示变换定义为空间的一个运动。当空间的一个坐标系(一个向量、一个物体或一个运动坐标系)相对于固定的参考坐标系运动时,这一运动可以用类似于表示坐标系的方式来表示。这是以因为变换本身就是坐标系状态的变化(表示坐标系位姿的变化),因此变换可以用坐标系来表示。变换可为如下几种形式中的一种:1纯平移2绕一个轴的纯旋转3平移与旋转的结合为了解它们的表示方法,我们将逐一进行探讨。§2.5.1纯平移变换的表示大家来看这样一幅图如果一坐标系(它也可能表示一个物体)在空间以不变的姿态运动,那么该变换就是纯平移。在这种情况下,它的方向单位向量保持同一个方向不变。所有的改变只是坐标系原点相对于参考坐标系的变换。相对于固定参考坐标系的新的坐标系的位置可以用原来坐标系的原点位置向量加上表示位移的向量求得。若用矩阵形式,新坐标系的表示可以通过坐标系左乘变换矩阵得到。由于在纯平移中方向向量不改变,变换矩阵T可以简单地表示为:T=100dx010dy001dz0001其中dx,dy和dz是纯平移向量d相对于参考坐标系x,y和z轴的三个分量。可以看到,矩阵的前三列表示没有旋转运动(等同于单位阵),而最后一列表示平移运动。新的坐标系位置为:Fnew=×100dx010dy001dz0001nxoxaxpxnyoyaypynzozazpz0001=nxoxaxpx+dxnyoyaypy+dynzozazpz+dz0001这个方程也可以用符号写为Fnew=Trans(dx,dy,dz)×Fold两个叉乘积矩阵如果位置交换的结果?首先,如前面所看到的,新坐标系位置可通过在坐标系矩阵前面左乘变换矩阵得到,后面将看到,无论以何种形式,这种方法对于所有的变换都成立。其次可以注意到,方向向量经过纯平移后保持不变。但是,新的坐标系位置是d和p向量相加的结果,即d+p。最后应该注意到,齐次变换矩阵与矩阵乘法的关系使得到的新矩阵的维数和变换前相同。让我们来看这样一个例子例题:坐标系F沿参考坐标系的x轴移动9个单位,沿z轴移动5个单位。求新的坐标系位置。F=0.527-0.5740.62850.3690.8190.4393-0.76600.64380001思路点拨:首先根据已知条件确定dx=9,dy=0,dz=5之后代入公式Fnew=Trans(dx,dy,dz)×Fold即可§2.5.2绕轴纯旋转变换的表示为简化绕轴旋转的推导,首先假设该坐标系位于参考坐标系的原点并且与之平行,之后将结果推广到其他的旋转以及旋转的组合。假设坐标系(n,o,a)位于参考坐标系(x,y,z)的原点,坐标系(n,o,a)绕参考坐标系的x轴旋转一个角度,再假设旋转坐标系(n,o,a)上有一点P相对于参考坐标系的坐标为Px,Py和Pz,相对于运动坐标系的坐标为Pn,Po和Pa。当坐标系绕x轴旋转时,坐标系上的点P也随坐标系一起旋转。旋转前后,P点坐标有何变化?如图所示,在旋转之前,P点在两个坐标系中的坐标是相同的(这时两个坐标系位置相同,并且相互平行)。旋转后,该点坐标Pn,Po和Pa在旋转坐标系(x,y,z)中保持不变,但在参考坐标系中Pn,Po和Pa却改变了让我们从x轴来观察在二维平面上的同一点的坐标结论:可以看出,Px不随坐标系统x轴的转动而改变,而Py和Pz却改变了可以证明PxPyPz1000cos-sin0sincosPnPoPa=可见,为了得到在参
本文标题:机器人学导论第2章1
链接地址:https://www.777doc.com/doc-5540648 .html