一种基于任务分解和状态判断的AGV任务执行方法技术

技术编号:38256911 阅读:14 留言:0更新日期:2023-07-27 10:19
本发明专利技术提出一种基于任务分解和状态判断的AGV任务执行方法,基于AKKA Actor模型对AGV任务进行分解,得到关于本次任务的三层子任务;第一层子任务为行程任务,将所述行程任务的多个终点进行连线,得到只包含一个起点和一个终点的子任务;第二层子任务为第一动作子任务,第二层子任务为,在第一层子任务的设定位置处的动作任务,包含移动、举升、下降动作;第三次子任务为第二动作子任务,所述第三层子任务为,对动作任务进行分解得到的完成该动作任务的必要程序。本专利针对AGV调度系统存在的任务执行阻塞、控制不够精细、状态判断不足三个问题,采用任务分解和状态判断的思想,并在AKKA Actor框架下成功了进行实现。Actor框架下成功了进行实现。

【技术实现步骤摘要】
一种基于任务分解和状态判断的AGV任务执行方法


[0001]该技术属于物流调度和任务执行
,特别是一种基于任务分解和状态判断的AGV任务执行方法。

技术介绍

[0002]随着信息技术和制造业的发展,AGV逐渐成为日常生产搬运的重要工具。单个或者多AGV运行过程中,由上层调度系统进行管制,调度系统接收外界下发的任务信息并分配至AGV执行,根据AGV执行状况进行下一步控制。一般调度系统管控AGV的策略为:调度系统将一个任务的全部信息一次性发送至AGV,在AGV运行过程中除非遇到突发事件或路径冲突,AGV将按照预先下发的任务信息自行运行直至任务结束。
[0003]上述过程中容易出现两个问题:1.调度系统在任务执行过程中,调度系统内部执行流程和调度系统与AGV之间的通信为串行执行的方式,存在延迟和无效等待,会导致整个系统执行效率降低。2.调度系统没有实现对AGV执行过程的准确控制,路径是否行驶完毕、AGV是否举升到位、路径的速度设置等AGV行驶过程中具体动作的控制需要AGV自身控制,增加了AGV本身的控制难度,也降低整个系统的控制精度。

技术实现思路

