当前位置:首页 >> 机械/仪表 >>

基于MATLAB 的机器人运动仿真研究


第 44 卷

第5 期

厦门大学学报 ( 自然科学版)
Journal of Xiamen University( Natural Science)

Vol. 44

No. 5

2005 年 9 月

Sep. 2005

>基于 MATLAB 的机器人运动仿真研究
罗家佳, 胡国清
( 厦门大学机电工程系, 福建 厦门 361005 )

摘要:按照一定的要求对一种柱面坐标机器人进行了参数设计, 讨论了该机器人的运动学问题, 然后在 MATLAB 环境
下, 用 Robotics Toolbox 对该机器人的正运动学、 逆运动学、 轨迹规划进行了仿真. 通过仿真, 观察到了机器人各个关节的运 动, 并得到了所需的数据, 说明了所设计的参数是正确的, 从而能够达到预定的目标.

关键词:机器人; 柱面坐标; 轨迹规划; 仿真; MATLAB; Robotics Toolbox 中图分类号:TP 24 文献标识码: A 文章编号: 0438-0479 ( 2005 ) 05-0640-05

随着科技的发展, 机器人与人类的联系日益密切. 出于对机器人的兴趣和关注, 人们更加想了解机器人, 学习机器人, 因此, 进行机器人的教学和培训就显得尤 为重要. 然而, 机器人是一个比较昂贵的设备, 在进行 机器人教学时, 不可能用许多实际的机器人来作为教 学和培训的试验设备. 这时, 就有必要用到机器人仿真 系统, 它可为此提供一个方便、 灵活的试验工具和手
[ 1 ~ 3] 段 .

1
1. 1

柱面坐标机器人参数设计
D-H 变换
为描述相邻杆件间平移和转动的关系, Denavit 和

Hartenberg ( 1955 ) 提出了一种为关节链中的每一杆件 建立附体坐标系的矩阵方法. D-H 方法是为每个关节 处的杆件坐标系建立 4 × 4 齐次变换矩阵, 表示它与前
[ 4, 5] 一杆件坐标系的关系, 其原理 如下:

对机器人进行图形仿真, 可以将机器人仿真的结 果以图形的形式表示出来, 从而直观地显示出机器人 的运动情况, 得到从数据曲线或数据本身难以分析出
[ 3] 来的许多重要信息 , 还可以从图形上看到机器人在

OXYZ : 与固定坐标相连的固定参考坐标系, 称为 基坐标系. Oi X i Yi Zi : 与机器人的第 i 个杆件相固连, 坐标原 点在第 i + 1 关节的中心点处. 确定和建立每个坐标系遵循以下三条规则: 1 )Z i - 1 轴沿着第 i 关节的运动轴; 2 )X i 轴垂直于 Z i - 1 轴及 Z i 轴并指向离开 Z i - 1 轴 的方向; 3 )Y i 轴按右手坐标系的要求建立. 同时, 刚性杆件的 D-H 表示法取决于连杆的以下 四个参数: 两连杆的夹角; θi : di : 两连杆的距离; ai : 连杆的 长 度 ( 即 Zi - 1 轴 和 Zi 轴 间 的 最 小 距 离) ; 连杆的扭转角. αi : 对于转动关节, 其余为关节参数 θ i 是关节变量, ( 保持不变) ; 对于移动关节, d i 是关节变量, 其余为关 节参数.

一定控制条件下的运动规律.
[ 4, 5] 对于机器人运动学, 在国内的相关著作 中, 讨

论较多的是 PUMA 和斯坦福机器人. 本文则讨论一种 柱面坐标机器人, 同时选用 MATLAB 语言进行仿真. 目前 MATLAB 已经成为控制界上最流行的软件之一, 它除了传统的交互式编程之外, 还提供了丰富可靠的 矩阵运算、 图形绘制、 数据处理、 图像处理、 Windows 编
[ 6, 7] 程等便利工具 . 随着 MATLAB 在中国逐渐流行, 它

将成为在 PC 机上进行机器人仿真的理想方式. 基于 以上叙述, 本文首先设计了柱面坐标机器人的各连杆 参数, 然后详细讨论了正、 逆运动学算法, 轨迹规划问
[ 8] 题, 最后在 MATLAB 环境下, 运用 Robotics Toolbox ,

