一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于改进A-Star算法的智能仓储多AGV调度方法

2022-11-14 15:01:28 来源:中国专利 TAG:

一种基于改进a-star算法的智能仓储多agv调度方法
技术领域
1.本发明涉及智能物流领域,尤其是涉及一种基于改进a-star算法的智能仓储多agv调度方法。


背景技术:

2.长期以来,人们都习惯把关注成本的焦点放在生产领域,但随着现代化大生产的发展,这个焦点已经逐步转移到流通领域来了。据统计,在美国,全部生产过程中只有5%的时间用于加工制造,95%的时间则用于搬运、储存等物流过程;在日本,物流费用约占产品总成本的10%~12%;在我国,物流费用大约占商品进销差价的70%,仅在账面上反映的物流费用就占商品总成本的40%。由此可见,物流在企业经营管理中占有重要地位,智能仓储系统作为实现物流重要的储存功能的主要组成部分,其研究也就意义重大。自动导引小车(agv)因其在可靠性、柔性、适应性等方面的优势,已经成为了智能仓储系统中必不可少的搬运设备。因此,agv的效率对智能仓储系统的运作效率有很重要的影响。而agv的效率很大程度上取决agv的调度方法。目前,传统的a-star算法在进行路径规划时,从起点到终点的路径中可能会存在多个转弯次数,而agv在实际运行过程中,遇到转弯处,需要停止再更换方向,会造成能量上和时间上的浪费;而且在不同的应用场景下,算法搜索的精度和时间要求是不同。因此有必要针对应用于智能仓储多agv环境下的a-star算法进行深入研究和改进。


技术实现要素:

