当前位置:文档之家› 基于Matlab的puma560型机器人仿真

基于Matlab的puma560型机器人仿真

基于Matlab的puma560型机器人仿真
基于Matlab的puma560型机器人仿真

基于MATLAB的puma560型机器人的仿真

自121 成佳宇

摘要:本文针对PUMA560型机器人,分析了它的正运动学、逆运动学和轨迹规划问题,并在MATLAB环境下,利用机器人仿真工具箱(Robotics Toolbox)对该机器人进行了建模。同时仿真了正运动学和逆运动学求解和轨迹规划,并观察了各关节运动,得到所需的数据。说明了所设计的参数是正确的,从而能够达到预定的目标。

关键字:puma560机器人;运动学;MATLAB Robotics Toolbox;仿真

Abstract Based on PUMA560 robot, this article analyzes its forward kinematics and inverse kinematics and trajectory planning problem. and in the MATLAB environment, the robot simulation toolkit modeling for the robot. And simulation the forward kinematics and inverse kinematics and trajectory planning as well, observe the movement of each joint, we can get the required data. Shows the designed parameters are correct, so that they can reach a predetermined target. Keyword:PUMA560 robot;kinematics;MATLAB Robotics Toolbox;simulation

引言

机器人仿真利用计算机可视化和面向对象的手段,模拟机器人的

动态特性,帮助研究人员了解机器人工作空间的形态及极限,揭示机构的合理的运动方案和控制算法,并在这台“机器人”上模拟能够实现的功能,使用户直接看到设计效果,及时找出缺点和不足,进行改进,从而解决在机器人设计、制造和运行过程中的问题,避免了直接操作实体可能造成的事故和不必要的损失,这将使机器人的研究和生产进入一个可预知的新时代。

论文在 MATLAB 环境下,利用 Robotics Toolbox 对 PUMA560 机器人进行建模,并研究机器人的正运动学、逆运动学和运动规划等问题。

1 构建puma560机器人

我们可以利用所给的机器人工具箱来进行构建机器人对象,首先需要通过构建各个关节的关系,然后通过关节的组合来实现构建整个机器人对象,构建机器人对象主要在于构建各个关节,而构建关节时,需要用到工具箱中的LINK函数。

其中link函数的调用格式:

L = LINK([alpha A theta D])

L =LINK([alpha A theta D sigma])

L =LINK([alpha A theta D sigma offset])

L =LINK([alpha A theta D], CONVENTION)

L =LINK([alpha A theta D sigma], CONVENTION)

L =LINK([alpha A theta D sigma offset], CONVENTION)

参数CONVENTION可以取‘standard’和‘modified’,其中

‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数,本文中采用的是改进的D-H参数。参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节

2 PUMA560机器人的运动分析

2.1 机器人运动学正问题

所谓运动学正问题,就是对于机器人, 给定杆件的几何参数和关节的位移,求解末端连杆坐标系相对于基坐标系的位姿。

我们利用Robotics Toolbox中的fkine函数可以实现机器人运动学正问题的求解。

其中fkine函数的调用格式:

TR = FKINE(ROBOT, Q)

参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。

在PUMA560机器人中,定义关节坐标系的零点qz=[0 0 0 0 0 0],那fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。比如:

t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);

返回的矩阵T是一个三维的矩阵,前两维是4×4的矩阵代表坐标变化,第三维是时间。

2.2 运动学的逆问题

利用Robotics Toolbox中的ikine函数可以实现机器人运动学逆问题的求解。

其中ikine函数的调用格式:

Q = IKINE(ROBOT, T)

Q = IKINE(ROBOT, T, Q)

Q = IKINE(ROBOT, T, Q, M)

参数ROBOT为一个机器人对象,Q为初始猜测点(默认为0),T 为要反解的变换矩阵。

2.3 机器人的运动轨迹规划

利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。

其中ctraj函数的调用格式:

TC = CTRAJ(T0, T1, N)

TC = CTRAJ(T0, T1, R)

参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。

其中jtraj函数的调用格式:

[Q QD QDD] = JTRAJ(Q0, Q1, N)

[Q QD QDD] = JTRAJ(Q0, Q1, N, QD0, QD1)

[Q QD QDD] = JTRAJ(Q0, Q1, T)

[Q QD QDD] = JTRAJ(Q0, Q1, T, QD0, QD1)

参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。QD和QDD为返回的规划轨迹的速度和加速度。

要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2; [q,qd,qdd]=jtraj(qz,qr,t);

其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。

3 Matlab 运动仿真

在 Robotics Toolbox 中,link 函数用来创建一个杆件,本文采用改进的 D-H 参数(modified)来构建了一个6自由度的机器人。仿真步骤如下:

(1)首先构建机器人,构建机器人的程序如下:

L1=link([0 0 pi 0 0],'modified');

L2=link([-pi/2 0 0 0.1491 0],'modified');

L3=link([0 0.4318 -pi/2 0 0],'modified');

L4=link([-pi/2 0.0203 0 0.4318 0],'modified');

L5=link([pi/2 0 0 0 0],'modified');

L6=link([-pi/2 0 0 0 0],'modified');

r=robot({L1 L2 L3 L4 L5 L6});

https://www.doczj.com/doc/a26711508.html,='PUMA560';%模型的名称

drivebot(r)

(2)显示并控制机器人

如图显示的是机器人的初始位置和机器人的控制面板,通过调节滑块的位置,可以使上图中各关节按照设计时的要求转动。

(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 的角速度、角速度和角加速度曲线

figure

subplot(1,3,1)

plot(t,q(:,3) ) %关节 3 的位移曲线

subplot(1,3,2)

plot(t,qd(:,3)) %关节 3 的位移曲线

subplot(1,3,3)

plot(t,qdd(:,3)) %关节 3 的位移曲线

%机器人末端轨迹图像

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([-1 1 -1 1 -1 1])

grid on

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位置的三维图如图

(4) 对机器人由 A 点到 B 点的运动轨迹进行仿真

仿真时间设置为10s,时间间隔为 0.1s,可以绘出机器人由 A 点运动到 B 点,各关节随时间变换的位置图像,角速度图像和角加速度图像。本文只列出了关节 3 的图

关节随时间变换的位置图像,角速度图像和角加速度图像

(5)由T=fkine(r,q);返回的矩阵T是一个三维的矩阵,前两维是4x4的矩阵代表坐标变化,第三维是时间 t。画出的机器人末端轨迹如下图所示

机器人末端的运动轨迹

结束语:

本文利用 MATLAB Robotics Toolbox 建立了 PUMA560 机器人的三维模型,分析了它的正运动学、逆运动学和轨迹规划问题。通过调节滑块的位置,可以使图 1 中各关节按照设计时的要求转动,即关节 1 绕铅直方向转动,关节 2,3 绕水平方向转动,后三个关节可以使末端关节具有不同的姿态,从而验证了仿真的合理性。

参考文献:

【1】熊有伦《机器人技术基础》,武汉,华中科技大学出版社【2】韩建海《工业机器人》,武汉:华中科技大学出版社,2009.09 【3】臧庆凯, 李春贵, 闫向磊“基于 MATLAB的机器人运动仿真研究”《厦门大学学报》,2005.09

相关主题
文本预览
相关文档 最新文档