摘要:利用D-H法对冗余机械臂建立运动学模型,通过坐标系的转换得出正运动学的解;探讨人工蜂群算法对7DOF机械臂运动学求解的有效性,使用人工蜂群算法对冗余机械臂进行逆运动学求解,构造以位置误差以及求解时间为目标函数来寻求最优解;以最小位置误差和求解时间为目标,让机械臂运行到指定位置并将计算结果与粒子群算法进行比较。Matlab仿真实验表明:人工蜂群算法所计算的位置误差稳定在10-4mm,其搜索精度、收敛精度以及收敛速度均优于粒子群算法,计算最优解所使用的时间也优于粒子群算法,所表现的稳定性以及鲁棒性更适用于冗余机械臂的逆运动学求解。
关键词:逆运动学求解;人工蜂群算法;粒子群算法;收敛精度
中图分类号:TP241; TP18文献标志码:A文章编号:1671-5276(2024)06-0218-06
Abstract:A kinematics model is established by D-H method, and the forward kinematics solution is obtained through the transformation of coordinate system. The validity of artificial bee colony algorithm for kinematics solution of 7DOF manipulator is discussed. The inverse kinematics of the redundant manipulator is solved by using the artificial bee colony algorithm, and the optimal solution is found by constructing the objective function of position error and solution time. The minimum position error and solution time are taken as the objectives to make the manipulator run to the specified position and compare the calculation results with the particle swarm algorithm. The Matlab simulation experiment shows that the position error calculated by the artificial bee colony algorithm is stable at 10-4mm, and the search accuracy, convergence accuracy and speed of the artificial bee colony algorithm are better than particle swarm algorithm, and the stability and robustness of the algorithm are more suitable for the inverse kinematics solution of redundant manipulator.
Keywords:inverse kinematics solution; artificial bee colony algorithm; particle swarm algorithm; convergence precision
0引言
随着科技的快速发展,工业现代化的发展越发快速,目前机械臂在各个领域中应用越发多样化,在航天领域、汽车领域以及精密制造等领域中都承担着重要的功能。7自由度机械臂的主要功能包括实现本体避障、奇异位形回避、避限位关节、关节力矩优化以及增加操作性等[1]。与传统的6自由度机械臂相比,7自由度机械臂的特点就是多了一个冗余自由度,其使用结构与人类的手臂更为相近。然而,7自由度机械臂的关节角变量更多,导致其逆运动学求解的过程也更加繁琐复杂。当前,用于求解冗余机械臂逆运动学问题的方法主要有3种:封闭解法、数值解法以及智能求解法[2]。
封闭解法的使用原理为采用空间几何知识对机械臂进行逆运动学求解,其求解结果精确,计算时间快。但是该方法主要适用于满足Pieper准则的机械臂结构,而冗余机械臂由于关节角变量过多,使用该方法求解过程极其困难,计算结果误差较大。数值解法使用原理为采用雅可比矩阵法、梯度投影法等方法进行求解[3]。雅可比矩阵法的工作原理就是通过不断地求导计算以及求逆计算来得到求解答案;梯度投影法的工作原理就是通过梯度的投影技巧来求逆运动学解的近似值。智能求解法的使用原理为通过编码以及适应度函数的设置将逆运动学求解过程转换成寻优过程,目前市场上对于逆运动学求解的算法主要包括神经网络、粒子群算法、遗传算法等等。文献[4]通过使用人工蜂群算法对冗余机械臂进行逆运动学求解,以位置误差以及位姿误差作为优化标准的判断。文献[5]通过将布谷鸟算法以及帝国主义竞争算法融合使用,提升了算法的搜索性能,并将其运用到机械臂的逆运动学求解过程中。相对于传统的启发式算法而言,混合算法在搜索空间最优解中具备较大优势,是目前研究的主要方向之一。
本文基于软塑料育苗营养钵的钵苗移栽机构设计,通过使用机械臂自动移栽已成型的林木苗袋钵苗到钵体之内,因此在移栽的过程中需要保证机械臂的位置精度。本文通过研究冗余机械臂的逆运动学求解方法,建立以位置误差以及姿态误差为目标的函数方程,通过使用人工蜂群算法进行逆运动学求解,并将其与粒子群算法的求解结果进行比较,展示人工蜂群算法的优秀性能,保证机械臂移栽的位置准确性。
1机械臂的逆运动学建模
1.1机械臂介绍
基于软塑料育苗营养钵的钵苗移栽机构结构如图1所示。
移栽机械臂主要依靠双电机驱动,通过皮带、滚轮带动x、y、z轴导轨进行空间移动,移栽机械臂的末端执行机构内通过气缸的控制对林木苗袋苗进行钵体移栽,其移载机械臂的结构如图2所示。
本次设计的机械臂为7自由度冗余机械臂,其中自由度主要由外机架与机械臂两个部分所组成,其中外机架的3个自由度主要为第一伺服电机2控制的流水线平台3,从而进行流水线平台y方向的移动,实现育苗盘的输送工作;第二伺服电机17控制外机架z方向的移动,实现外机架的高度调节工作;限位杆4通过调节控制外机架x方向的移动实现不同规格育苗盘的使用。机械臂的4个自由度控制为第三伺服电机7以及第四伺服电机12控制y轴导轨23以及z轴导轨8移动,完成z方向与y方向的移动。另外第五伺服电机14控制x轴导轨13的移动,完成x方向的移动,实现机械臂无死角抓取功能;最后由第三气缸16控制柔性机械爪5完成抓取移栽的工作。
上述所涉及的7自由度机械臂主要实现方式是通过电机控制皮带传动机构、齿轮齿条传动机构来完成的。因此为了保证林木苗袋苗在移栽过程中的精度,本文将通过对7DOF机械臂做研究,寻找移栽位置中的最优解,其运动示意图如图3所示。
通过对冗余机械臂的关节变量以及基座建立坐标系,将基座坐标系视为坐标原点,设计成Ox0y0z0,转动关节(1—7)的坐标中设定为Ox1y1z1—Ox7y7z7。图中对机械臂的各个关节变量处都建立三维坐标系,用以描述机械臂的运动情况[6]。本次冗余机械臂的D-H运动参数以及关节变量范围如表1所示。表中ai表示连杆长度;αi表示连杆扭角;di表示连杆偏距;θi表示关节角活动范围,也是设计的搜索范围。
1.2逆运动学问题与建模
对于冗余机械臂的逆运动学求解原理就是对机械臂的末端执行器设定位姿(xex,yex,zex,αex,βex,γex),求解出该位姿下其所对应的关节空间点θi,i=1,2,…,7最优解。其中(xex,yex,zex)指的是末端执行器的质点在极坐标的位置,(αex,βex,γex)指的是末端执行器在极坐标系的欧拉角[7]。
对于机械臂的逆运动学求解使用传统的启发式算法为常见方法,启发式算法的使用原理就是通过算法建立正运动学方程对机械臂的执行末端进行求解运算,以最小位置误差以及姿态误差为目标来寻求最优解。
基于欧拉角法建立坐标轴之间的转换矩阵,依次对建立的3个坐标轴进行旋转,每个坐标轴在旋转时与前后坐标轴呈现正交状态,在通过平移达到坐标系重合[8]。在平移旋转的过程中,假设机械臂当下的关节角为θi,i=1,2,…,7,则坐标系i到坐标系i-1的转换矩阵为
式中Ti-1i为从坐标系i到坐标系i-1的转换矩阵。
冗余机械臂的末端执行器到基座坐标系的齐次转换矩阵方程为
式中(px,py,pz)为机械臂末端执行器质心在基座坐标系的实际位置。
根据式(2)所计算的质心实际坐标位置,可以求得机械臂末端执行器的实际姿态位置为
式中(αre,βre,γre)为机械臂末端执行器基座坐标系的实际欧拉角。
根据上面设定的末端机械臂位姿以及关节空间点所求的末端执行器实际位姿,则计算所得的位置误差以及姿态误差为
式中:ΔP为机械臂的位置误差;ΔR为机械臂的姿态误差。
位置误差变化主要和连杆长度以及连杆偏距有关,而姿态误差变化主要和连杆长度有关。由于计算式两者不属于同一量纲,所以求解时为了保证两种误差尽可能获得最小值,引入了误差系数wp、wr,即
式中:wp为位置误差系数,取值为wp=1;wr为姿态误差系数,取值wr=180/π,随机械臂的变化而自行调整。
本次讨论的机械臂由于采用的主要控制方式为伺服电机的控制,通过齿轮齿条传动机构以及皮带机构完成传动,其中工作时所受到的惯性以及摩擦力不会影响其控制效果,因此不予考虑。
2使用算法描述
2.1人工蜂群ABC算法
在人工蜂群算法之中,可以将蜜蜂主要分成3类:引领蜂、跟随蜂以及侦察蜂。人工蜂群算法的过程包括蜜蜂的初始化、引领蜂进行搜索阶段,跟随蜂进行搜索阶段,最后是侦查蜂进行搜索阶段等。
在初始化阶段中,蜜蜂按照随机方式进行位置的初始化:
式中:i∈[1,N]为蜜蜂的编号;N为蜜蜂的总数量;j∈[1,J]为位置维度;J为位置维度;Xmaxj、Xminj为位置维度J的最大值以及最小值;Xij为蜜蜂的随机初始化位置。
在引领蜂进行搜索阶段搜索食物源时,发现新的搜索途径可以减少搜索时间,则会使用新的搜索方法。适应度靠前的蜜蜂转换成引领蜂,后面的蜜蜂转换成跟随蜂继续进行搜索[9]。其中前面的引领蜂位置则发生改变为
式中:Xj为原蜜源位置;X′ij为引领蜂搜索到的新蜜源位置。
引领蜂搜寻到新的蜜源位置进行位置的改变后,会通过信号传递给后面的跟随蜂,跟随蜂会选择是否跟随前面的引领蜂前进,其跟随概率为
式中:pi为跟随蜂选择跟随引领蜂前进的概率;fit,i=1/f1obj为引领蜂位置适应度数值;f1obj为引领蜂发现蜜源的目标函数。
在跟随蜂选择跟随引领蜂后,蜜蜂就开始一起向蜜源处进行搜索采蜜。在引领蜂与跟随蜂在蜜源位置进行采蜜搜索,采蜜次数超过了设定值,且蜜源适应度没有显著提高,蜜蜂将放弃对该区域的搜索探查,将换成侦查蜂重新进行新蜜源的大范围搜索:
所以人工蜂群算法的优势就是可以采用交叉操作在全局寻求最优解,提高了计算的精度。
2.2粒子群PSO算法
粒子群算法主要是模仿鸟群捕食所设计的。通过观察鸟群在捕食的时候发现某一块区域出现食物,鸟群通过离食物最近的鸟发出信号过去捕食。所以在粒子群算法中,可以将鸟视作为粒子。粒子有各自被优化函数所决定的适应值,在空间内搜索最优函数解。粒子在搜索的过程中主要考虑的参数为速度以及位置变化。因为粒子位置的改变取决于其速度的大小:
式中:Vid(t)为粒子经过迭代计算后的速度;Pbest为粒子经过迭代计算在空间搜索范围的最优位置;gbest为种群经过的迭代计算在空间搜索范围上最优位置;c1为粒子的学习因子;c2为种群的学习因子;r1为粒子的随机系数,取值(0,1);r2为种群的随机系数,取值(0,1)。
式中Xid(t)为粒子经过迭代计算后的位置。
2.3算法流程描述
为了保证机械臂末端执行器在使用的时候可以准确到达所设定的空间位置坐标,其根本为准确计算各个关节角的最优值。因此,本文将使用人工蜂群算法来计算出各个关节角的最优解,将计算所得最优解呈现的机械臂末端执行器的空间位置与设定的空间位置相比较,比较机械臂的位置误差如下:
式中:ΔE为实际与设定之间的位置误差;x1、y1、z1为人工蜂群算法所计算的机械臂执行器末端位置;x2、y2、z2为设定的机械臂执行器末端位置。
3仿真与分析
本文通过研究人工蜂群算法对7DOF机械臂进行逆运动学求解。在使用的时候可以通过手动调节改变机械臂的位置。手动调节后的机械臂位置所呈现的关节角度θ1—θ7依次为:45°、0°、45°、0°、45°、0°、0°。通过算法所得到的位置会和手动调节的有些许区别,本文将使用人工蜂群算法以最小位置误差以及姿态误差为目标让机械臂运行到指定位置,将计算结果与粒子群算法进行比较,其中计算的最优解为(101.19,-9.52,-14.32,4.36,39.68,35.94,72.68),结果如表2所示,关节角变化迭代曲线如图4所示。
图4关节角变化迭代曲线
本次仿真实验是在Matlab中编程来进行逆运动学的求解,主要研究的对象为7自由度冗余机械臂。其中设置的人工蜂群种群数为100,粒子群算法种群数为300,最大迭代次数为500。使用人工蜂群算法对机械臂逆运动学进行求解,运行该算法50次,其中设定的定位精度要求为:位置误差不大于0.1mm,姿态误差不大于10-3mm。当搜索精度达到该要求的时候,对应的关节角序列才满足使用要求。其中随着迭代次数的变化位置误差的变化过程如图5所示。
从图5可以发现,人工蜂群算法经过多次迭代次数后,位置误差会进行快速下降,最后趋于稳定的数据,位置误差稳定在4.883×10-3mm。分别使用人工蜂群算法以及粒子群算法独立运行50次,讨论两种算法之中位置误差差距以及迭代500次所使用的计算时间均如图6所示。
通过图6(a)可以发现,人工蜂群算法在进行逆运动学求解中,随着迭代次数的增加,收敛速度、位置误差精度均优于粒子群算法。在迭代次数将近500次时,使用人工蜂群算法所对应的位置误差稳定在10-4以下,而粒子群算法所对应的位置误差稳定在10-3以下。通过图6(b)可以发现人工蜂群算法与粒子群算法经过500次迭代次数所使用的计算时间较为接近,人工蜂群算法所使用计算时间略微少于粒子群算法。综上所述可以得知,人工蜂群算法的搜索精度是优于粒子群算法的,收敛精度以及收敛速度是快于粒子群算法的。
将上述人工蜂群算法以及粒子群算法所计算结果进行比较,如表3所示。
通过表3可以得知,粒子群算法所设置的种群数更多,有300个种群数,而人工蜂群算法的种群数才100个,种群数越多则搜多范围更大,更有利于计算出最优解。但是通过求最优解的迭代次数可以得知,人工蜂群算法所使用的迭代次数更少,计算所得出的位置误差也更小。另外对于两种算法计算500次迭代的时间是相差不大的,但人工蜂群算法所使用的求最优解时间是少于粒子群算法的。
为了验证两种算法的实验精确性,将在机械臂的工作空间随机选择100个位姿点进行逆运动学求解,其结果如图7所示。
通过图7(a)可以发现,对于冗余机械臂工作空间内随机选取100个位姿点,人工蜂群算法收敛精度更好,粒子群算法收敛性比较不稳定,在两种算法中人工蜂群算法的位置误差精度更高;图7(b)对于在不同点位计算最优解的过程,人工蜂群算法所使用的时间普遍比粒子群算法使用的时间少,收敛性更佳。
4结语
本文通过研究冗余机械臂的逆运动学求解问题,以探索最小的位置误差以及姿态误差为目标计算模型,提出使用人工蜂群算法的求解方法。通过仿真模拟分析后,可以得出以下结论:1)对于设定好的位姿点计算,采用人工蜂群算法计算所得的位置误差、求解时间均优于粒子群算法,更适合实际应用;2)人工蜂群算法在求解过程中的收敛速度、收敛精度比粒子群算法优秀,求解的质量更高;3)在随机多个位姿的逆运动学求解中,人工蜂群算法的位置误差以及求解时间更加优秀,所展示的稳定性以及鲁棒性优于粒子群算法。因此,通过仿真实验证明,人工蜂群算法相对于粒子群算法更适用于移栽机械臂的使用,整体的位移精度更佳,后续会将本次编写的人工蜂群算法添加至机械臂的控制器中,以便于更好地完成钵苗移栽工作。
参考文献:
[1] 徐文福,张金涛,闫磊,等. 偏置式冗余空间机械臂逆运动学求解的参数化方法[J]. 宇航学报,2015,36(1):33-39.
[2] 党磊,熊瑞平,唐静莹,等. 同伦算法在6R机器人运动学逆解上的应用[J]. 机械,2017,44(4):5-9.
[3] 程浩田. 基于正逆运动学分析的机械臂时间最优轨迹规划研究[D]. 太原:中北大学,2021.
[4] 李娜托. 基于改进人工蜂群算法的冗余机器臂逆解研究[J]. 组合机床与自动化加工技术,2020(3):37-40.
[5] BAYATI M. Using cuckoo optimization algorithm and imperialist competitive algorithm to solve inverse kinematics problem for numerical control of robotic manipulators[J]. Proceedings of the Institution of Mechanical Engineers,Part I:Journal of Systems and Control Engineering,2015,229(5):375-387.
[6] 李宪华,孙青,张雷刚,等. 双臂6R服务机器人的运动学研究及仿真[J]. 机械传动,2018,42(5):129-134.
[7] 王腾,张承瑞,陈齐志,等. 利用增广雅克比矩阵的冗余机械臂逆运动学求解算法[J]. 科学技术与工程,2021,21(16):6752-6757.
[8] 马丛俊,赵涛,向国菲,等. 基于逆运动学的柔性机械臂末端定位控制[J]. 机械工程学报,2021,57(13):163-171.
[9] 魏延辉,韩寒,于园园,等. 构形平面方法求解冗余机械臂逆运动学[J]. 哈尔滨工程大学学报,2016,37(8):1096-1102.
收稿日期:20230314
基金项目:浙江省尖兵领雁计划项目(2022C02042)
第一作者简介:王寒松(1997—),男,浙江台州人,硕士研究生,研究方向为机械设计与开发,573415637@qq.com。
DOI:10.19344/j.cnki.issn1671-5276.2024.06.043