根据上述机械手各关节的D-H参数,利用工具箱中的Link函数创建机械手各连杆;然后利用SerialLink函数把独立的关节组合起来创建机器人对象。Link函数的调用格式为:
L(i)=Link( [theta,D,A,alpha,sigma],‘convention’)
其参数与D-H参数相对应,前四个参数依次表示:参数‘theta’代表关节角,参数‘D’代表横距,参数‘A’代表杆件长度,参数‘alpha’代表扭转角,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节,默认值为0。参数 ‘convention’ 表示使用D-H参数法创建机器人模型的类型:‘standard’表示采用标准D-H参数法创建机器人模型;‘modified’表示采用该改进D-H参数法创建机器人模型,默认值为’standard’,代码中使用默认值。
本文采用标准D-H参数法对机械手进行建模。
x1=-pi/2; a1=121.16; d1=191.99;
x2=0; a2=850.94;
x3=0; a3=482.6;
x4=pi/2; a4=133.35;
x5=-pi/2; a5=0;
x6=0; d6=380.9;
L(1)=Link([0 d1 a1 x1]); L(1).qlim=[-pi,pi];
L(2)=Link([0 0 a2 x2]); L(2).qlim=[-pi/6,pi/2];
L(3)=Link([0 0 a3 x3]); L(3).qlim=[-pi/2,pi/2];
L(4)=Link([0 0 a4 x4]); L(4).qlim=[-pi/2,pi/2];
L(5)=Link([0 0 a5 x5]); L(5).qlim=[-pi/2,pi/2];
L(6)=Link([0 d6 0 x6]); L(6).qlim=[-pi,pi];
robot6=SerialLink(L,‘name’,‘robot6’);
teach(robot6,‘degrees’);
0坐标系不用建立,直接从1坐标系开始,建系原则:根据L(i)= Link( [theta,D,A,alpha,sigma])参数顺序。
1坐标系→2坐标系:沿z1轴平移d1→沿x1轴平移a1→绕x1轴旋转-90°→2坐标系;
2坐标系→3坐标系:此处对于z2轴有一定的旋转角度,暂且不管,沿x2轴平移a2即可;
3坐标系→4坐标系:沿x3轴平移a3→4坐标系;
4坐标系→5坐标系:沿x4轴平移a4→绕x4轴旋转90°→5坐标系;
5坐标系→6坐标系: 由于6坐标系的z6轴是旋转轴,所以只需绕x5轴旋转-90°→6坐标系;
6坐标系→手抓坐标系:这两个坐标系名义上是重合的,但是需要沿着z6轴平移一段距离d6;
根据坐标系图得到各个旋转轴的转角:0,-82.19pi/180,82.19pi/180,0,-pi/2,0. 必须转化为弧度,这个转角需要根据三维模型和初始模型来确定。在robot6=SerialLink(L,‘name’,‘robot6’);后面添加如下两行代码:
qa=[0,-82.19pi/180,82.19pi/180,0,-pi/2,0];
robot6=SerialLink(L,‘offset’,qa);
或者合并为一行:robot6=SerialLink(L,‘name’,‘robot6’,‘offset’,qa);