编制简单的程序语句, 快速完成了运动学仿真. 在仿真 过程中, 不仅直观地观测到了机器人的运动情况, 还得 到了所需的数据, 且以图形的形式显示了出来.

1. 2
收稿日期: 2004-10-11 基金项目: 福建省重点科技项目 ( 98-H-36 ) 资助 作者简介: 罗家佳 ( 1981 - ) , 男, 硕士研究生.

机器人参数设计
柱面坐标机器人主要由垂直柱子、 水平手臂 (或

机械手) 和底座构成. 水平机械手装在垂直柱子上, 能 自由伸缩, 并可沿垂直柱子上下运动. 垂直柱子安装在

第5 期

罗家佳等: 基于 MATLAB 的机器人运动仿真研究

? 641?

底座上, 并与水平机械手一起能在底座上移动. 因此, 这种机器人的工作区间就形成一段段圆柱面. 通常的 柱面坐标机器人有三个自由度. 对于本文叙述的柱坐标机器人 ( 参见图 1 ( a) ; 图 1 中关节 2 和关节 3 位移量分别为 180. 0 mm 和 185. 0 mm) , 为了能够满足更多的任务需求, 设计为六自由度 机器人, 共有六个关节. 它的第一个关节为转动关节, 第二、 三个关节均为移动关节, 最后三个关节均为转动 关节. 前三个关节确定手臂的位置, 后三个关节确定手 臂的姿态. 我们为该柱坐标机器人取名为 “ robot001 ” , 具体参数见表 1. 下面, 我们对该机器人参数设计所要达到的目标 及设计情况进行简要的叙述. 文中设计的柱坐标机器 人用于作为搬运机器人或装配机器人, 要求能够实现 水平机械手在水平方向上的自由伸缩, 绕垂直柱子转 动和沿垂直柱子上下运动, 最后三个关节确定多种方 位的姿态, 进而完成预定的任务. 而具体的参数如 d2 和 d3 以及 d4 则是由预定的工作任务来决定的. 对于 参数设计而言, 并没有严格的要求. 连杆长度 a i 是由 工作任务要求的工作空间的形状和体积来决定的, 按 上文 D-H 变换的叙述, 结合该机器人的结构及它将完 其余均按 D-H 变换的 成的任务, 所设计的 a i 均为零, 定义进行设计.
表1 Tab. 1 连杆 i 1 2 3 4 5 6 机器人 “ robot001 ” 的连杆参数 The link parameters of“ robot001 ” d i / mm 0 d( 2 180. 0 ) d( 3 185. 0 ) 431. 8 0 0 变量范围 - 160? ~ 160? 0 ~ 600 mm 0 ~ 560 mm - 110? ~ 170? - 100? ~ 100? - 266? ~ 266? ( a) Fig. 1 ( b) 图 1 “ robot001 ” 的实体模型及其连杆坐标系 The solid modeling and coordinate frames of “ robot001 ”

? cosθ i ? sinθ i ? 0 ? ? ? 0

- cosα i sinθ i cosα i cosθ i sinα i 0

sinα i sinθ i - sinα i cosθ i cosα i 0

α i cosθ i ? α i sinθ i ? ? di ? ? 1 ? (1)

现在, 将机器人的参数代入式 (1) , 得到第 i 坐标 系相对于机座坐标系位姿的齐次变换矩阵0 T i , 表示 为:
0

T i = 0 A1 1 A2 … i - 1 A i
0

(2)

它确定了机器 特别地, 当 i = 6 时, 可求得 T = T6 , 人的末端相对于基坐标系的位置和姿态, 可以把 T 矩 阵表示为: T = 0 T6 = 0 A1 1 A2 2 A3 3 A4 4 A5 5 A6 = ? nx ? ny ? n ? ? z ?0 其中: ? cosθ1 ? sinθ 0 1 A1 = ? ? ? 0 ? 0 ?1 ?0 1 A2 = ? 0 ? ? ?0 ?1 ?0 2 A3 = ? 0 ? ? ?0 0 0 -1 0 0 1 0 0 0 0 1 0 - sinθ1 cosθ1 0 0 0 1 0 0 0 0 1 0 0? 0? ?; d2 ? ? 1? 0? 0? ?; d3 ? ? 1? 0? 0? ?; 0? ? 1? sx sy sz 0 ax ay az 0 px ? py ? ? pz ? ? 1?

