基于MATLAB的Puma250机器人运动仿真与分析

2018-12-20 06:28
现代制造技术与装备 2018年11期
关键词:位姿运动学连杆

李 瑾

(山西工程技术学院,阳泉 045000)

工业机器人是一种高度集成了机械、液压、电子、计算机等技术的工业产品,工业机器人的运动控制具有多变量、本质非线性等特征,在对工业机器人进行运动分析时,采用实物分析法虽具有很好的直观性,但也存在成本高、操作复杂、精度受限、空间运动轨迹难以直观展现等不利因素。利用计算机仿真技术可以很好地克服这些缺陷,直观再现工业机器人的运动状况[1]。

焊接机器人属于连续轨迹控制型机器人,其轨迹要求是空间任意直线或曲线,运动轨迹插补算法要求有足够的精度。本文以Puma250焊接机器人为研究对象,在MATLAB环境下,利用Robotics Toolbox 10.2工具箱,建立Puma250的运动模型,对机器人运动进行正运动和逆运动值的求解,并实现其末端直线运动轨迹的动画仿真以及其直线运动过程中插补点的精确求解。

图1 puma250机器人结构示意图

1 Puma250空间坐标系的建立

Puma250结构如图1所示,其运动分别为立柱旋转,肩弯曲、轴弯曲、腕弯曲、腕旋转以及缘旋转运动。Puma250机器人共6个转动关节,每个关节构成1个自由度,共6个自由度,可以实现末端执行器在其有效作业空间内的任意位姿,按Puma250结构依次给各个关节编号,如图2所示。

按照D-H(Denavit-Hartenberg)方法分别建立Puma250的6个转动关节的D-H坐标系;每个关节的转动轴线方向为其D-H坐标系的z轴方向,两相邻关节转动轴线之间的公垂线方向为其D-H坐标系的x轴方向,D-H坐标系的y轴方向由x轴和z轴方向确定,如图2所示[2]。

图2 Puma250机器人连杆坐标系

对于已经建立的每个连杆坐标系,可用4个参数来描述。首先定义连杆i为相邻两关节的轴线的公垂线段,则连杆长度Ai表示连杆i的长度,连杆扭角ɑi表示相邻两关节轴线在垂直于连杆i所在平面内的夹角,连杆距离Di表示沿关节i轴线的两条公垂线之间的距离,连杆夹角θi表示在垂直于关节i轴线的两个平面内的两条公垂线之间的夹角[2]。对于Puma250,连杆夹角θi为其关节变量,其他参数为定值。按照图2中连杆坐标系的位置确定各连杆的D-H参数值,如表1所示。

表1 Puma250机器人的D-H参数值

2 Puma250仿真模型的建立

按照Puma250的D-H值,利用MATLAB中Robotics Toolbox中的link函数建立机器人的连杆结构,Link函数如式(1)所示。

L(i)=Link([θi Di Ai ɑi sigma]) (1)

式中,前4个参数θi、Di、Ai、ɑi分别表示连杆夹角、连杆距离、连杆长度、连杆扭角,与表1中一致;sigma表示关节类型,sigma值为0表示关节的类型为转动关节,sigma值为1则表示关节类型为伸缩关节。Puma250关节类型皆为转动关节。给定各关节变量的初始值q0后,利用SerialLink函数将各连杆结构构成机器人模型,程序如下:

L(1)=Link([0 13 0 pi/2 0]);

L(2)=Link([0 2 8 0 0]);

L(3)=Link([0 2 0 pi/2 0]);

L(4)=Link([0 8 0 -pi/2 0]);

L(5)=Link([0 0 0 -pi/2 0]);

L(6)=Link([0 2 0 0 0]);

q0=[0 0 pi/2 0 -pi/2 0];

Puma250=SerialLink(L,’name’,’PUMA250’)

利用plot函数将Puma250模型在笛卡尔坐标系空间中显示出来[3]。利用teach函数,生成Puma250机器人关节变量控制框,用以验证连杆坐标系的正确性,如图3所示。程序如下:

Puma250.plot(q0);

teach(Puma250);

图3 Puma250的三维模型及其变量控制器

3 Puma250运动学仿真

