1、姜涛,等:基于改进粒子群算法的机械臂逆运动学求解收稿日期:2022-02-25基金项目:吉林省省级产业创新专项资金项目(2017C045)作者简介:姜涛(1969-),男,博士,研究员,博士研究生导师,E-mail:基于改进粒子群算法的机械臂逆运动学求解姜涛,曹琦(长春理工大学机电工程学院,长春130022)摘要:为了克服一般传统方法在求解机器人逆运动学问题时的不足,通过构建合理的适应函数将机械手逆运动学问题转变为目标优化问题,然后通过群智能算法加以优化,进而求解逆运动学问题。给出一种粒子群算法的优化方法,通过动态惯性权重来调节算法全局搜索和局部搜索的能力,同时引入收缩学习因子来避免算法陷入局
2、部最优。以机器人末端执行设备的位置误差最小,设机器人在运动过程中的能量消耗最小为优化目标,在一种串联仿人机械臂上进行了仿真实验。通过计算机仿真结果便可发现,与其他粒子群算法对比,经过改进的粒子群算法具有较好的收敛速率和求解精度。可以看出,该方案能够合理地进行机器人逆运动学问题的解决。关键词:逆运动学;粒子群优化算法;学习因子;动态惯性权重;机械臂中图分类号:TP18文献标志码:A文章编号:1672-9870(2023)01-0059-06Inverse Kinematics Solution of Manipulator Based onImproved Particle Swarm Opti
3、mization AlgorithmJIANG Tao,CAO Qi(School of Mechatronic Engineering,Changchun University of Science and Technology,Changchun 130022)Abstract:In order to overcome the shortcomings of conventional methods in solving inverse kinematics problems,the in-verse kinematics problem of manipulator was transf
4、ormed into objective optimization problem by constructing reasonableadaptive function;and then the inverse kinematics problem was solved by swarm intelligence algorithm.In this paper,animproved particle swarm optimization(PSO)algorithm was presented;in which dynamic inertia weights were used to ad-j
5、ust the global and local search capabilities of the algorithm;and shrinkage learning factors were introduced to avoid fallinginto local optima.To minimize the position error of robot end-effector and minimize the energy consumption of robot in theprocess of motion,a simulation experiment was carried
6、 out on a series humanoid robot arm.Computer simulation resultsshowed that compared with other particle swarm optimization algorithms,the improved particle swarm optimization algo-rithm had better convergence rate and solution accuracy.It could be seen that the scheme should solve the inverse kinema
7、t-ics of the robot reasonably.Key words:inverse kinematics;particle swarm optimization algorithm;learning factor;dynamic inertia weight;manipulator随着科技的飞速发展,工业机器人作为一种重要的自动化生产设备,已经被广泛地应用于汽车制造、电子、物流分拣等工业领域中1。逆运动学问题是指根据给定的末端执行器的姿态,确定相对应的关节变量值,进而指导机器人执行期望的运动,可以求取多组可行解。其本长春理工大学学报(自然科学版)Journal of Changch
8、un University of Science and Technology(Natural Science Edition)Vol.46No.1Feb.2023第46卷第1期2023年2月长春理工大学学报(自然科学版)2023年质上也是一个多变量,强耦合下的非线性方程组,求解困难度极大,不宜得出正确解。该问题历来是机器人研发的重点与难题,同时也是对机器人进行相关动态分析的基础。关于这一问题,目前提供的解决办法可以大致分为两种:解析法、数值方法。解析法通常是用代数或几何方式直接解关节变量,但由于其繁琐的求解流程导致运算量大,容易造成求解麻烦。且该方法通常应用在少数满足 piper 准则的机械
9、臂逆运动学求解,不具有普适性2。现如今,冗余机器人由于其优秀的动力学特性,能够灵活地适应一些特殊的加工环境,得到了国内外学者的关注。这种多自由度机器人的运动学逆解的求解,解析法将不再适用,最常见的方式就是数值法,经典的数值解法求逆运算复杂,计算量巨大,往往无法获得所有的可能解,并且存在奇异性问题。为了有效地解决上述两种方法在求解机械臂逆运动学问题时的弊端和不足,研究者们将目光锁定到群智能优化算法上。随着计算机技术的飞速发展。研究人员们通过构建适应函数,将机器人运动学问题转化为一个优化问题求数值解2。进而可以使用群智能优化算法对其加以优化。目前学者们研究出的算法包括:遗传算法3-4、粒子群优化算
10、法5-7、差分进化算法8、鲸鱼算法9和人工蜂群算法10等。基于智能优化算法来求解机器人逆运动学问题可以不受传统自动化机器人构型的限制,算法构造简洁,运算过程简单,具有很强的通用性,也很好地解决了传统求解方式的缺陷。在函数搜索寻优、图像压缩等多个领域的应用发挥了重要作用。但仍存在一些弊端,可能导致无法得到正确的最优解。给出了一种经过改进的粒子群算法,通过引入混沌扰动,改进惯性权重的设置,防止算法陷入局部最优,提高种群多样性。并以七轴串联仿人机械臂为例,将逆运动学问题转化成目标优化问题,在通过改进的算法加以优化,从而确定了其可行性。最后,在 MATLAB上实现了仿真实验。1运动学方程与目标函数1.
11、1运动学方程文中采用了一种七轴串联仿人机械臂11,如图 1 所示。机械臂是由三个自由度的肩、一个自由度的肘和三个自由度的腕组成。建立机械臂各连杆和关节间的D-H模型,如表 1 所示。图 1七轴串联仿人机械臂表 1机械臂D-H参数表关节1234567i/()1234567ai/mm00d2d3000i/rad0/20/20-/2/2di/mmd1000d400根据上述D-H参数,通过计算得出机械臂相邻连杆与关节间的变换矩阵,计算公式如下:i-1iT=cos(i)-sin(i)0ai-1sin(i)cos(i-1)cos(i)cos(i-1)-sin(i-1)-sin(i-1)disin(i)si
12、n(i-1)cos(i)sin(i-1)cos(i-1)cos(i-1)di0001(1)根据式(1)得出各关节变换矩阵,通过矩阵运算可得到机械臂的正运动学变换矩阵,如下所示:07T=01T12T23T34T45T56T67T=nxozaxpxnyoyaypynzoxazpz00 01(2)601.2适度函数的建立由于机械臂末端执行器的位姿于基坐标之间的变换并非是唯一的,所以给定同一个末端执行器的位姿将会有许多不同的逆解与之相对应,倘若没有约束条件的限制,那么逆解的选取是很难确定的,所以,如何从这些逆解中找出最优解成为关键。文中以机器人末端执行器位置误差最小及末端执行器从初始位置到目标位置的能
13、量消耗最小为优化目标,将传统机械臂的逆运动学问题转化为多目标优化问题12。设 机 械 臂 末 端 执 行 器 的 预 期 目 标 位 置 为P*=p*xp*yp*zT执 行 器 实 际 到 达 位 置 为P=pxpypzT。将姿态误差函数定义为:=()px-p*x2+()py-p*y2+()pz-p*z2(3)如果机械臂各关节的初始角度设置为s=(s1,s2,s7),那么机械臂各关节角度的总变化如下:f()=i=17|i-si(4)在实际生产应用中,机械臂运动无法做到完全没有误差,因此,文中将机器人的逆运动学问题转化为以位置误差和能量消耗为目标的优化问题。目标函数如下:min()=min(),
14、f()(5)式中,表示误差优化目标;f()表示能量优化的目标。因为该方法的优化目标有两个,并且它们之间经常存在矛盾的问题,所以很难有一个能同时满足两个优化目标的最优解决方案。因此,文中在两种优化目标间进行折中,即将两种优化目标进行线性组合,将多目标优化问题转化为综合优化问题并加以解决。min()=min(+f()(6)式中,和是正加权系数,用于调整两个优化目标的权重。由于位置误差的求解结果与能耗优化的结果不是同一个数量级,前者比后者小得多,并且位置误差的结果变化太少,这可能对能耗优化的结果影响很小。因此,为了兼顾两个优化目标,加权因子的值应该比大得多。设定=1;=10-10。综上所述,以实际求
15、出的机械臂末端位姿与其目标位置的误差最小及机械臂在运动过程中各关节角度变化最小两项综合评定机械臂逆解的最优解。2逆运动学算法求解2.1标准粒子群算法粒子群算法,是通过对鸟类集群捕食行为的深入研究中发现的一种群优化算法分析工具13。具有操作简单、收敛速度快并且不需要调节很多参数等优点,可以更加方便快捷地处理优化问题。假定由m个粒子组成一种集群,所有粒子以一定的速度在一个D维搜索空间里飞行,设xi=(xi1,xi2,xiD)为 粒 子i的 位 置;vi=(vi1,vi2,viD)为粒子i飞行速度;pbest=(pi1,pi2,piD)为粒子个体最优预测位置;gbest=(g1,g2,gD)为种群全
16、局最优预测位置。粒子运动的数学表达式如下:vij(t+1)=vij(t)+c1r1(t)pij(t)-xij(t)+c2r2(t)gi(t)-xij(t)(7)xij(t+1)=xij(t)+vij(t+1)(8)式中,i=1,2,m;j=1,2,D;为惯性权重;c1和c2为学习因子,一般取值都为 2;c1表示粒子个体的“自身认知”;c2表示粒子的“群体认知”;r1和r2为 0,1 间的随机数;t为迭代次数。2.2粒子群算法的改进与优化2.2.1 惯性权重的改进在传统的粒子群算法中,惯性权重通常是个稳定数值。如果数值太大,就不利于粒子后期的小规模局部搜寻。如果值太小,就不利于全局搜寻。针对这一缺陷,研究者们提出通过线性递减定律来调节惯性权重,变换公式如下:=max-max-mintmaxt(9)姜涛,等:基于改进粒子群算法的机械臂逆运动学求解第1期61长春理工大学学报(自然科学版)2023年式中,max为最大权值;min为最小权值;tmax为最大迭代次数;t为当前粒子迭代次数。这种线性改变权值的方法起到了一定的效果,但粒子速度的更新仍然对惯性权重的值有很强的依赖性。为了避免粒子的更新率