适用于仓库环境的改进A*机器人最优路径规划方法与流程

文档序号:12117542阅读:491来源:国知局
适用于仓库环境的改进A*机器人最优路径规划方法与流程

本发明涉及仓库环境中的最优路径规划问题,针对具有动态分布货架以及道路规则的仓库模型,本发明提出了改进A*的路径规划算法,解决仓库模型中两点之间的最优路径规划问题,保证仓储移动机器人以最优路线到达目标。



背景技术:

随着物联网技术,机器人技术,计算机技术的发展,将多机器人控制系统应用到自动化仓库系统的分拣环节中,已经成为物流分拣的发展趋势。传统的商品分拣模式是由分拣人员遍历相应货架完成订单打包工作。在自动化仓库系统中,商品货架的布局采用动态分布的方式,并且由机器人将相应的货架搬运到分拣处,从而完成商品订单的打包工作。仓库模型的设计以及在此仓库环境下的路径规划问题是自动化仓库系统设计的重要部分。因此,设计合理的仓库模型以及合适的路径规划算法对于提高商品分拣的效率具有重要的作用。

在传统的分拣模式中,分拣人员在不碰撞的前提下可以在仓库中自由走动从而完成分拣任务。传统的分拣模式效率低,工作强度大,劳动力成本高,目前正在被由机器人完成货架搬运的分拣模式取代。自动化分拣模式下货架处于动态分布的状态,并且仓库中有多个机器人同时运行完成货架的搬运工作,从而协助分拣人员完成商品打包工作。为了保证自动化仓储系统的正常运行,需要合理规划机器人在仓库中的运行规则以及运行状态。目前采用这种方式的自动化仓库有亚马逊的Kiva system,瑞士的Swisslog,国内的Geek+团队。

在仓储环境中路径规划问题可以由全局路径规划算法解决。全局的路径规划算法主要有基于线性时序逻辑的路径规划算法、进化算法、粒子群优化算法、蚁群优化算法、模拟退火法等。在给定机器人起始点与目标点的情况下,这些算法能够在运行环境规划出最优路径。

A*算法是一种启发式的路径规划算法,基于机器人运行的环境信息提供合适的启发式函数,搜索出两点之间的最优路径。与进化算法、粒子群优化算法、蚁群优化算法等智能优化算法相比,A*算法具有实时性高,算法复杂度低,易编程实现的特性,并且在适当的条件下能够保证搜索路径的最优性。但是A*算法搜索路径的最优性取决于合适的启发式函数。目前A*在几何网路中的路径规划采用曼哈顿距离作为启发式函数,但是在具有道路规则的几何网路中,同时还要考虑机器人的转向代价时,需要提供更精确的启发式信息使得搜索路径最优化。



技术实现要素:

本发明要克服现有技术的上述缺点,提供一种适用于仓库环境的改进A*机器人最优路径规划方法。

本发明利用A*算法的实时性和易编程实现的特性,根据仓库模型的运行规则以及考虑机器人转向代价的前提下,提供合适的启发式信息使得搜索路径最优化,克服了传统A*算法无法得到最优路径的缺点。首先设计有效的可灵活扩展的仓库模型,包括货架分布以及道路运行规则的设计,仓库模型如图1所示。根据仓库模型中道路运行规则,将路径规划问题简化为各个节点之间的路径规划问题。接着,采用改进的A*算法搜索两个节点之间的最优路径。其中,启发式函数的计算包括转向代价、曼哈顿距离、绕行距离的估计。改进的A*算法搜索的路径是由若干个节点组成的列表。最后,将机器人的初始位置与初始节点之间以及目标位置与目标节点之间的路径添加到之前的节点列表中,组成完整的路径列表。将路径列表中的节点与实际仓库中的位置相对应,获得机器人最优的运行路线,并扩展为机器人的运行状态列表。改进的A*具有搜索效率高,易编程实现以及地图信息构建简易的优势。

本发明的适用于仓库环境的改进A*机器人最优路径规划方法,包括:

步骤1:设计货架和道路的分布状态,规定道路的宽度只允许一个机器人通过,即1个单位长度。在仓库模型中,位于左侧的是分拣处,右侧的是货架堆,每个货架堆由2×5个货架组成,每个货架的长和宽均为0.9个单位长度。货架堆的总数可以根据需求灵活调整并且为奇数。任意两个货架堆之间有且只有一条道路,并且整体货架堆外围具有两条相距为1个单位长度的道路,从而保证路径规划算法的完备性以及有效性。若有两条道路相交于仓库中的某个点,则将该点作为节点N,N=(x,y),其中x为当前节点的x坐标值,y为当前节点的y坐标值。定义Sp=[xb yb xs ys]表示货架的相对位置,其中xb,yb分别表示当前货架所在货架堆的相对位置,xs,ys分别表示当前货架在货架堆内部的相对位置。

