三自由度机械手工作空间的设计(MATLAB)

来源:互联网 发布:sql server 2005安装 编辑:程序博客网 时间:2024/05/02 04:19

每每接触一样新知识,学习起来都很吃力,特别是没有高手指点,往往心血来潮又半途而废,就是因为交流的少,一些网站上对知识的保护意识还比较强,下载需要付费,对于知识的传播产生重重阻碍,我希望我的博客可以给初学者带来点引导,哪怕一点点入门思维,可以节省初学者们的时间,也就心满意足了!

这个题目是我研究生期间专业课学习的关于MATLAB SimMechanics 做的三自由度机械手的仿真,今天毫无保留的展示给大家其设计过程,虽然很简单,但是还是比较典型的仿真结构,希望对初学者有帮助。

题目的选择三自由度机械手工作空间分析,θ1,θ2,θ3的转角范围-90˚~90˚,l0=1m,l1=l2=0.8m。每个杆横截面积为60mm×20mm的矩形铁杆,θ1绕垂直z轴旋转,θ2,θ3在水平面内旋转。

理论分析:从题干可以得知,首先此工作空间需要有三个杆组成,即l0=1m,l1l2=0.8m,可以在刚体中设置长度;其次,题目要求θ1,θ2,θ3的转角范围-90˚~90˚,此项可以在信号发生器模块里面设置,本题信号均选择π/2的正弦波作为发生信号;第三,要求θ1绕垂直z轴旋转,我的理解是模拟机械手的支撑单元杆,此结构会做原地的自传,也就是围着Z轴旋转,满足题目要求;最后,要求θ2,θ3在水平面内旋转,这个比较好实现了,只要在刚体设置中,定好杆的位置就可以实现。

基于SimMechanics的运动学分析:根据机器人的机构组成,基于SimMechanics的三关节机器人仿真模型如图1所示。图中SimMechanics仿真模型主要由三个转动关节模块,三个刚体模块和一个地模块组成。转动关节1、2、3(R1、R2、R3)表示机器人的两个转动关节,刚体1、2、3(B1、B2、B3)代表杆1、杆2、杆3,地(Ground)表示固定机座。对于关节1、2、3用两个驱动器(R1 Actuator、R2 Actuator和R3 Actuator)进行运动驱动,为了精简模型,本模型采用了封装子系统操作,即把关节驱动器部分封装起来,由于三处关节得驱动基本相同,所以三处都采用了此操作,封装之后如下图中的(Power1、Power2、Power3),用两个传感器(R2 Sensor和R3 Sensor)测量关节转角,轨迹规划模块实现机器人末端的运动轨迹。

[转载]三自由度机械手工作空间的设计(MATLAB) 

三自由度机械手工作空间的设计方法:

1.打开MATLAB/SIMULINK,找到SimMechanics模块,如图2所示。

 [转载]三自由度机械手工作空间的设计(MATLAB)

2.按照题目要求从SimMechanics模块中依次拖拽相应的杆件和连接件,组成3关节机器人,但是组成后机器人是仿真不起来的,因为没有设定相关的一些参数。所需要的连接件在前面基于SimMechanics的运动学分析中已经详细介绍了。

3.参数的设定

1)转动关节模块参数的设定:按照题目的要求,需要θ1绕垂直z轴旋转,θ2,θ3在水平面内旋转,也就是说R1的转动轴应以Z为坐标轴运动,R2、R3也同样如此,这样设定参数可以满足要求,其参数的设置如图3所示。

[转载]三自由度机械手工作空间的设计(MATLAB) 

2)刚体模块参数的设定:此处参数的设定很关键,设置的对错将决定整个系统是否可以正常运行,参数的设定也是相对麻烦一些的,现在详细的介绍一下本题刚体模块参数的设定方法。首先,要设定一个基准,这里我采用Bottom为基准,设定其坐标为(0,0,0),并取名为CS1;其次,设定Top的坐标为(0,0,1),取名为CS2,这样以来就可以确定第一个杆的长度为1m,它是以CS1为基准设定的。再者还要设定一个中间点,坐标为(0,0,0.5),取名为CG,它也是以CS1为基准的。其参数的初设定如图4所示。

 [转载]三自由度机械手工作空间的设计(MATLAB)

