基于MATLAB的机器人运动仿真研究
第44卷 第5期 2005年9月
厦门大学学报(自然科学版)
Journal of Xiam en U niversity (Natural Science)
V ol. 44 N o. 5Sep. 2005
基于M AT LA B 的机器人运动仿真研究
罗家佳, 胡国清
(厦门大学机电工程系, 福建厦门361005)
摘要:按照一定的要求对一种柱面坐标机器人进行了参数设计, 讨论了该机器人的运动学问题, 然后在M AT L AB 环境
下, 用R obotics T o olbo x 对该机器人的正运动学、逆运动学、轨迹规划进行了仿真. 通过仿真, 观察到了机器人各个关节的运动, 并得到了所需的数据, 说明了所设计的参数是正确的, 从而能够达到预定的目标.
关键词:机器人; 柱面坐标; 轨迹规划; 仿真; M A T L A B; Robotics T oolbo x
-0479(2005) 05-0640-05中图分类号:T P 24 文献标识码:A 文章编号:0438
随着科技的发展, 机器人与人类的联系日益密切. 出于对机器人的兴趣和关注, 人们更加想了解机器人, 学习机器人, 因此, 进行机器人的教学和培训就显得尤为重要. 然而, 机器人是一个比较昂贵的设备, 在进行机器人教学时, 不可能用许多实际的机器人来作为教学和培训的试验设备. 这时, 就有必要用到机器人仿真系统, 它可为此提供一个方便、灵活的试验工具和手段
[1~3]
出来.
1 柱面坐标机器人参数设计
1. 1 D -H 变换
为描述相邻杆件间平移和转动的关系, Denavit 和
H ar tenberg(1955) 提出了一种为关节链中的每一杆件建立附体坐标系的矩阵方法. D -H 方法是为每个关节处的杆件坐标系建立4@4齐次变换矩阵, 表示它与前一杆件坐标系的关系, 其原理[4, 5]如下:
OX YZ :与固定坐标相连的固定参考坐标系, 称为基坐标系.
O i X i Y i Z i :与机器人的第i 个杆件相固连, 坐标原点在第i +1关节的中心点处.
确定和建立每个坐标系遵循以下三条规则:1) Z i -1轴沿着第i 关节的运动轴;
2) X i 轴垂直于Z i -1轴及Z i 轴并指向离开Z i -1轴的方向;
3) Y i 轴按右手坐标系的要求建立.
同时, 刚性杆件的D -H 表示法取决于连杆的以下四个参数:
H i :两连杆的夹角;
d i :两连杆的距离;
a i :连杆的长度(即Z i -1轴和Z i 轴间的最小距离) ;
A i :连杆的扭转角.
对于转动关节, H i 是关节变量, 其余为关节参数(保持不变) ; 对于移动关节, d i 是关节变量, 其余为关节参数.
.
对机器人进行图形仿真, 可以将机器人仿真的结果以图形的形式表示出来, 从而直观地显示出机器人的运动情况, 得到从数据曲线或数据本身难以分析出来的许多重要信息[3], 还可以从图形上看到机器人在一定控制条件下的运动规律.
对于机器人运动学, 在国内的相关著作[4, 5]中, 讨论较多的是PUM A 和斯坦福机器人. 本文则讨论一种柱面坐标机器人, 同时选用MAT LAB 语言进行仿真. 目前MA TLAB 已经成为控制界上最流行的软件之一, 它除了传统的交互式编程之外, 还提供了丰富可靠的矩阵运算、图形绘制、数据处理、图像处理、Win -dow s 编程等便利工具. 随着M AT LA B 在中国逐渐流行, 它将成为在PC 机上进行机器人仿真的理想方式. 基于以上叙述, 本文首先设计了柱面坐标机器人的各连杆参数, 然后详细讨论了正、逆运动学算法, 轨迹规划问题, 最后在M AT LAB 环境下, 运用Robotics Too lbo x [8], 编制简单的程序语句, 快速完成了运动学仿真. 在仿真过程中, 不仅直观地观测到了机器人的运动情况, 还得到了所需的数据, 且以图形的形式显示了
收稿日期:2004-10-11
基金项目:福建省重点科技项目(98-H -36) 资助作者简介:罗家佳(1981-) , 男, 硕士研究生.
[6, 7]
1. 2 机器人参数设计
柱面坐标机器人主要由垂直柱子、水平手臂(或机, 能自
第5期 罗家佳等:基于M A T L A B 的机器人运动仿真研究#641#
由伸缩, 并可沿垂直柱子上下运动. 垂直柱子安装在底座上, 并与水平机械手一起能在底座上移动. 因此, 这种机器人的工作区间就形成一段段圆柱面. 通常的柱面坐标机器人有三个自由度.
对于本文叙述的柱坐标机器人(参见图1(a) ; 图1中关节2和关节3位移量分别为180. 0mm 和185. 0mm) , 为了能够满足更多的任务需求, 设计为六自由度机器人, 共有六个关节. 它的第一个关节为转动关节, 第二、三个关节均为移动关节, 最后三个关节均为转动关节. 前三个关节确定手臂的位置, 后三个关节确定手臂的姿态. 我们为该柱坐标机器人取名为/robot0010, 具体参数见表1.
下面, 我们对该机器人参数设计所要达到的目标及设计情况进行简要的叙述. 文中设计的柱坐标机器人用于作为搬运机器人或装配机器人, 要求能够实现水平机械手在水平方向上的自由伸缩, 绕垂直柱子转动和沿垂直柱子上下运动, 最后三个关节确定多种方位的姿态, 进而完成预定的任务. 而具体的参数如d 2和d 3以及d 4则是由预定的工作任务来决定的. 对于参数设计而言, 并没有严格的要求. 连杆长度a i 是由工作任务要求的工作空间的形状和体积来决定的, 按上文D -H 变换的叙述, 结合该机器人的结构及它将完成的任务, 所设计的a i 均为零, 其余均按D -H 变换的定义进行设计.
表1 机器人/ro bo t0010的连杆参数T ab. 1 T he link par ameters of /ro bo t0010
连杆i 123456
A i /(b ) 0-90090-900
a i /mm H i /(b ) 000000
000000
d i /mm 0d 2(180. 0) d 3(185. 0) 431. 800
变量范围-160b ~160b 0~600mm 0~560mm -110b ~170b -100b ~100b -266b ~266b
0i-1
图1 /robot0010的实体模型及其连杆坐标系
F ig. 1 T he so lid modeling and coo rdinate frames o f /r o -bot0010
A i =
cos H i -cos A i sin H i
sin A i sin H i
cos A i 0
A i cos i
d i 1
i sin H
i cos H i co s A
i cos H i i -sin A A i sin H
00
sin A i 0
(1)
现在, 将机器人的参数代入式(1) , 得到第i 坐标系相对于机座坐标系位姿的齐次变换矩阵0T i , 表示为:
T i =0A 11A 2, i-1A i
(2)
特别地, 当i =6时, 可求得T =T 6, 它确定了机器人的末端相对于基坐标系的位置和姿态, 可以把T 矩阵表示为:
T =0T 6=0A 11A 22A 33A 44A 55A 6=
n x n y n z 0
其中:
cos H 1-sin H 1
A 1=
sin H 10
01
1
s x s y s z 0
a x a y a z 0
p x
p y p z 1
001000100
; d 31
;
000;
(3)
cos H 1
[1**********]0
2 机器人运动学仿真算法
2. 1 机器人运动学正问题
所谓运动学正问题[4, 5], 就是对于一机器人, 给定杆件的几何参数和关节的位移, 求解末端连杆坐标系相对于基坐标系的位姿.
为求解运动学方程式, 我们用齐次变换矩阵位, 记作:
2
i-1
A 2=
0010010000
0-10d 2
A i
A 3=
来描述第i 坐标系相对于(i -1) 坐标系的位置和方
#642#厦门大学学报(自然科学版) 2005年
cos H 4
3
010010
sin H 400
00001
00. ;
cos H 5
00
000.
43181
;
在任何的中间点, 并且对于运动的路径也没有设置要求. 因而, 可以将上述规划视为PT P 规划.
A 4=
sin H 400cos H 5sin H 500sin H 60
0-co s H 4
4 M AT LA B 运动仿真
4. 1 运动仿真
(i) 在对上述规划轨迹进行仿真前, 先输入机器人的参数, 并命名/robot0010. 命令如下:
%连杆的前四个元素依次为A 、a 、H 、d , 最后%一个为0(转动关节) 或1(移动关节) >>L1=link([0 0 0 0 0]) ; L2=link([-pi/2 0 0 0 1]) ; %移动关节
L3=link([0 0 0 0 1]) ; %移动关节
L4=link([pi/2 0 0 0. 4318 0]) ; L5=link([-pi/2 0 0 0 0]) ;
L6=link([0 0 0 0 0]) ;
r=ro bo t({L1 L2 L3 L4 L5 L6}) ; %构建机器人
r. nam e=c r obo t001c ; %命名
(ii) 运用命令drivebo t() , 可以立刻看到该机器人的三维图, 并且, 可以用手动的方式, 通过驱动图中
(4) (5)
的滑块, 来驱使机器人运动, 就像实际控制着机器人一样[8], 见图2所示, 对机器人的教学和培训带来了极大方便. >>driv ebot(r) ; %驱动机器人r.
(iii) 按预定轨迹进行仿真(由于篇幅有限, 仅对A 到B , B 到C 进行仿真示例). 对于A 、B 、C 三点, A 点处于起始位置, 可表示为qA =[0 0 0 0 0 0], 即表示机器人的各个关节都处于图2(a ) 示的零位置处. 机械手在B 点和C 点相对于基坐标系的位姿可用齐次变换矩阵TB 和T C 表示. 然后, 按运动学逆问题的解决方法, 可以求得A 到B , B 到C 的各个关节变量. 下面, 用Robotics To olbo x 的逆运动学命令ikine() 来求解:
>>qA =TB =-0. 65330. 4571-0. 6036
0. 2706-0. 6036-0. 7500
-0. 7071-0. 65330. 27060
-0. 0. 00000. 15001. 0000
;
0 0 0 0 0 ;
%定义所有关节变量的初值;
0-sin H 5
4
A 5=
cos H 6-sin H 6
5
A 6=
cos H 6
00
2. 2 机器人运动学逆问题
机器人运动学逆问题就是已知末端连杆的位置和方位(可表示为位姿矩阵T , 即式(3) ) , 求得机器人的各个关节变量. 对于上述的/robot0010, 需要求解的变量为H 1, d 2, d 3, H 4, H 5, H 6.
机器人运动学逆问题的求解方法是:将运动方程式(3) 的两端依次左乘各A 矩阵的逆矩阵, 并使两端相等矩阵的对应元素相等, 即可求得各关节变量.
先用i-1T 6表示连杆6的坐标系与连杆i -1坐标系的关系
i-1
[4, 5]
:
5
T 6=A i A i+1, A 6
求解关节变量的方程式如下:A 1-1T =1T 6A 2A 1T =T 6A 3A 2A 1T =T 6A 4A 3A 2A 1T =T 6A 5A 4A 3A 2A 1T =T 6
-1
-1
-1
-1
-1
5
-1
-1
-1
-1
4
-1
-1
-1
3
-1
-1
2
(6) (7) (8) (9)
3 轨迹规划
机器人轨迹规划是根据机器人要完成的任务设计机器人各关节的运动规律. 轨迹规划主要有两种方案
[4, 5]
:i) 点到点运动(PT P, point -to -point motion) 的
轨迹规划; ii) 连续路径运动(CP, co ntinuous -path motion) 的轨迹规划. 对于连续路径运动, 不仅要规定机械手的起始点和终止点, 而且要指明两点之间的若干中间点(称路径点) , 必须沿特定的路径运动(路径约束).
本文设计的柱坐标机器人, 采用了点到点运动的轨迹规划. 设它的起始点为A , 运动到B 点完成一定任务后, 再将B 点视为起始点, 运动到C 点完成了预定工作任务, 然后又将C 点视为起始点, 继续运动. 这里, 对
qAB =ikine(r, TB ) ;
%对T B 进行运动学逆问题求解;
第5期 罗家佳等:基于M A T L A B 的机器人运动仿真研究#643#
图2 /robot0010的三维图及滑块控制图
F ig. 2 T he t hr ee -dimension imag e and slider -co nt ro lling picture of /ro bo t0010
0. 7854 0. 3927
%qA B =[1. 5708 0. 1500 0. 2000 0. 3927%0. 7854 0. 3927];
%它说明机械手由A 到B , 关节1需
%正向转动1. 5708rad, 关节2和3需向前移%动0. 1500m 和0. 2000m , 最后三个关节需各%自正向转动0. 3927, 0. 7854, 0. 3927rad. TC =
0. 33610. 8669-0. 3681
-0. 2075-0. 3131-0. 9268
-0. 91870. 38790. 07470
-0.
0. 48210. 18001. 0000
;
图3 /robot0010运动到B 点的三维图
Fig. 3 T he t hr ee -dimension imag e of /robot0010at po int
B
qBC =ikine(r, TC ) -ikine(r, TB ) ;
qBC =-0. 7854 0. 0300 0. 0500 -0. 1963 -0. 3927 -0. 1963
%说明机械手由B 到C , 关节1需逆向转动%0. 7854rad, 关节2和3需向前移动0. 0300m %和0. 0500m, 最后三个关节需各自逆向%转动0. 1963, 0. 3927, 0. 1963r ad.
(iv) 用命令plo t() 对机器人由A 到B 的运动进行仿真(取仿真时间为2s, 采样间隔时间为0. 056s) , 这时就可以看到机器人各关节的具体运动情况. 命令如下:
>>t =[0:.056:2]c ; %产生时间向量qA =[0 0 0 0 0 0];
qAB =[1. 5708 0. 1500 0. 2000 0. 39270. 7854 0. 3927];
q =jtraj(qA, qAB , t ) ; %jtraj() 为构建轨迹命令plo t(r , q ) ;
3(v) 由于篇幅限制, 下面只给出机器人由A 运动到B , 转动关节1与移动关节2的位移随时间变换的仿真图象(见图4) , 以及末端关节沿x , y, z 方向的运动轨迹(见图5) . 取仿真时间为2s, 采样间隔时间为0. 056s.
4. 2 仿真结果分析
从图2可以看出(通过驱动滑块使机器人运动) , 机器人前三个关节的运动可以满足通常三自由度柱面坐标机器人的运动要求, 即机械手可以实现水平方向上的自由伸缩, 绕垂直柱子的转动和沿垂直柱子的上下运动, 从而验证了连杆1, 2, 3的连杆参数设计的合理性. 机器人后三个关节的运动可以使末端关节具有不同的姿态, 也说明了设计的参数是合理的.
在运动仿真的第(iv) 步, 我们观察到机器人由A 运动到B 时各个关节的运动情况(文中无法显示这一运动过程) , 且各个关节运动情况均为正常, 各连杆没
#644#厦门大学学报(自然科学版) 2005年
的位移由零逐渐变化到0. 1500m. 图5说明机器人由A 运动到B , 末端关节沿x , y , z 方向的位移由初始位置分别变化到-0. 6318m , 0, 0. 1500m. 由末端关节的位姿变化也可以看出, 机器人后三个关节的运动可以实现不同方位的姿态, 即再次说明了其参数的合理性.
5 结束语
本文对一柱面坐标机器人进行了参数设计, 分析
图4 位移-时间曲线
(a) 转动关节1; (b) 移动关节2
F ig. 4 Displacement -time cur ve
了它的运动学问题和轨迹规划问题.
在MAT LAB 环境下, 编制简单的程序语句, 对该机器人已规划好的轨迹进行了运动学仿真, 验证了参数的合理性, 达到了良好的效果.
参考文献:
[1] Do llarhide Robert L, Ag ah A rv in. Simulation and contr ol
of distr ibuted robo t sear ch teams [J].Com puters and E -lectr ical Engineer ing , 2003, 29(5) :625-642.
[2] Zhao Q ing jie, Sun Zengqi. Image -based robot motion sim -ulatio n[J]. O pt ics Co mmunicatio ns, 2002, 205(4-6) :257-263.
[3] 孙增圻. 机器人系统仿真及应用[J]. 系统仿真学报,
1995, 7(3) :23-29.
[4] 蒋新松, 主编. 机器人学导论[M ]. 沈阳:辽宁科学技术出
版社, 1994.
图5 末端关节的运动轨迹
F ig. 5 T he trajecto ry of the last link
[5] 蔡自兴. 机器人学[M ]. 北京:清华大学出版社, 2000. [6] 薛定宇, 陈阳泉. 基于M A T L A B/Simulink 的系统仿真技
术与应用[M ].北京:清华大学出版社, 2002.
[7] H anselman D, Littlefield B. 精通M atlab6[M ].张航, 黄
攀, 译. 北京:清华大学出版社, 2002.
[8] Cor ke P I. A Robot ics T o olbo x fo r M A T L AB[J]. IEEE
Ro bo tics and A uto matio n M ag azine, 1996, 3(1) :24-32.
有运动错位的情况, 从而验证了所有连杆参数的合理
性, 且说明了各参数的设计能够实现预定的目标.
从图4还可以看出:在所取的仿真时间内, 转动关节1的位移由零逐渐变化到1. 5708r ad; 移动关节2
Study on the Simulation of Robot Motion Based on MATLAB
LUO Jia -jia, HU Guo -qing
(Depa rtment of M echanical and Electr ical Engineer ing, Xiamen U niversity, Xiamen 361005, China)
Abstract:
T he par ameters of a kind o f cylindr ical coo rdinate robot w ere designed in this paper , accor ding to some qualificatio n. In
the same time, the pr oblem of t he kinematics o f the ro bo t w as discussed. T hen the kinematics, inver se kinemat ics and the trajecto ry planning are simulated w ith t he Robot ics T o olbo x of the M at lab com puter prog ram lang uag e. Based on the simulatio n, we observe the motio n o f the r obot . s jo ints and obtain the data that w e need. T his pr ocess pr ov es that all the parameters we desig n ar e r ight and t hey can satisfy t he g oal that we expect. In conclusion, w riting some sim ple pro gr am sentences w ith the M atlab comput er pr og ram lan -g uag e, we can car ry o n the simulation of robot mo tion co nv eniently, in o rder to check t he cor rectness and the rationalit y of the param -eter s.
Key words:
ro bo t; cy lindrical coor dinate; traject ory planning ; simulation; M AT L AB; Ro bo tics T oo lbox