APP下载

改进粒子群算法在六轴机械臂关节空间轨迹规划中的应用

2024-02-05杜超斐

关键词:插值轨迹加速度

杜超斐,刘 睿,丁 军,黄 霞,金 辉

(重庆理工大学 机械工程学院, 重庆 400054)

0 引言

机械臂轨迹规划是关于机械臂的重要研究内容,其规划的合理性决定了机械臂是否可以完成目标任务,也对机械臂工作时运行的稳定性有很大的影响。机械臂的轨迹规划分为笛卡尔空间轨迹规划及关节空间轨迹规划,笛卡尔空间轨迹规划需要把轨迹上的所有点进行逆运动学求解,运算量极大,而关节空间轨迹规划只需把起始点、路径点和终止点进行逆运动学求解[1-2]。笛卡尔空间轨迹规划多用于机械臂路径规划,如刘奕[3]针对协作机械臂在进行人机协作时的避障问题,设计了一种基于嵌套模型的深度强化学习算法模型,代替机械臂控制算法的决策避障功能,可有效地使机械臂绕开障碍物到达目标点。梁杰等[4]通过图像处理提取图片的灰度边缘作为机械臂的运动轨迹,并将一系列连续的轨迹坐标提供给机械臂控制软件进行末端位姿角度求解,实现机械臂的连续直线或曲线运动。徐亚之[5]在RRT*算法的基础上,引入一种能够智能选择最优树的双向搜索策略和基于三角不等式的路径优化算法,实现了机械臂的避障运动。李浩[6]通过学习人类控制策略,采用高斯混合模型进行学习建模,拟合出机械臂的可行采样空间,用基于采样的运动规划方法,使机械臂以人类技能的方式完成避障任务。为了避免奇异性的存在与机械臂的冗余问题,在本文中采用关节空间的轨迹规划。机械臂关节空间的轨迹规划大多采用的是多项式插值的方法。程浩田等[7]采用了三次及五次多项式插值对六轴机械臂进行了关节空间轨迹规划,发现三次多项式插值容易导致加速度发生突变,引起机械臂的震动,而五次多项式插值可以使机械臂关节角加速度曲线平滑且连续。张蕾等[8]采用七次多项式插值进行了关节空间轨迹规划,实现了机器人平稳且连续的运行。然而,高阶多项式插值虽然可以极大地满足机械臂的运行约束,保证机械臂运行的平稳性,但是凸包性过大,计算量太大,所以分段低次多项式插值方法被引入。唐建业等[9]使用了4-4-7-4分段多项式插值的方法,实现机械臂平稳性和运行时间的综合最优,但高阶多项式运算量太大。Xu等[10]提出了3-5-3分段多项式插值对机械臂轨迹进行规划,但不能实现机械臂运行时间的优化。而智能优化算法可以求解一些优化问题,如Cao等[11]针对Zr-4合金冷轧力模型的预测精度对Zr-4合金带材厚度和形状的控制精度的影响,采用粒子群优化算法对核电用Zr-4合金的摩擦因数模型进行了优化与研究。梅泽迅等[12]针对栅瓣问题对光学相控阵激光雷达系统性能的限制,提出了一种基于引入自适应参数优化、扰动策略和最优保留策略的改进粒子群算法的栅瓣优化方法,有效改善了栅瓣问题。为了对机械臂轨迹规划的时间进行优化,一些学者也引用智能优化算法对其进行优化,比如粒子群算法、遗传算法等。Li等[13]利用三次多项式插值,通过遗传算法得到了路径点之间的最短时间间隔,但低次多项式会导致加速度发生突变。江鸿怀等[14]提出使用粒子群算法对五自由度机械臂轨迹规划进行优化,使机械臂工作时间达到最优。付荣等[15]根据机械臂的速度约束,提出了基于粒子群优化的时间最优分段多项式插值轨迹规划算法。但传统的群智能优化算法在运行的稳定性上较差,容易过早收敛,陷入局部最优。Clerc等[16]提出利用约束因子来控制算法的收敛,可以使粒子有效的搜索到不同的区域,具有更快的收敛速度,但单一的约束因子无法适用于所有问题,在一些对约束因子不敏感的问题上,依然存在较大的缺陷。韩顺杰等[17]提出了用动态调节学习因子的改进粒子群算法对工业机器人的轨迹进行优化,加快了迭代速度,但对于学习因子参数的选择较为困难。王炳祺等[18]针对传统粒子群算法容易陷入局部最优解,导致种群早熟等问题,参考遗传算法中的变异操作,提出带变异因子的粒子群算法,但引入了更多的参数,增加了算法结构的复杂度。黄开启等[19]针对凿岩机械臂工作效率低、运行不稳定的问题,提出一种自适应惯性权重和动态调整学习因子相结合的粒子群算法,解决了标准粒子群算法容易陷入局部极值和收敛速度慢的问题,但计算开销较大,会增加算法的运行时间。石宪闪等[20]提出了一种采用自适应惯性权重的改进粒子群算法,并且以非线性学习因子代替固定的学习因子,有效提高算法的收敛速度和求解精度,但参数较多,不易选择合适的值。

