改进灰狼算法求解机器人逆运动学
一种针对机器人学基本工程问题的改进型灰狼优化算法提案
1 引言
基于群体的方法在解决工程问题中具有重要地位,正日益广泛地被应用,新的技术也不断被引入文献[1]。研究人员最早接触到的是基于蚂蚁协作的蚁群优化1990[2]。多年来,该方法相继发展为粒子群优化[3],、人工蜂群[4]和萤火虫算法[5]。事实上,在过去三十年中,经典方法在解决工程问题方面已逐渐被这类启发式方法所取代[6],,因为近五十年来研究人员一直致力于解决极其复杂的非线性问题[7]。非线性问题在其求解过程中包含复杂的数学方程和变换。解析法、迭代法等经典方法在求解这些方程时只能得到一个较优的解[8]。
随着机器人机构进入我们的生活,逆运动学问题已成为一个基础性的研究领域,因为它被认为是移动机构最基本的因素[9]。机器人机械臂的逆向运动学是指从末端执行器所在位置的坐标求解关节角度的过程[10]。逆运动学问题非常困难,尤其是在串联操作臂中,随着关节数量的增加,问题的非线性程度也随之提高[11]。由于该问题的这些特性,非常适合采用启发式算法来解决。因此,近年来相关研究对此进行了广泛探讨[12]。
拉贾等人构建了一个用于14个关节冗余移动机器人机械臂逆运动学求解的学习界面。通过这种方式,机械臂与移动平台始终保持连接,并顺利完成了工作流程[13]。他采用基于混沌结构的涡流搜索算法,解决了六自由度偏移腕部工业机械臂的逆运动学问题。该算法在正常运行时在高迭代次数下可达到较优值。然而,通过引入混沌结构,他在较低的迭代次数下便获得了较优值,从而加快了算法收敛速度[14]。拉姆等人设计了一种移动机械臂,并使用双向搜索算法来解决该机械臂位置变化时产生的逆运动学问题[15]。
Dereli和Ko¨ker采用人工蜂群算法[16]和萤火虫算法解决了7关节冗余机器人操作臂的逆运动学问题。同时,他们分析了萤火虫数量对求解结果和计算时间的影响[17]。张和肖通过在人工蜂群算法中将混沌系统应用于蜜蜂离巢觅食的分布方式,对算法进行了改进。通过这种方式,他们在7自由度机器人机械臂的逆运动学问题中显著降低了误差率[18]。他们还在该算法更新食物源的过程中引入了一个不同的参数,从而改进了人工蜂群算法。利用这种称为K‐ABC的新技术,他们完成了5关节机器人操作臂的逆运动学计算[19]。
在本研究中,使用灰狼群算法(一种实际群体算法)对7‐DOF冗余机器人机械臂进行逆运动学计算。首先,获取了机器人机械臂的DH参数。随后,利用位置方程建立基于欧几里得距离方程的适应度函数。通过该函数,算法优化数值。第3章详细解释了本研究范围内的传统和改进的灰狼群算法。第4章全面分析了结果,并将该算法与其他群智能算法进行了比较。
2 问题定义和适应度函数
机器人控制始于控制其运动。机器人运动建模分为两种方式:线性且易于计算的正向运动学,以及非线性且更复杂的逆向运动学[20]。如图1所示,通过正向运动学可获得机器人机械臂末端元件在工作空间中的位置。
这里,关节角度是已知的,将其代入相关方程后可轻松获得结果[21]。然而,在逆向运动学中,末端执行器值是已知的。由于这种情况需要处理复杂的数学方程,其计算极为困难[22]。本研究涉及的问题旨在解决逆运动学问题,这是机器人控制中最基本的问题。
2.1 7自由度机器人机械臂
本研究中使用的机器人机械臂是一种具有7个旋转关节的冗余工业机械臂。7关节机械臂最重要的特点是能够避障、在工作空间内灵活定位,并具有不同数量的运动学解[23–25](图2)。
文献中使用了不同的技术进行逆运动学计算。在本研究中,采用由丹纳维特和哈滕伯格引入的DH参数,基于齐次变换矩阵进行计算[26]。这些参数共有四个:“a参数”表示相互连接的连杆长度,“d”表示一个连杆中心相对于另一个连杆中心的滑动维度,“alpha”表示滑动角,“theta”表示关节角度[27]。
在表1中,“i”表示关节序号。“a”和“d”的单位是米,“a”和“H”的单位是度。用于运动学计算的通用变换矩阵如下所示(公式1)。
$$
i i1 T ¼
\begin{bmatrix}
\cos \theta_i & -\cos \alpha_i \cdot \sin \theta_i & \sin \alpha_i \cdot \sin \theta_i & a_i \cdot \cos \theta_i \
\sin \theta_i & \cos \alpha_i \cdot \cos \theta_i & -\sin \alpha_i \cdot \cos \theta_i & a_i \cdot \sin \theta_i \
0 & \sin \alpha_i & \cos \alpha_i & d_i \
0 & 0 & 0 & 1
\end{bmatrix}
\quad (1)
$$
根据上述通用矩阵求解机器人操作手末端执行器位置和姿态的方程如下(公式2):
$$
A_{End-Effector} = {}^7_0 T = {}^1_0 T \cdot {}^2_1 T \cdot {}^3_2 T \cdot {}^4_3 T \cdot {}^5_4 T \cdot {}^6_5 T \cdot {}^7_6 T
=
\begin{bmatrix}
n_x & s_x & a_x & P_x \
n_y & s_y & a_y & P_y \
n_z & s_z & a_z & P_z \
0 & 0 & 0 & 1
\end{bmatrix}
\quad (2)
$$
$i T_{i+1}$,即连杆的传递矩阵,而 ${}^7_0 T$ 矩阵表示基座与末端执行器之间的变换矩阵。每个变换矩阵由一个 $3×3$ 旋转矩阵($n_x, n_y, n_z, s_x, s_y, s_z, a_x, a_y, a_z$)和一个 $3×1$ 位置向量($P_x, P_y, P_z$)组成。本研究中所用机械臂的位置方程见公式3。在这些方程中,“s”表示正弦,“c”表示余弦。
$$
P_x = (\cos\theta_1\cos\theta_2\cos\theta_3\cos\theta_4 - \sin\theta_1\sin\theta_3\sin\theta_4 - \cos\theta_1\sin\theta_2\sin\theta_4) \cdot (\cos\theta_5\cos\theta_6 l_7 \cos\theta_7 - \cos\theta_5\sin\theta_6 l_7 \sin\theta_7 - \sin\theta_5 d_7 + \cos\theta_5 l_6 \cos\theta_6 + l_5 \cos\theta_5) + (-\cos\theta_1\cos\theta_2\sin\theta_3 - \sin\theta_1\cos\theta_3) \cdot (\sin\theta_5\cos\theta_6 l_7 \cos\theta_7 - \sin\theta_5\sin\theta_6 l_7 \sin\theta_7 + \cos\theta_5 d_7 + \sin\theta_5\cos\theta_6 l_6 + l_5 \sin\theta_5) + (\cos\theta_1\cos\theta_2\cos\theta_3\sin\theta_4 - \sin\theta_1\sin\theta_3\sin\theta_4 + \cos\theta_1\cos\theta_4\sin\theta_2) \cdot (-\sin\theta_6 l_7 \cos\theta_7 - \cos\theta_6 l_7 \sin\theta_7 - l_6 \sin\theta_6) + \cos\theta_1\cos\theta_2(\cos\theta_3\cos\theta_4 l_4 + l_3\cos\theta_3) - \sin\theta_1(\sin\theta_3\cos\theta_4 l_4 + l_3\sin\theta_3) - \cos\theta_1\sin\theta_2 l_4 \sin\theta_4 + \cos\theta_1\cos\theta_2 l_2
$$
$$
P_y = (\sin\theta_1\cos\theta_2\cos\theta_3\cos\theta_4 + \cos\theta_1\sin\theta_3\cos\theta_4 - \sin\theta_1\sin\theta_2\sin\theta_4) \cdot (\cos\theta_5\cos\theta_6 l_7 \cos\theta_7 - \cos\theta_5\sin\theta_6 l_7 \sin\theta_7 - \sin\theta_5 d_7 + \cos\theta_5\cos\theta_6 l_6 + l_5 \cos\theta_5) + (-\sin\theta_1\cos\theta_2\sin\theta_3 + \cos\theta_1\cos\theta_3) \cdot (\sin\theta_5\cos\theta_6 l_7 \cos\theta_7 - \sin\theta_5\sin\theta_6 l_7 \sin\theta_7 + \cos\theta_5 d_7 + \sin\theta_5\cos\theta_6 l_6 + l_5 \sin\theta_5) + (\sin\theta_1\cos\theta_2\cos\theta_3\sin\theta_4 + \cos\theta_1\sin\theta_3\sin\theta_4 + \sin\theta_1\sin\theta_2\cos\theta_4) \cdot (-\sin\theta_6 l_7 \cos\theta_7 - \cos\theta_6 l_7 \sin\theta_7 - l_6 \sin\theta_6) + \sin\theta_1 \cos\theta_2(\cos\theta_3 \cos\theta_4 l_4 + l_3 \cos\theta_3) + \cos\theta_1 (\sin\theta_3 \cos\theta_4 l_4 + l_3 \sin\theta_3) - \sin\theta_1 \sin\theta_2 \sin\theta_4 l_4 + \sin\theta_1 \cos\theta_2 l_2
$$
$$
P_z = (-\sin\theta_2 \cos\theta_3 \cos\theta_4 + \cos\theta_2 \sin\theta_4) \cdot (\cos\theta_5 \cos\theta_6 l_7 \cos\theta_7 - \cos\theta_5 \sin\theta_6 l_7 \sin\theta_7 - \sin\theta_5 d_7 + \cos\theta_5 \cos\theta_6 l_6 + l_5 \cos\theta_5) + (\sin\theta_2 \sin\theta_3) \cdot (\sin\theta_5 \cos\theta_6 l_7 \cos\theta_7 - \sin\theta_5 \sin\theta_6 l_7 \sin\theta_7 + \cos\theta_5 d_7 + \sin\theta_5 \cos\theta_6 l_6 + \sin\theta_5 l_5) + (-\sin\theta_2 \cos\theta_3 \sin\theta_4 + \cos\theta_2 \cos\theta_4) \cdot (-\sin\theta_6 l_7 \cos\theta_7 - \cos\theta_6 l_7 \sin\theta_7 - \sin\theta_6 l_6) - \sin\theta_2 (\cos\theta_3 \cos\theta_4 l_4 + l_3 \cos\theta_3) - \cos\theta_2 \sin\theta_4 l_4 - \sin\theta_2 l_2 + l_1
\quad (3)
$$
在公式3中,通过输入角度值来获得$x, y$和$z$值的过程是一个正向运动学问题,该问题非常容易求解。然而,通过输入$x, y$和$z$值来反求各个角度值的过程则被称为逆运动学问题,由于需要进行相当复杂的数学变换,因此求解极为困难。
2.2 适应度函数
适应度函数由启发式优化算法用于比较所获得值的方程组成,是算法中最重要阶段之一。通过这种方式,算法可以持续更新最优值[28]。在文献中,研究人员为此目的使用了多种适应度函数[29–31]。在本研究中,采用常用于寻找两点之间最短距离的欧几里得距离[32],作为适应度函数。
在本研究中,通过灰狼群算法获得了最接近预定目标点的位置。图3清楚地说明了这一情况。采用三维欧几里得距离来寻找最小的位置误差值(公式4)。
$$
\text{error} = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2}
\quad (4)
$$
如图3所示,$(x_1, y_1, z_1)$是启发式算法得到的末端执行器的位置,$(x_2, y_2, z_2)$是目标点的位置。
3 方法
本研究中使用的机器人机械臂结构复杂,因其关节数量过多,且其逆运动学方程为非线性。因此,该机器人学问题可通过启发式方法在特定解空间内进行随机搜索以获得最优值来轻松解决。
在本研究中,针对此目的开发了灰狼群算法,并采用了通过改进防止陷入局部最小值的参数而得到的改进型灰狼群算法,相关结果将在下一节中进行全面比较。
3.1 GWO算法概述
该算法由米尔贾利米于2014年提出,模拟了自然界中灰狼的捕猎和生存技能。本算法中提到的灰狼属于灰狼种,是犬科动物。灰狼倾向于以5–12个个体组成的群体生活[33]。此外,群体中遵循一种包含alpha、β、δ和欧米伽狼的不同社会等级。图4展示了根据灰狼支配性排列的群体等级结构。其中支配性最强的是alpha和β狼,而欧米伽狼则不具备任何支配性特征[34]。
群体的领导者是alpha,其助手是beta。因此,如果alpha狼死亡或衰老,将由最接近的beta狼接替其位置。群体的行进、捕猎和休息等决策均由领导者alpha狼决定。位于社会等级下方的欧米伽狼是遵循群体领导者命令并由alpha和beta等其他狼领导的狼[35]。能够支配该群体中其他狼的另一类狼是δ。δ狼负责追踪猎物,作为守卫保护群体,协助alpha和beta狼进行捕猎,为群体提供食物,并照顾生病、受伤和弱小的狼[36]。
灰狼的捕猎和捕捉是一个完整的优化过程,为此它们遵循以下算法:如图5所示,灰狼狩猎从它们决定开始狩猎的时刻起分为三个阶段。这些阶段表现为观察、包围和最终化。在第一阶段,猎物会先被远距离跟踪,然后逐渐靠近。当猎物进入合适的环境时,灰狼会进一步接近。在第二阶段,猎物被包围,使其无法移动且无处可逃。在最后阶段,狩猎接近尾声。此时,灰狼正在寻找最佳狩猎时机和狩猎最弱时刻。当出现这一时刻时,它会与其他灰狼一起通过捕捉猎物来完成整个过程[37, 38]。
灰狼算法是近年来经常被推荐的一种基于群体的启发式优化方法。因为与其他经典技术相比,该算法具有更少参数、高精度求解、强大的探索能力和快速收敛等显著优势[39]。因此,在过去五年中,灰狼算法已被广泛应用于各个领域,并且其相较于其他算法的优势与不足也逐渐显现。Sharma等人将其用于诊断帕金森病[40],,Pradhan等人在电力电子领域[41],,Natesan等人在任务分配的研究中[42],,Khandelwal等人在输电网络扩展的工作中[43],,Kalemci等人在施工现场的新型挡土墙设计中[44];均应用了该算法并取得了有效结果。
可以看出,灰狼群算法已基于机器人控制被应用于机器人领域。Rahmani等人使用灰狼算法控制二自由度机器人机械手[45],而其他人则将其用于移动机器人控制[46]。在本研究中,再次开展了基于机器人控制的优化过程。对于所有这些操作,灰狼群行为被数学建模,如图6所示。
根据该算法,对猎物预测位置最合适的解首先是α(a),其次是β(b),最后是δ(d)狼。欧米伽狼(ω(x))由可能成为α、β或δ的灰狼候选者组成。因此,在整个算法过程中,欧米伽狼的位置逐步更新,直至达到最优值。欧米伽狼的每个当前值分别与α、β和δ狼的值进行比较。当比较结果为正时,狼群交换位置并更新新值。因此,根据该算法获得的第一个最佳值属于α,第二优值属于β,第三优值属于δ[47]。
当发现猎物时,欧米伽狼通过α、β和δ狼追踪猎物,并在适当时机将其包围。这种情况在公式5中进行了建模。
$$
D_\alpha = C_1 \cdot |X_\alpha - X_t| \
D_\beta = C_2 \cdot |X_\beta - X_t| \
D_\delta = C_3 \cdot |X_\delta - X_t|
\quad (5)
$$
在公式5中,“t”迭代和$X_t$表示第“i”次迭代中的欧米伽狼。“D”系数是表示α、β和δ狼与猎物的距离的向量。$X_\alpha$、$X_\beta$和$X_\delta$分别表示α、β和δ狼的当前位置。“C”是公式8中计算的随机系数值。
$$
X_1 = X_\alpha - A_1 \cdot |D_\alpha| \
X_2 = X_\beta - A_2 \cdot |D_\beta| \
X_3 = X_\delta - A_3 \cdot |D_\delta|
\quad (6)
$$
在公式6中,参数$X_1, X_2$和$X_3$分别表示α、β和δ狼与其他灰狼之间的位置关系。这意味着灰狼根据α、β和δ狼的位置来更新自身的位置。
$$
X_{t+1} = \frac{X_1 + X_2 + X_3}{3}
\quad (7)
$$
$X_{t+1}$在公式7中计算,现在表示灰狼的新位置。此过程是除α、β和δ狼之外更新灰狼位置的最后一步。之后,将从这些位置确定α、β和δ狼的最优值。
$$
A = 2 \cdot a \cdot r_1 - a \
C = 2 \cdot r_2 \
a = 2 \cdot \left(1 - \frac{t}{t_{\text{max}}}\right)
\quad (8)
$$
该方程中的系数被称为算法的控制参数,仅有三个。在每种启发式算法中,都存在如同现实生活中的随机情况。在此算法中,公式8中所示的系数A和C是通过这种方式计算得到的值。“a”参数在初始时取值为“2”,并在每次迭代中逐步趋近于“0”。这种减少呈现线性过程。
根据“a”参数的取值,“A”参数将在[-a, a]的范围内取随机值。A的取值可以决定灰狼是否进入攻击位置。计算结果表明,如果出现|A| < 1状态,则灰狼已非常接近狩猎目标,随时可以发动攻击。当出现|A| > 1情况时,灰狼会远离猎物,以期寻找新的猎物[48]。
C参数是算法的另一个重要控制参数,被视为算法的探索组件,可在范围[0, 2]内取随机值。该参数有助于使算法表现出更强的随机性,从而防止优化过程陷入局部最优值。当|C| > 1时会出现这种情况;否则,即在|C| < 1的情况下,表现出随机行为的程度会降低[49]。
该算法的流程图如图7所示,与其他启发式技术类似,它包含三个基本步骤:初始化、适应度函数计算、群体成员的位置更新以及获得最优值。优化过程首先将所有控制参数赋以初始值,并在一定区间内为所有灰狼赋予随机值。下一步,根据初始值计算适应度函数,并将最优解分别确定为α、β和δ狼。接下来的阶段是除α、β和δ狼外的所有灰狼的位置更新,然后是α、β和δ狼的位置更新,最后更新控制参数的值。最终返回α狼的最佳位置值。在求解逆运动学问题时,获得最佳的关节角度。
3.2 改进型灰狼优化算法
由于控制参数数量较少,米尔贾利米特别发现GWO算法在其最简单形式下使用时容易陷入局部最优值[33]。因此,研究人员通过向控制参数中添加新参数或改变控制参数的取值范围来改进GWO。他们基于在搜索过程中alpha狼比β和δ狼更具主导性的事实修改了公式7。通过这种方式,测试中确实获得了更好的结果[50]。
为此,文献中有大量研究对灰狼算法在不同领域进行了改进和发展。他们基于在搜索过程中alpha狼比β和δ狼更具主导性的事实修改了公式7。通过这种方式,测试中确实获得了更好的结果[50]。他们通过向灰狼算法中添加机器学习特征,开发了该算法以用于诊断帕金森病[40]。他们已对GWO进行改进以获得更优的结果,方法是在算法的计算过程中引入基于Levy飞行的算子,并在一些基准测试中检验了结果[51]。
图8显示了本研究范围内进行的一次示例计算中每次迭代获得的值,其他仿真也得到了类似的结果。从该图以及其他图中可以明显看出,在算法接近结束时,寻找更优值的尝试非常频繁。例如,在该图中,自第860次迭代以来获得了许多新值,这种情况一直持续到最后一次迭代。
基于这一结果与GWO算法中的“a参数”直接相关的想法,本研究改变了算法中“a参数”的计算方法。因为“a参数”从2线性递减到0,且随着该参数趋近于零,通过搜索过程获得的值会得到改善。因此,“a参数”在接近零的位置进行的搜索越多,其在算法中的值就改善得越多。
在本研究中,通过改变“a参数”的取值方式,该算法得到了极大的增强。参数的计算未在算法中引入额外的参数。虽然a参数在传统GWO中的计算如公式8所示,但在本研究中对其进行了改进,其计算方式如公式9所示。
$$
a = 2 \cdot e^{-t \cdot s / t_{\text{max}}}
\quad (9)
$$
如公式9所示,仅将“s”值添加到“a参数”中,其表示群体中的代理数量。众所周知,在传统GWO中,“a参数”线性递减,以防止算法陷入局部最小值。在本研究的分析中观察到,当“a参数”趋近于零时,不仅有助于算法摆脱局部最小值,而且极大地增强了算法性能。因此,该参数从2到0变化越快,算法越能收敛至最优值。基于此,该算法如图9所示,从2到0实现了快速且呈抛物线式的下降,从而将这种新技术命名为快速抛物线下降GWO(FPD‐GWO)。
4 结果
本研究对传统灰狼算法进行了改进,以实现7关节串联机器人机械臂逆运动学计算的更好结果。为此,改变了算法中用于防止陷入局部最小值的“a”参数的计算方法。在传统GWO中,“a”参数从2线性递减至0,而在本研究中,“a”参数在范围内呈抛物线快速下降。通过这种方式,与传统GWO获得的结果相比,提升了10⁹到10¹²倍。
图10展示了传统GWO和本研究范围内开发的FPD‐GWO在不同的迭代次数下的行为。从该图中可以看出,传统GWO在迭代接近结束时才加强搜索过程,而FPD‐GWO在迭代中期即完成搜索过程,并在这两个阶段均达到最优值。因此,显然本研究范围内所提出的方法比传统GWO具有更高的稳定性,并产生更好的结果。
为了证明算法的准确性,两种方法均连续运行了50次,所得结果如图11所示。尽管两种方法都具有稳定的结构,但从该图中可以明显看出它们在结果上的巨大差异。
图11中获得的50组数据的最优、最差和平均值之间的比较结果如图12所示。在传统GWO和FPD‐GWO中,这些值彼此非常接近。甚至这种情况表明,所采用的方法具有极高的稳定性。
$$
F_1 = x_2 - \frac{5}{4\pi^2}x_2^1 + \frac{5}{\pi}x_1 - 6)^2 + 10\left(1 - \frac{1}{8\pi}\cos x_1\right) + 10
\quad (10)
$$
$$
F_2 = \left[1 + (x_1 + x_2 + 1)^2(19 - 14x_1 + 3x_1^2 - 14x_2 + 6x_1x_2 + 3x_2^2)\right] \times \left[30 + (2x_1 - 3x_2)^2(18 - 32x_1 + 12x_1^2 + 48x_2 - 36x_1x_2 + 27x_2^2)\right]
\quad (11)
$$
$$
F_3 = -\sum_{i=1}^{4} c_i \exp\left(-\sum_{j=1}^{3} a_{ij}(x_j - p_{ij})^2\right)
\quad (12)
$$
$$
F_4 = -\sum_{i=1}^{4} c_i \exp\left(-\sum_{j=1}^{6} a_{ij}(x_j - p_{ij})^2\right)
\quad (13)
$$
在提出的新方法成功解决逆运动学问题后,使用基准测试函数进行验证。所使用的函数如公式10、11、12和13所示。尽管它们并不像逆运动学问题那样具有直接的物理意义,但足以验证所提出的技术。
表2 展示了灰狼优化算法和FPD‐GWO技术在所用基准测试函数上获得的维度、极限值、最优值和最小值。考虑到随着函数维度的增加,函数的复杂性也随之增加,显然所提出的技术的成功更加突出。
| 基准测试 | Dim | 范围 | fmin | GWO | FPD-GWO |
|---|---|---|---|---|---|
| F1 | 2 | [-5, 5] | 0.398 | 0.39789 | 0.39789 |
| F2 | 2 | [-2, 2] | 3 | 3 | 3 |
| F3 | 3 | [1, 3] | -3.86 | -3.8549 | -3.8614 |
| F4 | 6 | [0, 1] | -3.32 | -3.201 | -3.321 |
5 讨论
通过本研究提出的新技术,灰狼群算法的搜索能力得到了增强,陷入局部最小值的概率也显著降低。事实上,目前文献中所有启发式算法最重要的缺陷就是频繁陷入局部最小值的情况。因此,启发式算法越少陷入局部最小值,其产生成功结果的能力就越高。从这一点来评估,从结果的角度来看,这种新提出的技术在这方面优于许多启发式算法(图13)。
图13展示了用于逆运动学计算的一些启发式算法的对比结果,而逆运动学计算是机器人学中最基本的问题之一。这些启发式算法在文献中被广泛用作解决常见问题的技术。2004年提出的量子PSO(QPSO)[52],、2008年提出的萤火虫算法(FA)[5],、2016年提出的鲸鱼优化算法(WOA)[53]以及2005年提出的人工蜂群(ABC)[54]算法与本文建议的新方法在图13中进行了比较。在比较中,所有算法均以50的种群规模和500次迭代运行。结果清楚地表明,所提出的新方法相较于其他启发式技术具有显著优越的性能。
同样,从该图中可以得出的一个重要结论是:具有更强搜索能力的算法能够在每次迭代中以更优的值进行更新。在这方面,QPSO和FPD‐GWO显然具有更好的搜索能力。而像ABC、FA、GWO和WOA等曲线接近于相对直线的算法,由于其搜索能力较弱,未能获得更优的更新值。
图14显示了通过两种算法获得的关节角度超出极限值的次数。在使用灰狼优化算法进行的优化过程中,明显看出超出极限的情况非常频繁,而相反,在FPD‐GWO中这种情况保持在极低水平。这表明在FPD‐灰狼优化算法技术以及向目标的收敛性更加一致。
表3 展示了灰狼优化算法和FPD‐GWO在7关节机器人机械臂逆运动学解中与其他群智能算法获得的结果比较。从结果可以看出,本研究范围内开发的FPD‐GWO技术比其他群智能算法给出了更好的结果[10]。
| 算法 | 群体规模 | 均方误差(位置误差) |
|---|---|---|
| PSO | 300 | 2.1162e-04 |
| ABC | 100 | 1.1105e-06 |
| 萤火虫 | 50 | 1.4547e-05 |
| 量子PSO | 150 | 6.9347e-13 |
| GWO | 50 | 9.4745e-08 |
| FPD-GWO | 50 | 1.1169e-28 |
由于本研究提出的技术基于开发一种群体算法,因此可用于解决适合该技术的任何工程问题。原因在于存在两个重要证据表明其可应用于其他工程或工业问题:第一,该技术在求解具有大量变量的复杂问题时表现出非凡的成功;第二,已通过四个不同变量数量的基准测试函数进行了验证。
6 结论
在本研究中,使用灰狼优化算法(GWO)——一种当前的群智能算法——以及一种新技术,解决了7关节机器人机械臂的逆运动学问题。该技术由改进的GWO构成。所获得的结果清楚地表明,灰狼优化算法在求解非线性问题时能产生有效结果,并且在结果上具有稳定性和一致性。然而,两种技术所得结果之间的显著差异清楚地表明,灰狼优化算法经常陷入局部最小值。通过对GWO进行改进而得到的新技术被称为FPD‐GWO,它像GWO一样具有稳定结构,但比GWO产生了更好的结果。此外,由于该新技术仅通过改变GWO中单个参数的计算方法而获得,因此非常易于使用。
更多推荐
所有评论(0)