1.加深对雅可比矩阵的认识,熟练其计算原理;
2.熟练掌握D-H连杆坐标系的确定方法和过程及各种变换矩阵; 3.熟悉Matlab的操作与运用。
二、实验原理
对机械手的操作和控制,除了需要确定机械手操作空间与关节空间之间静态位资的映射转换关系以外,还需要对某一时刻机械手运动速度和关节速度之间的关系进行转换和分析,也就是机械手瞬时速度分析。而我们利用雅可比矩阵来对机械手的速度进行了分析。其中雅可比矩阵包括了两个方面:1.雅可比矩阵平移速度部分的分析;2.雅可比矩阵旋转速度部分的分析。
T矩阵由以下公式计算可得:
ciscii1i1Tissi10sicici1cisi100si1ci10ai1si1dici1di
1三、实验步骤
1、已知计算各级T矩阵
c6056Ts60102T300s60c6000100100010c50045Ts5000100c20d312Ts2010s50c50s20c200c4s034T400001000c1s1d201T100001001s4c400s1c100001000100001 00012、计算出各连杆坐标系到基坐标系0的变换矩阵:
c1s0T1100c1c2sc0122Ts20c1c2sc0T123s20s1c10000100000可知z11010s1s1d2s1cc1c1d2 可知z21000010c1s2c1d3s2s1d2c1s2sss1s2s1d3s2c1d2可知z312c2c2c2d3010c1s2s1s2c20s1c100c1c2c4s1s4c1c2s4s1c4c1s2c1s2d3s1d2scccsscsccssssdcd124141241412123120T4s2c4s2s4c2c2d30001(c1c2c4s1s4)c1s2s5(c1c2c4s1s4)s5c1s2c5c1c2s4s1c4c1s2d3s1d2(scccs)csss(scccs)ssscscsccssdcd124145125124141231201241451255Ts2c4c5c2s5s2c4s5c2c5s2s4c2d30001X1X2c1c2c4s5s1s4s5c1s2c5c1s2d3s1d2X3X4sccscsssscssdcd1245145125123120T6X5X6s2c4s5c5c2c2d30001Matlab计算过程如下:
>> clear
>> syms c1 s1 c2 s2 c3 s3 c4 s4 c5 s5 c6 s6 d1 d2 d3 d4 d5 d6 a1 a2 a3 a4 a5 a6
>> T10=[c1 -s1 0 0;s1 c1 0 0;0 0 1 0;0 0 0 1]
>> T21=[c2 -s2 0 0;0 0 1 d2;-s2 -c2 0 0;0 0 0 1] >> T32=[1 0 0 0;0 0 -1 -d3;0 1 0 0;0 0 0 1] >> T43=[c4 -s4 0 0;s4 c4 0 0;0 0 1 0;0 0 0 1] >> T54=[c5 -s5 0 0;0 0 1 0; -s5 -c5 0 0;0 0 0 1] >> T65=[c6 -s6 0 0;0 0 -1 0;s6 c6 0 0;0 0 0 1]
>> T20=T10*T21; >> T30=T20*T32; >> T40=T30*T43; >> T50=T40*T54; >> T60=T50*T65;
>> T60=simplify(T60)
3、用速度矢量合成的方法计算雅可比矩阵Jv部分:
Jv1Jv2Jv3Jv4JJ1J2J3J400z11p6z22p6z3z20z100z11p6z22p6z3z20z101) 计算z11p6
Jv5J5Jv6J60z55p6z50z66p6 z60z44p6z40z40z50z6 z1为连杆1坐标系的z轴单位向量在基坐标系0中的描述;
1在基坐标系0中的p为连杆1坐标系原点到连杆6坐标系原点连线矢量O1O6,
06描述,计算过程为:计算矩阵T61,T61的第四列即为O1O6,由于坐标系1相对
0于坐标系0有绕Z轴的转动,故需要对其进行转换,转换方法为;RO1O6,1R01为T10中旋转部分
注:Matlab中向量叉积方法:e=cross(a,b)
>> T61=T21*T32*T43*T54*T65 %计算出O1O6在坐标系1中的描述
>> P161=[s2*d3;d2;c2*d3]
>> Rot10=[c1 -s1 0;s1 c1 0;0 0 1] %由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]
02) 计算z22p6
z2为连杆2坐标系的z轴单位向量在基坐标系0中的描述;
2p为连杆2坐标系原点到连杆6坐标系原点连线矢量O2O6,在基坐标系0中
06的描述,计算过程为:计算矩阵P62,P62的第四列即为O2O6,由于坐标系2
0相对于坐标系0有姿态变化,故需要对其进行转换,转换方法为;RO2O6,2R02为T20中旋转部分
注:Matlab中向量叉积方法:e=cross(a,b)
>> T62= T32*T43*T54*T65 %计算出O2O6在坐标系2中的描述
>> P262=[0;-d3;0]
>> Rot20=[c1*c2 -c1*s2 -s1;s1*c2 -s1*s2 c1;-s2 -c2 0] %由T20知旋转部分变换3*3矩阵
>> P260= Rot20* P262 >> z2=[-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的速度贡献不能计算为
0,而应该为Z3的单位向量在基坐标系0中的表示;故由T30直接可得Jvz33p6第三列为:
c1s2ssz312
c204)由于坐标系4、5、6和坐标系6的坐标原点重合故对应
ii0i(zip6)qi的计算结果均为0 ,于是可得 vO6(ziOiO6)qJv1Jv2Jv3JJ1J2J3c1d2s1s2d3sdcsd121230 001Jv4Jv5J4J5c1c2d3c1s2s1c2d3s1s2s2d3c2s1c10000Jv6J6000000 c1c2c4s5s1s4s5c1s2c5s1c2c4s5c1s4s5s1s2c5s2c4s5c5c2000c1c2s4s1c4c1c2s4s1c4s1c2s4c1c4s1c2s4c1c4s2s4s2s45) 用直接求导的方法验证上面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轴固定
腕摆传动比:
y主ZBZ2Z4Z5ZBZ2Z4 iyB从ZZZZZZZB135y13y
附带手转传动比:
ihB
hhZZZZZZZhB2412B24 By/iyByZ1Z3ZyZhZ1Z3Zyh
2、B,J轴固定 手转传动比:
Z12ZBZ2Z4B ZhZ1Z3Zy*h主ZSZ8Z10Z12ihSS从Z7Z9Z11ZhZZZZ*hS81012SZ7Z9Z11Zh
*hh0
3、J轴固定B,S轴共同运动消除手转干扰
ZSZ8Z10Z12ZZZZS12B24B0Z7Z9Z11ZhZhZ1Z3Zy
四、实验总结
实验三、机械手的逆向运动学分析及其验证
一、实验目的
根据机械手的正向运动学,运用逆向运动方法来求解机械手的运动。
二、实验原理
在实验室一中我们说明了正想求解的问题,即给定关节变量求解手部位姿,
而在机器人的控制中往往需要在一直收不到达某种位姿的情况下,求解各个关节的变量值,这种问题称为机械手的逆向运动学问题。
三、实验过程
1、已知机械手的手部位姿矩阵,求个关节变量值: 已知计算出的各级T矩阵如下:
c6056Ts60102T300s60c6000100100010c50045Ts5000100c20d312Ts2010s50c50s20c200c4s0344T00001000c1s1d20T1100001001s4c400s1c100001000100001000 1 2、求解06T
由机器人的运动学分析可知:
012345 0TT3T4T5T6T 61T2 由此公式及其上面可以求出 06T。 3、求出各个关节的关节变量123456
123450012345 根据如下方法:分别用0T3T4T5T6TT,12T,3T,4T,5T,6T 的逆矩阵左乘6T1T2两侧,利用矩阵元素相等建立相关的方程组,可以求出123456的值。
4、利用matlab来进行机械手逆向运动学的验证 其验证过程如下所示:
>> syms st1 st2 st3 st4 st5 st6 d2 d3 >> syms nx ox ax px ny oy ay py nz oz az pz
>> T65=[cos(st6) -sin(st6) 0 0;0 0 -1 0;sin(st6) cos(st6) 0 0;0 0 0 1]; >> T54=[cos(st5) -sin(st5) 0 0;0 0 1 0;-sin(st5) -cos(st5) 0 0;0 0 0 1]; >> T43=[cos(st4) -sin(st4) 0 0;sin(st4) cos(st4) 0 0;0 0 1 0;0 0 0 1]; >> T32=[1 0 0 0;0 0 -1 -d3;0 1 0 0;0 0 0 1];
>> T21=[cos(st2) -sin(st2) 0 0;0 0 1 d2;-sin(st2) -cos(st2) 0 0;0 0 0 1]; >> T10=[cos(st1) -sin(st1) 0 0;sin(st1) cos(st1) 0 0;0 0 1 0;0 0 0 1];
>> T10nizhen=inv(T10); >> T21nizhen=inv(T21); >> T32nizhen=inv(T32); >> T43nizhen=inv(T43); >> T54nizhen=inv(T54); >> T65nizhen=inv(T65);
>> T60yizhi=[nx ox ax px;ny oy ay py;nz oz az pz;0 0 0 1]
四、实验总结
由于机械手个关节变量相互耦合,后面计算的关节变量与前面的关节变量
有关,因此,当前面关节变量的计算结果发生变化时,后面关节变量的计算结果也会发生变化,所以逆运算方程的解不是唯一的。
机械人技术基础
专业:学号:姓名: 实验报告
因篇幅问题不能全部显示,请点此查看更多更全内容