针对传统粒子群算法在优化机械臂轨迹规划时间问题上的不足,本文提出了一种在满足机械臂运行速度、加速度以及变加速度的约束条件下,利用引入了自适应惯性权重以及概率突跳特性的改进粒子群算法,对3-5-3分段多项式的插值时间进行优化的轨迹规划方法。首先,构造了3-5-3分段多项式插值函数,其次,利用三段插值时间构建了目标函数,最后在满足预定的约束条件下,以时间最优为目的,通过改进的粒子群算法对各段插值时间进行了优化,使机械臂的运行时间达到最优,且增加了机械臂运行时的平稳性。

1 改进粒子群算法

1.1 标准粒子群算法

标准粒子群算法是一种模拟鸟群觅食行为的群体智能算法,该算法通过群体中领导者的引导和信息共享,实现优化问题的求解,其思想是在一个D维的目标搜索空间中,初始化i个粒子,每个粒子在搜索空间中单独的搜寻最优解,为寻找到群体的最优值,所有的粒子进行不断迭代,通过跟踪个体极值和群体极值更新自身的位置与速度,其更新通过式(1)进行:

(2)

通过式(1)可知,在粒子不断迭代过程中,所有的粒子都是只向个体极值和群体极值的方向进行更新,这就导致粒子群体在后期迭代向着同一位置更新,迭代速度缓慢,而且容易陷入局部极值,使得粒子群的全局寻优能力下降。

1.2 改进粒子群算法

标准粒子群算法需要设定的参数(惯性权重ω,影响因子c1、c2)是固定值,不利于找到待优化模型的最优参数,而且对于不同的优化问题,由于其粒子的位置变化缺少随机性,容易陷入局部最优,因此,不能保证优化的结果每次都收敛到全局最优,为了弥补粒子群算法的缺陷,对标准粒子群算法首先引入自适应惯性权重法,使得惯性权重随着迭代次数不断进行调整,加快粒子的寻优速度,其次,引入模拟退火算法中的概率突跳特性,使迭代中的粒子能够以一定的概率接受适应度较差的新解,避免粒子在迭代时陷入局部最优。

1.2.1 自适应惯性权重代替常数权重

对于标准粒子群算法,其所有粒子的惯性权重ω为定值,一般在0.4~0.9之间效果较好,但随着粒子不断地迭代更新,固定值的惯性权重在粒子搜索的过程中存在不少缺陷。较大的惯性权重有利于全局搜索,但会导致收敛速度较慢且精度不高,较小的惯性权重有利于局部搜索,但会导致算法因全局搜索不全面陷入局部最优。因此,用自适应惯性权重代替常数权重,惯性权重会根据迭代次数自适应调整大小,以动态平衡全局与局部搜索能力,在此基础上,对随机数r1、r2进行改进,替换为动态值γ,动态值γ会根据粒子迭代次数调整个体最优位置以及群体最优位置对粒子迭代的影响,使粒子更好地寻优,粒子开始迭代时,个体最优位置影响较大,随着不断地迭代,所有粒子会逐渐向群体最优位置逼近,以达到更好的收敛效果,更新后的速度迭代公式为:

