基于MATLAB Robotics Toolbox的机器人学仿真实验教学

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB Robotics Toolbox的机器人学仿真实验教学

摘要:简要介绍MATLAB Robotics Toolbox在机器人学仿真实验教学中的基本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。

关键词:机器人学;仿真实验教学;MATLAB;Robotics Toolbox

机器人学是一门高度交叉的前沿学科方向,也是自动化和机电工程等相关专业的一门重要专业基础课。在机器人学的教学和培训中,实验内容一直是授课的重点和难点。实物机器人通常是比较昂贵的设备,这就决定了在实验教学中不可能运用许多实际的机器人来作为教学和培训的试验设备。由于操作不方便、体积庞大等原因,往往也限制了实物机器人在课堂授课时的应用。此外,由于计算量、空间结构等问题,当前大多数机器人教材只能以简单的两连杆机械手为例进行讲解,而对于更加实际的6连杆机械手通常无法讲解得很清楚。因此,各式各样的机器人仿真系统应运而生。经过反复的比较,我们选择了MATLAB Robotics Toolbox [1]来进行机器人学的仿真实验教学。

MATLAB Robotics Toolbox是由澳大利亚科学家Peter Corke开发和维护的一套基于MATLAB的机器人学工具箱,当前最新版本为第8版,可在该工具箱的主页上免费下载(/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 = l ink([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)。这种方式对于实际的多连杆机械手的运动演示非常有益,同学们普遍反映对于机械手的关节、变量等概念有了更深入的理解。

图3puma560型机械手的滑动控制框

3机器人运动学求解

机器人运动学主要是研究关节变量空间和机器人末端执行器位置和姿态之间的关系。常见的机器人运动学问题可归纳为两类:1)运动学正问题(又称为直接

相关文档
最新文档