非结构环境存在表面材质性能不均、结构尺寸变化不规律且不稳定、环境信息非固定或不可知等问题,因此机器人在非机构环境中的路径规划存在较大的难度。现存的算法中人工势场法[1]多被运用到非结构环境规划中的运动,可以实现较低层的实时控制;但该方法易出现局部最优解,并产生死锁现象。因此,亟需一种算法实现移动机器人在非结构环境中的路径规划问题。萤火虫群优化(Glowworm Swarm Optimization, GSO)[2]算法自提出以来被广泛应用于机器人轨迹规划、路径规划和全局分布优化等领域;但该算法存在易陷入局部最优解、早熟、精度低等缺点。现有文献中已有大量分别关于GSO算法或非结构环境下路径规划的研究:郁书好等[3]利用混沌系统的规律性、随机性和遍历性对GSO进行初始化,提高了算法的求解精度及全收敛效率,并成功用于车辆路径问题;Liao等[4]通过对萤火虫的步长选择方式进行修改,调整了萤火虫的分布结构,应用到无障碍环境中传感器分布问题, 并有效提高了传感器的覆盖率;Marinaki等[5]提出一种基于空间分布优化的萤火虫算法,通过连续优化的方式解决了存在随机需求车辆的路径规划问题;Zhang等[6]通过对机器人传感器系统进行优化使机器人对障碍物进行感知,并基于力分布应用到对机器人的控制,实现非机构环境下的平稳行走;于乃功等[7]提出了一种基于梯度守恒假设和局部加权对光流的移动机器人避障策略,抑制光照和噪声等变量对其影响,实现非结构环境下的无碰撞行走。此外,文献[8-9]对萤火虫的选择机制进行了优化,提高了萤火虫种群的利用率;文献[10-12]将GSO算法应用到物理和机械领域,验证了GSO算法相比其他智能算法的优点。目前将GSO算法运用到非机构环境下进行路径规划的研究较少。
本文根据非结构环境的特点,提出一种基于情景萤火虫算法(GSO algorithm of Scene understanding, SGSO)的路径规划策略。该算法引入了萤火虫“天敌”的概念,解决萤火虫面对“天敌”时出现的搁浅现象, 对萤火虫的选择机制进行影响,保障了求解的精度,降低了传统萤火虫算法早熟和局部收敛的发生概率;同时引入混沌变量与黄金比分割法则优化萤火虫种群,增强在算法在应用过程中的自适应性和鲁棒性。
1 情景萤火虫算法 1.1 情景萤火虫算法原理GSO算法的原理[10]如下:在多维空间随机分布N个萤火虫个体,每个萤火虫个体带有定量的荧光素li(t);以概率pij(t)向邻域集合Ni(t)中选取的较优个体移动。计算出适应函数J(xi(t))所对应值,并重复这一过程直到达到一定的迭代次数,得到问题较优解的位置。
GSO算法一个迭代循环如下所示:
$r_d^i(t + 1) = \min \{ {r_s},\max [0,r_d^i(t) + \beta ({n_t} - \left| {{N_t}(t)} \right|)]\} $ | (1) |
${x_i}(t + 1) = {x_i}(t) + s\left( {\frac{{{x_j}(t) - {x_i}(t)}}{{\left\| {{x_j}(t) - {x_i}(t)} \right\|}}} \right)$ | (2) |
${P_{ij}}(t) = \frac{{{l_j}(t) - {l_i}(t)}}{{\sum\limits_{k \in {N_i}(t)} {{l_k}(t) - {l_i}(t)} }}$ | (3) |
${N_i}(t) = \{ j:{d_{ij}}(t) < r_d^i(t);{l_i}(t) < {l_j}(t)\} $ | (4) |
${l_i}(t + 1) = (1 - \rho ){l_i}(t) + \gamma * J[{x_i}(t + 1)]$ | (5) |
其中:rs为个体的最大感识半径;β为感识半径变化系数;nt为萤火虫个体附近邻域阈值;Ni(t)为萤火虫个体的邻域集合;s为萤火虫个体移动的步长;ρ为荧光素挥发系数,ρ∈(0, 1);dij(t)为个体i和个体j之间的距离;γ为用于调节函数值的常数量,可以放缩适应度函数J[xi(t+1)]。
与现有的智能群算法相比较,萤火虫算法中需调节的参数简单,且不存在较为繁琐的进化,易于实现,稳定性高;但收敛速度慢、早熟和求解精度不高等缺陷对搜寻最优解造成一定的影响。
1.2 情景萤火虫选择策略为了增强萤火虫群的搜索能力,拟加入萤火虫的“天敌”,并引入参数暗度di(t)以表示萤火虫对天敌的排斥效果,与基本萤火虫算法中存在荧光素吸引作用共同作用,综合模拟萤火虫在动态环境和未知环境中寻迹的真实过程。
“天敌”对萤火虫选择有抑制作用,参数Oi(t)表示萤火虫邻域内存在的天敌数量,影响萤火虫感识半径的更新,使邻域内萤火虫和天敌共同决定萤火虫的选择机制。
${O_i}(t) = \{ i:{d_{ii}}(t) < r_d^i(t)\} $ | (6) |
其中:dii(t)表示萤火虫个体i与感识半径内天敌i所在点之间的距离。为将天敌对于萤火虫路径选择策略的干扰,引入暗度di(t)表示萤火虫个体i邻域内天敌对荧光素传递的抑制效果,暗度di(t)与天敌数量Oi(t)的关系为:
$d_{i}^{{}}(t)={{{O}_{i}}(t)}/{{{[r_{i}^{d}(t)]}^{2}}}\;$ | (7) |
若萤火虫的感识半径内天敌数量过多或体积过大,萤火虫易停止搜索,因此设最大暗度dmax, 防止感识半径减小到0。
由于具备了天敌对萤火虫的刺激作用,个体i向相邻邻域中第j只萤火虫方向移动的概率为:
${P_{ij}}(t) = \frac{{{l_j}(t) - {l_i}(t)}}{{\sum\limits_{k \in {N_i}(t)} {{l_k}(t) - {l_i}(t)} }} - \frac{{{d_j}(t) - {d_i}(t)}}{{\sum\limits_{k \in {d_i}(t)} {{d_k}(t) - {d_i}(t)} }}$ | (8) |
加入暗度影响后,选择机制的概率分布从[0, 1]扩展到[-1, 1],更利于萤火虫选取最优解。
1.3 情景萤火虫种群的优化为抑制GSO算法中因为随机初始分布而陷入局部解和早熟收敛的问题,在算法中采用混沌变量[3]作为萤火虫的初始种群,以提高搜索的遍历性、随机性和规律性。前期通过混沌变量进一步提高萤火虫种群的丰富度和收敛速度,后期通过将适应度较低的萤火虫个体进行黄金分割优化,解决萤火虫的“搁浅现象”,保障了求解精度,增强了萤火虫种群初始位置的质量以提高后期收敛效率。
首先根据目标函数的需要选择一个D维向量X1=[x11, x12, …, x1D],通过代入式(9) 混沌迭代实现初始化,以优化后的向量X2, X3, …, XN从作为萤火虫初始种群。
${x_{n + 1}} = \cos (n\;\arccos \;{x_n})$ | (9) |
根据式(5) 对更新全体萤火虫的荧光素值,筛选出k个低荧光素的萤火虫个体。由于“天敌”的抑制效果,初始分布和“天敌”位置重合的萤火虫出现搁浅,即失去了对其他萤火虫的吸引效果,默认其荧光素为零。选择荧光素较低的个体xil(i=1, 2, …, k)按照式(10) 进行黄金比分割法则进行二次优化:
$x_i^l = {0.618^i}({x_{\max }} - {x_{\min }});i = 1,2, \ldots k$ | (10) |
其中:xmax和xmin分别表示萤火虫个体搜索范围的阈值。
然后通过黄金比分割法则重新分布后的部分个体依式(9) 迭代得到xn+1,将经过二次优化后的萤火虫和较高荧光素的种群组成萤火虫的初始种群。
1.4 情景萤火虫算法的描述情景萤火虫算法总的流程如图 1所示,相应步骤描述如下。
步骤1 初始化ρ、γ、li(0) 及其他常量参数。随机生成D维向量X0=[x0.1, x0.2, …, x0.D],根据式(9) 进行第一次优化,依次得到X1,X2,…,XN,将上述N个混沌向量映射到求解区域内。
步骤2 根据式(5) 更新萤火虫种群的荧光素值,筛选出荧光素较低的k个个体,根据式(10) 进行二次优化后和一次优化后荧光素较高的部分个体混合组成初始种群。
步骤3 根据式(4) 与式(6) 分别计算出萤火虫个体i的邻域集合Ni(t)和天敌集合Oi(t)。
步骤4 根据式(8) 计算出萤火虫i向邻域内高荧光素个体j移动的概率。
步骤5 按照式(1) 更新萤火虫位置和感识半径,为防止萤火虫个体的感识半径衰减到0而停止搜索,约束rid(t)的最小值为0.1。根据式(9) 计算个体i的计算暗度,若di>dmax,更新rid(t),保证di < dmax后转入下一步骤。
步骤6 判断所求解是否满足条件或者达到最大迭代次数:若满足条件或达到最大迭代次数即输出结果;否则转到步骤3。
2 非结构环境下共融机器人的路径规划 2.1 非结构环境中障碍物的识别和分类机器人在非结构环境中须通过传感器对工作环境进行感知和识别,提取可能存在的障碍物信息并作出相应的决策以躲避障碍物。为了在复杂工况下保障自身安全,机器人的传感集成系统多包含不同种类的传感器。中央控制系统需将各传感器的信息输入进行融合以及处理,为机器人的运动进行规划。
非结构环境下障碍物分布不规律、体积不规则,而障碍物的随机性往往对移动机器人的运动性能造成影响。因此,对于不同种类障碍物,机器人根据其特点作出相应的避障决策,从而达到路径规划的目的。障碍物的分类如表 1所示。
传统路径规划的算法在建立模型的过程中,障碍物和机器人的外型通常经过结构化或其他简化处理,为考虑实际运动过程中由体积因素可能带来的碰撞或冲击等不利工况,为了细致地描述环境的特点,更为精确地在算法中模拟障碍物的分布情况,本文算法在确定环境参数的过程中需增加机器人与障碍物的体积对路径的影响,以再现运动过程中机器人和障碍物之间相对位置关系。
通过关于障碍物各参数的收集与处理,分析机器人可识别范围内障碍物体积等可增益变量的影响范围,量化各类障碍物对于机器人路径选择策略的影响因子,实现对于障碍物的膨胀保护,保证机器人在运动过程中的安全。
${O_i}(t) = \left\{ {\begin{array}{*{20}{l}} 0&{{r_{k1}} > r_d^i(t)}\\ {\sum\limits_{k = 1}^n {{\alpha _k}(r_{k2}^2 - r_{k1}^2) \cdot G} }&{0 < {r_{k1}} < r_d^i(t)}\\ \infty &{{r_{k1}} < 0} \end{array}} \right.$ | (11) |
其中:α表示机器人识别障碍物的展角,rk1表示障碍物k到传感器最短的距离,rk2表示感知范围内障碍物k到传感器最远的距离,G表示障碍物量化增益系数。根据式(11) 对萤火虫个体感知范围内的障碍物进行识别和量化。
由于非结构环境具有未知性和不确定性,且目前传感器的测量与分析水平有限,实际环境中的障碍物和理想模型中的传感器必然存在一定的误差。为避免上述测量误差可能引起的碰撞与跌落现象,引入安全系数s以确保机器人与障碍物之间始终保持一定的间隙,从而保障寻迹过程的稳定性。其中s∈[1.05,1.20]。当环境中障碍物数量较少时,选取较小的安全系数,以减少机器人的移动路径;当环境中障碍物数量较多时,选取较大的安全系数,以保障运动过程中的无冲撞[13]。
2.3 非结构环境下路径规划的目标描述非结构环境下的路径规划就是确定移动机器人从出发点到目标点所经过m+1个点的集合[13],由于非结构环境的障碍存在不确定的因素,机器人的移动路径应适应于存在各种障碍的环境,因此模型的建立必须不依赖障碍物的任何参数。如图 2所示,以机器人的出发点O与目标点Pm的连线建立X轴,过出发点O且垂直于X轴的直线作为Y轴,建立全局坐标系O-XY。然后将OPm等分成m段,并过每一个等分点作垂线, 从而的到垂线族(h1, h2, …, hm-1),而各垂线与路径的交点即为路径中部分必须经过的目标点(P1, P2, …, Pm-1)。在不影响结果的前提下,为减小计算量,且便于观察,将X轴进行平移后提取出新的坐标系。通过上述策略将移动机器人的路径规划转变为一系列目标点的选取过程。
为了减小能量的消耗,机器人从起点到终点所经历总路程应尽量短,即要满足函数L取最小值。
$L = {L_{O{P_1}}} + \sum\limits_{j = 1}^m {{L_{{P_j}{P_{j + 1}}}}} $ | (12) |
其中:LOP1表示点O到点P1间的距离,LPjPj+1表示点Pj到Pj+1间的距离。也可以用坐标表示式(12) 为:
$\begin{array}{l} L = \sqrt {{{({x_O} - {x_{{P_1}}})}^2} + {{({y_O} - {y_{{P_1}}})}^2}} + \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \sum\limits_{j = 1}^m {\sqrt {{{({x_{{P_j}}} - {x_{{P_{j + 1}}}})}^2} + {{({y_{{P_j}}} - {y_{{P_{j + 1}}}})}^2}} } \end{array}$ | (13) |
最终机器人的路径规划转化为对于式(13) 的函数在取值范围内寻找最小的函数值Lmin。通过多次目标转换,使模型的目标锁定为最短路程,且适应于非结构环境下障碍物随机分布的特点。
3 算法性能分析为了进一步验证SGSO的有效性,将SGSO与GSO算法、混沌GSO(Chaotic GSO, CGSO)进行性能对比。为方便对比,选取参考文献[3]中基准测试函数分布进行对比测试。首先对各参数进行初始化,如表 2所示。
具体函数如下:
f1=(|x1|-5) 2+(|x2|+5) 2;xi∈[-10, 10],i=1, 2
该函数的全局最小值为25。
$\begin{array}{l} {f_2} = {({x_2} - \frac{{5.1}}{{4{{\rm{\pi }}^2}}}x_1^2 + \frac{{5{x_1}}}{{\rm{\pi }}} - 6)^2} + {\kern 1pt} {\kern 1pt} 10(1 - \frac{1}{{{\rm{8\pi }}}})\cos {x_1} + 10;\\ \quad \quad {x_1} \in [ - 5,10],{x_2} \in [0,15] \end{array}$ |
该函数的全局最优值为0.397898。
$\begin{array}{l} {f_3} = 0.5 + \frac{{{{\sin }^2}\sqrt {x_1^2 + x_2^2} - 0.5}}{{{{[1.0 + 0.001(x_1^2 + x_2^2)]}^2}}};\\ \quad \quad {x_1} \in [ - 5,10],{x_2} \in [0,15] \end{array}$ |
该函数的全局最小值为0。
$\begin{array}{l} {f_4} = 100{({x_2} - {x_1})^2} + {\kern 1pt} {\kern 1pt} {[6.4{({x_2} - 0.5)^2} - {x_1} - 0.6]^2};\\ \quad \quad {x_i} \in [ - 5,5],i = 1,2 \end{array}$ |
该函数的全局最小值为0。
由于单次实验结果不具有代表性,分别通过GSO算法和SGSO对上述测试函数进行100次运行,并提取出结果中的各项值,如表 3。
从表 3中的数据可以看出:求解精度方面,通过SGSO所得到4个函数的最差值和平均值皆优于GSO算法和CGSO算法,但函数f3和f4的最优值精度不如CGSO算法;通过GSO算法得出函数f1的最优值与最差值与标准值的差值分别为5.6549×10-3和3.7196,而通过SGSO的对应值分别为4.5123×10-6和1.283894×10-4,其误差值相比减小到原来的1/29060和1/1253。稳定性方面,SGSO的标准偏差值均低于GSO算法和SGSO,其中,通过SGSO得到函数f3的标准偏差相对GSO算法和SGSO的进一步优化程度较小,但仍提高23%。收敛效率方面,从图 3可以看出,SGSO的收敛曲线中拐点出现较早,都出现于100次迭代之前,收敛速度明显快于GSO算法;种群分布方面,从图 4可以看出,在函数f1和f3中,SGSO中萤火虫种群收敛于在最优解的附近,说明改进后的SGSO情景理解模式和选择机制提高了算法的求解性能。综上所述,SGSO求解精度较高,稳定性良好,种群分布合理性强,收敛速度快。
本文针对的非结构环境为存在隐患的危桥部分桥面,其模型参数为:截取部分长度L1=8 m,宽度L2=6 m,桥面随机存在5到9个位置未知、尺寸未知的障碍。为验证本文算法不受障碍物分布的随机性的影响,选取6次不同障碍分布的情景分别进行路径规划。机器人出发点的坐标为(0, 3),计算机器人移动到目标点(8, 3) 的路径。通过SGSO对目标函数进行100次优化,在100次优化结果中移动路径的各类值,从而得出路径规划的最优解。
图 5是SGSO在6类不同障碍分布的危桥桥面路径规划结果。图 5(a)~(b)中分别随机分布了5个障碍物,代表障碍物较少的桥面,结合表 4的数据,与GSO算法相比,SGSO的平均路径分别缩短了0.97%和1.8%;图 5(c)~(d)中分别随机分布了7个障碍物,代表障碍物较多的桥面,平均路径分别缩短了1.2%和1.7%;图 5(e)~(f)中代表含陷阱障碍物,平均路径分别缩短了1.9%和2.2%,避开陷阱的成功率为100%。此外,GSO算法生成的路径在靠近圆形或椭圆形时距离障碍物较近,而靠近直角或锐角障碍时较远;SGSO生成路径距离各类障碍的距离具有较好的一致性。
传统路径规划中机器人的移动路径多与障碍物相切,本文模型建立的过程中加入了安全系数,优化后的路径与障碍物之间保持了一定的间隙,该方式使移动距离略有增加,但极大地降低了与障碍物冲撞的概率,提高了运动过程的安全性。为进一步观察SGSO关于运动效率与避障能力的兼顾性,选取了两处含尖锐障碍物的局部细节图,以观察SGSO的路径规划表现,如图 6所示。从图 6中可以看出来,相比通过GSO算法,通过SGSO所生成的路径在拐点处与障碍物所保持的距离更加稳定,且路径具备更好的光滑度,减小了机器人过弯的转角调整,有利于避免机器人运动状态振荡。
由于模型的建立不受障碍的位置、性质的影响,GSO算法和SGSO皆可以在障碍物随机分布的桥面完成移动机器人的路径规划。通过数据对比,SGSO的求解精度和迭代稳定性皆高于GSO算法。
5 结语为克服传统萤火虫算法易陷入局部最优解、早熟、精度低等缺点,本文提出情景萤火虫算法(SGSO),用于在非环境结构下为移动机器人提供可行的路径规划策略。该算法基于混沌映射的历遍性、随机性和规律性实现种群初始化,通过黄金比分割法优化提高种群的多样性和机动性,并引入萤火虫“天敌”的情景理解改善个体的选择阈值和精度,进化萤火虫的选择机制。通过标准函数的仿真实验及对比分析可知,SGSO比GSO算法及同类算法具备更高的求解精度、稳定性和迭代效率,种群的最终分布位置均收敛于最优解附近;危桥检测应用的结果也验证了所提算法的可行性和有效性。
实际的非结构环境具备更多不确定性,下一步将在建模的过程中考虑传感器的时滞性、测量过程的非线性误差以及边界条件的变化,进一步探索SGSO在非结构环境中的理论研究和应用意义。
[1] | LI C, JIANG X, WANG W, et al. A simplified car-following model based on the artificial potential field[J]. Procedia Engineering, 2016, 137: 13-20. DOI:10.1016/j.proeng.2016.01.229 |
[2] | KRISHNANAND K N, GHOSE D. A glowworm swarm optimization based multi-robot system for signal source localization[M]//Design and Control of Intelligent Robotic Systems. Berlin:Springer, 2009:49-68. |
[3] | 郁书好, 苏守宝. 混沌萤火虫优化算法的研究及应用[J]. 计算机科学与探索, 2014, 8(3): 352-358. (YU S H, SU S B. Research and application of chaotic glowworm swarm optimization algorithm[J]. Journal of Frontiers of Computer Science and Technology, 2014, 8(3): 352-358.) |
[4] | LIAO W H, KAO Y C, LI Y S. A sensor deployment approach using glowworm swarm optimization algorithm in wireless sensor networks[J]. Expert Systems with Applications, 2011, 38(10): 12180-12188. DOI:10.1016/j.eswa.2011.03.053 |
[5] | MARINAKI M, MARINAKIS Y. Glowworm swarm optimization algorithm for the vehicle routing problem with stochastic demands[J]. Expert Systems With Applications, 2016, 46(C): 145-163. |
[6] | ZHANG H, LIU Y B, ZHAO J, et al. Development of a bionic hexapod robot for walking on unstructured zerrain[J]. Journal of Bionic Engineering, 2014, 11(2): 176-187. DOI:10.1016/S1672-6529(14)60041-X |
[7] | 于乃功, 郑宇凌, 徐丽, 等. 基于光流的非结构化环境中移动机器人避障方法[J]. 北京工业大学学报, 2017, 43(1): 65-69. (YU N G, ZHENG Y L, XU L, et al. Optical flow based mobile robot obstacle avoidance method in unstructured environment[J]. Journal of Beijing Universityof Technology, 2017, 43(1): 65-69. DOI:10.11936/bjutxb2016050002) |
[8] | 刘佳, 梁秋丽, 王书青, 等. 基于模拟退火算法的萤火虫群优化算法研究[J]. 计算机仿真, 2014, 31(5): 284-288. (LIU J, LIANG Q L, WANG S Q, et al. Research on improved glowworm swarm optimization algorithm based on simulated annealing algorithm[J]. Computer Simulation, 2014, 31(5): 284-288.) |
[9] | ORAMUS P. Improvements to glowworm swarm optimization algorithm[J]. Computer Science, 2010, 11: 7-20. |
[10] | 罗天洪, 陈才, 李富盈. 基于时变萤火虫群算法的冗余机器人手臂逆解[J]. 计算机集成制造系统, 2016, 22(2): 576-582. (LUO T H, CHEN C, LI F Y. Inverse solution of redundant robot arm based on glow-worm swarm optimization algorithm of time-varying[J]. Computer Integrated Manufacturing Systems, 2016, 22(2): 576-582.) |
[11] | DING S, AN Y, ZHANG X, et al. Wavelet twin support vector machines based on glowworm swarm optimization[J]. Neurocomputing, 2017, 225(C): 157-163. |
[12] | CUI H, FENG J, GUO J, et al. A novel single multiplicative neuron model trained by an improved glowworm swarm optimization algorithm for time series prediction[J]. Knowledge-Based Systems, 2015, 88(C): 195-209. |
[13] | 孙波, 陈卫东, 席裕庚. 基于粒子群优化算法的移动机器人全局路径规划[J]. 控制与决策, 2005, 20(9): 1052-1055, 1060. (SUN B, CHEN W D, XI Y G. Particle swarm optimization based global path planning for mobile robots[J]. Control and Decision, 2005, 20(9): 1052-1055, 1060.) |