当前位置:   article > 正文

详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划_matlab中机械臂正逆求解编程

matlab中机械臂正逆求解编程

--------------------------------------------------------------------------------------

 注:本文转载于古月居,原文链接如下:详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划 - 古月居详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划https://www.guyuehome.com/27983    详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划 - 古月居

    本篇文章我首发在古月居,因版权原因,在CSDN不能放全文,只能放一小部分,欢迎大家前往古月居查看完整文章!!!,链接如上↑↑↑

---------------------------------------------------------------------------------------------------------------------------------

  本篇文章主要介绍详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划,全文附完整的MATLAB程序,本文主要分以下六个部分进行介绍(在CSDN仅可看第一部分,完整文章请前往古月居阅读)

一、使用改进型DH法建立机械臂模型,

二、正运动学求解,

三、逆运动学求解,

四、轨迹规划,

五、将轨迹生成视频,

六、完整的程序  

一、使用改进型DH法建立机械臂模型

 

001

002

本篇文章以如下的GLUON-6L3型机械臂为例进行介绍   各轴的工作范围如下所示:

 

003

       

     

根据上面给出的带尺寸标注的所示姿态利用课本中所介绍的方法建立坐标系,

如下所示:

   

004

根据上面建立的坐标系写出DH表,并在matlab中使用Link函数和Serial Link函数构建机械臂模型,程序、模型及DH表如下:  

  1. L(1)=Link([0,101.5,0,0],'modified');
  2. L(2)=Link([-pi/2,0,0,-pi/2],'modified');
  3. L(3)=Link([0,0,173,0],'modified');
  4. L(4)=Link([pi/2,79.2,173,0],'modified');
  5. L(5)=Link([0,79.2,0,pi/2],'modified');
  6. L(6)=Link([0,41.7,0,-pi/2],'modified');
  7. myrobot= SerialLink(L, 'name', 'sixlink');
  8. myrobot.teach
  9. myrobot.display

 

005

 

006

           

我们发现其构造与我们想要的差距较大,因此我们不得不放弃课本中所介绍的那种为了让更多的参数为0,所采用的坐标系原点选取规则          

于是经过几次尝试,对坐标轴原点的位置进行了移动,重新建立了如下的坐标系:

 

007

           

根据上面建立的坐标系写出DH表,并在matlab中使用Link函数和Serial Link函数构建机械臂模型,程序、模型及DH表如下:  

  1. % DH建模部分 设定各轴参数,参数顺序为theta、d、a、alpha
  2. L(1)=Link([0,101.5,0,0],'modified');
  3. L(2)=Link([-pi/2,79.2,0,-pi/2],'modified');
  4. L(3)=Link([0,-79.2,173,0],'modified');
  5. L(4)=Link([pi/2,79.2,173,0],'modified');
  6. L(5)=Link([0,79.2,0,pi/2],'modified');
  7. L(6)=Link([0,41.7,0,-pi/2],'modified');
  8. %建立机械臂模型
  9. myrobot= SerialLink(L, 'name', 'sixlink');
  10. %显示建立的机器人模型
  11. %myrobot.plot([0 0 0 0 0 0])
  12. myrobot.teach
  13. %打印出机器人模型的信息
  14. myrobot.display

 

008

 

009

               

我们可以发现重新建立了坐标系后,所建立的机械臂模型的构造与我们所期望的较为相似,但是我们发现其初始姿态和视野与我们期望的有所不同,而且机器臂模型下面拖着一个长杆 下面我们依次来解决上面的三个问题            

首先我们对Link函数里面的offset参数进行设定,对L2)和L4)进行设定关节变量偏移量的设定,来使模型的初始姿态与我们设想的一样            

程序如下:  

  1. %定关节变量偏移量
  2. L(2).offset=-pi/2;
  3. L(4).offset=pi/2;

经过此步设定后的模型如下:

 

010

            

下面我们对视野以及坐标轴的范围进行设定,来获取我们期望的视野,并将模型下的长杆去掉,程序如下:  

  1. %调整坐标轴及视野
  2. set(gca,'XLim',[-400,400]); %将X轴范围设定为[-400,400]
  3. set(gca,'YLim',[-500,500]); %将X轴范围设定为[-500,500]
  4. set(gca,'ZLim',[0,600]); %将Z轴范围设定为[0,600],最小值设定为0,可以消除模型下面的长杆
  5. set(gca,'XDir','reverse'); %将x轴方向设置为反向
  6. set(gca,'YDir','reverse'); %将Y轴方向设置为反向
  7. set(gca,'View',[-85,10]); %设定视野方向角和俯仰角

 经过上面的设定后,我们得到的机械臂模型如下,已经跟我们所期望的模型几乎一样了

 

011

002

已经基本达到了我们的预期目标,在任务要求里对各关节变量的范围进行了限定,接下来对其进行设定,程序如下:  

  1. %设定关节变量范围
  2. L(1).qlim=[deg2rad(-140) deg2rad(140)];
  3. L(2).qlim=[deg2rad(-90) deg2rad(90)];
  4. L(3).qlim=[deg2rad(-140) deg2rad(140)];
  5. L(4).qlim=[deg2rad(-140) deg2rad(140)];
  6. L(5).qlim=[deg2rad(-140) deg2rad(140)];
  7. L(6).qlim=[deg2rad(-360) deg2rad(360)];

至此,机械臂建模部分就算是完成了  

      本篇文章的第二到第六部分请前往古月居查看

--------------------------------------------------------------------------------------

 注:本文转载于古月居,原文链接如下:详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划 - 古月居详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划https://www.guyuehome.com/27983    详细介绍如何使用MATLAB机器人工具箱进行机械臂的正逆运动学求解以及轨迹规划 - 古月居

    本篇文章我首发在古月居,因版权原因,在CSDN不能放全文,只能放一小部分,欢迎大家前往古月居查看完整文章!!!,链接如上↑↑↑

---------------------------------------------------------------------------------------------------------------------------------

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/96562
推荐阅读
相关标签
  

闽ICP备14008679号