马国庆,刘 丽,于正林,曹国华,范师杰
(长春理工大学 机电学院,长春 130022)
机器人的运动学分析是机器人学的一个重要组成部分,为机器人的动力学分析、轨迹规划和运动控制提供重要依据[1]。本文使用经典D-H法对HP20D型六自由度工业机器人进行运动学分析,并用MATLAB进行运动学的仿真与方程计算,通过数据对比验证了其运动学模型与运动学正逆运算的正确性。为机器人进行轨迹规划研究与仿真提供了必要的理论基础和正确的运动学模型。
工业机器人主要由机身主体、驱动系统和控制系统三部分组成[2]。机身主体即机座与执行机构,包括臂部、腕部和手部;驱动系统涵盖动力装置与传动机构,负责为机身主体提供动力输出与传输;控制系统负责按照输入的命令及程序对驱动系统与执行机构发出信号,并进行控制[3]。工业机器人的有效工作范围、重复定位精度、荷载以及允许扭矩是评判机器人工作能力的重要参数。HP20D型工业机器人为六自由度垂直多关节型机器人,末端最大负载为20kg,重复定位精度为±0.06mm,但由于机器人制造导致的模型误差和日常工作产生的磨损,其定位精度在几毫米左右,可以通过标定技术来提高精度[4]。
机器人可简化成由一系列杆件串联而成,将坐标系置于每一连杆的关节中心处,则可用齐次坐标变换对这些坐标系之间的位姿进行数学表述[5]。
1.2.1 工业机器人的位姿描述
1)位置描述
在空间直角坐标系{A}中的任意一点P的位置可用一个(3×1)的位置矢量AP来表示:
其中,px、py、pz为点P的三个位置坐标分向量,AP称为位置矢量。
2)姿态描述
可通过在物体质心或者中心上固定一个坐标系,并给出此坐标系相对于参考坐标系的数学表达来描述物体的姿态[6]。定义直角坐标系{B},将刚体B的质心或者中心定义为坐标系{B}的原点,则可以用一个(3×3)的旋转矩阵ARB来表示刚体B相对于坐标系{A}的姿态:
ARB是一个正交矩阵,称为旋转矩阵,上标A表示参考坐标系{A},下标B表示被描述坐标系{B}。
3)位姿描述
点的位置信息可用位置矢量来表述,物体的姿态可用旋转矩阵来表述,那么物体的位姿可由坐标系{B}来描述:
其中APB0为坐标系{B}的原点位置相对参考坐标系{A}的位置矢量。
1.2.2 坐标系映射
在机器人学中同一点的位置信息常常需要在不同的参考坐标下进行描述,因此需要运用一种数学方法来表示坐标系之间的变换,这就是映射[7]。
设坐标系{B}与坐标系{A}的坐标原点不重合且姿态也不相同,用APB0表示坐标系{B}的原点OB相对于坐标系{A}的位置矢量,用旋转矩阵ABR表示坐标系{B}相对于坐标系{A}的姿态,若点p在坐标系{B}中可用BP描述,则它相对于另一个坐标系{A}的描述AP可按式(4) 求出:
式(4)为坐标系平移与旋转的复合变换,引入一个过渡坐标系{C},令{C}的坐标原点OC与坐标系{B}的坐标原点OB重合,而{C}的姿态与{A}相同,如图1所示,则可得复合变换:
图1 一般情况下的映射
1.2.3 齐次坐标变换
不同的坐标系对空间中任意点p的描述是不同的,利用齐次坐标变换可完成点在不同矩阵之间位置关系的转换,若已知某点在坐标系{B}中坐标为BP,则该点在坐标系{A}中坐标AP可表示为:
在机器人运动学求解过程中,仅研究各杆件之间的运动关系并不考虑相互作用力的影响。正运动学问题是根据杆件尺寸与各关节角,对机器人末端执行器相对于基坐标系下的位姿进行求解,其本质是运动学方程的建立与求解。而逆运动学问题正好相反,是根据末端执行器在基坐标系下的期望位姿与已知的杆件几何参数,来对机器人末端执行器运行到此位姿时的各个关节角度值进行求解[8]。
根据D-H坐标变换法对机器人进行建模,可清晰的展示各连杆间的位姿关系,建模原则如下:
1)绕Zi-1轴旋转θi角,令Xi-1轴同Xi处于同一平面;
2)沿Zi-1轴平移di,令Xi-1轴同Xi处于同一直线;
3)沿Xi轴平移距离ai,将连杆i-1的坐标系移动,令其原点同连杆i的坐标系原点重合;
4)绕Xi-1轴旋转ai角,令Zi-1轴旋转到同Zi轴处于一条直线上。
HP20D机器人D-H坐标系如图2所示。
图2 Motoman-HP20D机器人D-H坐标系
根据1.2.1中的建模原则即可确定HP20D型机器人的D-H参数,如表1所示。HP20D为6R型机器人,因此只有关节角θ是变量,连杆长度α、关节扭转α和连杆距离d均是固定值。
表1 HP20D机器人的连杆参数
式(7)中Rot 表示旋转变换矩阵,Trans 表示平移变换矩阵。式(7)的矩阵表示形式如下:
根据相邻连杆间的坐标变换矩阵,可以得到末端坐标系相对于机器人基坐标系的变换矩阵如下:
将机器人的每个坐标转换矩阵代入式(9)即可求出HP20D机器人的正运动学方程。
采用双变量正切函数表示关节变量,避免出现解丢失的可能性,得到各个关节角如下:
求解θ1:
求解θ2:
求解θ3:
求解θ5:
求解θ4:
求解θ6:
结合逆运动学求解过程,再考虑到θ5等于0,或者不等于0两种情况,同一种末端位姿可以求出8组逆解。但由于机械参数的约束,部分逆解处于机器人的不可达空间,因此应根据机器人的运动情况与可达空间范围,确定运动学逆解。
Robotics Toolbox是MATLAB软件中的一个专门针对工业机器人开发的工具箱,它可以为机器人提供多种运动学函数。根据表1提供的数据,对HP20D型机器人进行仿真如图3所示。
图3 HP20D机器人仿真三维图
为了验证正运动学方程求解的正确性,随机选取1组关节变量值,将从控制器中读取机器人末端执行器位姿作为真值;将按照2.2节中的正运动学方程计算所得的位姿作为计算值。随机选取关节变量q1=[-0.3744, 2.7564,-1.2282,-0.6109,-1.5281,-0.3743],将真值与计算值进行数据对比。计算结果如表2所示。
表2 真值与MATLAB计算值比较
表2中数据表明真值和计算值的误差很小,证明了机器人正运动学方程与运动学模型的正确性。
定义机器人末端位姿W=[PxPyPzaxayaz],将其代入2.3节机器人逆运动学求解方法可求得机器人的多组运动学逆解Qi=[θ1θ2θ3θ4θ5θ6]。将两个末端位姿W1=[-1189.369,531.995,-648.702,0.327, -0.744,-0.583]与W2=[1159.549,-730.090,-745.683, -0.362,0.787,-0.500]代入计算程序,求得逆解如表3和表4所示。
表3 位姿W1的运动学逆解
每个位姿可以获取8组解,但由于机械结构约束与各杆件运动时的干涉,仅有部分解为机器人可以真实达到的关节角度值,位姿W1的有效解为Q1、Q2,位姿W2的有效解为Q1、Q2、Q5、Q6,通过数据对比可知,表3中的Q1与3.2节的q1相等,验证了逆运动学的正确性。
表4 位姿W2的运动学逆解
本文在机器人的数学基础和运动学基本知识的基础上,以HP20D为研究对象求取其正解和逆解,并在Robotics Toolbox中进行了运行学模型仿真,并通过数据对比验证了其正运动学与逆运动学的正确性,为后续进行轨迹规划研究与仿真提供了必要的理论基础和正确的运动学模型。