1. 引言
机械臂轨迹规划是机器人运动控制领域的重要研究方向,旨在生成符合运动学与动力学约束的最优轨迹,以提升机械臂的运行效率、稳定性及能耗控制能力[1]。高效的轨迹规划方法不仅能够优化机械臂的运动路径,还能有效降低运行时间与关节冲击量,从而提高设备的使用寿命与作业质量。在工业制造、医疗手术、农业采摘及航空航天等领域,精确的轨迹优化对机械臂的稳定运行至关重要[2]。因此,如何在满足约束条件的前提下实现高效轨迹规划,成为当前研究的核心问题之一。目前,轨迹优化研究主要集中在时间最优[3]、能量最优、冲击最优及多目标优化等方向,不同优化方法依据具体应用场景,采用相应的优化策略,以提升运动系统的性能和效率。例如,时间最优优化侧重于缩短运动时间,提高生产效率;能量最优[4]优化旨在降低能耗,提升系统的经济性;冲击最优优化关注减少系统冲击,延长设备使用寿命[5];而多目标优化则综合考虑多个因素,以实现性能的全方位提升,从而满足不同工程应用的需求[6]。近年来,智能优化算法在轨迹规划问题中得到了广泛应用,尤其是群体智能算法,如粒子群优化(PSO) [7]、遗传算法(GA)、蚁群优化(ACO)及人工蜂群算法(ABC),在全局搜索能力和收敛性能方面展现了良好的优化效果[8]。然而,这些传统优化算法在高维、多约束或复杂环境下易陷入局部最优解[9],导致轨迹规划的精度和收敛速度受限。为克服这些问题,研究者们不断探索更具鲁棒性的新型优化算法,以提升轨迹优化的性能[10]。周力等人[11]提出的改进差分进化(DE)算法通过动态参数调整策略,在降低位置误差与能量损耗方面表现优异。此外,崔靖凯等[12]将改进灰狼算法(GWO)应用于冗余机械臂的最优轨迹规划,通过引入非线性收敛因子和自适应权重策略,有效提升了算法在高自由度场景下的搜索效率。张铁等人[13]结合改进的SARSA强化学习算法与迭代交互法,对多轴运动系统的时间最优轨迹进行优化,以确保其满足运动学与动力学约束。
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种近年来提出的群体智能优化算法[14],受麻雀群体觅食与警戒行为的启发,通过动态调整探索者(发现者)与跟随者(追随者)的行为,实现全局搜索与局部优化的协同优化。该算法具备较强的全局探索能力,能够有效跳出局部最优解,同时具备较快的收敛速度,使其适用于复杂的轨迹优化任务。然而,标准麻雀优化算法在局部开发能力[15]和搜索稳定性方面仍存在一定不足[16],可能影响优化结果的精度。因此对麻雀优化算法进行改进,以提升其在轨迹优化问题中的适应性,成为本研究的重点。本文提出了一种基于改进麻雀搜索算法的机械臂轨迹规划方法,融入蝴蝶算法,采用3-5-3分段多项式插值,并以时间最优作为优化目标,在满足机械臂运动学约束(如关节速度、加速度及冲击量)条件下,利用改进麻雀算法进行轨迹优化。通过MATLAB仿真实验,对比不同优化算法的性能,验证所提方法在时间优化方面的有效性。
2. 机械臂模型建立
本文研究对象为UR5机械臂,以其高灵活性、高精度和较强的负载能力广泛应用于工业制造、自动化生产、医疗、科研等领域。UR5机械臂具有6个旋转关节,可实现复杂的空间运动,其关节驱动采用伺服电机,具备较高的动态响应特性。由于UR5机械臂的运动学构型与人类手臂相似,使其在协作机器人领域具有较高的适用性。UR5机械臂模型如图1所示。
Figure 1. UR5 robot arm model
图1. UR5机械臂模型
在机械臂轨迹规划中,首先需要建立其运动学模型,以描述末端执行器相对于基座的位姿(位置与姿态)。本文采用D-H参数法对UR5机械臂进行建模,该方法通过四个参数(连杆长度
、连杆转角
、关节角度
、关节偏移
)来定义机械臂各关节之间的空间变换关系。根据UR5机械臂的结构,其D-H参数表如表1所示,UR5在MATLAB的仿真模型图2所示。
Table 1. UR5D-Hparameters
表1. UR5D-H参数表
i |
αi/(˚) |
αi/mm |
θi (˚) |
di/mm |
转动范围/(˚) |
1 |
90 |
0 |
θ1 |
89.20 |
±360 |
2 |
0 |
−425 |
θ2 |
0 |
±360 |
3 |
0 |
−392 |
θ3 |
0 |
±360 |
4 |
90 |
0 |
θ4 |
109.30 |
±360 |
5 |
−90 |
0 |
θ5 |
94.75 |
±360 |
6 |
0 |
0 |
θ6 |
82.50 |
±360 |
Figure 2. UR5 simulation model
图2. UR5仿真模型
3. 3-5-3分段组合多项式插值构造关节轨迹
轨迹插值是机械臂轨迹规划的重要方法之一,其核心目标是通过数学插值方法构造机械臂的关节轨迹,使其运动过程平滑,并满足关节速度、加速度及冲击(Jerk)等运动学与动力学约束。在轨迹生成过程中,常用的插值方法包括三次多项式插值、五次多项式插值及3-5-3分段多项式插值。其中,3-5-3分段组合多项式插值结合了三次多项式与五次多项式的优势,通过三段式结构,将轨迹规划分为三次、五次和三次多项式插值段在保证轨迹光滑性的同时,能够有效优化关节运动时间,减少冲击,提高轨迹的平稳性。
分段结构如图3所示。
Figure 3. Schematic diagram of piecewise interpolation
图3. 分段插值示意图
由分段插值示意图可知,对于任意关节在起始点时
,对应关节角度为
;在路径点1处
,对应关节角度为
;在路径点2处
,对应关节角度为
;在终止点处
,对应关节角度为
。
本文采用3-5-3分段组合多项式插值方法构造机械臂的关节轨迹,表达式如式(1)所示:
(1)
式中,
,
和
分别表示3-5-3分段多项式的第一段使用三次多项式,第二段使用五次多项式,第三段使用三次多项式。其中
、
、
分别为3-5-3分段插值多项式中,机械臂关节变量与时间之间函数关系的系数。
、
、
分别为分段多项式第一段,第二段,第三段的运行时间。在分段多项式中将角度值,角速度值,角加速度值的约束添加,表达式如式(2)~(4)所示:
(2)
(3)
(4)
根据插值约束条件,可构建矩阵A,表示插值时间矩阵,如式(5)所示,其中
、
、
分别代表组合多项式的三段插值时间。插值位移矩阵B如式(6)所示,其中
代表第
段插值的位移量。为求解3-5-3组合分段多项式插值系数,构建方程组如式(7)所示,并施加约束条件,以确保插值的平滑性及连续性。
(5)
(6)
(7)
4. 改进麻雀算法
4.1. 基础麻雀搜索算法
麻雀算法(Sparrow Search Algorithm, SSA)是基于麻雀觅食行为的启发式优化算法,模拟麻雀在自然环境中觅食和寻找食物的过程。算法通过更新麻雀群体的位置信息来找到问题的最优解。在该算法中,每只麻雀代表了问题的一个解,而群体中的每个麻雀则会不断通过与其他麻雀的交互来调整自身的位置。麻雀搜索算法的流程可以分为以下几个主要步骤:
1) 麻雀的位置信息表示
在麻雀算法中,每只麻雀的位置是一个
维的向量,表示在问题空间中的一个解。假设共有
只麻雀,每只麻雀的维度为
,那么第
只麻雀的位置表示为:
式中:
是第
只麻雀的整体位置向量,
表示第
只麻雀在
维度上的位置。
2) 觅食行为模拟
每只麻雀通过搜索邻域区域来寻找食物,而其觅食行为的强度由其他麻雀的位置和适应度所影响。在每一代,麻雀根据当前的搜索状态和邻域麻雀的引导,逐步更新自己的位置。在麻雀算法中,麻雀的位置更新规则通常依赖于适应度的比较。
3) 麻雀位置更新
麻雀的每次位置更新规则由以下公式给出。这个公式分为两种情况,分别根据麻雀的适应度值和环境条件来决定是否跳跃到远处或者继续在当前区域附近搜索。
(8)
(9)
为第
只麻雀在
代的新位置;
为第
只麻雀在当前代的当前位置;
表示自然对数的指数函数,模拟了麻雀在跳跃过程中位置的扩展;
为
的均匀随机数;
表示预先设定的最大迭代次数;
为当前代的代数,通常随着代数的增加逐渐减小,表示搜索过程中的变化速度;
表示一个来自标准正态分布的随机数,用来增加随机性,从而避免算法过早陷入局部最优;
代表随机游走步数,表示麻雀的跳跃步长,通常与麻雀的适应度相关,适应度较高的麻雀跳跃步长较小,适应度较差的麻雀跳跃步长较大;
的作用是模拟麻雀在局部搜索区域内的随机扰动;
表示第
只麻雀当前的适应度值。适应度值通常用来衡量该麻雀当前位置的好坏;
是预设的一个标准值,表示麻雀所处的环境条件。若
则表明当前解不够好,麻雀需要向更远的区域移动进行探索,如式(8)所示;当麻雀适应度值达到一定条件
时,它会选择在当前位置附近进行局部优化,式(9)所示。
4) 全局与局部搜索的平衡
麻雀算法通过动态调整全局搜索与局部搜索的比重来提高搜索效率。在适应度变化较大的情况下,算法将加强全局搜索(即使用较大的跳跃步长,广泛搜索解空间)。而在适应度变化较小时,算法将加强局部搜索,细化当前的解。
5) 位置更新与危险预警
麻雀算法不仅依据适应度信息更新麻雀的位置,还会根据局部环境的风险情况来调整搜索策略。假如某个麻雀发现附近的环境不适宜或风险较大,则它可能会调整跳跃方向,从而避免进入不良的区域。跟随者与预警者位置跟新公式如式(10)和式(11)所示。
(10)
(11)
式中,
为当前种群中最差解的位置;
作为归一化因子,控制搜索步长
表示当前最优的麻雀位置;
是随机数,控制搜索范围;
为当前种群中的最优解;
是扰动因子,使个体向全局最优解靠近;
为随机扰动因子;
避免分母为零。
麻雀搜索算法是近年来新兴的群体智能优化方法。与其他群体智能算法类似,尽管麻雀搜索算法在全局搜索方面表现出色,但其局部搜索能力相对较弱。为提高算法在局部优化过程中的表现,本节将在标准麻雀搜索算法的基础上进行改进。
4.2. 改进麻雀搜索算法
将蝴蝶算法引入麻雀搜索算法来提高全局探索和局部搜索的能力。通过调整麻雀位置更新公式,引入蝴蝶算法的策略,使得麻雀能够在全局搜索和局部搜索之间动态平衡。蝴蝶算法的优势在于其较强的局部搜索能力,它通过模拟蝴蝶在花间飞舞的行为,能够较好地优化局部解,进行精细的搜索。
在算法的迭代过程中,动态调整麻雀算法和蝴蝶算法的权重。在早期阶段,更依赖麻雀算法进行广泛搜索;在优化过程的后期,逐步增加蝴蝶算法的权重,聚焦于更精细的局部优化,增强全局搜索和局部搜索的平衡。基于适应度(Fitness)的动态调整是一种根据当前解的适应度(即目标函数的值)来实时调整算法权重的方法。适应度反映了当前解的质量,动态调整策略可以根据适应度变化的情况来决定何时加强全局搜索(使用麻雀算法),何时加强局部搜索(使用蝴蝶算法)。若当前解的适应度变化较大,说明解空间中仍有较多潜在解需要探索,适合使用全局搜索;而当适应度变化较小时,说明当前解已经接近最优解,可以通过局部搜索精细优化解的质量。这种方法能有效地避免在局部最优解附近停滞,从而提升优化过程的效率和效果。
适应度变化可以通过以下公式计算:
(12)
式中,
和
分别表示第
代和第
代最优解的适应度值。
若是仅仅通过对比当前解和上一代解的适应度值,计算出适应度变化,可能会导致算法容易陷入局部最优,尤其在解决复杂问题时。因此加入计算适应度变化的滑动平均值来高算法的稳定性和全局搜索能力,避免因偶然的适应度变化导致过早的权重调整。
计算第
代适应度变化的滑动平均值:
(13)
式中,
表示滑动平均的窗口大小,窗口越大,波动越平滑,但反应速度可能会慢一些。窗口越小,反应更灵敏,但可能对偶然的波动过度反应;
表示当前代最优解的适应度与上一代最优解的差异。它反映了每一代解的变化程度。
对麻雀算法和蝴蝶算法的权重进行动态调整,根据适应度变化的滑动平均值和阈值来动态调整麻雀和蝴蝶算法的权重。根据具体问题和实验调优预设一个适应度变化阈值
。
当适应度变化较大,大于阈值时:
(14)
当适应度变化较小,小于阈值时:
(15)
融合蝴蝶算法后具体的改进的麻雀搜索算法步骤如下:
步骤一:初始化种群。初始化麻雀群体和蝴蝶群体的个体解。每个个体的初始解为一个随机值。设定以下参数:滑动平均窗口大小
;适应度变化的阈值
,用于判断是否加强全局搜索或局部搜索;最大迭代次数
;初始权重:
;初始适应度:
为最优解;设置滑动平均适应度变化的初始值
。
步骤二:适应度评估。计算当前种群的适应度,据适应度值,更新全局最优解。
步骤三:计算适应度变化。计算当前代与上一代的适应度变化
步骤四:滑动平均计算。计算滑动平均适应度变化,通过滑动平均来平滑适应度变化的波动,减少短期波动对权重调整的影响。
步骤五:动态权重调整。麻雀算法的权重根据滑动平均适应度变化与预设阈值进行比较,调整麻雀算法的权重。如果滑动平均适应度变化较大(大于阈值),则增加麻雀算法的权重,表示更依赖全局搜索。否则,减小麻雀算法的权重。根据麻雀算法的权重,计算蝴蝶算法的权重。如果麻雀算法的权重较大,则蝴蝶算法的权重较小,表示依赖全局搜索;反之,则依赖局部搜索。
步骤六:搜索更新。
步骤七:更新全局最优解。
步骤八:停止条件。
改进麻雀算法流程图如图4所示。
Figure 4. Flow chart of improved Sparrow algorithm
图4. 改进麻雀算法流程图
5. 仿真结果与分析
5.1. 仿真设计
本文以UR5机械臂为研究对象,基于MATLAB软件中的Robotics Toolbox工具箱开展仿真分析。首先,采用3-5-3混合多项式进行轨迹插值,以确保轨迹的平滑性和连续性;随后,基于改进的麻雀算法,对机械臂的轨迹进行时间最优规划。研究选取了笛卡尔坐标系下的四个关键轨迹点,分别为P1 [−700, 200, 800]、P2 [−300, 125, 1000]、P3 [435, 785, 1025]和P4 [800, −601, 600],其运动轨迹如图5所示。通过逆运动学计算,将笛卡尔空间中的位姿信息转换为对应的关节角度,其关节空间角度如表2所示。此外,UR5机械臂各关节的运动学约束参数列于表3,以确保轨迹规划符合机械臂的实际运动能力及动力学约束。
Figure 5. Motion trajectory
图5. 运动轨迹
Table 2. Corresponding joint angles
表2. 对应的各关节角度
关节位置 |
关节1 |
关节2 |
关节3 |
关节4 |
关节5 |
关节6 |
P1 |
−25.2188 |
44.8152 |
−0.0197 |
45.0923 |
89.8880 |
64.7841 |
P2 |
−42.8992 |
14.3382 |
−0.0799 |
75.2622 |
89.9529 |
−47.1029 |
P3 |
70.6249 |
−42.8564 |
−0.0439 |
−46.3651 |
−89.4308 |
19.3823 |
P4 |
−29.4114 |
−64.3680 |
0.0110 |
−26.6506 |
−89.6939 |
119.4000 |
Table 3. Constraints of each joint
表3. 各关节约束条件
约束条件 |
最大角速度Vmax (˚/s) |
最大角加速度Amax (˚/s2) |
最大角加加速度Rmax (˚/s3) |
关节1 |
25 |
30 |
40 |
关节2 |
25 |
30 |
40 |
关节3 |
25 |
30 |
40 |
关节4 |
30 |
40 |
50 |
关节5 |
30 |
40 |
50 |
关节6 |
35 |
45 |
60 |
5.2. 结果分析
为了验证改进麻雀搜索算法(ISSA)的优化能力,本文将其与标准麻雀搜索算法(SSA)、粒子群优化算法(PSO)进行对比分析。初始设定四个插值点时间间隔为4秒,则初始机械臂总运行时间为12秒。设定迭代次数为50,种群为1000,初始麻雀算法权重
,初始蝴蝶算法权重
。以关节1为例,做出适应度收敛图。
Figure 6. Fitness convergence diagram of joint 1
图6. 关节1适应度收敛图
如图6所示,展示了三种算法在关节1的适应度值随迭代次数变化的收敛曲线,改进的麻雀算法在前5次迭代内就出现了明显的下降,并在10次迭代之后逐渐趋于稳定。其优化效率较高。粒子群算法最终稳定在3.3 s,标准麻雀算法最终稳定在3.1 s,改进的麻雀算法的最终适应度值约2.9,是三种算法中最优的,表明其优化能力最强。综合收敛速度和最终优化结果来看,改进麻雀搜索算法具有最优的收敛性能和最优解质量。三种算法的优化的时间段结果如表4~6所示。
Table 4. Optimization results of PSO algorithm
表4. PSO算法优化结果
关节编号 |
第一段 |
第二段 |
第三段 |
关节1 |
1.045 |
1.150 |
1.078 |
关节2 |
1.590 |
1.892 |
1.314 |
关节3 |
3.428 |
1.118 |
2.280 |
关节4 |
1.962 |
3.842 |
1.122 |
关节5 |
1.104 |
3.015 |
1.092 |
关节6 |
0.873 |
3.755 |
0.918 |
各段时间最大值 |
3.428 |
3.842 |
2.280 |
Table 5. Optimization results of SSA algorithm
表5. SSA算法优化结果
关节编号 |
第一段 |
第二段 |
第三段 |
关节1 |
0.885 |
1.198 |
0.812 |
关节2 |
1.715 |
1.78 |
1.315 |
关节3 |
3.102 |
0.825 |
1.692 |
关节4 |
1.784 |
4.148 |
1.142 |
关节5 |
0.121 |
2.545 |
0.092 |
关节6 |
1.473 |
2.731 |
0.855 |
各段时间最大值 |
3.102 |
4.148 |
1.692 |
Table 6. Optimization results of ISSA algorithm
表6. ISSA算法优化结果
关节编号 |
第一段 |
第二段 |
第三段 |
关节1 |
0.823 |
1.31 |
0.81 |
关节2 |
1.71 |
1.84 |
1.195 |
关节3 |
2.94 |
0.77 |
1.19 |
关节4 |
1.79 |
3.918 |
1.12 |
关节5 |
0.082 |
2.615 |
0.085 |
关节6 |
1.304 |
3.08 |
0.83 |
各段时间最大值 |
2.94 |
3.918 |
1.195 |
基于表中数据取6个关节中耗时最长的阶段计算得出,不同算法在整体规划中的总时间消耗有所差异。其中,粒子群优化算法的总耗时为9.55 s,标准麻雀搜索算法的总耗时为8.942 s,而改进麻雀搜索算法的总耗时则为8.053 s。相比之下,改进的麻雀算法在时间优化方面表现更优,其总耗时较粒子群算法减少1.497 s (约15.67%),较标准麻雀算法减少0.889 s (约9.94%)。这一结果表明,改进的麻雀搜索算法在优化轨迹规划时间方面更加高效,能够有效缩短各阶段的运行时间,从而提高整体系统的执行效率。
将改进的麻雀搜索算法得到的时间结果代入3-5-3分段多项式中,对机械臂的各个关节角进行仿真分析如图7所示。
图7显示,在应用改进的麻雀搜索算法后,机械臂的角位移、角速度和角加速度曲线均表现出平稳、连续且无突变的特性。这种改进有效减少了机械臂运动过程中的冲击和振动,满足了其运动需求,并显著提升了工作效率。
6. 结论
本文研究了基于改进麻雀搜索算法的机械臂轨迹优化方法。通过建立UR5机械臂的运动学模型,采用3-5-3分段多项式插值构造关节轨迹,并利用改进的麻雀搜索算法优化轨迹规划,使其在满足运动学约束的前提下实现时间最优目标。实验结果表明,改进的麻雀搜索算法相较于标准麻雀搜索算法和粒子群优化算法,在收敛速度、全局搜索能力以及时间优化方面均表现出更优的性能。改进麻雀搜索算法在优化过程中收敛更快,最终规划出的轨迹较粒子群减少了1.497秒,较标准麻雀算法减少了0.889秒,显著提升了机械臂的执行效率。
Figure 7. Curves of angular displacement, velocity and acceleration of each joint of the manipulator
图7. 机械臂各关节角位移、速度、加速度曲线图
本文提出的轨迹优化方法能够有效提升机械臂的运动性能,为机械臂相关应用场景提供了高效、平稳的轨迹规划方案。未来研究可以进一步结合深度强化学习或其他智能优化算法,探索更加智能化、自适应的轨迹优化方法,以提升机械臂在复杂环境下的适应能力和鲁棒性。