/ ? ) a i / mm θ i ( / ?) αi ( 0 - 90 0 90 - 90 0 0 0 0 0 0 0 0 0 0 0 0 0

(3)

2
2. 1

机器人运动学仿真算法
机器人运动学正问题
[ 4, 5] 所谓运动学正问题 , 就是对于一机器人, 给定

杆件的几何参数和关节的位移, 求解末端连杆坐标系 相对于基坐标系的位姿. 为求解运动学方程式, 我们用齐次变换矩阵 位, 记作:
i -1 i -1

Ai

来描述第 i 坐标系相对于 ( i - 1 )坐标系的位置和方 Ai =

? 642?

厦门大学学报 ( 自然科学版)

2005 年

? cosθ4 ? sinθ 3 4 A4 = ? ? 0 ? ? 0 ? cosθ5 ? sinθ 4 5 A5 = ? ? ? 0 ? 0 ? cosθ6 ? sinθ 5 6 A6 = ? ? ? 0 ? 0

0 0 1 0 0 0 1 0

sinθ4 - cosθ4 0 0 - sinθ5 cosθ5 0 0 0 0 1 0 cosθ6 0 0

? 0 ? ?; 0 . 4318 ? ? 1 ? 0? 0? ?; 0? ? 1? 0? 0? ?. 0? ? 1?

0

于形如 A 点到 B 点, B 点到 C 点的运动, 它们之间不存 在任何的中间点, 并且对于运动的路径也没有设置要 求. 因而, 可以将上述规划视为 PTP 规划.

4
4. 1

MATLAB 运动仿真
运动仿真
( i)在对上述规划轨迹进行仿真前, 先输入机器

人的参数, 并命名 “ robot001 ” . 命令如下: % 连杆的前四个元素依次为 α、 a、 d, 最后 θ、 % 一个为 0 ( 转动关节) 或1 ( 移动关节) > > L1 = link ( [0 L2 = link ( [ - pi / 2 % 移动关节 L3 = link ( [0 % 移动关节 L4 = link ( [ pi / 2 L5 = link ( [ - pi / 2 L6 = link ( [0 r = robot ({L1 % 构建机器人 r. name = 'robot001'; % 命名 ( ii)运用命令 drivebot ( ) , 可以立刻看到该机器 人的三维图, 并且, 可以用手动的方式, 通过驱动图中 的滑块, 来驱使机器人运动, 就像实际控制着机器人一
[ 8] 样 , 见图 2 所示, 对机器人的教学和培训带来了极大

- sinθ6

0 0 0 0 0 0 0 0 0 L3

0 0

0 0

0] ) ; 1] ) ;

2. 2

机器人运动学逆问题
机器人运动学逆问题就是已知末端连杆的位置和

0

1] ) ; 0. 4318 0 0 L4 0] ) ; L5 L6 } ) ; 0] ) ;

方位 ( 可表示为位姿矩阵 T, 即式 (3) ) , 求得机器人的 各个关节变量. 对于上述的 “ robot001 ” , 需要求解的变 量为 θ1 , d2 , d3 , θ4 , θ5 , θ6 . 机器人运动学逆问题的求解方法是: 将运动方程 并使两端 式 ( 3 )的两端依次左乘各 A 矩阵的逆矩阵, 相等矩阵的对应元素相等, 即可求得各关节变量. 先用 i -1 T6 表示连杆 6 的坐标系与连杆 i - 1 坐标系
[ 4, 5] 的关系 : i -1

0] ) ;

0 L2

T6 = A i A i + 1 …5 A6

(4) (5) (6) (7) (8) (9)

求解关节变量的方程式如下: A1 - 1 T = 1 T6 A2 - 1 A1 - 1 T = 2 T6 A3 - 1 A2 - 1 A1 - 1 T = 3 T6 A4 - 1 A3 - 1 A2 - 1 A1 - 1 T = 4 T6 A5 - 1 A4 - 1 A3 - 1 A2 - 1 A1 - 1 T = 5 T6

方便. > > drivebot ( r) ; % 驱动机器人 r. ( iii)按预定轨迹进行仿真 ( 由于篇幅有限, 仅对 A 到 B, B 到 C 进行仿真示例) . 对于 A、 B、 C 三点, A点 处于起始位置, 可表示为 qA = [ 0 0 0 0 0 0] , 即表示机器人的各个关节都处于图 2 ( a) 示的零位置 处. 机械手在 B 点和 C 点相对于基坐标系的位姿可用 齐次变换矩阵 TB 和 TC 表示. 然后, 按运动学逆问题 的解决方法, 可以求得 A 到 B , B 到 C 的各个关节变 用 Robotics Toolbox 的逆运动学命令 ikine ( ) 量. 下面, 来求解: > > qA = [ 0 TB = ? - 0. 6533 ? 0. 4571 ? - 0. 6036 ? ? ? 0 0. 2706 - 0. 6036 - 0. 7500 0 - 0. 7071 - 0. 6533 0. 2706 0 - 0. 6318 ? 0. 0000 ? ?; 0. 1500 ? ? 1. 0000 ? 0 0 0 0 0]; % 定义所有关节变量的初值;

3

轨迹规划
机器人轨迹规划是根据机器人要完成的任务设计

机器人各关节的运动规律. 轨迹规划主要有两 种 方 案
[ 4, 5]

: i)点到点运动 ( PTP, point-to-point motion)的