步骤2:设计仓库中道路的运行规则,规定道路是单向行驶,并且任意相邻的两条道路的行驶方向相反。机器人只能从横向分布的道路进入货架堆中。定义机器人在道路上的运行状态RS=[xR yR dx dy],其中xR,yR表示机器人在仓库坐标系中的坐标位置,dx,dy分别表示机器人的可行方向,即机器人所在道路的行驶方向,dx,dy∈{0,1,2,3,4}。当dx为0时,表示机器人无法横向行驶;若dx为3,则机器人可以向右行驶;若dx为4,则机器人可以向左行驶。当dy为0时,表示机器人无法纵向行驶;若dy为1,则机器人可以向上行驶;若dy为2,则机器人可以向下行驶。

步骤3:给定机器人的起始位置与目标位置,若机器人不经过任何节点就可以到达目标位置,则根据机器人的起始位置与目标位置直接给出最终的路径列表。否则,将其简化为仓库节点之间的路径规划问题。将机器人从初始位置出发到达的第一个节点作为初始节点,机器人到达目标位置时经过的最后一个节点作为目标节点。

步骤4:在步骤3的基础上,对于给定的初始节点与目标节点,使用改进的A*算法搜索最优路径。在计算启发式函数代价时,改进的A*算法需要计算当前节点与目标节点之间的曼哈顿距离,转向次数以及绕行距离。假设作为当前估计的节点为n,记曼哈顿距离代价为hm(n),hm(n)=|xb-xf|+|yb-yf|,其中xb,yb为初始节点的坐标,xf,yf为目标节点的坐标。记转向代价为ht(n),ht(n)=q×turncost,其中q表示当前节点与目标节点之间的最少转向次数,turncost表示每次转向的代价值。记绕行距离代价为he(n),通过判断当前节点与目标节点的绕行次数,结合仓库模型的信息可以得到具体的he(n)值。在得到上述三个启发式代价后,记改进A*算法的启发式函数为h(n),用于估计当前节点n与目标节点的启发式代价,h(n)=hm(n)+ht(n)+he(n)。利用改进A*算法搜索节点列表,记为Listj

步骤5:记机器人的初始位置与初始节点之间的路径列表为Listb,机器人的目标位置与目标节点之间的路径列表为Listf。将Listb添加至Listj的头部,将Listf添加至Listj的尾部,构成完整的路径列表。将列表中的节点坐标位置与实际的仓库中的位置坐标相对应,得到机器人的运行路线。

步骤6:将机器人的运行路线扩展为机器人的运行状态列表,记为SListR,由一系列的机器人状态构成。根据给定的机器人运行路线,判断路线上各个点所在道路的运行规则,得到机器人在当前点的运行方向,从而将机器人的运行路线扩展为机器人的运行状态。将机器人的运行状态列表发送给机器人,即可让机器人完成巡线的任务。

本发明的优点是:采用改进A*算法解决在货架动态分布的仓库中路径规划问题,设计了合理有效的仓库模型,并且提出了合适的启发式信息使得搜索路径最优化。由于仓库道路的单向行驶性以及考虑机器人的转向代价,传统的A*算法使用的启发式函数无法解决这种情况下的搜索路径最优化的问题。该发明在传统的A*算法的启发式信息的基础上,根据道路信息的特殊性,提出合适的启发式信息以及计算其代价的算法,从而解决了路径最优性的问题。与Dijkstra算法相比,改进A*算法具有搜索效率高,建立地图信息简易的优势。与诸如蚁群算法,进化算法等智能算法相比,改进A*算法具有容易编程实现,计算量小,实时性高的优势。对于大规模的自动化仓库以及具有数量较多的机器人的仓库环境,本发明设计的仓库模型的可扩展性以及路径规划算法的实时性,编程简易的优势能够很好的解决相应的问题,对于提高仓库的分拣效率具有帮助作用。

附图说明

图1是本发明的仓库模型设计图

图2是本发明的转向次数计算流程图

图3是本发明的绕行距离判断流程图

图4是本发明的机器人初始位置与目标位置

图5是本发明的改进A*算法的搜索路线

具体实施方式

以下结合附图对本发明的适用于仓库环境的改进A*机器人最优路径规划方法通过简单实例作进一步描述。

适用于仓库环境的改进A*最优路径规划方法主要有以下内容:首先设计有效的可灵活扩展的仓库模型,包括货架分布以及道路运行规则的设计,仓库模型如图1所示。根据仓库模型中道路运行规则,将路径规划问题简化为各个节点之间的路径规划问题。接着,采用改进的A*算法搜索两个节点之间的最优路径。其中,启发式函数的计算包括转向代价、曼哈顿距离、绕行距离的估计。改进的A*算法搜索的路径是由若干个节点组成的列表。最后,将机器人的初始位置与初始节点之间以及目标位置与目标节点之间的路径添加到之前的节点列表中,组成完整的路径列表。将路径列表中的节点与实际仓库中的位置相对应,获得机器人最优的运行路线,并扩展为机器人的运行状态列表。改进的A*具有搜索效率高,易编程实现以及地图信息构建简易的优势。具体过程如下:

