一种车辆路径规划的方法及系统与流程

文档序号:11100862阅读:583来源:国知局
一种车辆路径规划的方法及系统与制造工艺

本发明涉及计算机领域,尤其涉及一种车辆路径规划的方法及系统。



背景技术:

目前,自动导引运输车(AGV)做为货到人的应用的方式,已经被广泛应用,亚马逊的kiva系统就是这方面的经典案例。但是在数量很大的AGV应用中,交通调度一直是非常复杂的问题,对于如何高效地提高调度效率一直是一个不断优化的问题。

目前对于AGV路径规划的方法,大多采用最短路径的方法。主要是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。

在车辆很多的情况下,由于订单分布的确定性和分布广泛性,虽然解决车辆行走的路径最短,但很难避免车辆路径有过多的交叉和碰撞。车辆交叉点过多导致需要互相等待,效率低下。



技术实现要素:

本发明的一个方面提供了一种车辆路径规划方法,包括:将车辆行驶区域划分成至少一个子区域,每个子区域设置有终点;计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。

本发明的另一个方面提供了一种车辆路径规划系统,包括:至少一个处理器;至少一个存储器,存储有可执行指令,所述指令在被所述至少一个处理器执行时,使得所述处理器:将车辆行驶区域划分成至少一个子区域,每个子区域设置有终点;计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。

本发明的另一个方面提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令在由一个或多个处理器执行时,可以使所述一个或多个处理器执行:将车辆行驶区域划分成至少一个子区域,每个子区域设置有终点;计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。

本发明的另一个方面提供了一种车辆路径规划系统,包括:区域划分模块,将车辆行驶区域划分成至少一个子区域,每个子区域设置有终点;路径规划模块,计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。

附图说明

为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本发明实施例的车辆路径规划的原理示意图。

图2示意性示出了根据本发明实施例的车辆路径规划系统的应用场景。

图3示意性示出了根据本发明实施例的车辆路径规划方法。

图4示意性示出了根据本发明实施例的车辆路径规划系统的框图。

图5示意性示出了根据本发明另一实施例的车辆路径规划系统的框图。

具体实施方式

根据结合附图对本发明示例性实施例的以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。

在本发明中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。

在本说明书中,下述用于描述本发明原理的各种实施例知识说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相思功能和操作。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

图1示意性示出了根据本发明实施例的车辆路径规划的原理示意图。

如图1所示,矩形可以表示车辆行驶的整体区域;曲线可以表示划分整体区域形成的子区域的边界;五角星可以表示子区域的终点;三角形可以表示订单分布;圆形可以表示车辆。

根据本发明的实施例,上述车辆行驶的整体区域可以是仓库,车辆可以为自动导引运输车(AGV)。车辆按照规划好的路径行驶,在仓库中找到订单中的商品并运送至仓库外边缘的终点处。在本发明实施例中,根据订单的分布将仓库划分成多个子区域。划分规则可以根据实际需要确定。例如,可以将划分规则设置为保证每个子区域内订单数量基本相等。这里的基本相等可以包括相等,或差值小于预设范围的情况。根据订单的数量为每个子区域分配车辆,为每个子区域内的车辆规划行驶路径,使得所述车辆只允许领取该子区域内的任务并且仅在该子区域内进行活动。每一个子区域都固定有至少一个终点,所述车辆完成该子区域的任务后最终到达终点。这样,每个子区域内的车辆相对固定,可以避免车辆走公共的区域而导致的路径交叉。由于订单分布的不确定性,每个子区域内的订单数量随着时间的推移产生变化,这时所划分的区域会根据一定的规则进行大小和边界的调整,同时也会调整区域内车辆的数量。

下面参考图2和图3描述根据本发明实施例的车辆路径规划系统及车辆路径规划方法。

图2示意性示出了根据本发明实施例的车辆路径规划系统200的应用场景。根据本发明的实施例,车辆路径规划系统200可以应用于规划货物运输车辆在仓库中的路径,但本领域技术人员可以理解,车辆路径规划系统200也可以应用于其他应用场景的路径规划。如图2所示,车辆路径规划系统200可以与仓储软件系统300、地理信息系统400、AGV控制系统500和一个或多个AGV 600进行交互。上述系统可以采用一个或多个计算机系统来实现。所述一个或多个计算机系统可以集中部署在本地,或者可以分布式地布置在多个地点,并且通过通信网络实现交互。

图3示意性示出了根据本发明实施例的车辆路径规划方法。根据本发明的实施例,该方法例如可以由车辆路径规划系统200实现。

该方法开始于步骤S301。

