1. 引言
随着社会的高速发展,人们的生活越来越便利,而这离不开工业生产的逐渐智能化。现如今,机械臂已成为改善生产力结构、提高生产力的有力工具[1]。六自由度机械臂拥有着很高的灵活性和应用广泛性,能完成抓取、搬运、打磨等简单或复杂的动作,其应用范围也已经扩大到了医疗卫生、航空制造、国防科技、民生服务等领域。在这些领域中,人们不仅希望机器人的工作效率很高,同时要求机器人能够按照预定的轨迹平稳运行。所以机器人轨迹规划的研究对其能否稳定高效的运行起着至关重要的作用[2]。轨迹优化成为了机器人领域的热点问题[3]。其目的是:在满足速度、加速度等约束条件下,规划出机械臂通过点的最优运动轨迹。优化的目标可以是时间最优、能量最优、冲击最小这些优化问题常结合各类智能优化算法来实现[4]-[7]。
轨迹规划是机械臂轨迹控制的基础,而时间最优轨迹规划关系到是否满足企业生产对时间的限制和要求以及机械臂的作业效率[8],所以也是轨迹规划问题中最热门的研究点。针对机械臂轨迹规划问题的研究有很多,代瑞恒[9]通过引入正态分布概率密度函数改进量子遗传算法,对关节运动轨迹进行最短时间优化;普亚松等[10]针对工业机器人关节运动规划存在的问题,提出一种三次多项式与四次多项式混合规划方法,提高机器人的使用性能和寿命;韩顺杰等[11]提出一种正弦函数动态调整学习因子的改进粒子群算法并结合3-4-3分段多项式对工业机器人的运行轨迹进行优化,避免了粒子群初期容易陷入局部极值。陈波等[12]提出一种双种群粒子群算法对机械臂轨迹进行时间最优规划,每个路径点之间通过3次多项式进行连接,该方法在机械臂时间最优轨迹规划中起到了重要作用。以上研究在机械臂轨迹规划中取得了大量的成果,但是大多存在阶次高、计算复杂和优化算法易早熟等问题。
基于上述内容,在对机器人进行轨迹规划时,本文在3-5-3插值函数的基础上结合改进粒子群算法对六自由度串联机械臂进行时间最优轨迹规划。通过引入自适应惯性权重和非线性学习因子,解决传统粒子群算法收敛速度慢、迭代寻优差的问题,保证全局搜索和局部探索能力的平衡。最后通过matlab仿真实验验证该方法的有效性和优越性。
2. 多项式3-5-3插值函数的构造
多项式插值的方法能够确保机械臂在轨迹规划中位移、速度、加速度在相关时间内连续可控,利用多项式函数设置随时间变化的路径点,以逐步靠近或内插确定开始位置到目标位置之间的路径。在函数构造的过程中低阶插值函数不能保证加速度曲线平滑、连续,会产生冲击;高阶插值函数虽能保证平滑、连续,但是比较难求且凸包性差[13]。因此文中采用3-5-3次混合多项式函数,其中在第一、三段采用3次多项式插值函数,第二段采用5次多项式插值函数,如图1所示。所花费时间分别为
、
、
,其函数表达式:
(1)
figure 1. trajectory segmentation diagram
图1. 轨迹分段图
式中,
、
、
分别表示混合多项式规划中的第一段、第二段、第三段时间内的规划函数,
、
、
分别表示混合多项式的三段插值时间,
表示第j段函数中的第k项系数。为了使轨迹规划更加平滑,对混合分段多项式添加角度、角速度、角加速度约束条件,表达式分别为式(2)~(4)所
示。
(2)
(3)
(4)
(5)
(6)
(7)
(8)
公式8变形为
(9)
由公式(9)可知,要求解最优状态下的轨迹曲线方程,相当于求解轨迹方程系数
,由于
受各段时间
、
、
的影响,所以对各段时间
、
、
的合理取值才是机械臂时间最优轨迹规划的直接目标。
3. 多小生境自适应变异的改进粒子群算法
3.1. 粒子群算法
粒子群优化算法(pso)是一种进化计算技术(evolutionary computation),1995年由eberhart博士和kennedy博士提出,源于对鸟群捕食的行为研究。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。
粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。更新公式如下:
(10)
(11)
式中:
为惯性权重;
、
为学习因子;
、
为随机常数,变化区间为[0, 1];
为粒子
在第
次迭代时,第
维的速度分量;
为粒子
在第
次迭代时,第
维的位移分量;
为粒子最优位置
在第
维的分量;
为粒子群最优位置
在第
维的分量。
对每个微粒,将其适应值与其经过的最好位置pbest作比较,如果较好,则将其作为当前的最好位置pbest。对每个微粒,将其适应值与其经过的最好位置gbest作比较,如果较好,则将其作为当前的最好位置gbest。
3.2. 改进粒子群算法
传统粒子群算法优化轨迹时候搜索速度不太稳定,且易陷入局部最优。传统pso算法中权重因子是固定值[12]。用变化的权重因子使收敛效率更高,最优解更优化。具体操作如下所示:采用多小生境方式如图2,分散粒子的随机初始化位置
figure 2. multi-small habitat particle initialization
图2. 多小生境粒子初始化
惯性权重
会随着迭代次数的增加而增加。通过引入可变参数的粒子群算法,能够在一定程度上改善粒子群算法容易陷入局部最优的问题,但可变参数法全局探索能力仍然限制较大、效果不够好[13]。具体操作如下式所示:
(12)
式中:
为最大惯性权重;
为最小惯性权重;
为当前迭代次数;
为最大迭代次数。对每次迭代后的最优粒子进行变异,并且每一次最优粒子变异的上下限都与其本身维度的最小值相联系,形成自适应变异方法。具体操作如下图3所示。
figure 3. adaptive mutation method
图3. 自适应变异方法
figure 4. algorithm flowchart
图4. 算法流程图
3.3. 优化方法
本文的目的是对机械臂进行时间最优的轨迹规划,故轨迹优化目标的适应度函数为:
(13)
本文所提出的多小生境自适应变异的粒子群算法(mnam-pso)降低了粒子进入局部最优的概率,其收敛速度与粒子群算法相差不大,该算法求解机械臂各关节时间最优解步骤如下:step1:设置合理参数对实验结果影响巨大。粒子数量对于算法的性能和结论的可靠性具有重要影响,小生境个数的选择需要平衡种群多样性和收敛速度。如果维数设置不当,可能导致无法找到合适的解或者求解效率低下[14]。通过查阅资料设置参数如下:粒子数量为
,小生境个数
,粒子维数
、学习因子
,最大惯性权重
,最小惯性权重
,位置随机初始范围为
,速度随机初始范围
,最大迭代次数
,初始化粒子的位置及速度。
step2:约束条件是机械臂的运动学和动力性能的物理学极限。为保持某机械臂运行平稳最大运行速度,最大加速度,最大二次加速度为复合要求。所以求解粒子对应的轨迹系数、角速度及角加速度时。若角速度和角加速度超过设定值,表明粒子不满足角速度和角加速度限制要求,将其适应度值设置为无穷大;若角速度与角加速度满足限制要求,保存粒子适应度值。
step3:寻找粒子历史最优值
和全局最优值
。
step4:对全局最优值
进行自适应变异。求解变异后粒子对应的轨迹系数、角速度及角加速度,若不满足角速度和角加速度条件或满足以上条件但其适应度值劣于变异前粒子适应度值,则
仍为变异前的粒子;否则,将变异后粒子保存为
。
step5:计算粒子速度,并进行粒子位置的更新,生成新的种群。
step6:判断是否达到算法最大迭代次数,若未满足则返回步骤step2;满足则结束。
这一算法流程图如图4所示。
4. matlab建模检验
4.1. 建模过程
为验证本文所提出的基于改进后pso算法的三次b样条轨迹规划化算法在六自由度机械臂中应用的可行性和优劣性,本文以puma560机器人为研究对象,在matlab中进行仿真实验。规划机械臂末端执行器从初始点a经过中间点b、c到达终止点d的时间最短运行轨迹。各路径点分别对应各关节角度如表1所示。
在进行优化时,必须考虑机械臂的实际工作条件,其速度与加速度不得超过机械臂的正常工作范围,约束条件如下式所示:
table 1. angles of each joint corresponding to path points a, b, c and d
表1. 路径点a、b、c、d所对应的各关节角度
|
路径点a |
路径点b |
路径点c |
路径点d |
关节1的角度/(rad) |
0.1885 |
0.8168 |
0.1257 |
−0.8796 |
关节2的角度/(rad) |
−1.6336 |
−2.0071 |
−1.0681 |
−1.0053 |
关节3的角度/(rad) |
0.2513 |
−0.3770 |
−1.0681 |
−0.3142 |
关节4的角度/(rad) |
0.3142 |
−0.0628 |
0.4398 |
0.8796 |
关节5的角度/(rad) |
0.1885 |
−0.1257 |
0.2513 |
0.5027 |
关节6的角度/(rad) |
0.3142 |
−0.1257 |
−0.1885 |
−0.2513 |
分别使用改进前后的算法进行规划仿真对比,算法参数初始化设置中,作业机械臂最大速度6 rad/s,最大加速度8 rad/s²。经过matlab仿真,两种算法下前三个关节的最优适应度曲线如图5~7所示。
figure 5. axis 1 fitness curve
图5. 轴1适应度曲线
figure 6. axis 2 fitness curve
图6. 轴2适应度曲线
figure 7. axis 3 fitness curve
图7. 轴3适应度曲线
(13)
通过对比可以发现,改进的粒子群算法相较于标准粒子群算法能够实现更优的适应度值,其收敛速度也很快,大部分关节优化达到全局收敛的迭代次数在80以内,验证了改进的粒子群优化算法中的粒子更不易陷入到局部收敛中。两种算法优化下规划出的组合分段多项式时间段值如下表2、表3所示。
table 2. results of standard particle swarm optimization algorithm
表2. 标准粒子群优化算法结果
关节序号 |
t1 |
t2 |
t3 |
t总 |
1 |
0.961 |
1.258 |
1.078 |
3.298 |
2 |
0.810 |
1.179 |
0.300 |
2.289 |
3 |
0.847 |
1.099 |
1.225 |
3.172 |
4 |
0.718 |
1.051 |
0.634 |
2.403 |
5 |
0.739 |
0.822 |
0.467 |
2.028 |
6 |
1.044 |
0.850 |
0.300 |
2.194 |
每段时间最大值 |
1.044 |
1.258 |
1.225 |
3.528 |
table 3. results of improved particle swarm optimization algorithm
表3. 改进粒子群优化算法结果
关节序号 |
t1 |
t2 |
t3 |
t总 |
1 |
0.961 |
1.258 |
1.078 |
3.298 |
续表
2 |
0.810 |
1.179 |
0.300 |
2.289 |
3 |
0.847 |
1.099 |
1.225 |
3.172 |
4 |
0.718 |
1.051 |
0.634 |
2.403 |
5 |
0.739 |
0.822 |
0.467 |
2.028 |
6 |
1.044 |
0.850 |
0.300 |
2.194 |
每段时间最大值 |
1.044 |
1.258 |
1.225 |
3.528 |
取每一段六个关节耗时最长的时间为最终每段的规划时间,计算可得使用标准粒子群算法总耗时间3.961 s,使用改进粒子群算法总耗时间为3.528,改进后的粒子群算法在时间上减少了10.9%。
将改进粒子群算法得出的时间段结果代入到上文的混合多项式规划算例中进行仿真可得改进后的该机械臂各关节角的运动情况,如图8~10所示:
figure 8. angle curves of each joint
图8. 各关节角度曲线
figure 9. angular velocity curves of each joint
图9. 各关节角速度曲线
figure 10. angular acceleration curves of each joint
图10. 各关节角加速度曲线
4.2. 检验结果
从图5~10变化可以看出机械臂在改进粒子群算法优化下的位移、速度、加速度曲线是平稳连续无突变的,并减少了运行时间,提高了工作效率。通过matlab仿真实验可以看出本文设计的基于改进pso算法的三次b样条轨迹规划算法是可行且高效的,另外可以使机械臂在经过既定路径点,保证运动约束的前提下,保持快速平稳运行。
5. 结论
本文以“3-5-3”混合多项式插值算法为基础对机械臂关节运动进行规划,并结合多小生境自适应变异的粒子群算法(mnam-pso)实现轨迹的时间最优规划,以实验室作业机器人的作业机械臂为模型进行仿真分析。相较于标准粒子群优化算法,改进算法采用多小生境方式,分散粒子的随机初始化位置,在迭代过程中采用动态惯性权重和自适应变异方法,因此粒子不易陷入到局部最优解中。通过对算例进行仿真,优化后的轨迹总时间减少了10.9%,且在算法运行过程中未出现局部收敛的情况。在该轨迹下,机械臂的运动曲线平稳无突变,验证了所用方法的合理性。
新型多生境自适应变异粒子群优化算法在时间最优轨迹规划问题上具有较高的求解精度和效率。多生境策略和扰动机制有助于提高种群的多样性和避免局部最优解。“3-5-3”混合多项式插值方法能够有效拟合机器人关节轨迹,具有一定的工程应用价值。通过参数分析,本文提出的算法参数设置对于求解结果具有显著影响,为后续研究提供了参考。研究的局限性和未来研究方向在于:尽管本研究取得了一定的成果,但仍存在算法在更高维度的应用、实时性优化等。未来研究可以进一步探讨算法的实时性和适应性,以及其在其他领域的应用潜力。