基于PSO优化神经网络和空间网格的机器人位姿标定方法王一袁宋志伟袁王祎泽袁张湧涛渊华北理工大学电气工程学院袁河北唐山063009冤摘要院该文提出一种将机器人的位置和姿态拆分开袁分别进行标定的机器人位姿标定方法遥采用空间精度控制网格标定机器人定位误差袁粒子群优化算法渊particleswarmoptimization袁PSO冤优化神经网络标定机器人定姿误差遥该方法以指数积公式渊productofexponentials袁POE冤为基础建立机器人正向运动学模型袁用映射法建立空间网格袁用三坐标测量臂测量机器人位姿袁用空间网格精度标定定位误差袁用PSO优化的神经网络标定定姿误差遥其优点在于既标定机器人工具中心点渊TCP冤的定位误差袁又标定机器人工具坐标系的姿态误差袁使得机器人定位尧定姿误差都得到补偿遥实验结果表明机器人的定位尧定姿均方根误差减小接近一个数量级遥关键词院空间网格精度曰粒子群算法曰机器人标定曰神经网络文献标志码院A文章编号院1674-5124渊2016冤08-0098-05RobotcalibrationmethodbasedonspatialmeshandPSOoptimalneuralnetworkWANGYi袁SONGZhiwei袁WANGYize袁ZHANGYongtao渊CollegeofElectricalEngineering袁NorthChinaUniversityofScienceandTechnology袁Tangshan063009袁China冤Abstract:Arobot爷sposturecalibrationmethodwhichseparatetherotationandlocationofrobottoseparatecalibrateisintroduced.Usesspatialmeshprecisiontocalibratetherobot爷spositionerror袁andapplysPSOneuralnetworktocalibratetherobot爷srotationerror.ThispaperusePOEformulatoestablishtheforwardkinematicsmodelofrobot.Acoordinatemeasuringmachinehasbeenusedtomeasuretherobotworkingspace.Applyreflectionmethodtosetupspatialmesh.Positionerroroftherobothasbeencalibratedbyspatialmeshprecisionandtherotationerrorhasbeencalibratedbyneuralnetwork.Therobotcalibratemethodinthispaperisdifferentfromthegenerals.Advantageofthismethodisthatitnotonlycalibratesthepositionprecisionoftherobot爷sTCPbutalsoimprovestherotationprecisionoftherobot爷sTCPcoordinateatthesametime.Thisapproachcanfurtherimprovetherobot爷sTCPprecision.Theresultsoftheexperimentillustrate:theprecisionofrobot爷spositionandrotationhasbeenimprovedapproximateamagnitude.Keywords:spatialmeshprecision曰PSO曰robotcalibration曰neuralnetwork收稿日期院2015-10-14曰收到修改稿日期院2015-11-17基金项目院国家自然科学基金项目渊E051102冤河北省自然科学基金面上项目渊E2013209266冤河北省高等学校科学技术研究项目渊QN2013114冤作者简介:王一渊1981-冤袁男袁河北唐山市人袁副教授袁博士袁研究方向为光电检测遥中国测试CHINAMEASUREMENT&TESTVol.42No.8August,2016第42卷第8期2016年8月doi院10.11857/j.issn.1674-5124.2016.08.0200引言随着工业机器人在柔性加工制造业的广泛应用袁人们对工业机器人的性能有了更高的要求遥工业机器人的重复定位准确度很高袁但绝对准确度不高袁是制约机器人在柔性加工制造业中推广应用的主要原因遥机器人的绝对准确度不高主要是由于制造和第42卷第8期装配过程中产生的连杆实际几何参数与理论几何参数之间的偏差造成的袁可视为系统误差曰此外袁其他因素也会影响机器人的绝对定位准确度袁如温度尧齿隙尧齿轮传动误差及由于负载尧应力和机械磨损等引起的机械变形误差等袁这些被称为随机误差[1-4]遥机器人的重复定位准确度只与随机误差有关袁一般在0.1mm以下曰绝对定位准确度与系统误差有关袁可以达到2~3mm袁甚至更大[5]遥提高机器人的绝对定位准确度一般有两种方法袁一是提高机器人制造和装配的准确度袁但是成本会大大增加曰或是采用软件的方法袁对机器人进行标定袁此方法不但能有效提高机器人的绝对定位准确度而且经济性好遥通常采用的标定方法是先建立适当的运动学模型袁然后准确地测量几组位姿袁接着推导参数识别算法或建立机构误差模型袁最后获得实际模型参数并运用正向运动学求解真实位姿[6]遥一般的标定方法是基于模型的袁而且大多数是对工具中心点渊TCP冤的位置进行标定遥本文提出一种标定方法可对机器人做定位和定姿补偿袁全面提高机器人的准确度遥1建立基于POE公式的机器人正向运动学模型指数积渊POE冤公式法由Park[7-9]首先提出袁具有以下优点院1冤POE公式实现了对机器人转动关节和移动关节的统一描述袁具有通用性的优点曰2冤当相邻关节轴线平行或接近平行时袁没有传统D-H参数法的奇异性问题袁即机器人运动学参数关于关节轴的变化是光滑的遥机器人由连接相邻杆件的6个转动副和基座构成袁杆件的坐标系都是相对于机器人基座世界坐标系S建立的袁并且使各个杆件坐标系的某一轴线与转动轴线重合遥设qi=渊xi袁yi袁zi冤渊i=1袁2袁噎袁6冤是旋转轴上的一点曰旋转轴为孜i袁与之对应的单位方向矢量为棕i曰绕该旋转轴旋转的机器人关节角度为兹i曰设机器人在零位时的TCP坐标系T相对于世界坐标系S的初始位姿矩阵为gst渊0冤袁改变位形以后的位姿变换矩阵为gst渊兹冤遥由连杆参数棕i和qi计算出各连杆的运动旋量孜倚i尧运动旋量坐标孜i及运动旋量的指数积e孜倚i兹i遥综上可得6自由度机器人的正向运动学方程院gst渊兹冤=e孜倚1兹1e孜倚2兹2噎e孜倚6兹6gst渊0冤渊1冤2空间网格的生成和误差测量2.1空间网格的生成空间网格划分是用空间网格进行机器人标定的重要一步袁空间网格划分的好坏直接影响到标定的精度和速度遥网格化包括定义单元属性渊形状尧大小冤尧定义网格属性尧划分网格3个步骤遥网格划分可以分为自由网格划分尧映射网格划分和扫略网格划分等遥本文采用映射网格划分方法来生成空间网格结构袁根据不同的精度要求袁可以对网格的疏密程度做出调整袁如图1尧图2所示遥2.2误差测量2.2.1建立世界坐标系和TCP坐标系1冤将世界坐标系与机器人基坐标系重合在一起袁并用三坐标测量臂测量遥2冤以机器人的TCP为原点袁以通过机器人TCP且重合于孜6轴的线为Y轴渊指向前方为正冤袁以法兰盘平面上过TCP及上下两个安装孔的轴线为Z轴渊指向上方为正冤袁再用右手定则确定X轴建立TCP坐标系遥2.2.2网格空间中精度控制点误差测量将机器人的TCP移动到2.1节中建立的空间网格的各个顶点袁用三坐标测量臂测量TCP的实际值袁并记录真实值和名义值遥此时袁保持机器人的TCP不动袁控制机器人TCP坐标系绕其原点在极限范围内转动多个角度袁并用三坐标测量臂测量并记录真王一等:基于PSO优化神经网络和空间网格的机器人位姿标定方法图1单元网格及参数图k1k8k7k6k5k4k2k3Pd1d2d3d4d5d6d7d8图2机器人工作空间网格划分图+-A3A4+-A1+++A2----+A5A6xyz99中国测试2016年8月实角度与名义角度遥3齐次坐标变换矩阵与绕任意轴旋转的旋转矩阵之间的关系齐次变换矩阵是用来表征一个坐标系相对于另一个坐标系的相对位置和方向的遥其一般表示式如下院T=nxoxaxpxnyoyaypynzozazpz0001晌尚上上上上上上上上上上上上上上裳捎梢梢梢梢梢梢梢梢梢梢梢梢梢梢渊2冤式中院渊px袁py袁pz冤要要要TCP在世界坐标系的位置曰渊nx袁ny袁nz冤尧渊ox袁oy袁oz冤尧渊ax袁ay袁az冤要要要两个坐标系之间的相对方向袁可将其视为旋转子矩阵袁且矩阵T满足正交矩阵的6个约束条件遥从几何意义上讲袁旋转矩阵也可以表示为遵循右手法则绕任意轴k=渊kx袁ky袁kz冤做兹角的旋转[10-13]袁展开可得下式院R渊k袁兹冤=kxkx淄ers兹+cos兹kxky淄ers兹-kzsin兹kxkz淄ers兹+kysin兹kxky淄ers兹+kzsin兹kyky淄ers兹+cos兹kzky淄ers兹-kxsin兹kxkz淄ers兹-kysin兹kykz淄ers兹+kxsin兹kzkz淄ers兹+cos兹晌尚上上上上上上上上上上裳捎梢梢梢梢梢梢梢梢梢梢渊3冤令式渊2冤与式渊3冤对应元素相等袁可以求出院cos兹=12渊nx+oy+az-1冤sin兹=依12渊oy-az冤2+渊ax-nz冤2+渊ny-ox冤2姨假设旋转子矩阵不是单位矩阵袁则能够求出相应的旋转角兹和旋转轴k遥如果旋转矩阵是单位矩阵袁则不能确定k袁这是因为绕任意轴做零旋转也会产生单位矩阵遥为了保证解的唯一性袁在整个算法中袁令0臆兹臆仔遥所以只取正号袁于是得到兹的一个解院兹=arctan2渊渊oz-ay冤2+渊ax-nz冤2+渊ny-ox冤2姨袁nx+oy+az-1冤渊4冤由式渊4冤可以求得兹角遥而确定k的方程主要依据nx尧oy和az中的最大正元素遥若nx是最大正元素袁则有下式院kx=sgn渊oz-ay冤nx-cos兹淄ers兹姨ky=ny+ox2kx淄ers兹kz=ax+nz2kx淄ers兹扇墒设设设设设设设设设缮设设设设设设设设设渊5冤式中袁当e逸0时袁sgn渊e冤=1曰当e约0时袁sgn渊e冤=-1袁下同遥若oy是最大正元素时袁则有下式院ky=sgn渊ax-nz冤oy-cos兹淄ers兹姨kx=ny+ox2ky淄ers兹kz=ax+nz2kx淄ers兹扇墒设设设设设设设设设缮设设设设设设设设设渊6冤若az是最大正元素时袁则有下式院kz=sgn渊ny-ox冤az-cos兹淄ers兹姨kx=ax+nz2kz淄ers兹ky=az+ay2kz淄ers兹扇墒设设设设设设设设设缮设设设设设设设设设渊7冤从几何上来讲袁当兹=仔时袁k有两个符号相反的解遥当兹=仔时袁从式渊4冤可知院oz-ay=0袁ax-nz=0袁ny-ox=0袁在此情况下袁以上3组解中既可以用sgn渊0冤=1袁也可以用sgn渊0冤=-1袁所以得到k的两个解遥为使k只有一个解袁因此约定此时sgn渊0冤=1遥反之袁当得到kx尧ky尧kz和兹以后也可以用式渊2冤求出T遥4机器人TCP坐标系定位尧定姿误差标定方法本文方法是将机器人定位误差标定和定姿误差标定拆分开来袁分别进行标定遥其方法是采用空间网格精度对机器人的定位误差进行标定袁采用PSO优化神经网络对机器人姿态误差进行标定遥若直接标定旋转矩阵R袁则需要针对其中的9个元素建立神经网络袁而本文采用绕任意轴旋转矩阵与齐次变换矩阵的关系使得神经网络的建模对象减少到4个变量袁进一步简化了神经网络的结构袁同时也能减少计算机数据处理过程所消耗的时间遥机器人TCP坐标系定位误差标定方法如下院1冤查找机器人TCP所在的立方体网格曰2冤计算TC