图4 刚体模块参数的初设定

之所以称之为初设定,是因为这样设定后还不能满足题目的要求,因为题目中要求每个杆横截面积为60mm×20mm的矩形铁杆,所以还需要多设置8个点,即每4个点可以形成铁杆的两个截面。值得注意的是,此8个点中每4个点是关于中心点对称的,并且4个点是以CS1为基准,后4个点以CS2为基准。单位是毫米,截面积为60mm×20mm,所以可以这样设定前4个点的坐标,即第一点坐标是(0.03,0.01,0)依次类推,第二点坐标(-0.03,0.01,0),第三点坐标是(-0.03,-0.01,0),第四点坐标(0.03,-0.01,0),这样就可以构成杆件的一个下平面。杆件的上平面也是如此设定坐标,这四个坐标点是以CS1为基准的。其次的四个点是以CS2为基准的,这样就可以设计出矩形铁杆了。矩形铁杆参数设定如图5所示。第二和第三个杆也同样设定。

[转载]三自由度机械手工作空间的设计(MATLAB)

 图5 刚体矩形铁杆参数的设定

 

3)关节驱动器模块的设定:双击驱动器模块,选择Motion选项,然后依次在Angle选项中选择rad单位、Anguler velocity选项中选择rad/s、Anguler acceleration选项中选择rad/s^2单位,其参数设定如图6所示。

[转载]三自由度机械手工作空间的设计(MATLAB)

 图6 关节驱动器模块参数的设定

关节驱动器模块后面理解着驱动信号,本题中均采用π/2的正弦波作为发生信号,为了精简模型,将驱动器及信号发生器等模块封装为子系统。封装好的子系统如图7所示。

 [转载]三自由度机械手工作空间的设计(MATLAB)

图7  驱动器及信号发生器等模块及封装后的power1子系统

4)测量关节转角传感器模块的参数设定:本题主要测出关节的转角,所以只把转角选项打上对号就行了,其设置参数如图8所示。

[转载]三自由度机械手工作空间的设计(MATLAB) 

图8 传感器模块的参数设定

5)XYGraph模块参数的设置:这个示波器的主要功能是使用Matlab的图形窗口显示信号的X-Y图,其设置参数如图9所示。

 [转载]三自由度机械手工作空间的设计(MATLAB)

 图9 XYGraph模块参数的设置

现在可以进行仿真了,为了清楚看见三自由度机械手工作空间的运动方式及测出机器人末端的运动轨迹的曲线,首先需要设置下环境,即在Simulink菜单下选择Simulation/Mechanical environment/Visualization,将2个选项都打上对号,进行仿真的时候即可以实现同时观测机械手的运动方法及末端运动轨迹曲线。其次,还要设定仿真的步长和循环时间,为了清晰观察,一般把步长设的小点,本例中设为0.01,循环时间为inf即无限循环。

最后开始仿真,其工作空间及机械手末端轨迹曲线在T=100.83的时候如图10所示。
 [转载]三自由度机械手工作空间的设计(MATLAB)

图10 某一时间工作空间及机械手末端轨迹曲线

    需要说明的一点是由于上面图形表述的是某一时间的机械手末端轨迹曲线,也就是说没有完全循环完毕,如果完全循环,末端轨迹应该是一个椭圆环形,其环形内部的每一个点机械手的末端都可以走到。

为了展示机械手工作空间的全貌,这里采用了3D模式,其某一时间的运动情况如图11所示。

 [转载]三自由度机械手工作空间的设计(MATLAB)

图11 3D模式机械手工作空间

小结:本文主要针对三自由度机械手工作空间设计这个问题展开了相应的理论与基于SimMechanics的运动学分析,清晰的规划了设计步骤,并且按照要求将本题设计出来,其结果也比较符合实际要求,总之从这次作业里我学到了很多相关此门课程的知识,并且通过自己的实际操作使知识的掌握丛理性化上升到感性化,以上是我针对第一道题的设计全过程,诚望老师给予点评与指正。

1 0
原创粉丝点击