[0004]本专利针对AGV调度系统存在的任务执行阻塞、控制不够精细、状态判断不足三个问题,采用任务分解和状态判断的思想,并在AKKA Actor框架下成功了进行实现。
[0005] 本申请为一种基于任务分解和状态判断的AGV任务执行方法,基于AKKA Actor模型对AGV任务进行分解,得到关于本次任务的三层子任务;第一层子任务为行程任务,将所述行程任务的多个终点进行连线,得到只包含一个起点和一个终点的子任务;第二层子任务为第一动作子任务,所述第二层子任务为,在第一层子任务的设定位置处的动作任务,包含移动、举升、下降动作;第三次子任务为第二动作子任务,所述第三层子任务为,对动作任务进行分解得到的完成该动作任务的必要程序。
[0006]进一步的,所述第一层子任务由TaskProcessor处理,第二层子任务由JobActor处理,第三层子任务由ActionActor处理。
[0007]进一步的,,通过AGV的心跳数据得到AGV是否已经到达设定位置。
[0008]进一步的,所述AKKA Actor模型包含状态state、行为Behavior和邮箱mailBox;其中,邮箱用于接收消息指令,并将所述消息指令发送给状态;所述状态提取到当前消息指令后,改变该AKKA Actor模型自身状态,并通过行为执行该消息指令。
[0009]进一步的,一个AGV总任务包含多个AKKA Actor模型,不同的AKKA Actor模型之间
通过邮箱传递消息指令。
[0010]进一步的,邮箱模块中含有多个信息指令,则通过消息队列排队处理。
[0011]进一步的,在一个AKKA Actor模型内,包含TaskProcessor模块、JobActor模块、CommandActor模块、ControllerActor模块、和ActionActor模块,其中,所述TaskProcessor模块用于划分第一层子任务,第一层子任务中的第一个终点作为第二个子任务的起点,将第二个终点作为第三 个子任务的起点,以此类推,得到若干个只有一个起点和一个终点的子任务;JobActor模块用于划分第二层子任务,对只含有一个起点和一个终点的子任务分解为若干个动作;ActionActor模块用于划分第三层子任务,第三层子任务在第二层的基础上继续分解,对于设定的单一动作进行进一步分解;CommandActor模块用于监听动作执行的状态,规定了动作处于不同状态的应对方法;ControllerActor模块用于监听单起始点终止点子任务执行过程中的事件,规定了当发生agv上线、任务执行失败、任务取消事件时的对应方法。
[0012]进一步的,各Actor之间通过路径传递信息,所述路径继承Actor信息传递的模型;如果有多子任务需要执行,则创建多个Actor,多个Actor之间消息数据进行并行处理。
[0013]本专利技术与现有技术相比,其显著优点在于:AGV任务执行采用异步非阻塞方式,且能应对多任务多AGV的高并发场景;对任务进行多层更细粒度的分解,任务控制更加精细;对任务执行过程各层执行状态进行实施判断,保证执行的准确性和稳定性;
附图说明
[0014]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0015]图1为本专利技术实施例的任务执行时进行消息处理和传递的Actor模型图;图2为本专利技术实施例的调度系统任务执行流程图;图3为本专利技术实施例的调度系统任务执行全局地图。
实施方式
[0016]为了使本
的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
[0017]为了方便对实施方案进行讲解,将先对理论技术实施方案进行讲解。本申请基于AKKA Actor系统实现,AKKA Actor框架介绍:Actor模型是一个通用的并发编程模型,AKKA Actor是基于java编程语言实现的软件框架,actor模型由状态(state)、行为(Behavior)和邮箱(mailbox)三部分组成,如图1所示。
[0018]Actor模型由消息驱动,当有消息发送到mailbox中,发送者会立刻返回,接收者从mailbox中取出信息改变自身状态即state,并进行处理即Behavior。Actor模型内部的状态和内部数据只能由自己修改,并且一次actor只能处理一条消息。若mailbox中有多个信息,则可通过消息队列排队由一个actor处理或者创建多个actor同时处理,取决于业务需求。一个线程可同时执行多个actor,而且actor不同执行时绑定的线程也不同,保证了actor执行的灵活性和低成本。因此actor模型可以实现了异步通信和高并发的数据处理。所以使用actor模型实现任务分解的思想可以解决串行阻塞和控制不够细致的问题。在此方法中,第一个Actor即ControllerActor的消息为AGV实时上传的车体信息和动作完成情况,其他Actor的消息为上一个Actor传递的信息;mailbox为继承Actor的ControllerActor JobActor ActionActor CommandActor的四个执行类,如图2所示;state则为四个执行类的内部状态。
[0019]本申请为一种基于任务分解和状态判断的AGV任务执行方法,基于AKKA Actor模型对AGV任务进行分解,得到关于本次任务的三层子任务;第一层子任务为行程任务,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于任务分解和状态判断的AGV任务执行方法,其特征在于,基于AKKA Actor模型对AGV任务进行分解,得到关于本次任务的三层子任务;第一层子任务为行程任务,将所述行程任务的多个终点进行连线,得到只包含一个起点和一个终点的子任务;第二层子任务为第一动作子任务,所述第二层子任务为,在第一层子任务的设定位置处的动作任务,包含移动、举升、下降动作;第三次子任务为第二动作子任务,所述第三层子任务为,对动作任务进行分解得到的完成该动作任务的必要程序。2.根据权利要求1所述的一种基于任务分解和状态判断的AGV任务执行方法,其特征在于,所述第一层子任务由TaskProcessor处理,第二层子任务由JobActor处理,第三层子任务由ActionActor处理。3.根据权利要求1所述的一种基于任务分解和状态判断的AGV任务执行方法,其特征在于,通过AGV的心跳数据得到AGV是否已经到达设定位置。4.根据权利要求1所述的一种基于任务分解和状态判断的AGV任务执行方法,其特征在于,所述AKKA Actor模型包含状态state、行为Behavior和邮箱mailBox;其中,邮箱用于接收消息指令,并将所述消息指令发送给状态;所述状态提取到当前消息指令后,改变该AKKA Actor模型自身状态,并通过行为执行该消息指令。5.根据权利要求1所述的一种基于任务分解和状态判断的AGV任务执行方法,其特征在于,一个AGV总任务包含多个AKKA Actor模型,不同的AKKA Actor模型之间通过邮箱传递消息指...

【专利技术属性】
技术研发人员:耿宏飞孙颖钱煦钟慧王辉梁锦达管俊张开丰
申请(专利权)人:江苏金陵智造研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1