基于MATLAB Robotics Toolbox的机...

基于MATLAB Robotics Toolbox的机器人学仿真实验教学
摘 要:简要介绍MATLAB Robotics Toolbox在机器人学仿真实验教学中的基本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。
关键词:机器人学;仿真实验教学;MATLAB;Robotics Toolbox
机器人学是一门高度交叉的前沿学科方向,也是自动化和机电工程等相关专业的一门重要专业基础课。在机器人学的教学和培训中,实验内容一直是授课的重点和难点。实物机器人通常是比较昂贵的设备,这就决定了在实验教学中不可能运用许多实际的机器人来作为教学和培训的试验设备。由于操作不方便、体积庞大等原因,往往也限制了实物机器人在课堂授课时的应用。此外,由于计算量、空间结构等问题,当前大多数机器人教材只能以简单的两连杆机械手为例进行讲解,而对于更加实际的6连杆机械手通常无法讲解得很清楚。因此,各式各样的机器人仿真系统应运而生。经过反复的比较,我们选择了MATLAB Robotics Toolbox [1]来进行机器人学的仿真实验教学。
MATLAB Robotics Toolbox是由澳大利亚科学家Peter Corke开发和维护的一套基于MATLAB的机器人学工具箱,当前最新版本为第8版,可在该工具箱的主页上免费下载(http://www.petercorke.com/robot/)。Robotics Toolbox提供了机器人学研究中的许多重要功能函数,包括机器人运动学、动力学、轨迹规划等。该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。
本文简要介绍了Robotics Toolbox在机器人学仿真实验教学中的一些应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。
1坐标变换
机器人学中关于运动学和动力学最常用的描述方法是矩阵法,这种数学描述是以四阶方阵变换三维空间点的齐次坐标为基础的[2]。如已知直角坐标系{A}中的某点坐标,那么该点在另一直角坐标系{B}中的坐标可通过齐次坐标变换求得。一般而言,齐次变换矩阵 是4×4的方阵,具有如下形式:
其中 和 分别表示{A}{B}两坐标系之间的旋转变换和平移变换。
矩阵法、齐次变换等概念是机器人学研究中最为重要的数学基础。由于旋转变换通常会带来大量的正余弦计算,复合变换带来的多个矩阵相乘就更加难以手工计算,因此我们建议在仿真教学中通过计算机进行相应的坐标变换计算。利用MATLAB Robotics Toolbox工具箱中的transl、rotx、roty和rotz函数可以非常容易的实现用齐次变换矩阵表示平移变换和旋转变换。例如机器人在X轴方向平移了0.5米的齐次坐标变换可以表示为:
2构建机器人对象
要用计算机对机器人运动进行仿真,首先需要构建相应的机器人对象。在机器人学的教学中通常把机械手看作是由一系列关节连接起来的连杆构成。为描述相邻杆件间平移和转动的关系,Denavit和Hartenberg提出了一种为关节链中的每一杆件建立附属坐标系的矩阵方法,通常称为D-H参数法[3]。D-H参数法是为每个连杆坐标系建立4×4的齐次变换矩阵,表示它与前一杆件坐标系的关系。
在Robotics Toolbox中,构建机器人对象主要在于构建各个关节,而构建关节时,会用到LINK函数,其一般形式为:
L =LINK([alpha A theta D sigma], CONVENTION)
参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数[4],‘modified’代表采用改进的D-H参数[5]。参数‘alpha’代表扭转角 ,参数‘A’代表连杆长度,参数‘theta’代表关节角,参数‘D’代表偏距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表平动关节。
例如,通过如下的语句即可构建一个简单的两连杆旋转机器人(图1),命名为2R:
>> L1 = link([0 1 0 0 0],'standard');
>> L2 = link([0 1 0 0 0],'standard');
>> r = robot({L1 L2},'2R');
这样,只需指定相应的D-H参数,我们便可以对任意种类的机械手进行建模。通过Robotics Toolbox 扩展了的plot函数还可将创建好的机器人在三维空间中显示出来:
>> plot(r,[0 0])
图1两连杆机械手的三维模型
除了用户自己构建机器人连杆外,Robotics Toolbox也自带了一些常见的机器人对象,如教学中最为常见的puma560,standford等。通过如下的语句即可调用工具箱已构建好的puma560机器人,并显示在三维空间中(图2):
>> puma560;
>> plot(p560,qz)
图2puma560型机械手的三维模型
注意到机械手的末端附有一个小的右手坐标系,分别用红、绿、蓝色箭头代表机械手腕关节处的X,Y,Z轴方向。并且在XY平面用黑色直线表示整个机械手的垂直投影。
更进一步的,我们可以通过drivebot函数来驱使机器人运动,就像实际在操作机器人一样。具体驱动方式是为机器人每个自由度生成一个变化范围的滑动条,以手动的方式来驱动机器人的各个关节,以达到驱动机器人末端执行器的目的(图3)。这种方式对于实际的多连杆机械手的运动演示非常有益,同学们普遍反映对于机械手的关节、变量等概念有了更深入的理解。
本文来源于 www.14edu.com(论文网) 原文链接:http://www.14edu.com/ligong/jisuanji/ligong/rjgc/110910NA2010.html图3puma560型机械手的滑动控制框
3机器人运动学求解
机器人运动学主要是研究关节变量空间和机器人末端执行器位置和姿态之间的关系。常见的机器人运动学问题可归纳为两类:1)运动学正问题(又称为直接问题):对一给定的机器人,已知杆件几何参数和关节角矢量,求机器人末端执行器相对于参考坐标系的位置和姿态;2)运动学逆问题(又称为解臂形问题):已知机器人杆件的几何参数,给定机器人末端执行器相对于参考坐标系的期望位置和姿态(位姿),机器人能否使其末端执行器达到这个预期的位姿?
与第2节介绍过的坐标变换的情况类似,手工进行机器人运动学的求解非常繁琐甚至于无法得到最终的数值结果,这对于实际机器人的设计非常不利。因此在仿真实验教学中,我们希望能通过计算机编程的形式来进行机器人运动学的求解,把学生从繁琐的数值计算中解脱出来。下面以教学中最常用的puma560型机器人为例,演示如何运用Robotics Toolbox进行正运动学与逆运动学的求解。如第2节方法,先定义puma560型机器人,注意系统同时还定义了puma560型机器人两个特殊的位姿配置:所有关节变量为0的qz状态,以及表示“READY”状态的qr状态。如我们要求解所有关节变量为0时的末端机械手状态,则相应的正运动学可由下述语句求解:
得到的即为末端机械手位姿所对应的齐次变换矩阵。
逆运动学问题则是通过一个给定的齐次变换矩阵,求解对应的关节变量。例如,假定机械手需运动到[0, –pi/4, –pi/4, 0, pi/8, 0]姿态,则此时末端机械手位姿所对应的齐次变换矩阵为:
>> q = [0 -pi/4 -pi/4 0 pi/8 0]
q =
0 -0.7854 -0.7854 00.3927 0
>> T = fkine(p560,q)
T =
0.38270.00000.92390.7371
-0.00001.0000 -0.0000 -0.1501
-0.9239 -0.00000.3827 -0.3256
0 0 01.0000
现在假定已知上述的齐次变换矩阵T,则可以通过ikine函数求解对应的关节转角:
>> qi=ikine(p560,T)
qi=
-0.0000 -0.7854 -0.7854 -0.00000.3927 0.0000
发现与原始的关节转角数值相同。值得指出的是,这样的逆运动学求解在手工计算中几乎是无法完成的。
4轨迹规划
机器人轨迹规划的任务就是根据机器人手臂要完成的一定任务,例如要求机械手从一点运动到另一点或沿一条连续轨迹运动,来设计机器人各关节的运动函数。目前进行轨迹规划的方案主要有两种:基于关节空间方案和基于直角坐标方案。出于实际运用考虑,在教学中以讲解关节空间求解为主,本文也只演示关节空间的求解方案。
假设puma560型机器人要在2秒内从初始状态qz(所有关节转角为0)平稳地运动到朝上的“READY”状态qr,则在关节空间进行轨迹规划的过程如下:
首先创建一个运动时间向量,假定采样时间为56毫秒,则有:
>> t=[0:.056:2]';
在关节空间中插值可以得到:
>> [q, qd,qdd] = jtraj(qz,qr,t);
q是一个矩阵,其中每行代表一个时间采样点上各关节的转动角度,qd和qdd分别是对应的关节速度向量以及关节加速度向量。jtraj函数采用的是7次多项式插值,默认的初始和终止速度为0。对于上面的运动轨迹,主要的运动发生在第2个及第3个关节,通过MATLAB标准的绘图函数可以清楚的看到这两个关节随时间的变化过程(图4)。我们还可以通过Robotics Toolbox扩展了的plot函数以三维动画的形式
Tags: 

延伸阅读

最新评论

发表评论