(5)

1.2.2 引入概率突跳特性

标准粒子群算法在每一次迭代过程中,当新解优于当前解时,新解被接受,而当新解差于当前解时,新解被拒绝,导致粒子可能错失新解周围的优解,因此基于粒子群算法结合了模拟退火算法中的“概率突跳特性”[21],可以正好弥补标准粒子群算法容易陷入局部最优的缺陷。这个特性由Metropolis准则体现,它是模拟退火算法中一个重要的思想,即通过接受概率来决定是否接受比当前解更差的解。在每次迭代中,算法会根据当前解和候选解之间的差异以及当前温度计算一个接受概率。接受概率越高,越有可能接受候选解;反之,接受概率越低,越有可能保持当前解,这个特性可以使粒子具有随机性,以一定的概率接受迭代后适应度差的新解,帮助粒子跳出局部最优,向全局最优解逼近。解的接受程度用Metropolis准则来定义,如式(6)。

(6)

式中:P为接受新解的概率;fid为新解;fgd为当前解;T为降温公式。

2 时间最优机械臂轨迹规划

2.1 构造3-5-3样条插值函数

使用单次的多项式插值对机械臂进行关节空间轨迹规划时会产生很多问题,如三次多项式插值可能会导致机械臂关节的角速度、角加速度发生突变,使机械臂运行的稳定性及使用寿命受到影响,而较高次数的多项式插值可能会引起“龙格现象”,影响插值的效果,所以本文采用分3段低次多项式插值的方法,第1段和第3段为三次多项式插值,而第2段为五次多项式插值,对于多项式插值函数,一阶导数表示速度,二阶导数表示加速度,三阶导数表示变加速度,3-5-3样条插值多项式表达式如下:

h1(t)=a13t3+a12t2+a11t+a10

(7)

h2(t)=a25t5+a24t4+a23t3+
a22t2+a21t+a20

(8)

h3(t)=a33t3+a32t2+a31t+a30

(9)

式中:h1(t)、h2(t)、h3(t)分别代表每个关节第1段的三次多项式轨迹,第2段的五次多项式轨迹,第3段的三次多项式轨迹;未知系数a1i,a2i,a3i代表每个关节轨迹第1、2、3段多项式的第i个系数。用Cj表示3段多项式插值对应的4个插值点,其中,j=0,1,2,3,给定3-5-3样条插值多项式的约束条件:已知条件是各关节的起始点C0,中间点C1和C2,终止C3;起始点C0和终止点C3的速度、加速度均为0;中间点C1和C2的位移、速度及加速度连续。根据以上的约束条件得出的约束方程表达为矩阵的形式,如式(10)—式(12)。

(12)

式中:A表示系数矩阵;c表示已知项,即插值点;a表示3段多项式系数矩阵;t1、t2、t3分别为3段插值时间。

2.2 目标函数的构建

机械臂轨迹规划在时间上的优化就是对各个关节的运行时间进行优化,首先使用设定的数学模型对机械臂的工作路径进行插值,然后通过优化算法使各个关节在插值点之间的运行时间最少。本文主要研究机械臂在满足运动学约束条件下,利用改进的粒子群算法在最短时间内使机械臂的路径经过插值点完成运动。设定的数学模型如下:

(14)

式(13)为适应度函数,式(14)为约束条件;tic(c=1,2,3)是第i个关节的3段插值时间;vic(c=1,2,3)是第i个关节的运行速度;aic(c=1,2,3)是第i个关节的运行加速度;jic(c=1,2,3)是第i个关节的运行变加速度;vmax是各个关节的最大运行速度;amax是各个关节的最大运行加速度;jmax是各个关节的最大运行变加速度。

2.3 时间最优问题求解

