基于MATLAB的某型机器人运动学可视化仿真平台实现
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1.2 逆运动学求解
机器人的逆运动学求解则是根据期望的机械手末 端位姿求取需要的机器人各关节的运动变化量。相比 之下, 逆运动学求解更有意义, 机器人的控制器正是靠 逆解得出关节运动的给定值, 并以此来运行机器人到达 期望的位姿。由于现有的大部分实用机器人都是采用 足够简单的结构 , 即有逆运动学封闭解的结构[ 6 ] , 所以 本平台只研究逆运动学的封闭解。 本文采用两种方法进行逆运动学求解。 一种方法是根据公式(2),采用系统的解析方法求解 开链结构的封闭解。解析法的主要优点是精确, 但推导 过程复杂, 且涉及大量的矩阵求逆和三角函数计算。本 文所讨论的 KLD-600 型六自由度机器人逆运动学的解 析求解过程和解析解可参见文献[ 7 ] 。 另一种方法是根据公式(3), 运用三层 BP 神经网络 的非线性映射能力, 建立起各关节旋转角度与机械手末 端位姿的非线性关系:
其中, Cθ i 表示 cos θ i , Sθ i 表示 sin θ i , di 表示相 邻两连杆的相对距离(偏距), θ i 表示相邻两连杆的夹角 (转角), ai 表示 2 个关节轴线的距离(杆长), α i 表示 2 个 关节轴线的夹角(扭角) [6]。对于 6 个关节全为旋转关节 的 K L D - 6 0 0 型机器人而言, Ai 是关节转角 θ i 的函数, 即 Ai (θ i ) 。 以齐次变换矩阵 A 为基础, 不难得出该机械手末端
Techniques of Automation & Applications | 67
3.1.1 正运动学求解
机器人的正运动学求解是指根据机器人各关节运 动的变化量( 如关节旋转角) 求出机器人手臂( 下称机械 手)末端相对其基坐标系的空间位姿,为此需首先定义各 关节坐标系, 并根据 D - H 方法建立各关节坐标系相对
(θ 1 , θ 2 , L , θ 6 ) = f (T ) (4)
−1
这种方法的主要优点是建模方法直接、易于理解 且不受机械手结构( 即 Ai (θ i ) ) 的限制, 具有一定的通用 性,而三层 BP 网利用 MATLAB 神经网络工具箱也很容 易求解, 但网络的训练需要大量的样本, 求出的解存在 一定的误差[8]。 本仿真平台利用 MATLAB 软件,以 KLD-600 型机 器人为模型, 分别基于上述解析法和神经网络方法, 设 计了逆运动学求解模块。
源更少, 所以本系统采用物件方式实现机器人运动的动 画演示。 以下给出机械手(不含手爪)动画生成的部分代码以 说明在 MATALB 中以物件方式绘制动画的过程。 ... a=[0 0 0;0 0 240;0 0 450;240 0 450;320 0 450]’ ; % 定义机械手上关键点的坐标矩阵 a h1=line(a(1,:),a(2,:),a(3,:),'LineWidth',2.7, 'color','b'EraseMode','xor','Marker','O', 'markersize',5); % 以关键点为端点连线画出机器人初始位姿时的 图像 h1,此处参数 'EraseMode' 设置为 'xor' 表示画该 条连线时对旧连线的“擦除方式”为“异或” ,即只擦除 旧连线上与新连线不同的地方, 同时画出新连线上与旧 连线不同的部分 ... n=100; % 定义从初始位姿到目标位姿间动画绘制所需的 插值点数 n x1=linspace(0,q1,n); x2=linspace(0,q2,n); ... x6=linspace(0,q6,n); % 生成动画绘制中各关节角的插值点 x1 ̄x6,其中 q1 ̄q6 为用户给定的目标关节角 for i=1:n % 循环绘制各插值点处机器人的图像以组成动画, 以 x1 ̄x6 为参数,通过齐次变换求出插值点处各关键点 的三维坐标并修正矩阵 a ; set(h1,'xdata',a(1,:),'ydata',a(2,:),'zdata',a (3,:)); % 以修正后的坐标矩阵 a 修正机器人的图像句柄 h1 drawnow; % drawnow 的作用是使 MATLAB 立刻处理 set 指令 pause(0.05); % 继续运行前的暂停时间(秒) end
《 自动化技术与应用 》2 0 1 1 年第 3 0 卷第 7 期
模式识别与仿真
Pattern Recognition and Simulation
坐标系的位姿 T , 从而实现正运动学的求解。 针对上述正运动学求解过程中所要进行的矩阵和 三角函数计算,本仿真平台采用 MATLAB 编程实现。
3.2 显示模块的实现
显示模块对机器人的运动进行三维实时动画演示, 并以数据形式显示机器人末端的位姿。
Implementation of Visualized Kinematics Simulation Platform for KLD-600 6-DOF Robot Based on MATLAB
LIU Xiao-yu, HE Hong-sheng
( Wuhan University of Science and Technology, Wuhan 430081 China )
平台整体由三个模块组成: 运算模块、显示模块和 控制模块。运算模块负责计算机器人正、逆运动学解; 显示模块主要根据后台运算结果将机器人的操作过程 以 3 D 动画的形式表现出来; 控制模块对机器人进行点 动和联动的人机交互控制。整个仿真系统的模块结构 关系如图 1 所示。
Cθ i −Sθ iCθ i Sθ iSα i aiCθ i Sθ i Cθ iCθ i −Cθ iSθ i aiSθ i Ai = 0 Sα i Cα i di (1) 0 0 1 0
1 引言
工业机器人作为一种现代化的生产工具, 已经广 泛应用于各种工业领域。由于机器人造价昂贵, 需要 的作业空间大, 故在进行机器人研究和教学时不可能 全用实际的机器人作试验设备, 而机器人关节运动的 强耦合又给其空间运动轨迹的分析造成困难, 为此有 必要开发可视化机器人仿真平台 [ 1 ] 。目前这方面的研 究多基于微机,如利用 3D Studio MAX、OpenGL 软 件的三维图形处理能力对机器人实体进行三维建模
i
3 仿真平台的实现
3.1 运算模块的实现
在本仿真平台中,KLD-600 型机器人的正、逆运动 学求解由运算模块完成。其中涉及的大量矩阵和三角 函数计算借助 MATLAB 可非常容易地实现。
相对基坐标系的位姿 T 为: T = A1 (θ1 ) A2 (θ 2 )L A6 (θ 6 ) (2) 显然, T 亦为形如公式( 1 ) 的齐次变换矩阵, 且 T 为 关于各关节转角 θ i 的函数矩阵, 即 T = f (θ1 ,θ 2 ,L,θ 6 ) (3) 公式(3)实则为正运动学求解的通式。因此, 本仿真 系统根据用户通过仿真平台上的控制面板输入的六个关 节转角θ i,依公式(1)和(2)即可计算出机械手末端相对基
图 2 KLD-600 型机器人各关节坐标系的定义
具体到本系统研究的 KLD-600 型六自由度关节机 器人, 为求其பைடு நூலகம்运动学解, 首先定义各关节坐标系如图 2 所示。 采用齐次变换矩阵 A 来描述第 i 个坐标系相对前一
i
坐标系, 即第 i − 1 个坐标系的位姿, 则:
图 1 仿真平台的模块结构图
Abstract: The six degrees of freedom ( 6-DOF ) robots have coupling joints and are difficult to be analyzed. This paper develops a visualized simulation platform of robots. The simulation platform takes KLD-600 6-DOF teaching robot as the research object and can perform forward and inverse kinematics analysis of the robot. The animation demonstration of the jog and linkage operation of the robot is realized by MATLAB integrated simulation environment. All the simulation functions are called in the form of graphical user interface (GUI). The designed robot simulation platform can be an effective simulation tool for teaching and research. Key words: visualized simulation; robot; kinematics; MATLAB
多种软件系统开发时的数据衔接问题。
其前一关节坐标系的位姿( 用齐次转换矩阵表示) , 然后 通过相应的坐标变换最终求出机械人手臂末端在基坐 标系中的位置和姿态。
2 仿真平台的模块结构
KLD-600 型机器人是一种六自由度串联型教学机 器人, 其每个关节均为旋转关节, 在其末端安装手爪后 可抓取工作空间内以任意位姿摆放的物体。为直观地 反映该机器人的抓取操作, 并对其进行运动学分析, 本 仿真平台采用了模块化设计。
,其仿真虽然结果形象, 但机器人的实体建模过程复
收稿日期: 2 0 1 0 - 1 0 - 1 4 66 | Techniques of Automation & Applications
模式识别与仿真
Pattern Recognition and Simulation
《自动化技术与应用》2 0 1 1 年第 3 0 卷第 7 期
[2 ̄5]
杂。其 实 若 仅 以 了 解 机 器 人 关 节 运 动 机 理 为 仿 真 目 的, 机器人连杆的实体模型用线条表示即可, 这样就可 以大大简化机器人的结构建模过程, 而把仿真的主要 精力集中在机器人运动学等原理性的分析上。考虑到 机器人运动学分析中涉及大量的矩阵计算, 而 MATLAB 正以矩阵的运算和数据的可视化见长,加之 其还具有简单的动画制作和图形用户界面设计功能, 所以本文从研究机器人运动学原理、演示机器人运行 状态的角度出发,以 KLD-600 型六自由度关节机器人 为研究对象, 以线条表示机器人的连杆模型, 仅选用 MATLAB 一种软件开发了一个可视化机器人运动学仿 真平台, 其建模和动画制作过程简单, 同时也省却了用
《 自动化技术与应用 》2 0 1 1 年第 3 0 卷第 7 期
模式识别与仿真
Pattern Recognition and Simulation
基于 MATLAB 的某型机器人运动学可视化 仿真平台实现
刘晓玉, 何洪生
(武汉科技大学,湖北 武汉 430081)
摘 要: 针对六自由度机器人关节运动强耦合难分析的问题,开发了可视化机器人仿真平台。该平台以 KLD-600 型六自由度教学机 器人为研究对象,利用 MATLAB 集成仿真环境,分别实现了机器人正逆运动学计算、机器人点动和联动操作的动画演示等功 能, 且所有功能以图形用户界面的形式进行调用。该仿真平台可作为机器人教学和科研的仿真工具。 关键词: 可视化仿真;机器人;运动学;MATLAB 中图分类号:TP242 文献标识码:B 文章编号:1003-7241(2011)07-0066-06