实验一、Matlab验证斯坦福机械手雅可比矩阵一、实验目的1.加深对雅可比矩阵的认识,熟练其计算原理;2.熟练掌握D-H连杆坐标系的确定方法和过程及各种变换矩阵;3.熟悉Matlab的操作与运用。二、实验原理对机械手的操作和控制,除了需要确定机械手操作空间与关节空间之间静态位资的映射转换关系以外,还需要对某一时刻机械手运动速度和关节速度之间的关系进行转换和分析,也就是机械手瞬时速度分析。而我们利用雅可比矩阵来对机械手的速度进行了分析。其中雅可比矩阵包括了两个方面:1.雅可比矩阵平移速度部分的分析;2.雅可比矩阵旋转速度部分的分析。T矩阵由以下公式计算可得:1111111111s00001iiiiiiiiiiiiiiiiiicascccssdTsscsccd三、实验步骤1、已知计算各级T矩阵665544445436546655221132210321220000000010001000000000100001000100011000000000100101000000010001cscscsscTTTscsccscsddTTTsc110000100001sc2、计算出各连杆坐标系到基坐标系0的变换矩阵:111101112121121121211210222212112132121211213212032220000000010100010000000100可知可知csscTzcccsssdsscssccdcTzscccscscdssdsccsssdscdTsccd121233200010可知cssszc1241412414121231212414124141212312042424223124141251241451251241412312124145050001()()()cccssccssccscsdsdscccsscsccssssdcdTscssccdcccsscsscccssscscccssccsdsdscccscsT12512414512512414123122423124514512512312124514512512312062455223()2452524525000112345600ssscccsssscscsccssdcdscccsscsccsscdXXcccsssscsccsdsdXXsccscsssscssdcdTXXscscccd01Matlab计算过程如下:clearsymsc1s1c2s2c3s3c4s4c5s5c6s6d1d2d3d4d5d6a1a2a3a4a5a6T10=[c1-s100;s1c100;0010;0001]T21=[c2-s200;001d2;-s2-c200;0001]T32=[1000;00-1-d3;0100;0001]T43=[c4-s400;s4c400;0010;0001]T54=[c5-s500;0010;-s5-c500;0001]T65=[c6-s600;00-10;s6c600;0001]T20=T10*T21;T30=T20*T32;T40=T30*T43;T50=T40*T54;T60=T50*T65;T60=simplify(T60)3、用速度矢量合成的方法计算雅可比矩阵Jv部分:356124123456102040506016263465666124561020162631245600000vvvvvvJJJJJJJJJJJJJzpzpzzpzpzpzzzzzzpzpzzzzzz1)计算1016zp1z为连杆1坐标系的z轴单位向量在基坐标系0中的描述;106p为连杆1坐标系原点到连杆6坐标系原点连线矢量16OO,在基坐标系0中的描述,计算过程为:计算矩阵T61,T61的第四列即为16OO,由于坐标系1相对于坐标系0有绕Z轴的转动,故需要对其进行转换,转换方法为;0116OOR,01R为T10中旋转部分注:Matlab中向量叉积方法:e=cross(a,b)T61=T21*T32*T43*T54*T65%计算出16OO在坐标系1中的描述P161=[s2*d3;d2;c2*d3]Rot10=[c1-s10;s1c10;001]%由T10知道旋转部分变换3*3矩阵P160=Rot10*P161%与P60最后一列比较z1=[0;0;1]e=cross(z1,P160)%可得到Jv第一列:e=[-s1*s2*d3-c1*d2;c1*s2*d3-s1*d2;0]2)计算2026zp2z为连杆2坐标系的z轴单位向量在基坐标系0中的描述;206p为连杆2坐标系原点到连杆6坐标系原点连线矢量26OO,在基坐标系0中的描述,计算过程为:计算矩阵P62,P62的第四列即为26OO,由于坐标系2相对于坐标系0有姿态变化,故需要对其进行转换,转换方法为;0226OOR,02R为T20中旋转部分注:Matlab中向量叉积方法:e=cross(a,b)T62=T32*T43*T54*T65%计算出26OO在坐标系2中的描述P262=[0;-d3;0]Rot20=[c1*c2-c1*s2-s1;s1*c2-s1*s2c1;-s2-c20]%由T20知旋转部分变换3*3矩阵P260=Rot20*P262z2=[-s1;c1;0]e=cross(z2,P260)%可得到Jv第一列:e=[c1*c2*d3;s1*c2*d3;-s1^2*s2*d3-c1^2*s2*d3]3)由于连杆3坐标系为移动坐标系,故起对连杆6的速度贡献不能计算为3036zp,而应该为Z3的单位向量在基坐标系0中的表示;故由T30直接可得Jv第三列为:1212320cssszc4)由于坐标系4、5、6和坐标系6的坐标原点重合故对应6066)ii()q(qiiOiiivzOOzp的计算结果均为0,于是可得3561241234561212312312121231231223211241412414124514512511241412414124500000000000000vvvvvvJJJJJJJJJJJJJcdssdccdcssdcsdscdsssdcsccsscccssccccsssscsccscsccscsccsccsc145125242424552100sssscssssscscc5)用直接求导的方法验证上面Jv的计算的正确性:在matlab中用B=jacobian(f,v)方法直接求导可以获取雅可比矩阵四、实验总结机器人雅可比矩阵能够很好地反映出操作空间与关节空间的速度映射关系,而Matlab则很好的简化了这种关系求导手段。实验二、诱导运动分析一、实验目的通过S,T,B三轴的各种不同的运动情况,来对齿轮链轮传动3自由度的腕部传动比和手转传动比的求解。二、实验原理实验原理:如下图所示的齿轮链轮传动,不同的传动轴拥有不同的传动比。1—油缸;2—链轮;3、4—锥齿轮;5、6—花键轴T;7—传动轴S;8—腕架;9—行星架;10、11、22、24—圆柱齿轮;12、13、14、15、16、17、18、20—锥齿轮;19—摆动轴;21、23—双联圆柱齿轮;25—传动轴B三、实验过程1、S,J轴固定腕摆传动比:2452413513yBByBByyZZZZZZZiZZZZZZZ主从附带手转传动比:2412241313/hhhBBhBByyByyhyZZZZZZZiiZZZZZZZ122413BhBhyZZZZZZZZ2、B,J轴固定手转传动比:*810127911*810127911hShSShShShZZZZiZZZZZZZZZZZZ主从3、J轴固定B,S轴共同运动消除手转干扰*81012122479111300hhSBSBhhyZZZZZZZZZZZZZZZZ四、实验总结实验三、机械手的逆向运动学分析及其验证一、实验目的根据机械手的正向运动学,运用逆向运动方法来求解机械手的运动。二、实验原理在实验室一中我们说明了正想求解的问题,即给定关节变量求解手部位姿,而在机器人的控制中往往需要在一直收不到达某种位姿的情况下,求解各个关节的变量值,这种问题称为机械手的逆向运动学问题。三、实验过程1、已知机械手的手部位姿矩阵,求个关节变量值:已知计算出的各级T矩阵如下:665544445436546655221132210321220000000010001000000000100001000100011000000000100101000000010001cscscsscTTTscsccscsddTTTsc110000100001sc2、求解T06由机器人的运动学分析可知:TTTTTTT56453423120106由此公式及其上面可以求出T06。3、求出各个关节的关节变量654321根据如下方法:分别用TTTTTT564534231201,,,,,的逆矩阵左乘TTTTTTT56453423120106两侧,利用矩阵元素相等建立相关的方程组,可以求出654321的值。4、利用matlab来进行机械手逆向运动学的验证其验证过程如下所示:symsst1st2st3st4st5st6d2d3symsnxoxaxpxnyoyaypynzozazpzT65=[cos(st6)-sin(st6)00;00-10;sin(st6)cos(st6)00;0001];T54=[cos(st5)-sin(st5)00;0010;-sin(st5)-cos(st5)00;0001];T43=[cos(st4)-sin(st4)00;sin(st4)cos(st4)00;0010;0001];T32=[1000;00-1-d3;0100;0001];T21=[cos(st2)-sin(st2)00;001d2;-sin(st2)-cos(st2)00;0001];T10=[cos(st1)-sin(st1)00;sin(st1)cos(st1)00;0010;0001];T10nizhen=inv(T10);T21nizhen=inv(T21);T32nizhen=inv(T32);T43nizhen=inv(T43);T54nizhen=inv(T54);T65nizhen=inv(T65);T60yizhi=[nxoxaxpx;nyoyaypy;nzozazpz;0001]四、实验总结由于机械手个关节变量相互耦合,后面计算的关节变量与前面的关节变量有关,因此,当前面关节变量的计算结果发生变化时,后面关节变量的计算结果也会发生变化,所以逆运算方程的解不是唯一的。机械人技术基础实验报