ii) 连 续 路 径 运 动 ( CP, continuous-path 轨 迹 规 划; motion)的轨迹规划. 对于连续路径运动, 不仅要规定 机械手的起始点和终止点, 而且要指明两点之间的若 干中间点 ( 称路径点) , 必须沿特定的路径运动 ( 路径 约束) . 本文设计的柱坐标机器人, 采用了点到点运动的 轨迹规划. 设它的起始点为 A, 运动到 B 点完成一定任 务后, 再将 B 点视为起始点, 运动到 C 点完成了预定工 继续运动. 这里, 对 作任务, 然后又将 C 点视为起始点,

qAB = ikine ( r, TB ) ; % 对 TB 进行运动学逆问题求解;

第5 期

罗家佳等: 基于 MATLAB 的机器人运动仿真研究

? 643?

( a) 图 2 “ robot001 ” 的三维图及滑块控制图 Fig. 2 The three-dimension image and slider-controlling picture of“ robot001 ”

( b)

qAB = 1. 5708 0. 7854 % 0. 785 4

0. 1500

0. 2000

0. 3927 0. 3927

0. 3927 0. 1500 0. 2000 0. 3927 ] ;

% qAB = [ 1. 5708

% 它说明机械手由 A 到 B , 关节 1 需 % 正向转动 1. 570 8 rad, 关节 2 和 3 需向前移 % 动 0. 150 0 m 和 0. 200 0 m, 最后三个关节需各 % 自正向转动 0. 392 7 , 0. 785 4 , 0. 392 7 rad. TC = ? 0. 3361 ? 0. 8669 ? - 0. 3681 ? ? ? 0 - 0. 2075 - 0. 3131 - 0. 9268 0 0. 0300 - 0. 9187 0. 3879 0. 0747 0 0. 0500 - 0. 4821 ? 0. 4821 ? ?; 0. 1800 ? ? 1. 0000 ? - 0. 1963
图 3 “ robot001 ” 运动到 B 点的三维图 Fig. 3 The three-dimension image of“ robot001 ”at point B

qBC = ikine ( r, TC )- ikine ( r, TB ) ; qBC = - 0. 7854 - 0. 3927 - 0. 1963

% 图 3 给出了机器人运动到 B 时的三维图 ( v)由于篇幅限制, 下面只给出机器人由 A 运动 到 B, 转动关节 1 与移动关节 2 的位移随时间变换的 仿真图象 ( 见图 4 ) , 以及末端关节沿 x, y, z 方向的运 动轨迹 ( 见图 5 ) . 取仿真时间为 2 s, 采样间隔时间为 0. 056 s.

% 说明机械手由 B 到 C, 关节 1 需逆向转动 % 0. 785 4 rad, 关节 2 和 3 需向前移动 0. 030 0 m % 和 0. 050 0 m, 最后三个关节需各自逆向 % 转动 0. 196 3 , 0. 392 7 , 0. 196 3 rad. ( iv)用命令 plot ( ) 对机器人由 A 到 B 的运动进 行仿真 ( 取仿真时间为 2 s, 采样间隔时间为 0. 056 s) , 这时就可以看到机器人各关节的具体运动情况. 命令 如下: > >t= [0: . 056 : 2] '; % 产生时间向量 qA = [0 0. 7854 0 0 0 0 0] ; 0. 2000 0. 3927 qAB = [ 1. 5708 0. 1500

4. 2

仿真结果分析
从图 2 可以看出 ( 通过驱动滑块使机器人运动) ,

机器人前三个关节的运动可以满足通常三自由度柱面 坐标机器人的运动要求, 即机械手可以实现水平方向 上的自由伸缩, 绕垂直柱子的转动和沿垂直柱子的上 下运动, 从而验证了连杆 1 , 2, 3 的连杆参数设计的合 理性. 机器人后三个关节的运动可以使末端关节具有 不同的姿态, 也说明了设计的参数是合理的. 在运动仿真的第 ( iv ) 步, 我们观察到机器人由 A 运动到 B 时各个关节的运动情况 ( 文中无法显示这一 运动过程) , 且各个关节运动情况均为正常, 各连杆没 有运动错位的情况, 从而验证了所有连杆参数的合理

0. 3927 ] ;

