您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 基于MATLAB的PUMA560机器人运动仿真
基于MATLAB的PUMA560机器人运动仿真与轨迹规划摘要:针对PUMA560机器人,分析了它的正运动学、逆运动学和轨迹规划问题,并在MATLAB环境下,利用RoboticsToolbox对该机器人进行了建模。同时仿真了正运动学和逆运动学求解和轨迹规划,并观察了各关节运动,得到而来所需的数据。说明了所设计的参数是正确的,从而能够达到预定的目标。关键词:PUMA560机器人;运动学;MATLABRoboticsToolbox;仿真0引言机器人仿真利用计算机可视化和面向对象的手段,模拟机器人的动态特性,帮助研究人员了解机器人工作空间的形态及极限,揭示机构的合理的运动方案和控制算法,并在这台“机器人”上模拟能够实现的功能,使用户直接看到设计效果,及时找出缺点和不足,进行改进,从而解决在机器人设计、制造和运行过程中的问题,避免了直接操作实体可能造成的事故和不必要的损失,这将使机器人的研究和生产进入一个可预知的新时代。论文在MATLAB环境下,利用RoboticsToolbox对PUMA560机器人进行建模,并研究机器人的正运动学、逆运动学和运动规划等问题。1PUMA560机器人的参数介绍PUMA560机器人是Unimation公司生产的6自由度串联结构机器人,它由6自由度旋转关节构成,其构成示意图如图1。参照人体结构,机器人的第一个关节(J1)通常称为腰关节,第二个关节(J2)通常称为肩关节,第三个关节(J3)通常称为肘关节,关节轴线为J4,J5,J6的关节通常统称为腕关节。其中前三个关节确定手腕参考点位置,后三个关节确定手腕的方位。关节J1的轴线为铅直方向,关节J2,J3的轴线方向水平且平行,距离为a3。关节J1,J2轴线垂直相交,关节J3,J4轴线垂直交错,距离为a4。后三个关节的轴线相交于一点,该点也选作坐标系{4},{5},{6}的原点。各连杆坐标系如图2所示。图1PUMA560机械结构图2PUMA560连杆坐标系当PUMA560机器人处于初始状态(0iθ=)时,相应的连杆参数如表1。其中20.4381am=,30.0203am=,20.1491dm=,40.4331dm=。参数说明:杆件长度1ia−为从1iz−到iz沿1ix−测量的距离;扭转角1iα−为从1iz−到iz绕1ix−旋转的角度;横距id为从1ix−到ix沿iz测量的距离;关节角iθ为从1ix−到ix绕iz旋转的角度;2PUMA560机器人的运动分析2.1机器人运动学正问题所谓运动学正问题,就是对于机器人,给定杆件的几何参数和关节的位移,求解末端连杆坐标系相对于基坐标系的位姿。为求解运动学方程式,我们用齐次变换矩阵1iiA−来描述第i坐标系相对于(i-1)坐标系的位置和方位,第i坐标系相对于机座坐标系位姿的齐次变换矩阵0iT,表示为:001112iiiTAAA−=特别地,当i=6时,可求得06TT=,它确定了机器人的末端相对于基坐标系的位置和姿态,可以把T矩阵表示为:00123456123456TAAAAAA==0001xxxxyyyyzzzznsapnsapnsap(1)2.2机器人运动学逆问题机器人运动学逆问题就是已知末端连杆的位置和方位(可表示为位姿矩阵T),求得机器人的各个关节变量.对于PUMA560机器人,需要求解的变量为16~θθ。机器人逆运动学求解的方法是,对(1)式两边依次左乘A的逆矩阵,并使两端相等矩阵的对应元素相等,即可求得个关节变量。求解各关节变量的方程式如下:00123451623456ATAAAAA=,10023452163456AATAAAA=,21003453216456AAATAAA=,32100454321656AAAATAA=,43210055432166AAAAATA=2.3机器人的运动规划机器人的运动规划着重研究如何控制机器人的运动轨迹,使机器人沿规定的路径运动。机器人的运动,根据其运动轨迹可以分为点到点(point-to-point)运动和路径跟踪(trajectorytracking)运动。点到点运动只关心特定的位置点,而路径跟踪运动则关心整个运动路径。轨迹跟踪是以点到点运动为基础的,而点到点运动的中间路径是不确定的。因此,轨迹跟踪运动只是在给定的路径点上能够保证机器人末端到达期望位姿,而在各个路径点中间不能保证机器人末端到达期望位姿。为了使机器人末端尽可能地接近期望轨迹,在进行机器人笛卡尔空间的路径规划时,两路径点之间的距离应尽可能小。此外,为了消除两个路径点之间机器人末端位姿的不确定性,通常对各个关节按照联动控制进行关节间的运动规划。具体而言,就是在进行关节空间的运动规划时,要使得各个关节具有相同的运动时间。为了控制机器人的关节空间运动量,并使关节运动轨迹平滑,关节运动平稳,需要对机器人的关节运动进行规划。关节运动规划的内容主要包括关节运动轨迹的选择和关节运动位置的插值。所谓关节位置的插值,是指对于给定关节空间的起始位置和目标位置,通过插值计算中间时刻的关节位置3.MATLAB运动仿真在RoboticsToolbox中,link函数用来创建一个杆件,它有两种创建方法,一种是采用标准的D-H参数(standard),一种是采用改进的D-H参数(modified),分别对应于两种坐标系的设定,本文采用了改进的D-H参数。link的中前4个元素依次为α,a,θ,d,最后一个元素是0(代表转动关节)或1(代表移动关节)。link函数最后的参数为’mod’,standard或者modified,默认为standard。仿真步骤如下:(1)首先构建机器人,根据表1的数据,构建机器人的仿真程序(见附录rob1.m)。(2)显示机器人的三维图,如图3和图4,这是机器人在初始位置(0)iθ=时的三维图,可以通过调节图5控制面板中滑块的位置来使关节转动,就像实际操作机器人一样。(3)A点为初始位置,可以表示为qA=[0,0,0,0,0,0],目标位置为B点,各个关节旋转角度可以表示为qB=[2,-1,-0.25,0,0,0],实现机器人正运动学的求解,可以求得末端相对于基坐标系的位置坐标为(0.452,0.149,-0.430),相对于3个坐标轴的旋转角度(弧度)为(0,0,-1)。机器人在qB位置的三维图如图6。(4)根据齐次变换矩阵求得由初始位置到指定位置时各关节变量。(5)对机器人由A点到B点的运动轨迹进行仿真,仿真时间是10s,时间间隔是0.1s,可以绘出机器人由A点运动到B点,各关节随时间变换的位置图像,角速度图像和角加速度图像。本文只列出了关节3的图像,如图7。由T=fkine(r,q);返回的矩阵T是一个三维的矩阵,前两维是4x4的矩阵代表坐标变化,第三维是时间t。画出的机器人末端轨迹如图8所示。(源程序见附录track.m)图3MATLAB中机器人三维图(初始位置qA)图4MATLAB中机器人三维图放大图图5MATLAB中机器人控制面板图6机器人三维图(qB点位置)图7关节3的角速度、角速度和角加速度曲线图8机器人末端的运动轨迹4.结束语本文利用MATLABRoboticsToolbox建立了PUMA560机器人的三维模型,分析了它的正运动学、逆运动学和轨迹规划问题。通过调节滑块的位置,可以使图1中各关节按照设计时的要求转动,即关节1绕铅直方向转动,关节2,3绕水平方向转动,后三个关节可以使末端关节具有不同的姿态,从而验证了仿真的合理性。在第(5)步中可以看到机器人由qA点运动到qB点的动态三维图,各连杆没有运动错位的情况,由图7我们可以看到关节能够平稳的由初态运动到末态,图8显示了机器人末端由qA点运动到qB点的轨迹,达到了运动规划的目标。参考文献:[1]熊有伦,,丁汉,刘恩沧.《机器人学[M]》,北京:清华大学出版社,1993。[2]韩建海.《工业机器人》,武汉:华中科技大学出版社,2009.09。[3]郭仁生等.《机械工程设计分析和MATLAB应用》,3版,北京:机械工业出版社,2011.12。[4]王智兴,樊文欣,张保成,“基于Matlab的工业机器人运动学分析与仿真”,《机电工程》,2012,第29卷第1期:33-37。[5]罗家佳,胡国清,“基于MATLAB机器人运动仿真研究”,《厦门大学学报》,2005.09,第44卷第5期:640-644。[6]陶智量,“基于MATLAB的6自由度工业机器人仿真研究”,吉林大学硕士学位论文,2009.05[7]关勇,“基于MATLAB机器人运动学系统的研究与仿真”,合肥工业大学硕士学位论文,2004.05附录:MATLAB程序rob1.m%1机器人构建clc;clear;%modified改进的D-H法L1=link([00pi00],'modified');L2=link([-pi/2000.14910],'modified');L3=link([00.4318-pi/200],'modified');L4=link([-pi/20.020300.43180],'modified');L5=link([pi/20000],'modified');L6=link([-pi/20000],'modified');r=robot({L1L2L3L4L5L6});r.name='PUMA560';%模型的名称drivebot(r)track.m%前3个关节对机械手位置的影响qA=[0,0,0,0,0,0];%起始点关节空间矢量qB=[2,-1,-0.25,0,0,0];%终止点关节空间矢量t=[0:0.1:10];%仿真时间[q,qd,qdd]=jtraj(qA,qB,t);%关节空间规划plot(r,q)%关节3的角速度、角速度和角加速度曲线figuresubplot(1,3,1)plot(t,q(:,3))%关节3的位移曲线xlabel('时间t/s');ylabel('关节的角位移/rad');gridonsubplot(1,3,2)plot(t,qd(:,3))%关节3的位移曲线xlabel('时间t/s');ylabel('关节的角速度/(rad/s)')gridonsubplot(1,3,3)plot(t,qdd(:,3))%关节3的位移曲线xlabel('时间t/s');ylabel('关节的角加速度/(rad/s^2)')gridon%机器人末端轨迹图像T=fkine(r,q);x(1,1:101)=T(1,4,:);y(1,1:101)=T(2,4,:);z(1,1:101)=T(2,4,:);figure;plot3(x,y,z,'ko')%轨迹图像axis([-11-11-11])gridon
本文标题:基于MATLAB的PUMA560机器人运动仿真
链接地址:https://www.777doc.com/doc-5071521 .html