赞
踩
---------------------------------------------------------------------------------------------------------------------------------
一、使用改进型DH法建立机械臂模型,
二、正运动学求解,
三、逆运动学求解,
四、轨迹规划,
五、将轨迹生成视频,
六、完整的程序
一、使用改进型DH法建立机械臂模型
本篇文章以如下的GLUON-6L3型机械臂为例进行介绍 各轴的工作范围如下所示:
根据上面给出的带尺寸标注的所示姿态利用课本中所介绍的方法建立坐标系,
如下所示:
根据上面建立的坐标系写出DH表,并在matlab中使用Link函数和Serial Link函数构建机械臂模型,程序、模型及DH表如下:
- L(1)=Link([0,101.5,0,0],'modified');
- L(2)=Link([-pi/2,0,0,-pi/2],'modified');
- L(3)=Link([0,0,173,0],'modified');
- L(4)=Link([pi/2,79.2,173,0],'modified');
- L(5)=Link([0,79.2,0,pi/2],'modified');
- L(6)=Link([0,41.7,0,-pi/2],'modified');
- myrobot= SerialLink(L, 'name', 'sixlink');
- myrobot.teach
- myrobot.display
我们发现其构造与我们想要的差距较大,因此我们不得不放弃课本中所介绍的那种为了让更多的参数为0,所采用的坐标系原点选取规则
于是经过几次尝试,对坐标轴原点的位置进行了移动,重新建立了如下的坐标系:
根据上面建立的坐标系写出DH表,并在matlab中使用Link函数和Serial Link函数构建机械臂模型,程序、模型及DH表如下:
- % DH建模部分 设定各轴参数,参数顺序为theta、d、a、alpha
- L(1)=Link([0,101.5,0,0],'modified');
- L(2)=Link([-pi/2,79.2,0,-pi/2],'modified');
- L(3)=Link([0,-79.2,173,0],'modified');
- L(4)=Link([pi/2,79.2,173,0],'modified');
- L(5)=Link([0,79.2,0,pi/2],'modified');
- L(6)=Link([0,41.7,0,-pi/2],'modified');
-
- %建立机械臂模型
- myrobot= SerialLink(L, 'name', 'sixlink');
-
- %显示建立的机器人模型
- %myrobot.plot([0 0 0 0 0 0])
- myrobot.teach
-
- %打印出机器人模型的信息
- myrobot.display
我们可以发现重新建立了坐标系后,所建立的机械臂模型的构造与我们所期望的较为相似,但是我们发现其初始姿态和视野与我们期望的有所不同,而且机器臂模型下面拖着一个长杆 下面我们依次来解决上面的三个问题
首先我们对Link函数里面的offset参数进行设定,对L(2)和L(4)进行设定关节变量偏移量的设定,来使模型的初始姿态与我们设想的一样
程序如下:
- %定关节变量偏移量
- L(2).offset=-pi/2;
- L(4).offset=pi/2;
经过此步设定后的模型如下:
下面我们对视野以及坐标轴的范围进行设定,来获取我们期望的视野,并将模型下的长杆去掉,程序如下:
- %调整坐标轴及视野
- set(gca,'XLim',[-400,400]); %将X轴范围设定为[-400,400]
- set(gca,'YLim',[-500,500]); %将X轴范围设定为[-500,500]
- set(gca,'ZLim',[0,600]); %将Z轴范围设定为[0,600],最小值设定为0,可以消除模型下面的长杆
- set(gca,'XDir','reverse'); %将x轴方向设置为反向
- set(gca,'YDir','reverse'); %将Y轴方向设置为反向
- set(gca,'View',[-85,10]); %设定视野方向角和俯仰角
-
经过上面的设定后,我们得到的机械臂模型如下,已经跟我们所期望的模型几乎一样了
已经基本达到了我们的预期目标,在任务要求里对各关节变量的范围进行了限定,接下来对其进行设定,程序如下:
- %设定关节变量范围
- L(1).qlim=[deg2rad(-140) deg2rad(140)];
- L(2).qlim=[deg2rad(-90) deg2rad(90)];
- L(3).qlim=[deg2rad(-140) deg2rad(140)];
- L(4).qlim=[deg2rad(-140) deg2rad(140)];
- L(5).qlim=[deg2rad(-140) deg2rad(140)];
- L(6).qlim=[deg2rad(-360) deg2rad(360)];
至此,机械臂建模部分就算是完成了
---------------------------------------------------------------------------------------------------------------------------------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。