一种仓储系统的出入库控制方法和装置与流程

文档序号:33713996发布日期:2023-04-01 03:12阅读:51来源:国知局
一种仓储系统的出入库控制方法和装置与流程

1.本发明涉及智能运输技术领域,尤其涉及一种仓储系统的出入库控制方法和装置。


背景技术:

2.智能时代的到来催促着物流行业向着智能化方向发展,仓储作业作为物流的关键环节,直接影响整个物流水平和运作效率。自动导引运输车(automated guided vehicle,agv),是智能运输系统的核心组成成分,在商用和军用方面具有较好的研究价值和应用前景,吸引了大批研究学者的关注。
3.agv在智能仓储中有效的工作离不开路径的规划,特别是多agv路径规划,其需要考虑时间、距离等的约束,避免agv之间及其与障碍物之间的冲突。多agv路径规划已经成为领域内的一个重点研究内容。
4.智能仓储的优化一般分为货架优化和路径优化两部分。货架优化针对货物与货架两者的关系,对货物摆放位置进行优化,而路径优化主要寻找agv的最优路径规划。目前,大多的智能仓储优化仅对这两部分进行独立研究,在实际仓储应用中只能以线性叠加的方式解决问题,导致问题的求解易陷入局部最优中。


技术实现要素:

5.鉴于上述的分析,本发明实施例旨在提供一种仓储系统的出入库控制方法和装置,用以解决现有仓储应用中以线性叠加的方式解决路径和货架优化问题会导致问题的求解易陷入局部最优中的问题。
6.一方面,本发明实施例提供了一种仓储系统的出入库控制方法,包括:根据历史出货批次对零散货物进行编码处理,并利用所述历史出货批次产生的编码计算货品间的相似度;根据所述相似度对所述零散货物进行组合以生成货品组,其中,将处于待入库状态的每个货品组视为一个货架单元,以及所述货架单元与货架位置一一对应;利用改进a*算法计算多agv的入库路径,其中,每个货架位置与所述agv的入库路径相对应;基于所述agv的入库路径将所述货品组放置在对应的货架单元上;以及利用改进a*算法计算多agv的出库路径,其中,所述多agv的入库路径和出库路径均包括改进启发函数和在所述改进启发函数中添加转弯修正代价参数,并且所述入库路径的起始节点不同于所述出库路径的目标节点。
7.上述技术方案的有益效果如下:a*算法具有较高的路径搜索效率和准确性,再结合合理的货位摆放,为出库路径的规划提供辅助,使用动态更新算法产生一个考虑货位摆放因素的优化运输方案。
8.基于上述方法的进一步改进,在所述改进启发函数中添加转弯修正代价参数包括:所述转弯修正代价参数的选取直接影响改进启发函数值的大小,其中,当所述转弯修正代价参数选取过大时,所述agv产生绕行现象;当所述转弯修正代价参数选取过小时,无法发挥修正作用;当选取合适的转弯修正代价参数时,保证所述agv优先选择直行,并且避免
所述agv出现绕行现象。
9.基于上述方法的进一步改进,根据历史出货批次对零散货物进行编码处理,并利用所述历史出货批次产生的编码计算货品间的相似度包括:对仓储货物数据进行处理以去除无关数据并抽取货品编号和货品批次;以1和0标识所述货品编号是否在本批次出货,其中,每个货品是由批次数各维度组成的向量;以及通过以下余弦相似度公式计算所述向量间的相似度:
[0010][0011]
将所述向量间的相似度减去1之后的绝对值作为货品间的相似度,其中,所述绝对值越小,所述货品间的相似度越高。
[0012]
基于上述方法的进一步改进,利用改进a*算法计算多agv的入库路径或出库路径包括:采用栅格地图法对agv工作环境进行建模,输入所述agv的起始节点和目标节点,并分别创建用于存储待检测节点的openlist链表和用于存储已检测节点的closelist链表;将所述agv的起始节点s的坐标放入所述openlist链表中;遍历所述openlist链表中所有节点,寻找改进后的代价函数值最小的节点并将其设置为当前节点;将所述当前节点移入到所述closelist链表中;检测所述当前节点的四邻域节点,忽略已经在所述closelist表中的节点或者障碍物节点,然后判断剩余的邻域节点是否在所述openlist链表中;当所述剩余的邻域节点在所述openlist链表中时,判断当所述agv经过所述当前节点计算的g(n)值是否更小,其中,若所述g(n)值更小,则将所述剩余的邻域节点的父节点设置为当前节点,并重新计算g(n)值和f
*
(n)值,其中,f
*
(n)为从所述起始节点s经过所述当前节点n到目标节点m的估计路径距离;g(n)为所述起始节点s到所述当前节点n的实际路径距离;以及判断是否找到所述agv的目标节点m,其中,当找到目标节点m时,从所述agv的目标节点m依次寻找父节点至agv的起始节点s,所获得的路径为基于改进a*算法的agv行驶路径。
[0013]
基于上述方法的进一步改进,当没有找到所述agv的目标节点m时,继续判断所述openlist链表是否为空链表,其中,当所述openlist链表不为空链表时,返回以下步骤:遍历所述openlist链表中所有节点,直到所述openlist链表为空链表为止,所述入库路径的起始节点和目标节点分别为所述仓储系统的入口和货架位置,以及所述出库路径的起始节点和目标节点分别为货架位置和所述仓储系统的出口。
[0014]
基于上述方法的进一步改进,当所述剩余的邻域节点不在所述openlist链表中时,将所述剩余的邻域节点加入到所述openlist链表中;将所述当前节点设置为其父节点,分别计算各个剩余的邻域节点的f
*
(n)值、g(n)值和h
*
(n)值,其中,h
*
(n)为从所述当前节点n到所述目标节点m的估计路径距离;以及跳转至以下步骤:判断是否找到所述agv的目标节点m。
[0015]
基于上述方法的进一步改进,改进启发函数和在所述改进启发函数中添加转弯修正代价参数包括:采用加权曼哈顿距离作为所述改进启发函数,使得距离估计成本接近最短距离以减少遍历节点数;在所述改进启发函数中引入所述转弯修正代价参数以减少路劲转弯次数。
[0016]
基于上述方法的进一步改进,采用加权曼哈顿距离作为所述改进启发函数,使得
距离估计成本接近最短距离以减少遍历节点数包括:采用以下加权曼哈顿距离对a
*
算法的h(n)进行改进:
[0017]h*
(n)=λ1|x
n-x
end
|+λ2|y
n-y
end
|
[0018]
其中,选取合适的λ1和λ2值提高a
*
算法路径规划中路径搜索效率,(xn,yn)为当前节点,以及(x
end
,y
end
)为目标节点。
[0019]
基于上述方法的进一步改进,在所述改进启发函数中引入所述转弯修正代价参数以减少路劲转弯次数包括:通过所述当前节点(xn,yn)、父节点(x
n-1
,y
n-1
)、子节点(x
n+1
,y
n+1
)和所述目标节点(x
end
,y
end
)的位置关系,利用以下公式判断所述agv是否发生转向,其中,当m1与m2相等时,所述agv处于直行行驶状态;以及当m1与m2不相等时,所述agv发生转向:
[0020]
m1=(x
n-x
n-1
)(y
n+1-yn)
[0021]
m2=(y
n-y
n-1
)(x
n+1-xn),
[0022]
根据以上判断结果对所述启发函数进行修正:
[0023][0024]
其中,为所述转弯修正代价参数,保证所述agv优先选择直行且
[0025]
另一方面,本发明实施例提供了一种仓储系统的出入库控制装置,包括:相似度获取模块,用于根据历史出货批次对零散货物进行编码处理,并利用所述历史出货批次产生的编码计算货品间的相似度;货品组生成模块,用于根据所述相似度对所述零散货物进行组合以生成货品组,其中,将处于待入库状态的每个货品组视为一个货架单元,以及所述货架单元与货架位置一一对应;入库路径计算模块,用于利用改进a*算法计算多agv的入库路径,其中,每个货架位置与所述agv的入库路径相对应;货品组设置模块,用于基于所述agv的入库路径将所述货品组放置在对应的货架单元上;以及出库路径计算模块,用于利用改进a*算法计算多agv的出库路径,其中,所述多agv的入库路径和出库路径均包括改进启发函数和在所述改进启发函数中添加转弯修正代价参数,并且所述入库路径的起始节点不同于所述出库路径的目标节点。
[0026]
与现有技术相比,本发明至少可实现如下有益效果之一:
[0027]
1、a*算法具有较高的路径搜索效率和准确性,再结合合理的货位摆放,为出入库路径的规划提供辅助,使用动态更新算法产生一个考虑货位摆放因素的优化运输方案。
[0028]
2、将货位规划和路径规划协同考虑后,结合最优路径函数分析,将相似度高的货架分散放开,易于agv在任何站点都能够较快地找到货物,并且将高频货物放在路径不重合的地方,这样可以保证当任务多时,不会造成因路径重合带来的agv堵塞,从整体上提高仓库出入货效率。
[0029]
3、改进后的代价估计函数f
*
(n)较改进前的代价估计函数f(n)而言,主要是对其启发函数h(n)部分进行了改进,采用加权曼哈顿距离作为启发函数,使得距离估计成本更接近最短距离,减少了算法遍历节点数。另外,在启发函数中引入转弯修正代价参数,减少了路径转弯次数。
[0030]
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而
易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
[0031]
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0032]
图1为根据本发明实施例的仓储系统的出入库控制方法的流程图;
[0033]
图2为根据本发明实施例的货品相似度算法的流程图;
[0034]
图3为根据本发明实施例的节点位置示意图;
[0035]
图4为根据本发明实施例的三条路径对比图;
[0036]
图5为根据本发明实施例的基于改进a*算法agv路径规划的流程图;以及
[0037]
图6为根据本发明实施例的仓储系统的出入库控制装置的框图。
具体实施方式
[0038]
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0039]
参考图1,本发明的一个具体实施例,公开了一种仓储系统的出入库控制方法,包括:在步骤s102中,根据历史出货批次对零散货物进行编码处理,并利用历史出货批次产生的编码计算货品间的相似度;在步骤s104中,根据相似度对零散货物进行组合以生成货品组,其中,将处于待入库状态的每个货品组视为一个货架单元,以及货架单元与货架位置一一对应;在步骤s106中,利用改进a*算法计算多agv的入库路径,其中,每个货架位置与agv的入库路径相对应;在步骤s108中,基于agv的入库路径将货品组放置在对应的货架单元上;以及在步骤s110中,利用改进a*算法计算多agv的出库路径,其中,多agv的入库路径和出库路径均包括改进启发函数和在改进启发函数中添加转弯修正代价参数,并且入库路径的起始节点不同于出库路径的目标节点。
[0040]
与现有技术相比,本实施例提供的仓储系统的出入库控制方法中,a*算法具有较高的路径搜索效率和准确性,再结合合理的货位摆放,为出库路径的规划提供辅助,使用动态更新算法产生一个考虑货位摆放因素的优化运输方案。
[0041]
下文中,将参考图1对根据本发明实施例的仓储系统的出入库控制方法的各个步骤进行详细描述。
[0042]
在步骤s102中,根据历史出货批次对零散货物进行编码处理,并利用历史出货批次产生的编码计算货品间的相似度。具体地,根据历史出货批次对零散货物进行编码处理,并利用历史出货批次产生的编码计算货品间的相似度包括:对仓储货物数据进行处理以去除无关数据并抽取货品编号和货品批次;以1和0标识货品编号是否在本批次出货,其中,每个货品是由批次数各维度组成的向量;以及通过以下余弦相似度公式计算向量间的相似度:
[0043]
[0044]
将向量间的相似度减去1之后的绝对值作为货品间的相似度,其中,绝对值越小,货品间的相似度越高,其中,x为一种货品的向量,y为另一种货品的向量,xi为一种货物在第i批次出货,yi为另一种货品在第i批次出货,n为向量x和y的维数,x,y为0或者1,0表示未出库,1表示出库。
[0045]
在步骤s104中,根据相似度对零散货物进行组合以生成货品组,其中,将处于待入库状态的每个货品组视为一个货架单元,以及货架单元与货架位置一一对应。
[0046]
在步骤s106中,利用改进a*算法计算多agv的入库路径,多agv的入库路径包括改进启发函数和在改进启发函数中添加转弯修正代价参数,其中,每个货架位置与agv的入库路径相对应。具体地,改进启发函数和在改进启发函数中添加转弯修正代价参数包括:采用加权曼哈顿距离作为改进启发函数,使得距离估计成本接近最短距离以减少遍历节点数;在改进启发函数中引入转弯修正代价参数以减少路劲转弯次数。采用加权曼哈顿距离作为改进启发函数,使得距离估计成本接近最短距离以减少遍历节点数包括:采用以下加权曼哈顿距离对a
*
算法的h(n)进行改进:
[0047]h*
(n)=λ|xn_x
end
|+λ2|y
n-y
end
|
[0048]
其中,选取合适的λ1和λ2值提高a
*
算法路径规划中路径搜索效率,(xn,yn)为当前节点,以及(x
end
,y
end
)为目标节点。
[0049]
在改进启发函数中引入转弯修正代价参数以减少路劲转弯次数包括:通过当前节点(xn,yn)、父节点(x
n-1
,y
n-1
)、子节点(x
n+1
,y
n+1
)和目标节点(x
end
,y
end
)的位置关系,利用以下公式判断agv是否发生转向,其中,当m1与m2相等时,agv处于直行行驶状态;以及当m1与m2不相等时,agv发生转向:
[0050]
m1=(x
n-x
n-1
)(y
n+1-yn)
[0051]
m2=(y
n-y
n-1
)(x
n+1-xn),
[0052]
根据以上判断结果对启发函数进行修正:
[0053][0054]
其中,为所述转弯修正代价参数,保证所述agv优先选择直行且
[0055]
具体地,在改进启发函数中添加转弯修正代价参数包括:转弯修正代价参数的选取直接影响改进启发函数值的大小,其中,当转弯修正代价参数选取过大时,agv产生绕行现象;当转弯修正代价参数选取过小时,无法发挥修正作用;当选取合适的转弯修正代价参数时,保证agv优先选择直行,并且避免agv出现绕行现象。
[0056]
利用改进a*算法计算多agv的入库路径包括:采用栅格地图法对agv工作环境进行建模,输入agv的起始节点和目标节点,并分别创建用于存储待检测节点的openlist链表和用于存储已检测节点的closelist链表;将agv的起始节点s的坐标放入openlist链表中;遍历openlist链表中所有节点,寻找改进后的代价函数值最小的节点并将其设置为当前节点;将当前节点移入到closelist链表中;检测当前节点的四邻域节点,忽略已经在closelist表中的节点或者障碍物节点,然后判断剩余的邻域节点是否在openlist链表中;当剩余的邻域节点不在openlist链表中时,将剩余的邻域节点加入到openlist链表中;将当前节点设置为其父节点,分别计算各个剩余的邻域节点的f
*
(n)值、g(n)值和h
*
(n)值,其
中,h
*
(n)为从当前节点n到目标节点m的估计路径距离;以及跳转至以下步骤:判断是否找到agv的目标节点m。当剩余的邻域节点在openlist链表中时,判断当agv经过当前节点计算的g(n)值是否更小,其中,若g(n)值更小,则将剩余的邻域节点的父节点设置为当前节点,并重新计算g(n)值和f
*
(n)值,其中,f
*
(n)为从起始节点s经过当前节点n到目标节点m的估计路径距离;g(n)为起始节点s到当前节点n的实际路径距离;以及判断是否找到agv的目标节点m,其中,当找到目标节点m时,从agv的目标节点m依次寻找父节点至agv的起始节点s,所获得的路径为基于改进a*算法的agv行驶路径。当没有找到agv的目标节点m时,继续判断openlist链表是否为空链表,其中,当openlist链表不为空链表时,返回以下步骤:遍历openlist链表中所有节点,直到openlist链表为空链表为止,入库路径的起始节点和目标节点分别为仓储系统的入口和货架位置。
[0057]
在步骤s108中,基于agv的入库路径将货品组放置在对应的货架单元上。
[0058]
在步骤s110中,利用改进a*算法计算多agv的出库路径,其中,多agv的出库路径包括改进启发函数和在改进启发函数中添加转弯修正代价参数,并且入库路径的起始节点不同于出库路径的目标节点。具体地,改进启发函数和在改进启发函数中添加转弯修正代价参数包括:采用加权曼哈顿距离作为改进启发函数,使得距离估计成本接近最短距离以减少遍历节点数;在改进启发函数中引入转弯修正代价参数以减少路劲转弯次数。采用加权曼哈顿距离作为改进启发函数,使得距离估计成本接近最短距离以减少遍历节点数包括:采用以下加权曼哈顿距离对a
*
算法的h(n)进行改进:
[0059]h*
(n)=λ1|x
n-x
end
|+λ2|y
n-y
end
|
[0060]
其中,选取合适的λ1和λ2值提高a
*
算法路径规划中路径搜索效率,(xn,yn)为当前节点,以及(x
end
,y
end
)为目标节点。
[0061]
在改进启发函数中引入转弯修正代价参数以减少路劲转弯次数包括:通过当前节点(xn,yn)、父节点(x
n-1
,y
n-1
)、子节点(x
n+1
,y
n+1
)和目标节点(x
end
,y
end
)的位置关系,利用以下公式判断agv是否发生转向,其中,当m1与m2相等时,agv处于直行行驶状态;以及当m1与m2不相等时,agv发生转向:
[0062]
m1=(x
n-x
n-1
)(y
n+1-yn)
[0063]
m2=(y
n-y
n-1
)(x
n+1-xn),
[0064]
根据以上判断结果对启发函数进行修正:
[0065][0066]
其中,为所述转弯修正代价参数,保证所述agv优先选择直行且
[0067]
具体地,在改进启发函数中添加转弯修正代价参数包括:转弯修正代价参数的选取直接影响改进启发函数值的大小,其中,当转弯修正代价参数选取过大时,agv产生绕行现象;当转弯修正代价参数选取过小时,无法发挥修正作用;当选取合适的转弯修正代价参数时,保证agv优先选择直行,并且避免agv出现绕行现象。
[0068]
利用改进a*算法计算多agv的出库路径包括:采用栅格地图法对agv工作环境进行建模,输入agv的起始节点和目标节点,并分别创建用于存储待检测节点的openlist链表和用于存储已检测节点的closelist链表;将agv的起始节点s的坐标放入openlist链表中;遍
历openlist链表中所有节点,寻找改进后的代价函数值最小的节点并将其设置为当前节点;将当前节点移入到closelist链表中;检测当前节点的四邻域节点,忽略已经在closelist表中的节点或者障碍物节点,然后判断剩余的邻域节点是否在openlist链表中;当剩余的邻域节点不在openlist链表中时,将剩余的邻域节点加入到openlist链表中;将当前节点设置为其父节点,分别计算各个剩余的邻域节点的f
*
(n)值、g(n)值和h
*
(n)值,其中,h
*
(n)为从当前节点n到目标节点m的估计路径距离;以及跳转至以下步骤:判断是否找到agv的目标节点m。当剩余的邻域节点在openlist链表中时,判断当agv经过当前节点计算的g(n)值是否更小,其中,若g(n)值更小,则将剩余的邻域节点的父节点设置为当前节点,并重新计算g(n)值和f
*
(n)值,其中,f
*
(n)为从起始节点s经过当前节点n到目标节点m的估计路径距离;g(n)为起始节点s到当前节点n的实际路径距离;以及判断是否找到agv的目标节点m,其中,当找到目标节点m时,从agv的目标节点m依次寻找父节点至agv的起始节点s,所获得的路径为基于改进a*算法的agv行驶路径。当没有找到agv的目标节点m时,继续判断openlist链表是否为空链表,其中,当openlist链表不为空链表时,返回以下步骤:遍历openlist链表中所有节点,直到openlist链表为空链表为止。出库路径的起始节点和目标节点分别为货架位置和仓储系统的出口。
[0069]
参考图6,本发明的一个具体实施例,公开了一种仓储系统的出入库控制装置,包括:相似度获取模块602,用于根据历史出货批次对零散货物进行编码处理,并利用历史出货批次产生的编码计算货品间的相似度;货品组生成模块604,用于根据相似度对零散货物进行组合以生成货品组,其中,将处于待入库状态的每个货品组视为一个货架单元,以及货架单元与货架位置一一对应;入库路径计算模块606,用于利用改进a*算法计算多agv的入库路径,多agv的入库路径包括改进启发函数和在改进启发函数中添加转弯修正代价参数,其中,每个货架位置与agv的入库路径相对应;货品组设置模块608,用于基于agv的入库路径将货品组放置在对应的货架单元上;以及出库路径计算模块610,用于利用改进a*算法计算多agv的出库路径,其中,多agv的出库路径包括改进启发函数和在改进启发函数中添加转弯修正代价参数,并且入库路径的起始节点不同于出库路径的目标节点。
[0070]
下文中,将参考图2至图5,以具体实例的方式,对根据本发明实施例的仓储系统的出入库控制方法进行详细说明。
[0071]
本技术的具体实例可以通过以下技术手段来实现:
[0072]
基于协同进化思想的启发,分析货物、货架、agv车路径规划的相互影响关系,提出了货架规划和路径规划协同进化算法,实现货架规划和agv历经规划协同优化,该协同优化算法基于a
*
算法(a*(a-star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法)上进行改进,其发明点在于将货位规划和路径规划协同考虑后,结合最优路径函数分析,将相似度高的货架分散放开,易于agv在任何站点都能够较快地找到货物,并且将高频货物放在路径不重合的地方,这样可以保证当任务多时,不会造成因路径重合带来的agv堵塞,从整体上提高仓库出入货效率。
[0073]
具体来说,a
*
算法具有较高的路径搜索效率和准确性,再结合合理的货位摆放,为出库路径的规划提供辅助,使用动态更新算法产生一个考虑货位摆放因素的优化运输方案。
[0074]
协同优化算法首先根据历史出货批次对零散货物进行编码处理;利用货物批次产
生的编码计算“货品间”相似度,并因此对零散货物进行组合,生成货品组,每一个货品组为待入库状态,视为一个货架单元,与货位一一对应。其次,在存货品组入库之前,先为每一个货位计算相应的出库路径,记录并保存货架位置对应的出库路径。基上述计算结果,算法进入协同优化模块,即货品组放入货位的顺序是自由的。这种随机放置的方案构成协同优化过程的货位因素,而货品组不同的摆放方案会在出货任务到来时生成不同的运输路线,这种不确定的运输路线就是优化过程的路径因素,最后,利用改进a
*
算法处理多台agv路径规划算法,利用改进启发函数和转弯修正代价参数,来提高仓储物流系统的总台效率,计算不同出库方案下适应度函数的值,在不断迭代的过程中搜寻最优方案,在确定货品组入库摆放的同时,确定出库路径。
[0075]
1、协同优化数学模型
[0076]
通过对智能仓储环节中各部分的关系进行耦合分析,提出了货位协同优化的数学模型。该模型与传统智能仓储优化算法的区别在于,将路径规划和货架优化归为一个整体,并用数学公式表达两者间的关系。具体变量及变量约束条件描述如下,f(x)为协同优化的总目标函数,f
path
为所有任务出库总时间花费,f
other
为除agv车辆路径规划外算法其他部分的开销,α和β分别为影响系数,且α+β=1。n为agv车辆总数,ni为当前agv车辆编号,i=1,2

n,i∈n。m为出货任务总数,mi为当前出货任务编号,i=l,2

m,i∈n。g为货品总数。gi为当前货品编号,i=1,2

g,i∈n。(i,j)表示当前坐标点位置,i,j∈n,i《=1,j《=j.s为货架总数,μ(0《μ《1)为车辆从终点返回起点的惩罚系数。具体变量及变量约束条件描述如下,f(x)为协同优化的总目标函数(其中x表示任意节点),f
path
为所有任务出库总时间花费,f
other
为除agv车辆路径规划外算法其他部分的开销,α和β分别为影响系数,且α+β=1。n为agv车辆总数,ni为当前agv车辆编号,i=1,2

n,i∈n。m为出货任务总数,mi为当前出货任务编号,i=l,2

m,i∈n。g为货品总数。gi为当前货品编号,i=1,2

g,i∈n。(i,j)表示当前坐标点位置,i,j∈n,i《=1,j《=j.s为货架总数,μ(0《μ《1)为车辆从终点返回起点的惩罚系数。
[0077]
具体来说,本文协同优化的总体目标如公式1表示:
[0078]
f(x)=αf
path
+βf
other
,α+β=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式1
[0079]
其中,α和β为影响系数,α系数为“路径最短”的权重,关注算法寻找出来的路线最短,β系统为“额外开销”的权重,关注碰撞、冲突、转弯等额外时间消耗,即关注多个agv选择的运输路径相互之间尽可能不重合,以免发生冲突等。
[0080]
当m》q时,即任务数大于车辆总数时,车辆从终点返回起点需要一定时间,见公式2:
[0081][0082]
当m《=q时,即车辆数大于任务数时,每个任务一辆agv车,见公式3:
[0083][0084]
其中,μ为agv从所述目标节点返回所述起始节点的惩罚系数,f
m,q
为某一次调度时车辆运行花费时间,其中(i,j)为目标节点,fc为车辆出现堵塞后所等待的时间,γ为动态
参数,所述动态参数γ与所述起始节点经过当前节点n到目标节点的估计路径距离f
*
(n)/v成正比,v是agv车速,并且fi是agv到达i点所需理论时间,fj是agv到达j点所需理论时间,f
i-i
是agv到达i点过程中遇到障碍物所需等待时间,f
j-j
是agv到达j点过程中遇到障碍物所需等待时间,详见公式4。
[0085]fm,q
=γ(fi+fj+f
i-i
+f
j-j
)+fcꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式4
[0086]fother
主要包括两个部分,一个是物品间相关度计算时间f
gi,gj
,用于物品的分类,另外一个就是货架优化算法的消耗时间fs,此处i+1《g,见公
[0087]
式5:
[0088][0089]
下面我们将从货品相似度算法、多agv路径规划算法、货位规划和agv路径规划协同优化算法三部分详细描述本文提出的货位规划与agv路径规划协同优化算法的实现思路。货品相似度算法和多agv路径规划算法将为最终的货位路径协同优化算法提供支持。
[0090]
2、货品相似度算法
[0091]
本文对实际正在运维的仓储货物数据进行处理,消洗去除操作时间、货品名称等无关数据,抽取货品编号(即货品的唯一标示)、批次(同一批次货品可理解为在同一时间内执行出入库)等数据进行数据分析,以0和1标识该编号货品是否在该批次出货,每个货品都是一个由批次数各维度组成的向量。通过余弦相似度算法计算该向量间的相似度,获得货品相似度具体来说,基于余弦相似度的货品相似度计算方法具体流程如图2所示。
[0092]
首先,根据仓储数据信息计算最大出货批次数。将货品的出货信息记录下来,形成向量表。例如2号货物的向量值为(1,0,1,1,0),1表示出货,0表示无出货,按顺序表示出货次数,(1,0,1,1,0)分别代表在1、3、4批次出货,其他货品以此类推。在此基础上累加货品出库总次数,计算出库频率。基于余弦公式6计算两货物间的余弦值。由于货品和它本身和的余弦值为1,代表两货物最为相似。因此,我们将货物余弦值减去1再求其绝对值,和1的差值越小,证明相似度越高,以这个新的值代表两货物间的相似度,最终会获得一个货品和货品相似的上三角矩阵。根据这个矩阵的值,即可计算出一个货品组。举例说明,如果两个货品组的三角矩阵都是(1,0,1,1,0),则在公式6中,n=5,x1=1,x2=0,x3=1,x4=1,x5=0;y1=1,y2=0,y3=1,y4=1,y5=0:
[0093]
则两个货品组完全一样。
[0094][0095]
3、基于改进a
*
算法的agv路径规划
[0096]
基于传统a
*
算法的agv路径规划在路径搜索过程中具有路径搜索效率高且实现简单等优点,但agv的路径搜索效率受启发函数的影响较大,针对传统a
*
算法中的启发函数给出如下几点改进。
[0097]
(1)启发函数的改进
[0098]
当a
*
算法的启发函数h(n)采用曼哈顿距离的计算方式时,h(n)值越接近当前节点到目标节点的最短路径距离,算法搜索效率越高,但实际情况下往往会出现h(n)与当前节点到目标节点的最短距离相差较大的情况。在实际agv运行过程中,用(al
x
,aly,)表示当前节点(xn,yn)到目标节点(x
end
,y
end
)实际路径距离,a
*
算法在搜索路径时,h(n)中会出现|x
n-x
end
|《al
x
或|y
n-y
end
|《aly,此时h(n)比实际路径距离短很多,a
*
算法搜索路径遍历的节点数较多,从而降低了a
*
算法搜索路径效率。
[0099]
针对传统a
*
算法在agv路径规划中普遍存在遍历节点数多的问题,本专利采用加权曼哈顿距离对a
*
算法的h(n)进行改进,改进后的h(n)为:
[0100]h*
(n)=λ1|x
n-x
end
|+λ2|y
n-y
end
|
ꢀꢀꢀꢀꢀꢀꢀꢀ
公式7
[0101]
选取合适的λ1和λ2值可以一定程度上提高a
*
算法路径规划中路径搜索效率,但针对采用加权曼哈顿距离作为启发函数的改进a
*
算法规划出的路径仍然存在路径转向次数较多的问题,本文在加权曼哈顿距离作为启发函数中引入转弯修正代价参数,具体方法如下:
[0102]
通过当前节点(xn,yn)、父节点(x
n-1
,y
n-1
)、子节点(x
n+1
,y
n+1
)和目标节点(x
end
,y
end
)的位置关系,利用公式8来判断agv是否发生转向。
[0103]
m1=(x
n-x
n-1
)(y
n+1-yn)
[0104]
m2=(y
n-y
n-1
)(x
n+1-xn)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式8
[0105]
若公式8计算的结果m1和m2相等,则agv为直行行驶状态,否则agv发生转向,如图3所示。
[0106]
根据判断结果对启发函数h
*
(n)修正:
[0107][0108]
其中,为所述转弯修正代价参数,保证所述agv优先选择直行且
[0109]
经过改进后的代价估计函数f
*
(n)表示如公式10所示:
[0110]f*
(n)=g(n)+h
*
(n)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式10
[0111]
改进后的代价估计函数f
*
(n)较改进前的代价估计函数f(n)而言,主要是对其启发函数h(n)部分进行了改进,采用加权曼哈顿距离作为启发函数,使得距离估计成本更接近最短距离,减少了算法遍历节点数。另外,在启发函数中引入转弯修正代价参数,减少了路径转弯次数。
[0112]
(2)转弯修正代价参数
[0113]
大多数agv路径规划算法一般以路径长度为评价指标,但路径转弯次数过多从而导致的路径转向增加的时间成本却很少被考虑。如图4所示,agv由起始节点a出发到达目标节点b的路径有三条,分别为路径1、路径2和路径3,这三条路径的曼哈顿距离相等且为最短距离,但路径2和路径3存在多处路径转折点,而路径1相较于路径2和路径3只有一个转折点,故路径1不仅路径距离最短而且时间较优。故在agv的路径规划过程中考虑转弯代价是有必要的,其具体体现在:单个agv在执行任务时,一般路径距离较短,若agv行驶路径转弯次数过多,会造成agv任务执行时间显著提高,而且频繁的转向一定程度上会使agv的耗能增加。
[0114]
本文通过在公式9中的h
*
(n)的计算中引入转弯修正代价参数从而增加agv路径出现转向的代价使得规划出的路径转向次数减少,具体如下:的选取直按影响h
*
(n)值的大小,从而影响代价估计函数f
*
(n)值的大小。若转弯修正代价参数选取过大,agv可能会产生绕行现象;若转弯修正代价参数选取过小,通常起不到修正作用;若选取合适的转弯修正代价参数,既可以保证agv优先选择直行,而且避免agv出现绕行现象。
[0115]
(3)基于改进a
*
算法的agv路径规划设计
[0116]
本文基于改进a
*
算法的单agv路径规划流程如图5所示。
[0117]
其中:agv的起始节点s的坐标为(x
start
,y
start
);目标节点m的坐标为(x
end
,y
end
);f
*
、g、h
*
分别为公式9中的f
*
(n)、g(n)、h
*
(n)。
[0118]
具体步骤如下:
[0119]
步骤1:采用栅格地图法对agv工作环境建模,输入agv的起始节点s和目标节点m,分别创建openlist链表和closelist链表存储待检测节点和已检测节点;
[0120]
步骤2:将agv起始节点s的坐标(x
start
,y
start
)放入openlist链表中;
[0121]
步骤3:遍历openlist链表中所有节点,寻找f
*
(n)值最小的节点并将其设置为当前节点;
[0122]
步骤4:将当前节点移入到closelist链表中;
[0123]
步骤5:检测当前节点的四邻域节点(东南西北),将已经在closelist表中或者障碍物节点忽略,然后判断剩余的邻域节点是否在openlist链表中,若剩余的邻域节点不在openlist链表中,则转步骤6;否则,转步骤7;
[0124]
步骤6:将剩余的邻域节点加入到openlist链表中,并将当前节点设置为其父节点,分别计算f
*
(n)值、g(n)值和h
*
(n)值,然后转至步骤8;
[0125]
步骤7:判断agv经过当前节点计算的g(n)值是否更小,若g(n)值更小,则将该节点的父节点设置为当前节点,并重新计算g(n)值和f
*
(n)值;
[0126]
步骤8:判断是否找到agv的目标节点m,若找到目标节点m,则转步骤9;否则转步骤10;
[0127]
步骤9:从agv的目标节点m依次寻找父节点至agv的起始节点s,所获得的路径即为基于改进a
*
算法的agv行驶路径,并转步骤11;
[0128]
步骤10:判断openlist链表是否为空链表,若为空链表,则转步骤11;若不为空链表,则转步骤3;
[0129]
步骤11:算法结束。
[0130]
本发明专利目的是克服上述现有技术问题,提出了一种仓储货位规划和路径规划的系统控制方法,该协同优化算法基于a*算法上进行改进,其发明点在于将货位规划和路径规划协同考虑后,结合最优路径函数分析,将相似度高的货架分散放开,易于agv在任何站点都能够较快地找到货物,并且将高频货物放在路径不重合的地方,这样可以保证当任务多时,不会造成因路径重合带来的agv堵塞,从整体上提高仓库出入货效率。
[0131]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0132]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1