收稿日期 :2003 - 08 - 29.
第一作者简介 :干敏耀 (1978~) ,男 ,在读硕士研究生. 主要研究方向 :机器人控制与仿真. E - mail :g - minyao @163.
com
基于 MATLAB的 PUMA 机器人运动学仿真
干敏耀 , 马骏骑 , 陈永星 , 范启印
(昆明理工大学 机电工程学院 ,云南 昆明 650093)
摘要 : 机器人运动学是机器人学的一个重要分支 ,是实现机器人运动控制的基础. 文中主要针对
PUMA 机器人操作机运动学正问题分析 ,以 D - H 坐标系理论为基础并建模 ,利用 MATLAB 工
具 ,实现了简单的仿真 ,有助于对机器人关节运动角度的深入理解 ,并为工程人员提供一种有效
的分析手段.
关键词 : 机器人 ;运动学 ;仿真 ;MATLAB
中图分类号 :TP24212 文献标识码 :A 文章编号 :1007 - 855X(2003) 06 - 0050 - 04
Kinematics Analysis and Simulation of PUMA Robot Based on MATLAB
GAN Min2yao , MA J un2qi , CHEN Yo ng2xing , FAN Qi2yin
(Faculty of Mechanical and Electrical Engineering , Kunming University of Science and Technology , Kunming 650093 , China)
Abstract : Kinematics of robot is an important branch of Robotics and the basis to fulfil kinematical control of
robots . An emphasis is placed on the analysis of direct kinematics of PUMA robot’s manipulator . A simple simu2
lation based on D - H coordination system and modeling is performed by the tools of MATLAB software . It is also
helpful to deeply understand the moving angles of joints and provides an effective analytic method for engineers.
Key words : robot ; kinematics ; simulation ; MATLAB
0 引 言
21 世纪 ,随着机械、电子、控制技术的迅猛发展 ,机器人技术已广泛应用于军事、航空航天、工农业生
产、医疗等领域. 各类功能齐备、技术含量高的机器人纷纷问世 ,一些发达国家如美国、日本、德国、法国等
在机器人领域一直保持着先进的技术水平及其优势.
机器人学涉及内容相当广泛 ,包括机构学、运动学、控制技术、传感技术及智能技术等. 机器人运动学
是机器人技术中的一个重要分支 ,是实现机器人运动控制的基础. 机器人运动学的研究涉及大量的数学运
算 ,计算工作相当繁锁. 因此采用一些工具软件对其分析可大大提高工作效率 ,增加研究的灵活性和可操
作性.
MATLAB 是由美国 MathWorks 公司于 1984 年推出的一套高性能的数值计算和可视化软件 ,具有良好
的用户界面、通用性好、功能强大 ,是工程人员进行科研工作的有效工具[1 ] . 论文主要利用 MATLAB 语言
对 PUMA 机器人操作机进行运动学分析 ,得到不同关节角度下的机器人末端执行器的位姿.
1 运动学分析
1. 1 机器人运动学的组成
机器人运动学主要包括正向运动学 ,即给定机器人各关节变量 ,计算机器人末端的位置与姿态 ;逆向
运动学是已知机器人末端的位置与姿态 ,计算机器人对应位姿的全部关节变量. 一般正向运动学的解是唯
一的 ,而逆向运动学往往有多个解且分析方法更复杂. [2 ]
第 28 卷 第 6 期
2003 年 12 月
昆 明 理 工 大 学 学 报 ( 理 工 版 )
Journal of Kunming University of Science and Technology (Science and Technology)
Vol . 28 No16
Dec . 2003
1. 2 D - H坐标系
机器人操作机由一串用转动或平移关节连接的刚体 (杆件) 组成. 研究机器人操作机的每一活动杆件
只具有一个自由度. 杆件的编号由固定基座开始 ,固定基座称
为杆件 0 ,第一个运动体是杆件 1 ,依次类推 ,直到最后一个末
端杆件 ,关节 1 连接杆件 1 和支座 ,不构成闭环. 第 i 关节的
关节轴置于相邻两个杆件的连接处 (如图 1) ,相邻两杆件之
间有一个共同的关节轴线 ,因而每个关节轴线有两条公法线
与之垂直 ,两相邻杆件 (杆件 i - 1 和杆件 i ) 的相对位置由两
条公法线沿关节轴方向的距离 di 所决定. 关节角θi 在垂直
于关节轴的平面内测量.
为描述相邻杆件间平移和转动的关系 ,Denavit 和 Harten2
berg 于 1995 年提出了一种为关节链中的每一杆件建立附体
坐标系的矩阵方法 ,D - H 方法是为每个关节处的杆件坐标
系建立 4 ×4 齐次变换矩阵 (又叫 A 矩阵) 来
示它与前一杆
件坐标系的关系.
刚性杆件的 D - H 表示法取决于此杆的 4 个几何参数. 这 4 个几何参数可完全描述任何转动或移动
关节. 图 1 中 :θi :绕 Zi - 1 轴 (右手规则) 由 X i - 1 轴向 X i 轴转动的关节角 ; di :从第 ( i - 1) 坐标系的原点到
Zi - 1 轴和 X i 轴的交点沿 Zi - 1 轴的距离 ; ai :从 Zi - 1 和 X i 的交点到第 i 坐标系原点沿 X i 轴的偏置距离 (即
Zi - 1 和 Zi 两轴间的最小距离) ;αi :绕 X 轴 (右手规则) 由 Zi - 1 轴转向 Zi 轴的偏角. 所以相邻坐标系 i 和 i
- 1 的 D - H 变换矩阵为 :[3 ,4 ]
i - 1A i = Rz ,θTz , sTx , aRx , a =
cosθi - sinθi 0 0
sinθi cosθi 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 di
0 0 0 1
1 0 0 ai
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 cosαi - sinαi 0
0 sinαi cosαi 0
0 0 0 1
=
cosθi - cosαisinθi sinαisinθi aicosθi
sinθi cosαicosθi - sinαicosθi aisinθi
0 sinαi cosαi di
0 0 0 1
(1)
1. 3 PUMA560 机器人的关节结构
PUMA560 机器人本体的关节结构由回转的
机体、大臂、小臂、腕部等部分组成 ,如图 2 所示 ,
共有 6 个关节自由度 ,属关节型机器人 ,每个关节
均有角度零位与正负方向限位开关 ,机器人的回
转机体实现机器人机体绕 Z0 轴的回转 (角θ1) ,
它由固定底座和回转工作台组成. 安装在轴中心
的驱动电机经传动装置 , 可实现工作台回转. 大
臂、小臂的平衡由机器人中的平衡装置控制 , 在
机器人的回转工作台上安装有大臂台座 ,将大臂
下端关节支承在台座上 ,大臂的上端关节用于支
承小臂. 大臂臂体的下端安有直流伺服电机 , 可
控制大臂上下摆动 (角θ2) . 小臂支承于大臂臂体
的上关节处 ,其驱动电机可带动小臂做上下俯仰
15第 6 期 干敏耀 , 马骏骑 ,等 :基于 MATLAB 的 PUMA 机器人运动学仿真
(角θ3) ,以及小臂的回转 (θ4) . 机器人的腕部位于小臂臂体前端 ,通过伺服电动机传动 ,可实现腕部摆动
(θ5) 和转动 (θ6) . [5 ]
各关节处均安置有传感器 ,可计算出关节的位置 ,并反馈给控制系统 ,实现各部分协同工作. PUMA 机
器人各杆件的结构参数和运动参数如表 1 所示. 参阅文献[3 ]
表 1 PUMA 机器人的杆件坐标参数
关节 i θi / (°) αi / (°) ai / mm di / mm 关节变化范围 / (°)
1 90 - 90 0 0 - 160 ~ 160
2 0 0 431 . 8 149 . 09 - 225 ~ 45
3 90 90 0 0 - 45 ~ 225
4 0 - 90 0 433 . 07 - 110 ~ 170
5 0 90 0 0 - 100 ~ 100
6 0 0 0 56 . 25 - 266 ~ 266
将参数代入式 1 ,得相邻杆件坐标系的位姿矩阵 A i 如下 :
0A 1 =
c1 0 - s1 0
s1 0 c1 0
0 - 1 0 0
0 0 0 1
,
1A 2 =
c2 - s2 0 a2 c2
s2 c2 0 a2 s2
0 0 1 d2
0 0 0 1
,
2A 3 =
c3 0 s3 0
s3 0 - c3 0
0 1 0 0
0 0 0 1
,
3A 4 =
c4 0 - s4 0
s4 0 c4 0
0 - 1 0 d4
0 0 0 1
,
4A 5 =
c5 0 s5 0
s5 0 - c5 0
0 1 0 0
0 0 0 1
,
5A 6 =
c6 - s6 0 0
s6 c6 0 0
0 0 1 d6
0 0 0 1
,
则 6 个杆件之积 T6
T6 = 0A 1 1A 2 2A 3 3A 4 4A 5 5A 6 =
nx sx ax px
ny sy ay py
nz sz az pz
0 0 0 1
; [3 ] (2)
其中 : ci , s i 分别表示 cosθi 和 sinθi ;
n = [ nx , ny , nz ] T :末端执行器法向矢量 ,其分量为 T6 系 ox 轴绝对坐标系的三个方向余弦 ;
s = [ sx , sy , sz ] T : 末端执行器端面矢量 ,其分量为 T6 系 oy 轴绝对坐标系的三个方向余弦 ;
a = [ ax , ay , az ] T : 末端执行器逼近矢量 ,其分量为 T6 系 oz 轴绝对坐标系的三个方向余弦 ;
p = [ px , py , pz ] T :末端执行器中心 ,即 T6 系的原点在绝对坐标系中的位置矢量 ;
2 仿真过程
计算机仿真可求解许多复杂而无法用数学手段解析求解的问题. 利用它可再现系统运动规律或运动
过程. 仿真的前提是建模 ,二者不可分割. 建模与仿真的过程是构造现实世界实际系统的模型和在计算机
上进行仿真的复杂过程 ,它包括实际系统、模型和计算机三个基本部分. [6 ]
文中的仿真过程相对较为简单 ,只需在 MATLAB 中编制名为 Robot . m 的 M 文件 ,便可对 PUMA 机器
人操作机进行运动学正解分析.
图如图 3.
25 昆 明 理 工 大 学 学 报 ( 理 工 版 ) 第 28 卷
在 MATLAB 环境中输入 Robot (θ1 ,θ2 ,θ3 ,θ4 ,θ5 ,θ6) ,其中θi ( i = 1 ,2 ,3 , ⋯,6) 是 PUMA 机器人各关
节变量 ,且在取值范围内取具体数 ,单位为度. MATLAB 便可计算出机器人末端执行器相对于绝对坐标系
的空间位姿 ,并生成末端执行器
中心位置的三维立体图. 图 4 是
当θ1 = 90°,θ2 = 0°,θ3 = 90°,θ4
= 0°,θ5 = 0°,θ6 = 0°时 , 由
MATLAB中M文件绘制的 PUMA
机器人操作机[7~10 ] 各杆件的相
对空间位置立体图. 图 5 是运动
学正解问题的控制面板 ,通过滑
尺的拉动 ,或在文本框中输入具
体关节角 (在角度范围内) 数值 ,
便可显示末端执行器的三维空间位置. (本例中 px = 323. 662 5 , py = - 359. 020 9 , pz = - 264. 442 7 . )
3 结束语
利用 MATLAB 软件对 PUMA 机器人操作机的运动学正问题进行分析. 由于 MATLAB 编程简洁 ,可充
分有效地完成简单的仿真过程 ,加深对机器人运动学理论的研究. 计算机仿真结果表明 ,只要机器人各关
节角在给定范围内选择 ,得出的结果完全符合实际情况. 此系统还有较多要完善的地方 ,如应描述机器人
动态运动轨迹、末端执行器工作空间的绘制、逆解的校验等 ,这样更能深入对机器人运动学的研究.
参考文献 :
[1 ] 尹泽明 ,丁春利 ,等. 精通 MATLAB 6[M ].北京 :清华大学出版社 ,2002. 1~2.
[2 ] 徐元昌 . 工业机器人[M ] .北京 :中国轻工业出版社 ,1999. 59~60.
[3 ] 蒋新松 . 机器人学导论[M ] .沈阳 :辽宁科学技术出版社 ,1994. 87~93.
[4 ] 马香峰 . 机器人结构学[M ] .北京 :机械工业出版社 ,1991. 20~21.
[5 ] 刘成良 ,张为公 ,等. RV12L 6R 焊接机器人运动学正解及计算机仿真系统[J ] .东南大学学报 ,1998 , (5) :84~87.
[6 ] 王红卫 . 建模与仿真[M ] .北京 :科学出版社 ,2002. 10~12.
[7 ] 赵冬斌 ,易建强 ,等. 拟人机器人 TH - 1 手臂运动学[J ] .机器人 ,2002 , (6) :502~507.
[8 ] 潘存云 ,高理基 . 通用工业机器人运动仿真系统 IRKSS[J ] .机器人 ,1997 ,19 , (6) :88~90.
[9 ] 叶志祥 ,冀春荣 ,等. 遥操作从手仿真系统运动学逆解算[J ] .西安工业学院学报 ,1999 , (3) :233~236.
[10 ] Denavit , Hartenberg R S. A Kinematic Notation for Law Pair Mechanisms Based on Matrices [J ] . Appl Mech Trans ASME ,
1995 ,77 :215~221.
35第 6 期 干敏耀 , 马骏骑 ,等 :基于 MATLAB 的 PUMA 机器人运动学仿真