在步骤S302,从仓储软件系统300获取订单数据。所述获取可以是车辆路径规划系统200从仓储软件系统300拉取订单数据,也可以是仓储软件系统300向车辆路径规划系统200推送订单数据。根据本发明实施例,所述获取可以是定时自动获取,也可以是根据系统管理者的指令而获取。订单数据例如可以包括货物种类、型号、供货商名称、购买数量等,但不限于此。

在步骤S303,根据订单数据从仓储软件系统300获取相应产品的库存数据。该库存数据例如可以包括所订购货物的储位或容器信息。例如,某一订单订购了一部手机,则库存数据可以包括该手机的仓库编号、容器或者储位编号。

在步骤S304,根据订单的库存数据,从地理信息系统400获取所订购货物的仓库坐标数据、容器或储位坐标数据。

在步骤S305,根据订单数据、库存数据和上述仓库坐标数据、容器或储位坐标数据,将整个仓库区域划分为多个子区域。划分规则可以根据实际需要确定。例如,可以将划分规则设置为保证每个子区域内订单数量基本相等。这里的基本相等可以包括相等,或差值小于预设范围的情况。

每个子区域设置有终点。根据本发明实施例,根据订单数据、库存数据、仓库坐标数据、储位或容器坐标数据将车辆行驶区域划分成至少一个子区域,每个子区域设置有至少一个终点,所述终点设置在所述车辆行驶区域的外侧。所述车辆行驶区域可以是整个仓库。所述车辆可以是带有导引装置且具有移载功能的运输车,例如AGV自动引导运输车。

在本发明实施例中,所述将车辆行驶区域划分成至少一个子区域包括将车辆行驶区域划分成2n-1个子区域,n为正整数。所述将车辆行驶区域划分成2n-1个子区域是根据订单数据平分原则,保证每个子区域内的订单数量相同。根据本发明实施例,随着时间推移,每隔一定的时间,子区域内的订单数量也会变化,这时所划分的子区域会根据一定的规则进行大小和边界的调整。根据本发明的实施例,根据仓库的面积,确定所需子区域的数量,使用二分法根据订单数量划分仓库直至达到所需的子区域数量。例如,仓库面积为S,则所需的数量Q可以通过中间值A=S/100m2来确定,Q取A最接近的2n-1(n为正整数)的值为所需的子区域数量。例如,有仓库面积为S=10000m2,则A=S/100m2=100,26=64,27=128,A更接近128,则所需子区域的数量Q=128。再例如,有仓库面积为S=1600m2,则A=S/100m2=16,24=16,A=16,则所需子区域的数量Q=16。在本发明实施例中,所述使用二分法根据订单数量划分仓库直至达到所需的子区域数量时,遇到订单数量为单数,则划分的两个区域一个对(订单数量/2)的值向上取整,一个对(订单数量/2)的值向下取整,例如当该区域订单数量为125份是,对其划分成两个子区域,则其中一个区域对(125/2)向下取整为62份,另一个区域对(125/2)向上取整为63份。例如,当仓库面积为S=1600m2,则需要将仓库划分成16个子区域,此时订单总数量为500份,使用二分法,先将仓库划分为2个子区域,每个子区域内有250份订单;再将两个子区域划分为4个子区域,每个子区域内有125份订单;继续将4个子区域划分为8个子区域,则其中4个子区域内有62份订单,4个子区域有63份订单;最后将8个子区域划分成为16个子区域,则其中12个子区域内有31份订单,4个子区域内有32份订单。

在步骤S306,从AGV控制系统500获取车辆状态。根据本发明实施例,所述车辆状态包括可供使用的车辆情况,所述可供使用的车辆情况可以包括所有车辆中空闲的车辆以及对于单个车辆而言是否能够正常工作等。根据本发明的实施例,还可以从AGV控制系统500获取车辆位置数据。

在步骤S307,为每个子区域分配车辆。根据本发明实施例,根据子区域划分情况、可供使用的车辆情况和车辆位置数据来为每个子区域分配车辆。在本发明实施例中,根据每个子区域的订单数据和每辆车的处理能力确定该区域需要的车辆数量。例如,所需车辆数量CQ=该区域订单总量OQ/车辆处理能力C,优选地,对CQ进行向上取整。例如,当子区域为16个,订单总量为500份,车辆处理能力C=10/辆,则根据步骤S4,每个子区域的订单数为31或者32份,则该子区域所需车辆数量CQ=32/10=3.2,向上取整,则对该子区域分配4辆车,根据距离该子区域距离较近,且能够正常工作的空闲车辆4辆分配给该子区域。根据本发明的实施例,优先向每个子区域分配该子区域内的空闲车辆,当车辆不足时,可以调用邻近子区域内的空闲车辆。