对于传统的3-5-3分段多项式插值,其3段插值时间值需要提前设置,但并没有严格的规定,这就导致时间设置具有随机性,如果选取的时间太短,可能会导致机械臂的关节运行速度或加速度太大,超出其本身的设定值,对机械臂的寿命造成影响;如果选取的时间太长,又会导致机械臂工作的效率大大降低。所以在时间优化上,可以采用智能优化算法。而粒子群优化算法结构简单,在逼近最优解时速度很快,所以,可以将3段插值时间的总和作为优化参数,将改进的粒子群算法应用到时间最优机械臂轨迹规划上,在满足约束条件的基础上,对机械臂的每个关节进行优化,通过粒子的迭代更新优化自变量,寻找时间的最优解。算法的具体流程如图1。

图1 本文所提算法流程框图

3 仿真与实验结果

本文中研究的是xArm6机械臂,其整体结构的主要尺寸及坐标系建立如图2所示。

图2 xArm6机械臂示意图

运动学分析是机械臂轨迹规划的基础,机械臂的运行是在已知目标位置的三维位姿后,通过运动学求逆得到各关节的位置变化实现的,首先采用标准DH法对xArm6机械臂进行运动学建模,其DH参数如表1所示。

表1 xArm6机械臂DH参数

机械臂工作空间是指机械臂末端执行器运动描述参考点所能达到的空间点的集合。在规划机械臂任务时,首先需要知道机械臂末端执行器运动的可达空间,同时需要验证运动学模型的正确性,因此,用Matlab软件里的机器人工具箱(Robotics Toolbox)对xArm6机械臂进行建模,并且获取其工作空间,如图3(a)、图3(b)所示,同时通过对机械臂的正逆运动学分析验证了建模的正确性。

图3 xArm6机械臂建模及4个插值点示意图

在使用分段多项式插值对机械臂进行轨迹规划时,需要在笛卡尔系中预先给定4个插值点,再根据逆运动学求解机械臂末端位于各插值点时,其6个关节的角度值。机械臂末端在笛卡尔系下的起始点Pstart、中间点P1和P2及终止点Pend如图3(c)所示。通过运动学逆解得到机械臂末端位于4个插值点时的关节角度值,如表2所示。目标函数的构建需要满足机械臂的运动学约束条件,机械臂的运动参数范围如表3所示。

表2 关节角度值 (°)

表3 运动参数范围

为验证改进粒子群算法的有效性,以一关节为例,分别用标准粒子群算法和改进粒子群算法对一关节进行了插值时间的优化,并且对迭代过程进行了比较,2种算法的迭代收敛曲线如图4所示。

图4 迭代收敛曲线

由图4可知,用改进粒子群算法和标准粒子群算法对一关节进行时间优化时,改进粒子群算法在迭代25次左右就开始收敛至渐进最优值,而标准粒子群算法需要迭代65次左右,可见改进粒子群算法效率提升了61.54%,并且由于粒子群算法本身存在的固有缺陷,标准粒子群算法容易陷入局部最优,可能无法找到时间的最优值,改进粒子群算法则因加入了概率突跳特性,增强了粒子全局寻优的能力。文献[18,23]均以六轴机械臂为研究对象,采用3-5-3分段多项式插值,用各自的改进优化算法对各段插值时间进行优化,现以改进后算法的迭代次数下降百分比为指标,将本文中改进粒子群算法与文献[18,23]提出的算法进行比较,如表4所示。

表4 迭代次数下降比

从表4中可看出,本文改进后算法的迭代次数下降比最高,可见本文改进粒子群算法的优化效果更好,在迭代速度和收敛精度上均高于标准粒子群算法。

根据时间最优问题求解的步骤,机械臂每个关节的运行时间进行优化,优化后的3段插值时间值及总时间如表5。

表5 优化后的时间 s

机械臂的最终运行时间要选取各关节在各段时间中的最大时间值的总和,其中,第1段的最大时间值t1=1.209 4 s,第2段的最大时间值t2=0.971 1 s,第3段的最大时间值t3=1.294 3 s,则优化后机械臂的最终运行时间T=t1+t2+t3=3.474 8 s,即各个关节的位置、速度、加速度以及变加速度随时间的的变化趋势如图5—图9。