步骤1:设计货架和道路的分布状态,规定道路的宽度只允许一个机器人通过,即1个单位长度。在图1仓库模型中,位于左侧的是两个分拣处,右侧是5×5的货架堆,每个货架堆由2×5个货架组成,每个货架的长和宽均为0.9个单位长度。货架堆的总数可以根据需求灵活调整并且为奇数。任意两个货架堆之间有且只有一条道路,并且整体货架堆外围具有两条相距为1个单位长度的道路。

步骤2:设计仓库中道路的运行规则,规定道路是单向行驶,并且任意相邻的两条道路的行驶方向相反。机器人只能从横向分布的道路进入货架堆中。定义机器人在道路上的运行状态RS=[xR yR dx dy],其中xR,yR表示机器人在仓库坐标系中的坐标位置,dx,dy分别表示机器人的可行方向,即机器人所在道路的行驶方向,dx,dy∈{0,1,2,3,4}。当dx为0时,表示机器人无法横向行驶;若dx为3,则机器人可以向右行驶;若dx为4,则机器人可以向左行驶。当dy为0时,表示机器人无法纵向行驶;若dy为1,则机器人可以向上行驶;若dy为2,则机器人可以向下行驶。

步骤3:给定机器人的起始位置与目标位置,对应的货架坐标分别为A=[0330],B=[2130],如图4所示。其对应的仓库坐标分别为RA=(4,10),RB=(16,4)。将其简化为初始节点NA=(0,9)与目标节点NB=(18,3)之间的路径规划问题。

步骤4:在步骤3的基础上,对于给定的初始节点与目标节点,使用改进的A*算法搜索最优路径。在计算启发式函数代价时,改进的A*算法需要计算初始节点与目标节点之间的曼哈顿距离,转向次数以及绕行距离。假设作为当前估计的节点为n,记曼哈顿距离代价为hm(n),hm(n)=|xb-xf|+|yb-yf|,其中xb,yb为初始节点的坐标,xf,yf为目标节点的坐标。记转向代价为ht(n),ht(n)=n×turncost,其中n表示初始节点与目标节点之间的最少转向次数,turncost表示每次转向的代价值,计算转向次数的流程如图2所示。记绕行距离代价为he(n),绕行次数的算法流程如图3所示,结合仓库模型的信息可以得到具体的he(n)值。在得到上述三个启发式代价后,记改进A*算法的启发式函数为h(n),用于估计当前节点n与目标节点的启发式代价,h(n)=hm(n)+ht(n)+he(n)。利用改进A*算法搜索节点列表,记为Listj。Listj包含了(0,9),(0,6),(0,3),(0,0),(6,0),(12,0),(18,0),(18,3)。

步骤5:记机器人的初始位置与初始节点之间的路径列表为Listb,包含了(4,10),(4,9)两点。机器人的目标位置与目标节点之间的路径列表为Listf,包含了(16,3),(16,4)。将Listb添加至Listj的头部,将Listf添加至Listj的尾部,构成完整的路径列表Listj包含了(4,10),(4,9),(0,9),(0,6),(0,3),(0,0),(6,0),(12,0),(18,0),(18,3),(16,3),(16,4)。将列表中的节点坐标位置与实际的仓库中的位置坐标相对应,得到机器人的运行路线,如图5所示。

步骤6:将机器人的运行路线扩展为机器人的运行状态列表,记为SListR,由一系列的机器人状态构成。根据给定的机器人运行路线,判断路线上各个点所在道路的运行规则,得到机器人在当前点的运行方向,从而将机器人的运行路线扩展为机器人的运行状态。SListR包含了[4 10 2 0],[4 9 0 4],[0 9 0 4],[0 6 2 0],[0 3 2 0],[0 0 2 0],[6 0 0 3],[12 0 0 3],[18 0 0 3],[18 3 1 0],[16 3 0 4],[16 4 1 0]。将机器人的运行状态列表发送给机器人,即可让机器人完成巡线的任务。

本发明采用改进A*算法解决在货架动态分布的仓库中路径规划问题,设计了合理有效的仓库模型,并且提出了合适的启发式信息使得搜索路径最优化。由于仓库道路的单向行驶性以及考虑机器人的转向代价,传统的A*算法使用的启发式函数无法解决这种情况下的搜索路径最优化的问题。该发明在传统的A*算法的启发式信息的基础上,根据道路信息的特殊性,提出合适的启发式信息以及计算其代价的算法,从而解决了路径最优性的问题。与Dijkstra算法相比,改进A*算法具有搜索效率高,建立地图信息简易的优势。与诸如蚁群算法,进化算法等智能算法相比,改进A*算法具有容易编程实现,计算量小,实时性高的优势。对于大规模的自动化仓库以及具有数量较多的机器人的仓库环境,本发明设计的仓库模型的可扩展性以及路径规划算法的实时性,编程简易的优势能够很好的解决相应的问题,对于提高仓库的分拣效率具有帮助作用。

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