在步骤S308,计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。根据本发明实施例,所述计算每个子区域内的车辆行驶路径包括通过Dijkstra算法计算最短路径最优解。在本发明实施例中,根据每个子区域内的订单分布情况,车辆分配情况计算出每辆车的行驶路径,例如某辆车在坐标A处提取货物1,然后去坐标B处提取货物2,最终将货物1和货物2送至该区域的终点。

在步骤S309,将每个子区域内的车辆行驶路径下发到该分配给该子区域的AGV 600。这样,该子区域的AGV 600可以根据接收的指定路径,完成货物搬运任务。

该方法在步骤S310处结束。

根据本发明实施例,将仓库划分成多个子区域,每个子区域内的车辆相对固定,可以避免车辆走公共的区域而导致的路径交叉,减少车辆碰撞的机会,减少车辆排队等待的时间,大大提升搬运的效率。由于订单分布的不确定性,每个区域的订单数量可能随时间变化,所划分的子区域随着时间的推移,子区域内的订单数量也会随着变化。这时,可以每隔预定时间重复执行上述方法,对所划分的子区域进行大小和边界的调整,并调整分配给该子区域的车辆数量。或者,可以在发现订单数量和/或分布的变化超出预定阈值时,对所划分的子区域进行大小和边界的调整,并调整分配给子区域的车辆数量。例如,当某个子区域的订单数量激增或骤减时,可以进行上述调整。

图4是示出了根据本公开实施例的图2所示车辆路径规划系统200的框图。车辆路径规划系统200包括处理器210,例如通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器210还可以包括用于缓存用途的板载存储器。处理器210可以是用于执行参考图2和图3描述的根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

车辆路径规划系统200还可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质220,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

可读存储介质220包括计算机程序221,该计算机程序221包括代码/计算机可读指令,其在由处理器210执行时使得处理器210可以执行例如上面结合图2和3所描述的方法流程及其任何变形。

计算机程序221可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序221中的代码可以包括一个或多个程序模块,例如包括221A、模块221B、……模块221F。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器210执行时,使得处理器210可以执行例如上面结合图2和3所描述的方法流程及其任何变形。

根据本发明的实施例,车辆路径规划系统200还可以包括用于从其他实体接收信号的输入单元230、以及用于向其他实体提供信号的输出单元240。输入单元230和输出单元240可以被布置为单一实体或者是分离的实体。输入单元230和输出单元240可以在处理器210的控制下,用于车辆路径规划系统200与仓储软件系统300、地理信息系统400、AGV控制系统500和一个或多个AGV 600之间的交互。

下面参考图5描述根据本发明另一实施例的车辆路径规划系统700的框图。与车辆路径规划系统200类似地,车辆路径规划系统700可以与仓储软件系统300、地理信息系统400、AGV控制系统500和一个或多个AGV 600进行交互,在此不再赘述。

如图5所示,车辆路径规划系统700包括订单数据获取模块710、库存数据获取模块720、坐标数据获取模块730、区域划分模块740、车辆状态获取模块750、车辆分配模块760、行驶路径计算模块770和路径下发模块780。

订单数据获取模块710从仓储软件系统300获取订单数据。所述获取可以是车辆路径规划系统200从仓储软件系统300拉取订单数据,也可以是仓储软件系统300向车辆路径规划系统200推送订单数据。根据本发明实施例,所述获取可以是定时自动获取,也可以是根据系统管理者的指令而获取。订单数据例如可以包括货物种类、型号、供货商名称、购买数量等,但不限于此。

库存数据获取模块720根据订单数据从仓储软件系统300获取相应产品的库存数据。该库存数据例如可以包括所订购货物的储位或容器信息。例如,某一订单订购了一部手机,则库存数据可以包括该手机的仓库编号、容器或储位编号。

坐标数据获取模块730根据订单的库存数据,从地理信息系统400获取所订购货物的仓库坐标数据、容器或储位坐标数据。

区域划分模块740根据订单数据、库存数据和上述仓库坐标数据、容器或储位坐标数据,将整个仓库区域划分为多个子区域。划分规则可以根据实际需要确定。例如,可以将划分规则设置为保证每个子区域内订单数量基本相等。这里的基本相等可以包括相等,或差值小于预设范围的情况。

每个子区域设置有终点。根据本发明实施例,根据订单数据、库存数据、仓库坐标数据、储位或容器坐标数据将车辆行驶区域划分成至少一个子区域,每个子区域设置有至少一个终点,所述终点设置在所述车辆行驶区域的外侧。所述车辆行驶区域可以是整个仓库。所述车辆可以是带有导引装置且具有移载功能的运输车,例如AGV自动引导运输车。