机器人正运动学求解可以实现从机器人关节变量值到连杆末端位姿的转换,在Robotics Toolbox 10.2工具箱中,针对Puma250模型,给定各关节旋转变量值qa后,利用fkine函数求解Puma250关节末端的位姿T0,程序如下:

qa=[-pi -pi/4 3*pi/4 pi pi/2 pi/2];

T0=fkine(Puma250,qa);

Puma250.plot(qa);

机器人的逆运动学是给出连杆末端的位姿参数,求解连杆结构的各个关节变量值。在实际应用过程中往往是给出末端执行器的状态信息,通过控制器内部计算和算法优化得到各个关节变量的值,再将这些信息值以脉冲的形式传递给各个关节的运动伺服机构单元驱动各个关节运动[4]。在Robotics Toolbox 10.2工具箱中,在已知Puma250关节末端位姿T0情况下,利用ikine函数可以求解出一组对应的关节变量值,利用jacob0函数可以求得对应的雅各比矩阵,程序如下:

qz=Puma250.ikine(T0);

Puma250.plot(qz);

J=Puma250.jacob0(qz)

图4(a)是给定关节变量初始值qa的情况下,求解出末端关节位姿T0的结果,图4(b)是利用图4(a)中结果T0,逆运动学求解关节变量值qz的结果。机器人逆运动学存在多解性,Puma250的逆运动学解存在8种可能,但由于机械结构的制约,解不能完全实现。对比图4(a)与图4(b)两图中Puma250虽然关节末端的位姿都为T0,但其他关节的姿态却不同,图4(a)与(b)两图对应的关节变量值qz与qa也不相同,这是由于逆运动学的多解性导致的。

图4 puma250运动仿真结果

4 直线运动轨迹仿真

已知Puma250机器人关节末端运动初始点和运动结束点信息的情况下,可以通过MATLAB中ctraj函数求出机器人在两点之间的直线运动轨迹,过程如下:

init_ang=[0 pi/6 pi/2 0 -pi/2 0];

targ_ang=[pi/2 pi/6 pi/2 0 -pi/2 0];

T1=fkine(Puma250,init_ang);

T2=fkine(Puma250,targ_ang);

n=40;

Tc=ctraj(T1,T2,n);

Tjtraj=transl(Tc);

Q=Puma250.ikine(Tc) ;

w=[-18,30,-18,18,-2,18];

Puma250.plot(Q,’workspace’,w);

plot2(Tjtraj,’r’);

程序中首先已知Puma250机器人运动初始点关节变量init_ang和结束点关节变量targ_ang,通过fkine函数分别求出两点的变换矩阵T1和T2,通过ctraj函数将T1和T2之间直线空间分成40等份,得到一系列连续的位姿点集合Tc,Tc为T1与T2之间一系列直线插补点,利用ikine函数求出集合Tc中各个点对应的Puma250的关节变量值集合Q,通过plot函数连续显示集合Q中各点对应的Puma250位姿即可得到T1点到T2点之间Puma250运动动画,图5显示为运动仿真动画最后一帧。利用transl函数可以得到集合Tc中各点对应的笛卡尔坐标系的坐标点集合Tjtraj,利用plot2函数显示Tjtraj中各点即可得到Puma250末端端点直线运动轨迹图,如图5所示,运动轨迹呈现完美的直线,验证了此方法的高精度性。

图5 运动轨迹显示

5 结语

本文基于D-H方法对Puma250在Matlab环境下利用Robotics Toolbox 10.2工具箱中Link函数进行了建模,利用ikine函数和fkine函数对Puma250的正运动学和逆运动学分别进行仿真,给出其关节末端在空间中任意两点间的直线运动轨迹的仿真方法,利用ctraj函数实现两点之间高精度直线插补,为Puma250机器人运动轨迹研究提供计算方法和工具。

猜你喜欢
位姿运动学连杆
融合二维图像和三维点云的相机位姿估计
压裂泵虚拟试验连杆疲劳性能研究
某发动机连杆螺栓拧紧工艺开发
船舶清理机器人定位基准位姿测量技术研究
基于MATLAB的6R机器人逆运动学求解分析
工业机器人在MATLAB-Robotics中的运动学分析
优化ORB 特征的视觉SLAM
基于D-H法的5-DOF串并联机床运动学分析
连杆的设计及有限元分析
基于运动学原理的LBI解模糊算法