q = jtraj ( qA, qAB , t) ; % jtraj ( ) 为构建轨迹命令 plot ( r, q) ;

? 644?

厦门大学学报 ( 自然科学版)

2005 年

A 运动到 B , 末端关节沿 x, y, z 方向的位移由初始位置 分别变化到 - 0. 631 8 m, 0, 0. 150 0 m. 由末端关节的 位姿变化也可以看出, 机器人后三个关节的运动可以 实现不同方位的姿态, 即再次说明了其参数的合理性.

5

结束语
本文对一柱面坐标机器人进行了参数设计, 分析

了它的运动学问题和轨迹规划问题. 在 MATLAB 环境下, 编制简单的程序语句, 对该 机器人已规划好的轨迹进行了运动学仿真, 验证了参
图4 Fig. 4 位移-时间曲线 ( a) 转动关节 1 ; ( b) 移动关节 2 Displacement- time curve

数的合理性, 达到了良好的效果.

参考文献:
[ 1 ] Dollarhide Robert L, Agah Arvin. Simulation and control of distributed robot search teams [ J] . Computers and Electrical Engineering, 2003 , 29 (5) : 625 - 642. [ 2 ] Zhao Qingjie, Sun Zengqi. Image-based robot motion simulation [ J] . Optics Communications, 2002 , 205 (4 - 6) : 257 263. [ 3 ] 孙 增 圻. 机 器 人 系 统 仿 真 及 应 用 [ J] . 系 统 仿 真 学 报, 1995 , 7 (3) : 23 - 29. [ 4 ] 蒋新松, 主编. 机器人学导论 [ M] . 沈阳: 辽宁科学技术出 版社, 1994. [ 5 ] 蔡自兴. 机器人学 [ M] . 北京: 清华大学出版社, 2000. [ 6 ] 薛定宇, 陈阳泉. 基于 MATLAB / Simulink 的系统仿真技 术与应用 [ M] . 北京: 清华大学出版社, 2002. [ 7 ] Hanselman D, Littlefield B. 精通 Matlab6 [ M] . 张航, 黄攀, 译. 北京: 清华大学出版社, 2002. [ 8 ] Corke P I. A Robotics Toolbox for MATLAB [ J] . IEEE Robotics and Automation Magazine, 1996 , 3 (1) : 24 - 32.

图5 Fig. 5

末端关节的运动轨迹 The trajectory of the last link

