一种人机协作仓储分拣方法
技术领域
本发明涉及跟随机器人,尤其涉及一种人机协作仓储分拣方法。
背景技术
随着电商业务的快速发展,对于目前主要采用的人工拣货方式,其人力成本的挑战越来越高。据统计,拣货员在仓库来回拣货所花费的时间占整个仓储操作的60%-70%。
为了克服巨大的人力成本,目前已经出现将跟随机器人运用到拣货操作中的防守,其包括智能无人仓库,如KIVA系统,所有任务均由机器人完成。例如中国专利CN201410296030.1就揭示了一种基于智能AGV的商品分拣方法,利用低成本的自动引导车来自动搬运货架,自动引导车可根据控制终端下发的信息自主控制实现移动及装卸货架。
还有一种就是通过人-机器人协作的方式,即仓储机器人跟随拣货员在仓库中行走拣货,待机器人达到最大容量并接收到运送指令时将商品自动运送到操作台进行进一步处理。在人-机器人协作的方式下,拣货员在仓库中来回行走寻找货物仍然需要耗费大量的时间,因此如何对订单进行合理分批,拣货员的行走路线进行合理规划,以及仓储机器人进行合理调度,从而提高整体拣货效率十分重要。
发明内容
有鉴于此,本发明提出了一种拣货效率高的人机协作仓储分拣方法。
本发明的技术方案是这样实现的:本发明提供了一种人机协作仓储分拣方法,包括以下步骤,
S1,根据订单的到达时间,从订单系统获取在时间段[Ts,Te]内的订单信息,然后利用智能优化方法对订单进行优化分批,使得拣货的行走总路程最短;
S2,订单分批完成后,判断当前是否有空闲拣货员,如果没有,则列队等待;如果当前时刻有空闲拣货员,则根据先到先服务的规则,对每一批订单拣货任务分配给拣货员;
S3,拣货员指派后,判断当前有没有空闲的跟随机器人,如果当前没有空闲的跟随机器人,则列队等待;如果当前时刻有空闲的跟随机器人,根据距离就近原则,对每一批订单拣货任务指派跟随机器人;
S4,在拣货过程中,如果跟随机器人达到了最大的载量,则通过自主导航的方式返回操作台,并判断当前有没有空闲的跟随机器人,如果当前没有空闲的跟随机器人,则列队等待;如果当前时刻有空闲的跟随机器人,根据距离就近原则,指派跟随机器人跟随拣货员继续拣货直到完成所有该批订单拣货任务。
在以上技术方案的基础上,优选的,所述步骤S1中,J={1,2,…,n}为订单集合,cj为订单j∈J对应消耗的机器人载货量;首先根据订单信息,首先进行预处理,产生所有可行的分批集合I,满足每批次的订单任务不超过机器人的最大载货量;向量ai={ai1,ai2,…,ain}代表一种可行的批次,aij=1代表第j个订单在第i个批次中,li为第i批次拣货任务的拣货行走路程,二进制决策变量xi代表第i个可行批次选择与否,如果xi=1表明第i可行批次被选择,对订单进行优化分批的数学模型为:
min∑i∈Ili·xi
在以上技术方案的基础上,优选的,所述步骤S1中由以下数学模型确定拣货的行走总路程最短的路径:
xij∈{0,1},i≠j
其中,cij为需要拣货的位置i和j之间的距离。
进一步优选的,采用A*算法获取cij值。更优选的,所述A*算法的估价函数为
f(n)=g(n)+h(n)
其中n代表路径中的第n个节点,f(n)代表从起始点开始,经过节点n到达目标的启发估计耗费值,g(n)代表从起始节点到节点n的真实耗费值,h(n)代表从节点n到终止点的启发估计耗费值;
首先设置两个集合,分别为OPEN表和CLOSED表,其中OPEN表保存待考查的结点,开始时,OPEN表只包含初始结点一个元素;CLOSED集保存已考查过的结点,开始时,CLOSED表是空的,然后执行以下步骤,
a.把s放入OPEN表,记f=h,令CLOSED为空表,其中s代表初始节点;
b.LOOP:直至找到目标节点止,若OPEN为空表,则宣告失败;
c.选取OPEN表中未设置过的具有最小f值的节点为最佳节点BESTNODE,并把它放入CLOSED表;
d.若BESTNODE为一目标节点,则成功求得一解;
e.若BESTNODE不是目标节点,则扩展之,产生后继节点SUCCSSOR;
f.对每个SUCCSSOR进行下列过程:
f1.建立从SUCCSSOR返回BESTNODE的指针;
f2.计算g(SUC)=g(BES)+g(BES,SUC);
f3.如果SUCCSSOR∈OPEN,则称此节点为OLD,并把它添至BESTNODE的后继节点表中;
f4.比较新旧路径代价,如果g(SUC)<g(OLD),则重新确定OLD的父辈节点为BESTNODE,记下较小代价g(OLD),并修正f(OLD)值;
f5.若至OLD节点的代价较低或一样,则停止扩展节点;
f6.若SUCCSSOR不在CLOSE表中,则看其是否在CLOSED表中;
f7.若SUCCSSOR在CLOSE表中,则转向过程f3;
f8.若SUCCSSOR既不在OPEN表中,又不在CLOSED表中,则把它放入OPEN表中,并添入BESTNODE后裔表,然后转向步骤g;
f9.计算f值;
g.GO LOOP。
本发明的人机协作仓储分拣方法相对于现有技术具有以下有益效果:
(1)采用跟随机器人代替手推车,自动跟随拣货员进行拣货,待移动机器人达到最大载货量或者完成订单任务时返回操作台,自动指派另外一辆空闲的跟随机器人跟随拣货员继续拣货操作,可大幅度提高分拣效率;
(2)提出了一种基于智能优化方法的最优订单分批方法,可自动化实现订单分批,使得拣货的行走总路程最短;
(3)提出了一种有效的拣货员与机器人的调度规则,便于协调拣货员与机器人在仓储内的移动,提高分拣效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明人机协作仓储分拣方法的流程图;
图2为本发明人机协作仓储分拣方法的拣货路径的示意图。
具体实施方式
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,本发明的人机协作仓储分拣方法,包括以下四个步骤:
S1,订单分批。根据订单的到达时间,从订单系统获取在时间段[Ts,Te]内的订单信息,然后利用智能优化方法对订单进行优化分批,使得拣货的行走总路程最短。
S2,拣货员指派。订单分批完成后,判断当前是否有空闲拣货员,如果没有,则列队等待;如果当前时刻有空闲拣货员,则根据先到先服务的规则,对每一批订单拣货任务分配给拣货员;
S3,跟随机器人指派。拣货员指派后,判断当前有没有空闲的跟随机器人,如果当前没有空闲的跟随机器人,则列队等待;如果当前时刻有空闲的跟随机器人,根据距离就近原则,对每一批订单拣货任务指派跟随机器人;
S4,拣货操作。在拣货过程中,如果跟随机器人达到了最大的载量,则通过自主导航的方式返回操作台,并判断当前有没有空闲的跟随机器人,如果当前没有空闲的跟随机器人,则列队等待;如果当前时刻有空闲的跟随机器人,根据距离就近原则,指派跟随机器人跟随拣货员继续拣货直到完成所有该批订单拣货任务。
针对步骤S1订单分批,主要解决以下三个方面的问题:
(1)建立订单分批的数学模型
J={1,2,…,n}为订单集合,cj为订单j∈J对应消耗的机器人载货量;首先根据订单信息,首先进行预处理,产生所有可行的分批集合I,满足每批次的订单任务不超过机器人的最大载货量;向量ai={ai1,ai2,…,ain}代表一种可行的批次,aij=1代表第j个订单在第i个批次中,li为第i批次拣货任务的拣货行走路程,二进制决策变量xi代表第i个可行批次选择与否,如果xi=1表明第i可行批次被选择,对订单进行优化分批的数学模型为:
min∑i∈Ili·xi (1)
公式(2)确保每一个订单只能分到一个批次里。
(2)确定最优拣货路径
假如某一批次的货物分布在仓库中的n个位置,最优拣货路径所解决的问题就是找到一组拣货的顺序,使得总行走距离最短,如图2所示,该问题可以看做为一个TSP问题进行求解。假设某批次拣货任务中需要拣货的位置i和j之间的距离为cij。进而可以建立如下的数学模型:
xij∈{0,1},i≠j (7)
(3)确定仓库中两点之间的距离
下面介绍如何获取公式中的cij值。在栅格地图中,两点之间的最短路径可以通过A*算法计算得到。A*算法的估价函数可以表示为:
f(n)=g(n)+h(n) (8)
其中n代表路径中的第n个节点,f(n)代表从起始点开始,经过节点n到达目标的启发估计耗费值,g(n)代表从起始节点到节点n的真实耗费值,h(n)代表从节点n到终止点的启发估计耗费值;
首先设置两个集合,分别为OPEN表和CLOSED表,其中OPEN表保存待考查的结点,开始时,OPEN表只包含初始结点一个元素;CLOSED集保存已考查过的结点,开始时,CLOSED表是空的,然后执行以下步骤,
a.把s放入OPEN表,记f=h,令CLOSED为空表,其中s代表初始节点;
b.LOOP:直至找到目标节点止,若OPEN为空表,则宣告失败;
c.选取OPEN表中未设置过的具有最小f值的节点为最佳节点BESTNODE,并把它放入CLOSED表;
d.若BESTNODE为一目标节点,则成功求得一解;
e.若BESTNODE不是目标节点,则扩展之,产生后继节点SUCCSSOR;
f.对每个SUCCSSOR进行下列过程:
f1.建立从SUCCSSOR返回BESTNODE的指针;
f2.计算g(SUC)=g(BES)+g(BES,SUC);
f3.如果SUCCSSOR∈OPEN,则称此节点为OLD,并把它添至BESTNODE的后继节点表中;
f4.比较新旧路径代价,如果g(SUC)<g(OLD),则重新确定OLD的父辈节点为BESTNODE,记下较小代价g(OLD),并修正f(OLD)值;
f5.若至OLD节点的代价较低或一样,则停止扩展节点;
f6.若SUCCSSOR不在CLOSE表中,则看其是否在CLOSED表中;
f7.若SUCCSSOR在CLOSE表中,则转向过程f3;
f8.若SUCCSSOR既不在OPEN表中,又不在CLOSED表中,则把它放入OPEN表中,并添入BESTNODE后裔表,然后转向步骤g;
f9.计算f值;
g.GO LOOP。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。