3.本发明要克服现有技术的上述缺点,提供一种基于改进a-star算法的智能仓储多agv调度方法,用于解决现有技术在路径规划过程中转弯次数过多和算法搜索的精度和时间要求不平衡的问题。
4.一种基于改进a-star算法的智能仓储多agv调度方法,包括以下步骤:
5.s1.基于智能仓储的工作环境,使用栅格法进行环境建模;
6.s2.构建评价函数并改进a-star算法;
7.s3.设计改进的a-star算法进行模型求解,得到最优调度结果。
8.s1:基于智能仓储的工作环境,使用栅格法进行环境建模,具体包括:
9.依据实际的仓储工作环境,将仓库的平面地图划分为若干相同大小的栅格,标记障碍物和可通过区域,并建立栅格地图。
10.s2:所述构建评价函数并改进a-star算法,具体包括:
11.s21:构建a-star算法的评价函数为
12.f(n)=g(n) h(n)
ꢀꢀ
(1)
13.其中,f(n)为评价函数,表示从起始节点p到中间节点n再到目标节点p的总代价值;g(n)表示为起始节点p遍历到中间节点n的代价值;h(n)为启发函数,表示当前节点n到目标节点q的代价值。
14.考虑到实际仓储工作环境站位间距及agv行进方向,确定agv仅可在上下左右方向进行移动不能进行斜方向的移动,因此选用曼哈顿距离作为启发函数。设当前节点为(xn,yn),目标节点为(xs,ys),则启发函数为
15.h(n)=|x
s-xn| |y
s-yn|
ꢀꢀ
(2)
16.s22:考虑agv转弯的代价函数,使路径寻优倾向于转弯数小的路径。设定当前节点为(xn,yn)、父节点为(x
n-1
,y
n-1
)和子节点为(x
n 1
,y
n 1
),可利用节点信息对转弯进行判定。
17.s221:当(x
n-x
n-1
)(y
n 1-yn)与(x
n 1-xn)(y
n-y
n-1
)相等时,表示agv直行通过当前节点,没有转向
18.s222:当(x
n-x
n-1
)(y
n 1-yn)与(x
n 1-xn)(y
n-y
n-1
)不相等时,表示agv在当前节点发生转向。
19.s223:设1为agv移动一个单元格的基础代价,k表示agv的转弯代价系数,取值范围为0.1-0.2,则实际代价函数g(n)为
[0020][0021]
s23:引入启发函数权重因子α进行动态调节,此时a-star算法的评价函数为f(n)=g(n) α
·
h(n)
ꢀꢀ
(4)
[0022]
其中,当α=0时,此时αh(n)=0,即f(n)=g(n),那么a*算法的求解结果的代价值与dijkstra求解的代价值相同,a*算法退化成dijkstra算法,此时f(n)搜索精度高,其结果一定是最优解,但是其搜索效率低,需要大量搜索时间;当0<α≤1,此时α
·
h(n)小于等于实际的代价值,随着α值增加,a*算法的求解结果的精度和时间到达最优;当α=1时,a*算法达到最优;当α>1时,此时α
·
h(n)大于实际代价值,随着α值增加,a*算法的搜索速度加快,所求的搜索时间少,但此时算法搜索精度差,搜索结果不一定是最优解。对于不同场景的要求,需要α取值进行灵活的调整,平衡好算法的搜索精度和时间的关系。
[0023]
s3:所述的设计改进的a-star算法进行模型求解,得到最优调度结果,具体包括:
[0024]
s31:设置起始点s0和目标点v0。
[0025]
s32:初始化集合open list和close list。open list表示将要搜索的路径集合,close list表示已搜索到的有效路径集合。并将起始点s0优先放入open list集合中。
[0026]
s33:开始搜索路径。寻找栅格地图中起始点s0周围可以到达的栅格(上下左右四个),将这些栅格加入到open list集合中,并设置它们的父节点为s0。
[0027]
s34:从open list集合中删除起始点s0,并将起始点s0放入close list集合中。
[0028]
s35:对open list集合中所有栅格节点进行实际距离g(n)的计算,以及每个节点到目标点估计函数α
·
h(n)的计算,将二者相加得到下一节点到目标点的估计距离f(n)。
[0029]
s36:从open list集合中选择f(n)值最低的栅格i,将其从open list集合中删除,放入到close list集合中。
[0030]
s37:检查栅格i所有临近并且可达的栅格,不考虑障碍物和close list集合中的栅格。
[0031]
s371:如果这些栅格还不在open list集合中的话,将它们加入到open list集合,并且计算这些栅格的f(n)值,并设置父节点为i;
[0032]
s372:如果某相邻的栅格j已经在open list集合中,计算新的路径从s0到达栅格j
(即经过i的路径)的g(n)值。如果新的g(n)值更低,则修改父节点为栅格i,重新计算f(n)值,h(n)值不需要改变;如果新的g(n)值比较高,则说明新的路径消耗更高,则值不做改变。
[0033]
s38:继续从open list集合中找出f(n)值最小的,从open list集合中删除,添加到close list集合中,再转至步骤7。
[0034]
s39:结束判断:当open list集合中出现目标点v0时,说明路径已经找到;当open list集合中没有了数据,则说明没有合适路径。
[0035]
与现有技术相比,本发明具有以下有益的技术效果:
[0036]
本发明公开的基于改进a-star算法的智能仓储多agv调度方法,引入了拐角优化和动态衡量优化,在a*算法的代价函数g(n)中考虑了转弯代价,保证了在不增加路程的基础上尽量减少agv的转弯次数,以此降低agv任务运行的时间和减少agv的耗能,提高了agv的运行效率;并且在a*算法的启发函数h(n)中引入启发函数权重因子α进行动态调节,使算法的搜索精度和时间得到平衡。
附图说明
[0037]
为了更清楚的说明本发明的技术方法,下面将对实施方法中所使用的附图做简单的介绍,以下附图仅展示本发明的某些实施例,不应被看作对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据附图的结构获得其他的附图。
[0038]
图1是本发明的判断转弯的节点位置图;
[0039]
图2是本发明的改进a-star算法的流程图;
[0040]
图3是本发明实施例中的案例结果图。
[0041]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0042]
为了对发明的目的、技术特征和效果有更加清晰的理解,下面将对照本发明的附图,对发明实施方法进行具体说明。
[0043]
发明技术方案包含如下所述方法:
[0044]
s1.基于智能仓储的工作环境,使用栅格法进行环境建模;
[0045]
s2.构建评价函数并改进a-star算法;
[0046]
s3.设计改进的a-star算法进行模型求解,得到最优调度结果。
[0047]
所述s1中基于智能仓储的工作环境,使用栅格法进行环境建模,具体包括:
[0048]
依据实际的仓储工作环境,将仓库的平面地图划分为若干相同大小的栅格,标记障碍物和可通过区域,并建立栅格地图。
[0049]
所述s2中构建评价函数并改进a-star算法,具体包括:
[0050]
s21:构建a-star算法的评价函数为
[0051]
f(n)=g(n) h(n)
ꢀꢀ
(1)
[0052]
其中,f(n)为评价函数,表示从起始节点p到中间节点n再到目标节点p的总代价值;g(n)表示为起始节点p遍历到中间节点n的代价值;h(n)为启发函数,表示当前节点n到目标节点q的代价值。
[0053]
考虑到实际仓储工作环境站位间距及agv行进方向,确定agv仅可在上下左右方向
进行移动不能进行斜方向的移动,因此选用曼哈顿距离作为启发函数。设当前节点为(xn,yn),目标节点为(xs,ys),则启发函数为
[0054]
h(n)=|x
s-xn| |y
s-yn|
ꢀꢀ
(2)
[0055]
s22:考虑agv转弯的代价函数,使路径寻优倾向于转弯数小的路径。如图1所示,设定当前节点为(xn,yn)、父节点为(x
n-1
,y
n-1
)和子节点为(x
n 1
,y
n 1
),可利用节点信息对转弯进行判定。
[0056]
s221:当(x
n-x
n-1
)(y
n 1-yn)与(x
n 1-xn)(y
n-y
n-1
)相等时,表示agv直行通过当前节点,没有转向
[0057]
s222:当(x
n-x
n-1
)(y
n 1-yn)与(x
n 1-xn)(y
n-y
n-1
)不相等时,表示agv在当前节点发生转向。
[0058]
s223:设1为agv移动一个单元格的基础代价,k表示agv的转弯代价系数,取值范围为0.1-0.2,则实际代价函数g(n)为
[0059][0060]
s23:引入启发函数权重因子α进行动态调节,此时a-star算法的评价函数为
[0061]
f(n)=g(n) α
·
h(n)
ꢀꢀ
(4)
[0062]
其中,当α=0时,此时αh(n)=0,即f(n)=g(n),那么a*算法的求解结果的代价值与dijkstra求解的代价值相同,a*算法退化成dijkstra算法,此时f(n)搜索精度高,其结果一定是最优解,但是其搜索效率低,需要大量搜索时间;当0<α≤1,此时α
·
h(n)小于等于实际的代价值,随着α值增加,a*算法的求解结果的精度和时间到达最优;当α=1时,a*算法达到最优;当α>1时,此时α
·
h(n)大于实际代价值,随着α值增加,a*算法的搜索速度加快,所求的搜索时间少,但此时算法搜索精度差,搜索结果不一定是最优解。对于不同场景的要求,需要α取值进行灵活的调整,平衡好算法的搜索精度和时间的关系。
[0063]
所述s3中设计改进的a-star算法进行模型求解,得到最优调度结果,如图2所示,具体包括:
[0064]
s31:设置起始点s0和目标点v0。
[0065]
s32:初始化集合open list和close list。open list表示将要搜索的路径集合,close list表示已搜索到的有效路径集合。并将起始点s0优先放入open list集合中。
[0066]
s33:开始搜索路径。寻找栅格地图中起始点s0周围可以到达的栅格(上下左右四个),将这些栅格加入到open list集合中,并设置它们的父节点为s0。
[0067]
s34:从open list集合中删除起始点s0,并将起始点s0放入close list集合中。
[0068]
s35:对open list集合中所有栅格节点进行实际距离g(n)的计算,以及每个节点到目标点估计函数α
·
h(n)的计算,将二者相加得到下一节点到目标点的估计距离f(n)。
[0069]
s36:从open list集合中选择f(n)值最低的栅格i,将其从open list集合中删除,放入到close list集合中。
[0070]
s37:检查栅格i所有临近并且可达的栅格,不考虑障碍物和close list集合中的栅格。
[0071]
s371:如果这些栅格还不在open list集合中的话,将它们加入到open list集合,并且计算这些栅格的f(n)值,并设置父节点为i;
[0072]
s372:如果某相邻的栅格j已经在open list集合中,计算新的路径从s0到达栅格j(即经过i的路径)的g(n)值。如果新的g(n)值更低,则修改父节点为栅格i,重新计算f(n)值,h(n)值不需要改变;如果新的g(n)值比较高,则说明新的路径消耗更高,则值不做改变。
[0073]
s38:继续从openlist集合中找出f(n)值最小的,从open list集合中删除,添加到close list集合中,再转至步骤7。
[0074]
s39:结束判断:当open list集合中出现目标点v0时,说明路径已经找到;当open list集合中没有了数据,则说明没有合适路径。
[0075]
举例说明本方案,请参阅图3:
[0076]
建立20
×
20的栅格图,,一个模块表示1
×
1的栅格,白色区域为可通过区域,黑色区域为障碍物,绿点是起始点,黄点是目标点;
[0077]
利用本技术方案所描述技术方案获取最短路径如图3所述。
[0078]
以上所述仅是本发明的优选实施方式,应当理解本发明并非限制于本文所描述的形式,不应当被看作是对其他实施例的排除,而是可以用于各种其他组合、环境和修改,并能够在本文所描述构思范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献