性, 且说明了各参数的设计能够实现预定的目标. 从图 4 还可以看出: 在所取的仿真时间内, 转动关 节 1 的位移由零逐渐变化到 1. 570 8 rad; 移动关节 2 的位移由零逐渐变化到 0. 150 0 m. 图 5 说明机器人由

Study on the Simulation of Robot Motion Based on MATLAB
LUO Jia-jia, HU Guo-qing
( Department of Mechanical and Electrical Engineering, Xiamen University, Xiamen 361005 , China)

Abstract:The parameters of a

kind of cylindrical coordinate robot were designed in this paper, according to some qualification. In the

same time, the problem of the kinematics of the robot was discussed. Then the kinematics, inverse kinematics and the trajectory planning are simulated with the Robotics Toolbox of the Matlab computer program language. Based on the simulation, we observe the motion of the robot’ s joints and obtain the data that we need. This process proves that all the parameters we design are right and they can satisfy the goal that we expect. In conclusion, writing some simple program sentences with the Matlab computer program language, we can carry on the simulation of robot motion conveniently, in order to check the correctness and the rationality of the parameters.

Key words:robot; cylindrical coordinate; trajectory planning; simulation; MATLAB; Robotics Toolbox


相关文章:
基于MATLAB 的 PUMA560 机器人运动仿真与轨迹规划 5
基于MATLAB 的 PUMA560 机器人运动仿真与轨迹规划 5_机械/仪表_工程科技_专业资料。MATLAB 机器人学 The movement simulation and trajectory planning of PUMA560 ...
基于Matlab的puma560型机器人仿真
基于Matlab的puma560型机器人仿真_信息与通信_工程科技_专业资料。基于 MATLAB 的...帮助研究人员了解机器人工作空间的形态及极限,揭示机 构的合理的运动方案和控制...
基于ADAMS和MATLAB的六自由度机械手运动仿真-精品
毕业论文(设计)题系专目 基于 ADAMS 和 MATLAB 的六自由度机械手运动仿真 部业 机械工程系 年级 学生姓名 学号 指导教师 手术机器人的运动仿真机械设计制造及其...
基于MATLAB Robotics Toolbox的机器人学仿真实验教学
基于MATLAB Robotics Toolbox的机器人仿真实验教学_教学研究_教育专区。基于 ...本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及 轨迹...
基于MATLAB教学型机器人空间轨迹仿真
基于MATLAB教学型机器人空间轨迹仿真_理学_高等教育_教育专区。基于 MATLAB 教学...教学研究专区专题 省一等奖教学设计《运动... 浅谈讨论法在新课程下高... 小学...
KUKA机器人运动学分析及simmulink仿真
KUKA机器人运动学分析及simmulink仿真_机械/仪表_工程...a maxT 2 5.774 (3-10) 八、基于 matlab ...文档贡献者 研究生机会 贡献于2014-05-24 ...
六自由度PUMA机器人运动仿真
机器人仿真利用计算机可视化和面向对象的手 段,模拟机器人的动态特性,帮助研究...[14] 王智兴,樊文欣,张保成,“基于 Matlab 的工业机器人运动学分析 与仿真”,...
基于matlab平台的机器人学仿真软件实验报告
基于matlab平台的机器人仿真软件实验报告_信息与通信_工程科技_专业资料。关节...型机器人对象 对生成的机器人进行正逆运动学的位置和速度进行分析和 图形仿真 ...
MATLAB机器人仿真程序
MATLAB机器人仿真程序_机械/仪表_工程科技_专业资料。附录 MATLAB 机器人工具箱...利用AutoCAD与MATLAB进行... 4页 免费 基于MATLAB的机器人运动... 5页 3下载...
基于ADAMS的两轮机器人运动研究(终结)
(论文) 北京工业大学学士学位论文 基于 ADAMS 的两轮机器人运动研究 学院 专业 ...MATLAB 环境下对倒立摆控制情况进行 SIMULINK 仿真, 进而拓展为对两轮机器人的...
更多相关标签:
matlab机器人运动仿真 | matlab机器人仿真 | 机器人matlab仿真程序 | matlab机器人仿真教程 | matlab机器人仿真实例 | 机器人运动仿真软件 | 机器人运动学仿真 | 机器人运动仿真 |