具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。
本发明实施例的主要解决方案是:提取已获取到的各配送任务模型中的 配送位置,以预设格式生成基于所述配送位置的多个任务规划;将已生成的 多个任务规划中,符合所述各配送任务模型配送时间区间的任务规划确认为 有效任务规划;统计所述有效任务规划的数量,并在所述有效任务规划的数 量大于1时,将满足预设条件的一有效任务规划确认为最优任务规划。
由于现有技术生成线路规划时,只通过连接所经线路头尾,形成固定配 送线路规划和配送点已执行无人配送操作,极大地影响了无人配送的效率。
本发明提供一种解决方案,根据接收到的配送任务,对应生成本次任务 的多个路线规划,并在多个线路规划中筛选符合时间窗约束的有效任务规划 后,提取配送距离最短的线路最为本次线路的最优任务规划,以配送任务生 成对应的最优配送任务线路,提高了无人配送任务的效率。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构 示意图。
本发明实施例终端可以是无人车,PC,也可以是智能手机、平板电脑、 便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004, 用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现 这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单 元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无 线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI 接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器 (non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立 于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定, 可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布 置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、 网络通信模块、用户接口模块以及无人配送的路径规划程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台 服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客 户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的无人 配送的路径规划程序,并执行以下操作:
提取已获取到的各配送任务模型中的配送位置,以预设格式生成基于所 述配送位置的多个任务规划;
将已生成的多个任务规划中,符合所述各配送任务模型配送时间区间的 任务规划确认为有效任务规划;
统计所述有效任务规划的数量,并在所述有效任务规划的数量大于1时, 将满足预设条件的一有效任务规划确认为最优任务规划。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
计算各所述有效任务规划的路径节点组成的总路径长度,并比对已计算 出的各有效任务规划的总路径长度,确认总路径长度最短的有效任务规划为 满足预设条件的有效任务规划。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
计算所述任务规划中各任务序列的执行时间,并以此判断所述执行时间 是否满足对应的配送时间区间;
在确认所述执行时间满足对应的配送时间区间时,确认所述任务规划为 有效任务规划。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
将所述执行时间与对应的配送时间区间比对,并在确认所述执行时间位 于对应的配送时间区间内,确认所述执行时间满足对应的配送时间区间。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
在确认一任务规划中所有任务序列的执行时间都满足对应的配送时间区 间时,则所述任务规划为有效任务规划。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
确认与所述任务规划中的各任务序列对应的配送位置,以所述配送位置 为条件获取与所述配送位置对应的配送时间区间。
进一步地,处理器1001可以调用存储器1005中存储的无人配送的路径 规划程序,还执行以下操作:
在所述有效任务规划的数量等于1时,确认所述有效任务规划为所述各 配送任务模型的最优任务规划;
在所述有效任务规划的数量等于0时,提交未生成有效任务规划的提示 信息,并接收基于所述提示信息触发的重新生成任务规划的指令,执行根据 获取到的各配送任务模型中的配送位置,以预设格式生成多个任务规划的步 骤。
参照图2,图2为本发明无人配送的路径规划方法第一实施例的流程示意 图,所述无人配送的路径规划方法包括:
步骤S10,提取已获取到的各配送任务模型中的配送位置,根据所述配送 位置的地点,以预设格式生成基于所述配送位置的多个任务规划,所述任务 规划包括任务序列及路径节点序列;
在已实现无人配送的封闭园区中,基于当前所需配送的快件信息,向所 述快件的对应收货人发送快件配送预约信息,并接收基于所述配送预约信息 返回的配送任务模型,所述配送任务模型中包含有任务序号、配送位置和时 间窗约束,其模型的实现方法如下:
Task:{Task.ID,Task.Position,Task.TimeWindow}
其中,所述配送任务模型中的参数,还包括以下内容:
Task.Position:{Position.x,Position.y},表示所述配送位置在已定义拓扑 地图中的位置坐标。
TimeWindow:{TimeWindow.EarliestTime,TimeWindow.LastestTime},表 示为基于配送任务模型中配送位置的对应配送时间窗约束,即在所述配送位 置执行配送任务的时间区间,包含最早配送时间和最晚配送时间。所述配送 时间窗约束并包含在配送任务点的配送等待时间,所述配送等待时间加在后 文计算最早执行时间中,即在每个任务点,增加一个平均等待时间。
根据已获取到的多个配送任务模型,以预设格式生成基于所述各配送任 务模型的多个任务规划,其中,所述各任务规划的内容中,包含所述各配送 任务模型的信息,即以所述各配送任务模型中的配送位置为基础,以预设格 式生成多个任务规划。所述预设格式,为所述无人配送路径规划方法的以已 定义条件为基础的任务规划生成方式,所述已定义条件,包括各配送点之间 的最短路径、配送点与出发点的距离大小、配送时间等等,并基于所述已定 义条件重复组合,生成多个任务规划的信息,其所述任务规划包括任务序列及路径节点的内容,即基于所述任务序列的顺序,执行路径节点的路线方式, 以实现本次任务规划的配送任务,所述任务序列即为对应的所述各配送任务 模型中的配送点信息,其所述配送点信息,在生成任务序列之后,顺序已打 乱。在此提供一种以各配送点之间的最短路径为条件生成任务规划的方式, 可查看图3,如下所述:
如图3所述的拓扑地图上任意两个节点之间的最短路径问题等效于网络 拓扑中任意两个节点之间的最短路径,其描述如下:
输入:
1)图G={V,E}及其耦合矩阵A=(aij),以描述拓扑地图;
2)起点vs∈V,终点ve∈V;
输出:
1)最短路径序列
其中,最短路径序列PointSeries满足vi∈V,i=1,2,3...ns,v1=vs,其中ns 为路径上的节点数。
本方案采用Dijstra算法计算网络拓扑中任意两个节点之间的最短路由。Dijstra算法的基本思想是从起始点为中心逐步向外层扩展(即首先遍历起点 在拓扑矩阵中的一跳邻居,然后遍历其二跳邻居,以此类推),直到扩展到终 点为止。在扩展的过程中,不断更新起点到各个节点的最短路径。Dijstra算 法流程如下:
1)对每个节点vp∈V,给定一个到起点vs的距离初始值L(p),其中L(s)=0 其他点的初始值为Inf。
2)定义两个集合S和U,其中S为走访过的节点组成的集合,起点到这些 点的最短路径和最短距离已经确定,在后续的过程中不在改变;U为未确定最 短路径和最短距离的节点组成的集合。初始时S={vs},U=V/vs。置当前点vc=vs。
3)对于当前点vc,考虑它的所有未走访的一跳邻居节点vj,并更新vj的距
离值为:L(j)=min{L(j),L(c)+acj}
4)把当前点vc标记为走访过的点,即S=S∪{vc},U=U/vc。L(c)就是点vs到 vc的最短距离,而且以后不再检查S中的节点。
5)若ve∈S或S=V,算法结束。否则,取U中距离值L(vp)最小的点vp, 将当前点vc设为vp的父节点,然后置vp为下一个当前点vc,转步骤3。
当达终点时,依次回溯其各步父节点,直到达到起点为止,即得到了从起 点到终点的最短路径。
注意Dijstra算法的基本思想是从起始点为中心逐步向外层扩展,但每一 步扩展时,只取集合U中距离值最小的点作为当前节点进入下一步扩展(同时 将其到起点的距离值和路径定为其最短路径和最短距离),其他节点到起点的 距离值和路径在后续扩展中依然可能被更新。
图3给出了一个配送任务间的最短路径示例,图3中标出了Dijstra算法 计算出的从Task5到Task7的最短路径。
步骤S20,将已生成的多个任务规划中,符合所述各配送任务模型配送时 间区间的任务规划确认为有效任务规划;
基于已获取到的各配送任务模型,以预设格式生成的多个任务规划,在 所述多个任务规划中筛选符合所述各配送任务模型的有效任务规划,因所述 各配送任务模型中,基于对应的配送点已有指定的配送时间,则在确认所述 多个任务规划是否符合所述各配送任务模型时,需基于生成的任务模型中的 任务序列对应的配送点,获取所述配送的时间窗约束,即在所述配送点的配 送时间区间,包括配送的最晚时间及最早时间。因此,计算所述任务序列的 执行时间,并将所述执行时间匹配对应的时间窗约束即配送时间区间,在所述执行时间晚于所述时间窗约束的最晚时间时,确认所述执行时间对应的任 务序列不能满足对应的时间窗约束,由于所述任务规划是连续行动的,在一 个任务序列不满足对应的时间窗约束时,所述任务序列对应的任务规划也不 能满足所述各配送任务模型中的配送时间区间,即所述任务规划为无效任务 规划。相反的,在所述任务规划中的所有任务序列的执行时间都满足对应的 时间窗约束即配送时间区间时,则所述任务规划为有效任务规划。
步骤S30,统计所述有效任务规划的数量,并在所述有效任务规划的数量 大于1时,将满足预设条件的一有效任务规划确认为最优任务规划。
在所述步骤S20中已确认的有效任务规划,若所述有效任务规划的数量 大于1个时,基于所述有效任务规划,还需在所述各有效任务规划中执行遍 历法,以筛选符合本次配送任务的优选任务规划,以实现所述无人配送操作 的高效率实行。所述遍历法,为基于所述多个有效任务规划中执行的最优任 务规划的筛选条件,其具体的表现方式,可查看图4及图5,图4中显示了8 个配送任务及配送任务的配送点和线路信息;图5为所述图4中8个配送任 务的最优任务规划,其最优任务规划的提取方式,如下所述:
当任务序列确定后,根据步骤S10中给出的任意配送位置间的最短路径算 法可以得到任意两个配送顺序相邻的任务之间的最短路径,将这些路径首尾 相连,并在第一个任务前加上物流基站到第一个配送任务的最短路径,在最 后一个任务后加上其到物流基站的最短路径,即可得到相应任务序列下的最 短路径。最终遍历所有可能的任务序列,找到最短路径最短的任务序列,即 得到了最优任务规划。基于遍历法的最优任务规划算法如下:
1)根据任务集合生成所有可能的任务序列集合G={Γi}。
2)对集合G中的每个序列Γi,并进行以下循环:
2.1)依次计算Γi中带有前后顺序的每个任务对{(tj,tl)|j<l}的时间相容 性,若出现时间不相容,则Γi为无效任务序列。
2.2)采用Dijstra算法依次计算序列Γi中各个任务之间的最短路径序列, 并加上物流基站到第一个任务的最短路径序列和最后一个任务到物流基站的 最短路径序列,将这些路径按照任务的执行顺序首尾相连,得到Γi对应的最短 路径Γi。
2.3)根据Γi计算总路径长度(即Γi中相邻节点的距离总和)和总时间 消耗(即回到物流基站的最早执行时间)。
3)比较所有有效任务序列的总路径长度,总路径长度最短的任务序列为 最优任务序列,其对应的最短路径为最优路径,即得到最优任务规划。
如上所述,可确认所述无人配送的路径规划方法中的最优任务规划的确 认方式,即所述将满足预设条件的一有效任务规划确认为最优任务规划的步 骤,包括:
计算各所述有效任务规划的路径节点组成的总路径长度,并比对已计算 出的各有效任务规划的总路径长度,确认总路径长度最短的有效任务规划为 满足预设条件的有效任务规划。
基于上述遍历法的执行结果,由图5可知,最优任务序列 Γopt={t8,t4,t2,t3,t7,t6,t5,t1},总路径长度为6922.8米。如上所述,可得出所述遍历 法的执行方式,即所述在所述有效任务规划中执行遍历法,筛选符合本次配 送任务的优选任务规划的步骤,包括:
计算各所述有效任务规划的配送路径,并确认最短配送路径的对应任务 规划为优选任务规划。
另外,所述在所述有效任务规划的数量大于预设数量时,执行遍历法, 筛选符合本次配送任务的优选任务规划的步骤之后,还包括:
若所述有效任务规划的数量等于1,则确认所述有效任务规划为所述各配 送任务模型的最优任务规划;
若所述有效任务规划的数量等于0,则执行提取已获取到的各配送任务模 型中的配送位置,以预设格式生成基于所述各配送任务模型的多个任务规划 的步骤。
在本实施例中,通过获取到的各配送模型的信息,以预设格式生成对应 的各任务规划,并在多个所述各任务规划中进行时间窗约束的筛选操作,以 提取出符合所述各配送任务模型中记载的配送时间窗约束信息的有效任务规 划,并在所述有效任务规划的数量大于一个时,基于所述有效任务规划执行 遍历法,计算所述多个有效任务规划中的最短配送距离的任务规划信息,作 为所述各配送任务模型的最优选任务规划信息,以此,提高了所述封闭园区 的配送任务的高效率。
进一步的,参照图6,图6为图2中步骤S20的步骤的细化流程示意图, 所述基于已生成的多个任务规划,将符合所述各配送任务模型中配送时间区 间的任务规划确认为有效任务规划的步骤,还包括:
步骤S21,计算所述各任务序列的各执行时间,判断所述各执行时间是否 满足各对应配送时间区间;
基于以预设格式生成的各配送任务规划,以单个配送任务规划为单元, 计算所述任务规划中各任务序列的各执行时间,所述任务规划中各任务序列 的各执行时间,为基于当前任务规划中已经生成的任务序列顺序及路径节点 序列,以所述任务节点序列为基础,计算所述任务节点序列位于对应拓扑地 图中已标注的路线的距离与所述无人配送执行交通工具的运行速度,并加上 必需的固定时间例如红绿灯等,以上条件基础的相对关系,计算所述任务规 划的各任务序列的各执行时间。用以判断基于所述各任务序列的各执行时间 是否满足各对应配送时间区间。其中,所述任务序列中,包含有已获取到的 各配送任务模型中的所有配送点的配送任务信息,基于所述各配送模型的信 息生成的所述各任务规划,在此,提供一任务规划的各任务序列的执行时间 的计算方式,如下所述:
如上可知,任务规划包含两个部分,一个是任务序列,一个是路径节点 序列,即:ρ={Γ,γ}
其中,ρ表示一个任务规划,Γ为一个任务序列,Γ为一个节点序列。如 Γ={t4,t1,t3,t5,t2}表示按照任务4→任务1→任务3→任务5→任务2的顺序依次 配送任务;γ={v0,v2,v5,v7,v9,v3,v15,v0}表示按v0→v2→v5→v7→v9→v3→v15→v0节 点的顺序依次运动(两个节点之间沿其对应的道路运动),每个规划都是从物 流基站v0出发,最后仍返回物流基站v0。
要注意的是,由于任务具有时间窗约束,不是所有任务规划都是有效的, 因而在某些规划中,机器人到达某一任务的时间可能已经超过了最晚配送时 间。因而在任务规划时,针对不同规划结果,要计算其执行各个任务的最早 时间,进而检查是否满足时间约束。若规划中存在一个或多个无法满足时间 约束的配送任务,则这个规划是无效的。
假设某一规划中,Γ={tj},Υ={v0...vk...v0},令τ`j表示任务tj(即Task j) 的最早配送时间EarliestTime,表示其最晚配送时间LastestTime,记为节 点序列Υ中对应节点vk的最早执行时间,记为任务序列Γ={tj}中对应任务tj的最早执行时间,建立如下数学模型计算最早执行时间:
1)
2)若vk是任务tj的配送位置,则
为了考虑每个任务的执行时间(即机器人到达任务点后的等待时间:取 放货,扫码等),计算出后,可令即增加一个由经验得到的平 均等待时间。
其中ak-1,k为拓扑矩阵中节点vk-1到节点vk的边权重(即节点vk-1到节点vk的 距离),vel为机器人运动中的平均速度。同时定义
3)若vk是两个任务之间的路径上的一个普通节点,则
同理,为了考虑红绿灯和拥堵,计算出后,可令即增加 一个由经验得到的平均等待时间,其中假设平均等待时间和路径长度ak-1,k成比 例关系。
对于一个配送任务,其最早执行时间代表机器人完成配送的最早时间。 计算最早时间可能包含以下三种情形:1)机器人到达任务位置的时间早于相 应任务的最早配送时间,则机器人要等到任务的最早配送时间才能完成配送; 2)机器人到达任务位置的时间正好处在相应任务的配送时间窗口内,则机器 人立刻完成配送并往节点序列中的下一个节点运动;3)机器人到达任务位置 的时间晚于相应任务的最晚配送时间,则机器人放弃当前配送任务并往节点 序列中的下一个节点运动(实际上此时对应的任务规划是无效的)。
另外,假设任务序列Γ={...tj...tl...},建立如下数学模型计算任务tj和任务tl的时间相容性:设任务tj在拓扑地图中对应的节点为vj,若下式成立则说明任 务tj和任务tl的时间约束是相容的:
即机器人在任务tj的最早配送时间完成配送后,能在任务tl的最晚配送 时间之前到达任务的位置并进行配送,即机器人可以成功完成这两个配送 任务。如上所述,可得出所述计算所述各任务序列的各执行时间,判断所述 各执行时间是否满足各对应时间窗约束的步骤,还包括:
将所述各执行时间与对应的配送时间区间一一对比,若所述执行时间大 于对应的所述配送时间区间的最晚时间,则确认所述各执行时间不满足各对 应配送时间区间。
另外,所述计算所述各任务序列的各执行时间,判断所述各执行时间是 否满足各对应配送时间区间的步骤之前,还包括:
以单个任务规划为单位,确认与所述任务规划中的各任务序列对应的配 送位置,以所述配送位置为条件获取到与所述配送位置对应的配送时间区间。
以单个任务规划为单位,确认所述任务规划的各任务序列对应的各配送 点的信息,所述各配送点的信息包括在所述拓扑地图上的位置坐标,及匹配 送点的名称;并基于已确认的所述各配送点的信息,在已获取到的所述各配 送模型中查找所述各配送点的对应时间窗约束,即所述配送点的配送时间区 间。
步骤S22,在确认所述各执行时间满足各对应时间窗约束时,确认所述任 务规划为有效任务规划。
如步骤S21中的内容,所述各执行时间满足各对应时间窗约束的表达形 式,为所述执行时间大于所述时间窗约束的最晚时间,并在所述任务规划中 的各任务序列的对应执行时间都满足对应的时间窗约束时,则确认所述任务 规划为有效任务规划。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读 存储介质上存储有无人配送的路径规划程序,所述无人配送的路径规划程序 被处理器执行时实现如下操作:
提取已获取到的各配送任务模型中的配送位置,以预设格式生成基于所 述配送位置的多个任务规划;
将已生成的多个任务规划中,符合所述各配送任务模型配送时间区间的 任务规划确认为有效任务规划;
统计所述有效任务规划的数量,并在所述有效任务规划的数量大于1时, 将满足预设条件的一有效任务规划确认为最优任务规划。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
计算各所述有效任务规划的路径节点组成的总路径长度,并比对已计算 出的各有效任务规划的总路径长度,确认总路径长度最短的有效任务规划为 满足预设条件的有效任务规划。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
计算所述任务规划中各任务序列的执行时间,并以此判断所述执行时间 是否满足对应的配送时间区间;
在确认所述执行时间满足对应的配送时间区间时,确认所述任务规划为 有效任务规划。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
将所述执行时间与对应的配送时间区间比对,并在确认所述执行时间位 于对应的配送时间区间内,确认所述执行时间满足对应的配送时间区间。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
在确认一任务规划中所有任务序列的执行时间都满足对应的配送时间区 间时,则所述任务规划为有效任务规划。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
确认与所述任务规划中的各任务序列对应的配送位置,以所述配送位置 为条件获取与所述配送位置对应的配送时间区间。
进一步地,所述无人配送的路径规划程序被处理器执行时还实现如下操 作:
在所述有效任务规划的数量等于1时,确认所述有效任务规划为所述各 配送任务模型的最优任务规划;
在所述有效任务规划的数量等于0时,提交未生成有效任务规划的提示 信息,并接收基于所述提示信息触发的重新生成任务规划的指令,执行根据 获取到的各配送任务模型中的配送位置,以预设格式生成多个任务规划的步 骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在 涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系 统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括 为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下, 由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物 品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、 磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机, 服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。