本发明涉及物流系统技术领域,尤其是一种基于时间窗优化的agv路径规划方法。
背景技术:
自动导引车agv(automatedguidedvichel),是现代物流系统的关键设备之一,它涉及的技术与机器人相似,它的出现,改变了工业生产领域中以传统的刚性运输设备和人工劳作为主的局面,节约了生产成本,提高了运输效率。在传统的agv基础上,研究多智能自动导航车系统(multiintelligentautomaticguidedvehiclesystem,简称agvs)的关键技术,为agv的产业化打下坚实的基础。
时间窗是指在物流系统中为减少成本而规定在特点时间内完成特定任务,或者说企业在某个时间段对某个客户进行服务。在物流系统中,多个任务的同时进行会产生多个时间窗窗口。在物流系统中通道有限、任务量巨大、车辆的工作效率有上限、有限时间等条件下,同时进行不同任务,时间窗必然会发生交叉干涉,从而会发生时间窗冲突。所谓时间窗冲突是指在同一地点、同一时间上同时操作多个任务,在时间的维度上面任务交叉干涉,无法运行。
目前,对于解决时间窗冲突的方式大多采用停车等待策略,这样降低了agv路径规划系统的工作效率。此外,物流系统中经常出现的多任务时间窗冲突,需要将多任务时间窗冲突问题转化为单时间窗问题,而对于多路径时间窗规划问题研究很少涉猎。
技术实现要素:
本发明的目的在于提供一种采用多路径时间窗规划方法,通过建立时间窗模型来解决时间窗冲突的问题;根据实际agv完成任务的次序,实时调整时间窗模型,大大提高系统工作效率的基于时间窗优化的agv路径规划方法。
为实现上述目的,本发明采用了以下技术方案:一种基于时间窗优化的agv路径规划方法,该方法包括下列顺序的步骤:
(1)在运输系统的地图中设定关键节点、出入站点信息,建立与车间实物相同运输线路的网格路径地图,初始化系统信息并更新网格路径地图,将关键节点的坐标参数、网格地图信息存入数据库中,并将agv车辆调度管理系统中信息实时更新;
(2)根据机床加工工位的请求信息,系统接收任务,并设定任务的目标位置,指派处于空闲状态的agv接收任务,并将该agv当前位置作为任务的起始位置,根据起始位置和目标位置选择地图中相应的出站节点和入站节点;采用line-arc-line双圆弧算法,在起始位置和出站节点之间建立agv的出库路径;根据加工车间实际的空间大小,设置相应的圆弧半径,采用line-arc-line双圆弧算法,在入站节点和目标位置之间建立agv的入库路径;
(3)根据出站节点和入站节点,检测路径在空间规划上的可行性,利用a*算法计算出出站节点和入站节点之间所有可行路径path1、path2……pathn,建立路径path1的时间窗、规划路径path1的时间窗模型、路径path1的运行时刻列表和path1的运送时长,依次对路径path2、path3……pathn进行遍历规划及建立所有路径的时间窗模型m;
(4)在时间窗模型m中,针对发生时间窗冲突的节点,根据agv接受任务的先后顺序依次规划路径path1、path2……pathn中节点的时间窗顺序,在保持原先任务时间窗不变的前提下,对当前任务的时间窗进行实时规划,将路径的运送时长作为路径优化的唯一评估参数,从遍历规划好的路径中选择运送时长最短的路径为最优路径,将最优路径的通道节点时间窗的信息录入使用并存入数据库,释放其他非最优路径所占用的路径的节点资源;
(5)将出库路径、最优路径与入库路径组合生成一条完整的运送路径,建立完整的路径时间窗模型,依次读取完整路径信息,并采用计算机编程语言将路径信息转化成下位机指令,完成agv的调度管理。
在步骤(2)中,所述采用line-arc-line双圆弧算法,在起始位置和出站节点之间建立agv的出库路径具体是指:
根据起始位置pos0(x1,y1,α1,β1),其中,x1、y1为坐标,α1为方位角,β1为车身摆角;出站节点p0(x2,y2,α2,β2),其中,x2、y2为坐标,α2为方位角,β2为车身摆角;agv运动方向dir的值+1或者-1,其中,+1代表agv正向运行,-1代表agv反向运行;和转弯圆弧半径r,分别计算出起始位置pos0、出站节点p0在y轴上的截距d1、d2,判断起始位置pos0和出站节点p0的方位角之间关系,依次计算出圆弧转弯段的圆心pc(xc,yc),根据圆心pc(xc,yc)求出圆弧段的起点p1(x3,y3)、终点p2(x4,y4),具体计算公式如下:
pos0的截距d1:d1=y1-x1*tan(α1);
p0的截距d2:d2=y2-x2*tan(α2);
(b)当α1值介于
(a1)当α2介于[-π,0]之间时:
(a2)α2介于[0,π]之间时:
当α1值介于
(b1)α2介于
(b2)α2介于
所述步骤(3)具体包括以下步骤:
(3a)检测路径在空间规划上的可行性,采用a*算法判断出站节点和入站节点之间是否存在可行路径,若不存在可行的路径,则跳出任务,等待下一台空闲agv接收任务;反之,则规划生成所有的agv的路径path1、path2……pathn,将所有的路径保存至数据库,并读取路径中所有节点的信息,继续执行下一步;所述第一条路径是指路径path1;
(3b)依次规划路径path1、path2……pathn运行的时间窗模型,建立所有路径的运送时间窗模型,对于有时间窗冲突的节点采取停车避让策略,按照任务的先后顺序依次规划路径path1、path2……pathn时间窗的先后顺序,并生成合理的agv运行时刻列表,根据agv运行时刻列表更新规划路径的时间窗模型,并将时间窗模型中路径的节点信息存入数据库。
所述步骤(3b)具体包括以下步骤:
(3b1)计算路径分段轨迹,并计算出agv运行时刻列表的精准时刻;从数据库中读取路径path1中包含的关键节点信息,根据数据库中节点包含的路段信息判断相邻节点之间为直线段lines或者圆弧段arcs,对路径path1进行路径分段处理,并求出每个路段直线段lines和圆弧段arcs对应的顺序及相应路径长度,然后依次将路段的信息导入至数据库;
(3b2)计算agv在节点之间直线段lines和圆弧段arcs的运行精确时间;设定agv直线匀速行驶时的速度为vl,拐弯时的速度为va,agv自身的长度为la,直线段的长度为ll,圆弧段的转弯半径为ra,则通过直线段通道的时长
(3b3)建立时间窗模型,将路径path1的时间窗导入至正在执行任务的路径时间窗模型中,采用遍历方法,依次检测集合pathlist中的节点的时间窗与已经规划完成路径中的节点有无时间窗的冲突,即检测时间窗模型中是否存在空闲时间窗。
在步骤(3b3)中,所述检测时间窗模型中是否存在空闲时间窗是指:
若存在空闲时间窗:则路径path1运行时刻列表及时间窗规划完成,计算路径path1运送的总时长,重复步骤(3b1)、(3b2)、(3b3)依次对路径path2、path3……pathn进行时间窗规划;
若不存在空闲时间窗:计算路径上通道节点被占用信息,即被占用的通道节点及相应的时刻、时长,对被占用的节点采取停车等待策略,将agv因停车避让的等待时间窗加入至路径path1中,重新规划路径path1时间窗及运行时刻列表,计算重新规划路径path1的所需运送时长,重新计算该路径的运行时刻列表,并更新集合pathlist中节点、到达节点的时刻及相邻节点之间相隔时长信息。
由上述技术方案可知,本发明在基于等待策略的基础上,将现有资源即优先节点优先处理,实时调整时间窗模型,这样可以大大提高系统的工作效率;采用多路径时间窗规划方法,建立模型解决冲突问题;采用line-arc-line的双圆弧算法,计算节点和加工工位之间的出入库路径,通过设置agv的转弯半径的大小,来调控agv出入库路径的距离,可以实现agv在狭小的空间内进行精准出入库动作。此外,本发明简化车间的路径节点和路短,降低算法的复杂度,根据车间的空间建立合适的多通道环形轨道,减少算法的运算复杂系数,从而提升系统的效率和稳定性。
附图说明
图1为本发明的工作流程图;
图2为agv运输系统的运输线路地图;
图3为line-arc-line算法流程图;
图4为出库路径pathout的示意图;
图5为入库路径pathin的示意图;
图6为有向路径连接图;
图7为路径优化比较列表;
图8为基于运送时长优化时间窗模型。
具体实施方式
如图1所示,一种基于时间窗优化的agv路径规划方法,该方法包括下列顺序的步骤:
(1)在运输系统的地图中设定关键节点、出入站点信息,建立与车间实物相同运输线路的网格路径地图,初始化系统信息并更新网格路径地图,将关键节点的坐标参数、网格地图信息存入数据库中,并将agv车辆调度管理系统中信息实时更新;
(2)根据机床加工工位的请求信息,系统接收任务,并设定任务的目标位置,指派处于空闲状态的agv接收任务,并将该agv当前位置作为任务的起始位置,根据起始位置和目标位置选择地图中相应的出站节点和入站节点;采用line-arc-line双圆弧算法,在起始位置和出站节点之间建立agv的出库路径;根据加工车间实际的空间大小,设置相应的圆弧半径,采用line-arc-line双圆弧算法,在入站节点和目标位置之间建立agv的入库路径;
(3)根据出站节点和入站节点,检测路径在空间规划上的可行性,利用a*算法计算出出站节点和入站节点之间所有可行路径path1、path2……pathn,建立路径path1的时间窗、规划路径path1的时间窗模型、路径path1的运行时刻列表和path1的运送时长,依次对路径path2、path3……pathn进行遍历规划及建立所有路径的时间窗模型m;
(4)在时间窗模型m中,针对发生时间窗冲突的节点,根据agv接受任务的先后顺序依次规划路径path1、path2……pathn中节点的时间窗顺序,在保持原先任务时间窗不变的前提下,对当前任务的时间窗进行实时规划,将路径的运送时长作为路径优化的唯一评估参数,从遍历规划好的路径中选择运送时长最短的路径为最优路径,将最优路径的通道节点时间窗的信息录入使用并存入数据库,释放其他非最优路径所占用的路径的节点资源;
(5)将出库路径、最优路径与入库路径组合生成一条完整的运送路径,建立完整的路径时间窗模型,依次读取完整路径信息,并采用计算机编程语言将路径信息转化成下位机指令,完成agv的调度管理。
在步骤(2)中,所述采用line-arc-line双圆弧算法,在起始位置和出站节点之间建立agv的出库路径具体是指:
根据起始位置pos0(x1,y1,α1,β1),其中,x1、y1为坐标,α1为方位角,β1为车身摆角;出站节点p0(x2,y2,α2,β2),其中,x2、y2为坐标,α2为方位角,β2为车身摆角;agv运动方向dir的值+1或者-1,其中,+1代表agv正向运行,-1代表agv反向运行;和转弯圆弧半径r,分别计算出起始位置pos0、出站节点p0在y轴上的截距d1、d2,判断起始位置pos0和出站节点p0的方位角之间关系,依次计算出圆弧转弯段的圆心pc(xc,yc),根据圆心pc(xc,yc)求出圆弧段的起点p1(x3,y3)、终点p2(x4,y4),具体计算公式如下:
pos0的截距d1:d1=y1-x1*tan(α1);
p0的截距d2:d2=y2-x2*tan(α2);(c)当α1值介于
(a1)当α2介于[-π,0]之间时:
(a2)α2介于[0,π]之间时:
当α1值介于
(b1)α2介于
(b2)α2介于
所述步骤(3)具体包括以下步骤:
(3a)检测路径在空间规划上的可行性,采用a*算法判断出站节点和入站节点之间是否存在可行路径,若不存在可行的路径,则跳出任务,等待下一台空闲agv接收任务;反之,则规划生成所有的agv的路径path1、path2……pathn,将所有的路径保存至数据库,并读取路径中所有节点的信息,继续执行下一步;所述第一条路径是指路径path1;
(3b)依次规划路径path1、path2……pathn运行的时间窗模型,建立所有路径的运送时间窗模型,对于有时间窗冲突的节点采取停车避让策略,按照任务的先后顺序依次规划路径path1、path2……pathn时间窗的先后顺序,并生成合理的agv运行时刻列表,根据agv运行时刻列表更新规划路径的时间窗模型,并将时间窗模型中路径的节点信息存入数据库。
所述步骤(3b)具体包括以下步骤:
(3b1)计算路径分段轨迹,并计算出agv运行时刻列表的精准时刻;从数据库中读取路径path1中包含的关键节点信息,根据数据库中节点包含的路段信息判断相邻节点之间为直线段lines或者圆弧段arcs,对路径path1进行路径分段处理,并求出每个路段直线段lines和圆弧段arcs对应的顺序及相应路径长度,然后依次将路段的信息导入至数据库;
(3b2)计算agv在节点之间直线段lines和圆弧段arcs的运行精确时间;设定agv直线匀速行驶时的速度为vl,拐弯时的速度为va,agv自身的长度为la,直线段的长度为ll,圆弧段的转弯半径为ra,则通过直线段通道的时长
(3b3)建立时间窗模型,将路径path1的时间窗导入至正在执行任务的路径时间窗模型中,采用遍历方法,依次检测集合pathlist中的节点的时间窗与已经规划完成路径中的节点有无时间窗的冲突,即检测时间窗模型中是否存在空闲时间窗。
在步骤(3b3)中,所述检测时间窗模型中是否存在空闲时间窗是指:
若存在空闲时间窗:则路径path1运行时刻列表及时间窗规划完成,计算路径path1运送的总时长,重复步骤(3b1)、(3b2)、(3b3)依次对路径path2、path3……pathn进行时间窗规划;
若不存在空闲时间窗:计算路径上通道节点被占用信息,即被占用的通道节点及相应的时刻、时长,对被占用的节点采取停车等待策略,将agv因停车避让的等待时间窗加入至路径path1中,重新规划路径path1时间窗及运行时刻列表,计算重新规划路径path1的所需运送时长,重新计算该路径的运行时刻列表,并更新集合pathlist中节点、到达节点的时刻及相邻节点之间相隔时长信息。
如图2所示,m1、m2、m3、m4、m5、m6、m7、m8是物料的加工工位点,m9是物料储存仓库,m10、m11是agv停车库,m12是agv充电桩。
图3为line-arc-line算法流程图,本算法根据初始位置pos0与出站节点p0或者入站节点pn与目标位置posn的信息、圆弧段的半径r,计算路径的方向dir、圆弧段的圆心pc、圆弧段的起点p1、圆弧段的终点p2,并整合路段信息,生成完整的出库路径或者入库路径信息。
图4是agv的出库路径,根据起始位置pos0和出站节点p0信息,通过line-arc-line算法计算出出库路径pathout的路径节点信息。
图5是agv的入库路径,根据入站节点pn和目标位置posn信息,通过line-arc-line算法计算出入库路径pathin的路径节点信息。
图6是出站节点p0和入站节点pn之间所有可行路径path1、path2、path3和path4的节点之间有向连接方式。
如图7所示,通过计算可行路径path1、path2、path3和path4的时间窗,并规划路径的运行时刻列表和路径运行时长,通过比较得出最优的路径。路径path1的通道节点为
图8是导入任务的路径时间窗模型,解决与其他任务之间的节点冲突,规划出合理的时间窗模型。
综上所述,本发明在基于等待策略的基础上,将现有资源即优先节点优先处理,实时调整时间窗模型,这样可以大大提高系统的工作效率;采用多路径时间窗规划方法,建立模型解决冲突问题;采用line-arc-line的双圆弧算法,计算节点和加工工位之间的出入库路径,通过设置agv的转弯半径的大小,来调控agv出入库路径的距离,可以实现agv在狭小的空间内进行精准出入库动作。