图5 关节1—6的粒子位置进化曲线

图6 各关节位置曲线

图7 各关节速度曲线

图8 各关节加速度曲线

图9 各关节变加速度曲线

在3段插值时间的目标搜索空间中,每段插值均有20个粒子,对每段插值中的某个粒子的位置变化进行跟踪,粒子每迭代2次标记一次,迭代100次后,得到各个关节的粒子位置进化图如图5,可以看出各关节的粒子可以随着迭代次数的增加快速收敛,且处于3段插值时间的粒子均在迭代50次以内就可以收敛至时间的最优位置,极大提升了算法的效率。最后再通过每段时间中各关节的位置变化,求得机械臂的最终运行轨迹曲线,如图10(a)所示,图10(b)—图10(d)是机械臂模型跟随轨迹从插值点Pstart~P1~P2~Pend运动的过程,图10(e)—图10(g)是仿真机械臂同步运行的过程。

图10 优化后机械臂的运行轨迹

从图5—图9可以看出,机械臂6个关节在满足运动学约束条件下的位置变化、速度变化、加速度变化连续且平滑,可以增加机械臂运行过程的稳定性;而且每个关节运行的速度、加速度以及变速度都在预先设定的约束范围内,并且尽可能接近约束范围的极限,避免机械臂超负荷工作,有利于提高机械臂的寿命、减小机械臂的运行时间;其中第3关节、第4关节及第6关节整体的速度和加速度较高,极大地提高了机械臂运行的效率,而由于3-5-3多项式插值函数本身的性质,导致变加速度存在一定的不连续性,若想连续,可以增加多项式的次数,但又会导致凸包性大、计算量大等问题。实验数据表明了在满足机械臂运行的约束条件下,采用引入了自适应惯性权重及概率突跳特性的改进粒子群算法,对机械臂关节空间中3-5-3分段多项式的插值时间进行优化的轨迹规划方法是有效的。

4 结论

以xArm6机械臂为研究对象,在机械臂的运动参数满足所设定的约束条件之下,提出用引入了自适应惯性权重以及概率突跳特性的改进粒子群算法,对机械臂在关节空间中的3-5-3多项式时间插值进行优化。由于传统的3-5-3多项式插值在时间上难以进行优化,采用算法结构简单、迭代速度快的智能优化算法,即粒子群算法对其进行优化,但传统的粒子群算法不仅在后期迭代缓慢,而且容易陷入局部最优值。因此,本文中提出了改进粒子群算法,在传统粒子群算法的基础上,引入了自适应惯性权重以及概率突跳特性,经过与传统粒子群算法的对比,发现改进粒子群算法有更快的迭代速度,最后通过对机械臂的运动仿真及对6个关节的位置、速度、加速度、变加速度随时间的变化趋势进行分析,更加验证了此算法的有效性。

粒子群算法有一定的优势,但其参数较多,且对于参数的选择非常敏感,参数的不同会直接导致优化效果不同,在往后的工作中,可以对粒子群算法的参数进一步优化。另外,本文中虽然以实验室具有的6自由度机械臂为研究对象,但是提出的基于改进粒子群算法的六轴机械臂关节空间轨迹规划方法,对于其他六轴机械臂,以及多自由度机械臂如5自由度、7自由度机械臂等具有一定的适用性,其他多自由度的机械臂可以用DH法建立其各自的运动学模型,从而求解机械臂末端通过各路径点时,对应的各关节的角度变化值,进而在满足不同自由度机械臂的运动学约束条件下,采用本文中的改进粒子群算法对不同关节进行插值时间的优化。同时,本文中以机械臂的运行时间为优化对象,下一步还将对机械臂的冲击、能量等进行优化。

猜你喜欢

插值轨迹加速度
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
轨迹
轨迹
基于Sinc插值与相关谱的纵横波速度比扫描方法
天际加速度
创新,动能转换的“加速度”
死亡加速度
轨迹
进化的轨迹(一)——进化,无尽的适应
一种改进FFT多谱线插值谐波分析方法