在本发明实施例中,所述将车辆行驶区域划分成至少一个子区域包括将车辆行驶区域划分成2n-1个子区域,n为正整数。所述将车辆行驶区域划分成2n-1个子区域是根据订单数据平分原则,保证每个子区域内的订单数量相同。根据本发明实施例,随着时间推移,每隔一定的时间,子区域内的订单数量也会变化,这时所划分的子区域会根据一定的规则进行大小和边界的调整。根据本发明的实施例,根据仓库的面积,确定所需子区域的数量,使用二分法根据订单数量划分仓库直至达到所需的子区域数量。例如,仓库面积为S,则所需的数量Q可以通过中间值A=S/100m2来确定,Q取A最接近的2n-1(n为正整数)的值为所需的子区域数量。例如,有仓库面积为S=10000m2,则A=S/100m2=100,26=64,27=128,A更接近128,则所需子区域的数量Q=128。再例如,有仓库面积为S=1600m2,则A=S/100m2=16,24=16,A=16,则所需子区域的数量Q=16。在本发明实施例中,所述使用二分法根据订单数量划分仓库直至达到所需的子区域数量时,遇到订单数量为单数,则划分的两个区域一个对(订单数量/2)的值向上取整,一个对(订单数量/2)的值向下取整,例如当该区域订单数量为125份是,对其划分成两个子区域,则其中一个区域对(125/2)向下取整为62份,另一个区域对(125/2)向上取整为63份。例如,当仓库面积为S=1600m2,则需要将仓库划分成16个子区域,此时订单总数量为500份,使用二分法,先将仓库划分为2个子区域,每个子区域内有250份订单;再将两个子区域划分为4个子区域,每个子区域内有125份订单;继续将4个子区域划分为8个子区域,则其中4个子区域内有62份订单,4个子区域有63份订单;最后将8个子区域划分成为16个子区域,则其中12个子区域内有31份订单,4个子区域内有32份订单。

车辆状态获取模块750从AGV控制系统500获取车辆状态。根据本发明实施例,所述车辆状态包括可供使用的车辆情况,所述可供使用的车辆情况可以包括所有车辆中空闲的车辆以及对于单个车辆而言是否能够正常工作等。根据本发明的实施例,车辆状态获取模块750还可以从AGV控制系统500获取车辆位置数据。

车辆分配模块760为每个子区域分配车辆。根据本发明实施例,根据子区域划分情况、可供使用的车辆情况和车辆位置数据来为每个子区域分配车辆。在本发明实施例中,根据每个子区域的订单数据和每辆车的处理能力确定该区域需要的车辆数量。例如,所需车辆数量CQ=该区域订单总量OQ/车辆处理能力C,优选地,对CQ进行向上取整。例如,当子区域为16个,订单总量为500份,车辆处理能力C=10/辆,则根据步骤S4,每个子区域的订单数为31或者32份,则该子区域所需车辆数量CQ=32/10=3.2,向上取整,则对该子区域分配4辆车,根据距离该子区域距离较近,且能够正常工作的空闲车辆4辆分配给该子区域。根据本发明的实施例,优先向每个子区域分配该子区域内的空闲车辆,当车辆不足时,可以调用邻近子区域内的空闲车辆。

行驶路径计算模块770计算每个子区域内的车辆行驶路径,使得分配给每个子区域的车辆仅在该子区域内进行活动,最终到达该子区域终点。根据本发明实施例,所述计算每个子区域内的车辆行驶路径包括通过Dijkstra算法计算最短路径最优解。在本发明实施例中,根据每个子区域内的订单分布情况,车辆分配情况计算出每辆车的行驶路径,例如某辆车在坐标A处提取货物1,然后去坐标B处提取货物2,最终将货物1和货物2送至该区域的终点。

路径下发模块780将每个子区域内的车辆行驶路径下发到该分配给该子区域的AGV 600。这样,该子区域的AGV 600可以根据接收的指定路径,完成货物搬运任务。

根据本发明的实施例,订单数据获取模块710、库存数据获取模块720、坐标数据获取模块730、区域划分模块740、车辆状态获取模块750、车辆分配模块760、行驶路径计算模块770和路径下发模块780可以实现为参考图4描述的计算机程序模块,其在被处理器210执行时,可以实现上面描述的相应操作。在备选实施例中,订单数据获取模块710、库存数据获取模块720、坐标数据获取模块730、区域划分模块740、车辆状态获取模块750、车辆分配模块760、行驶路径计算模块770和路径下发模块780中的至少一项可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以用于对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。

尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1