一种AGV系统的整体架构设计

2020-03-19 12:26曾宇航
计算机集成制造系统 2020年2期
关键词:小车订单规划

周 伟,曾宇航

(湖北工业大学 机械工程学院,湖北 武汉 430068)

0 引言

自动导引小车(Automated Guided Vehicle,AGV)系统是一套负责高效调度AGV执行运输任务的自动化软件系统,它具有实时监控小车的运输状态与信息、动态规划路径、安全避障、自动报警及自动充电等功能。在AGV系统构成方面,杨铨[1]认为AGV系统包括调度系统和车载系统,Li等[2]和张辰贝西等[3]认为AGV系统由地面系统、监控系统和车载系统组成,实际车间中的监控系统有助于AGV管控,因此相对支持后者。上述文献均认为地面系统是整个AGV系统的核心大脑,用于管理整个AGV系统,为保证AGV系统的高效性,需要降低其负载压力。许多国内外学者在降低地面系统负载压力方面做出了很多贡献,朱琳等[4]、冯海双[5]和Ren等[6]提出一种调度算法用于解决AGV分配问题;冯海双[5]和李聪波等[7]提出一种车间布局规划来优化AGV行驶路线;贺丽娜等[8]和Xu等[9]提出路径规划算法,使复杂环境中的AGV能够行驶在最优路线上;胡文斌等[10]提出一种基于多Agent的通讯机制,有效解决了不同系统间的通讯问题。

一些学者从优化车载系统的角度来减轻地面系统的压力。崔康吉等[11]提出一种基于霍尔传感器的精确定位方法;王铮等[12]提出一种基于双目视觉的障碍检测和避障方法;Galasso等[13]提出动态校准AGV行驶轨迹的方法。精确定位与动态校准能够保证小车准确行驶,减轻与地面系统定位通信的压力;视觉避障能够提高小车的安全性,减少地面系统对突发事故的处理时耗。另外,Cardarelli等[14]和景轩等[15]提出一种基于云架构系统的方法,该方法以云计算能力替代地面系统对PC的计算要求。

上述研究在一定程度上能够降低地面系统的负载压力,然而分析发现,地面系统复杂的处理过程与高计算资源的要求均来自某些功能结构,这些功能结构独立于地面系统后能够减轻地面系统的负载,因此本文提出一种改善的AGV系统架构(Framework of AGV System,FAGVS),并以此开发了一套成功运用于智能仓储车间的AGV系统。

1 FAGVS框架设计

本章分析了传统AGV系统架构图,结合相关文献提出一种改进的系统架构图,然后对FAGVS中关键的动静态资源进行形式化定义,再对各资源在各模块中的关系进行说明。

1.1 架构的提出

传统AGV系统(如图1a)的运作流程为:地面系统接收上层仓库管理系统(Warehouse Management System,WMS)的订单作业,按照调度策略对路径进行规划,然后对AGV进行任务派发;车载系统接收地面系统的行走任务,执行作业并实时回馈完成状况。AGV状态信息(电量状态、位置、车速等)显示在监控端。

在上述过程中,地面系统处理的事件有编辑地图、处理订单、分类任务、下发任务、选派小车、与小车通信、获取小车状态信息、规划路径、管制冲突和处理异常等。在高并发过程中,与路径规划相关的模块会因计算性能而出现瓶颈;而当出现突发事故时,小车会停车等待地面系统的异常处理结果;在地图方面,地面系统仅需识别地图文件,不需要对地图进行编辑。

综上所述,传统AGV系统的缺点为:①地面系统的业务处理比较复杂,对地面系统的系统资源要求极高;②若脱离地面系统的调度,则AGV无法独立完成作业。

随着现阶段技术的提高,基于操作系统的车载系统越来越多。徐杭等[16]表明,基于Linux系统开发的AGV控制系统更加强大、高效、复杂与稳定;张晓朋等[17]研发的一种RTLinux软件平台和数据采集卡组成的AGV控制系统,不但能够降低程序设计的工作量,而且具有很好的实时性。

本文针对上述缺点与目前车载系统的计算能力提出FAGVS,如图1b所示。FAGVS将地面系统中的路径规划(全局)和异常处理下移至车载系统,形成全局和局部路径规划模块与异常管理模块,并将地图编辑模块迁移到监控系统中。

在FAGVS中,整体AGV系统模式分为单车模式和多车模式两种。在单车模式中,小车加载和执行任务,监控端实时展示执行状况;在多车模式中,地面系统只需处理订单、分类任务、车辆调度和交通管制即可。

FAGVS采用王太勇等研究的分布式协作思想[18-19],充分利用车载系统的分布式计算能力协作完成运输任务,从而削减地面系统的功能,达到降低负载的目的。而从智能性[20]的角度分析,由于小车不仅可以进行全局路径规划,还可以通过局部路径规划进行紧急避障,在提高小车安全性的同时提高了智能性。

综上所述,FAGVS具有的优点为:①模块下移,降低了地面系统的负载压力;②路径规划下移,使小车具有自动避障和自主路径规划等能力;③在特殊场合下不需要地面系统调度。

1.2 形式化定义

静态资源和动态资源是FAGVS的基本元素,也是其运作流程中数据的载体。数据是每一类系统的关键,对数据载体进行详细描述是反映系统功能与流程的关键。为了详细描述FAGVS的整体架构,现对整个系统做如下定义:

定义1静态资源。

(1)订单Order={orderi|i=1,2,…,n},订单是上位订单系统下发的数据格式,由地面系统解析得到,包括Desp(orderi)={ID,Destination,Action,Status,Time_start,Time_end},即一份订单具有独一无二的ID、需要到达的目的地、在目的地应该执行的操作、订单状态、订单创建时间和订单完成时间。

(2)地图Map={mapi|mapi=(Pointi,Pathi,BlockAreai),i=1,2,…,n},地图是AGV行走的基本依据,每一份地图都由点集、路线集和冲突区集构成;点Point={Pointi|i=1,2,…,n},其为地图中的基本图元,用于表明标志位在图中的具体位置;路径Pathi={pathij∈Pointm∪Pointn∪pathj,m,n∈j,i,j=1,2,…,n},由多个点和路径的相关属性组成,是车辆所有行驶路线的总和;冲突区BlockAreai={blockAreaij∈Pointi∪Pathi,i,j=1,2,…,n},由不同的点和路线构成,是交通管制的标志位置。

(3)小车Vehicle={vehiclei|i=1,2,…,n},小车是车辆调度模块所需要的数据对象,具有的属性为Desp(vehiclei)={ID,Status,position},即每一辆车都具有独一无二的ID、当前状态和具体位置。

(4)任务Task={taski|i=1,2,…,n},它是FAGVS对小车执行运输任务的具体描述,有Desp(taski)={ID,Vehicle_ID,Action,Distination},即每一个行走任务都包括任务ID、指定小车ID、操作和目的地。

定义2动态资源。

(1)事件Event={eventi|eventi=Pei×fi,i=1,2,…,n},用于描述FAGVS中的动态交互,由处理过程和中间关系函数两部分构成,Pei表示各种处理过程,fi={fij|i,j=1,2,…,n}表示处理过程关系函数。事件包括订单形成、地图形成、小车绑定和任务形成等多种类型。

(2)处理过程Pei={Peij∈Porder∪Pmap∪Pvehicle∪Ptask,i,j=1,2,…,n},包括订单处理过程、地图处理过程、小车绑定过程和任务形成过程。

定义3框架。

架构FFAGVS={Order,Map,Vehicle,Task,Event},即FFAGVS是由订单、地图、小车、任务和事件处理组成。

1.3 FAGVS模块资源描述

根据1.1节对FAGVS功能的描述,结合上述形式化定义,得出FAGVS地面系统的功能模块包括订单处理、任务处理、车辆调度、通讯和交通管制,车载系统的功能模块包括车辆驱动、电池管理、导引管理、安全管理、路径规划、任务处理、异常处理和通讯,监控端的功能模块包括地图编辑、运行监控和系统管理,每个模块之间相互协调。图2所示为FAGVS的资源模块架构图,图中展示了模块与资源间的关系。

为了详细描述各功能模块的具体作用,以及各种资源在模块中的关系,对各模块进行具体描述:

(1)订单处理模块 负责接收上层WMS系统下达的订单,解析订单任务并告知小车调度模块,然后对任务的完成状态进行反馈。该模块是整体AGV系统的入口,订单的准确解析是整体任务完成的关键。

(2)车辆调度模块 将小车当前状态、订单中的目的地和实际地图作为条件,计算出最合适的小车,然后将数据传递给任务管理模块。地面系统先获取所有小车的当前状态(负载与位置),然后按照静态最短路径算法计算出当前小车距离目的地的距离,选取最短路径的小车执行任务。

(3)任务管理模块 将计算结果和订单打包成任务,通知相关小车执行任务,同时监听小车的任务完成情况,及时将状况反馈给订单模块。地面系统的任务管理模块与车载系统的任务处理模块一一对应,前者将任务发送给后者,后者解析处理,后者完成(未完成)后将任务完成状态反馈给前者。

(4)交通管制模块 在多车运行环境中,同一冲突区采用交通管制中的信号灯模式,按照要求依次放行小车。在FAGVS中,交通管制模块是小车能否在该路线行走的实际依据。正常的交通道路上一般采用信号灯监管多辆汽车安全有序地行驶,地面系统中的交通管制模块起类似的作用。

(5)任务处理模块 解析接收的任务信息,然后告知路径规划模块,同时将小车的任务完成情况进行反馈。

(6)路径规划模块 处理接收的数据信息,根据任务目标,结合地图,通过算法计算出最优的全局行走路径。在实时行走过程中,小车通过局部地图对比进行局部路径规划,以保证小车能够安全避障。两种路径规划使小车不仅拥有自主执行任务的能力,还拥有自主避障的能力,是小车智能化的高度体现。

(7)异常处理模块 小车出现异常情况时及时通知维护人员,并进行紧急制动。

(8)安全管理模块 负责小车避障,是小车安全行走中的关键,它规定小车在一定范围内的避障规则。在行走过程中,由于工厂环境复杂,对于多车意外相遇、工人或临时货架突然出现等情况,小车需要快速避障,以防发生意外。

(9)导引管理模块 是小车的导航模块(如激光导航),该模块确保小车在行走过程中定位当前位置的准确性。在行走过程中,小车通过激光头扫描当前的环境并与已有地图比较来准确定位。

(10)车辆驱动模块 它以不同的速度驱动电机转动,同时控制车轮的行驶角度,根据导引模块实时纠偏。

(11)地图编辑模块 其主要功能是生成小车工作环境的地图,用于小车行走。在即时定位与地图构建(Simultaneous Localization And Mapping, SLAM)中,通过导引模块对场地进行扫描形成地图。

(12)监控端 是一个人机交互的客户端,用于监管整个FAGVS,可以查看当前的订单列表、运输任务单列表、在线小车、当前地图场地、日志(异常和运行状态)和实时小车状况,也可以对运输订单进行撤销等操作。

2 FAGVS的运行流程与关键技术

2.1 整体流程

本节通过阐述订单从下发到完成的过程来说明FAGVS的运行流程(如图3),并对其中的步骤进行描述。

FAGVS的具体流程描述如下:

(1)上层WMS系统将订单发送给FAGVS,地面系统通过协议解析将通信数据转换为指定的订单发送给车辆调度模块。

(2)车辆调度模块根据当前系统中小车的运行状态筛选出合适的小车,将小车与订单进行绑定。地面系统将订单中的目的地与操作动作封装成任务,并告知指定小车执行当前任务。

(3)小车接收到任务单后进行路径规划。小车在行驶过程中,如果进入冲突区,则请求交通管制,获取通行权。如果为允许,则继续行驶;如果为不允许,则在路口停车等待。小车到达操作目的地后,执行任务中的操作。

分析发现,FAGVS完成一次任务所需要的基本功能有解析订单、选派车辆、分派任务、路径规划和交通管制,此为所有AGV系统需要实现的关键技术。

2.2 关键技术

(1)订单解析

订单解析思想为:抓包接收数据,按照协议校验数据格式,校验成功后按照指定的解析规则对数据进行分割。分割后的数据段包括订单的目的地、动作以及订单的状态。最后将数据段组成订单对象。

上述思想的关键为数据解析协议和所形成的订单对象,限于篇幅,此处仅阐述FAGVS中通讯协议实现的关键部分,通过举例说明一段通讯数据到订单对象的实现过程。

数据协议格式如表1所示,整体协议由协议头2个字节+数据段18个字节+协议尾2个字节组成。协议头和协议尾用于安全校验,数据段为实际的订单数据,由目的地6个字节+执行动作10个字节+小车状态2个字节组成。解析出的数据由指定的订单对象封装,格式如表2所示。

表1 数据格式表

表2 订单对象

例如,5858 484848484848 76796568 33 5858 通过ASCII码表解析为::00LOAD!::,即订单协议头为“∷”,协议尾为“∷”,目的地为000000点(工作点),动作为LOAD(装载货物),状态为“!”(false)。ID为UUID,Time_Start(订单开始时间)为解析成功时系统的当前时间,Time_End(订单完成时间)为订单(未)完成时系统的当前时间,即数据表示为:指派小车去名称为000000的工作点执行装载动作,该订单不是加急任务。

(2)选派车辆

选派车辆思想为:查询车辆列表,获取当前小车的编号集合;根据小车状态进行车辆分类,包括空闲和负载;获取订单的目的地,将目的地分发给所有空闲小车,小车采用静态最短路算法(Dijkstra,简称DJ算法)自行计算;将计算结果上报给地面系统,地面系统根据结果选取最短距离的小车,如果有多辆小车,则随机选择。上述思想的关键是选择计算算法,即FAGVS采用哪种算法计算最短路径更合适。DJ算法采用“广度优先搜索”解决赋权有向图或无向图的单源最短路径问题,最终得到一个最短路径树。由于FAGVS使用的地图是一个标准有向图,采用DJ算法是比较合适的方法。

现给出DJ算法的计算过程:有向连接网络图G=(V,E) (V为节点集合,E为边的集合,每条边由两个节点表示),每条边E=(S,E)(S,E∈V)中都有一个权值W(S,E)∈Z,从起点到终点的最小权值δ(S,E)=min{W(p)|W(p)≥0,p∈(S,E)}。当满足F=∑min{δ(vi,vj)|vi,vj∈V}时,点集V={vi,vj,vk,…}为最优解集。在FAGVS中,DJ算法中的权值为路线的距离,最小权值即最短距离。

(3)路径规划

路径规划分为全局路径规划和局部路径规划两种。全局路径规划根据给出的目的地确定整体行驶路线;局部路径规划是一种探索式行走规划,它将全局中已知的行走路线和正在探索的路线进行对比分析,得出与目标相接近的行驶路线。

一般的AGV系统因为只采用全局路径规划,所以车辆在遇到障碍物时停车等待地面系统的回馈,这种方式除了会增加地面系统的负载压力外,还会降低任务搬运效率。而FAGVS将路径规划迁移至车载系统中,全局与局部路径规划皆由小车完成,增加的局部路径规划可以保证小车自主避障,降低了地面系统的负载。两种路径规划均可采用DJ算法实现,局部路线匹配可以采用图像识别技术来解决。

(4)交通管制

多车在行驶过程中需要遵循行驶规则,以保证小车能够安全有序地通过冲突路口(区)。十字路口信号灯模式在交通管制中简单而又高效,因此AGV系统在所有冲突区设置红绿灯,小车按照红绿灯指示行驶。FAGVS是采用编码方式达到信号灯的效果,即车辆行驶到冲突口时请求地面系统来获取通行权限,而不是在实际冲突路口设置物理信号灯,让小车主动识别信号灯,由此降低成本。为了具体讲述FAGVS中的交通管制,提出如下规则(如图4):

(1)当A车进入冲突区(b1-c1与b2-c2构成)时,向地面系统请求通行许可,地面系统判断当前冲突区是否能够继续承载A车进入。

(2)当多辆车同时进入冲突区时,地面系统按照冲突区最大承载量优先选取加急任务小车。当小车数目小于承载量时,对普通小车进行随机选取(前提条件为不选取冲突小车)。

为进一步描述管制过程,假设每条道路容纳量为1,有A和B两车,会产生3种情况:①B车已经进入冲突区域,A车在路口b1处停车等待。②B车还未进入冲突区,A车先行。③B车与A车同时到达路口,即A车在路口b1处,B车在路口b2处。此时先判断任务状况是否为加急任务,如果都不是或者都是,则随机选取小车;如果有一个是加急任务,则选取该小车优先通过。

3 实验分析与成果展示

本章以某仓库AGV运输任务为例,对FAGVS与一般AGV系统进行实验模拟对比。

3.1 实验环境

实验场地为CAD绘制的面积为120×65 m2的仓库背景图;通过系统提供的仿真车辆功能模拟10辆同一参数的AGV车辆,其正逆向行驶速度为1 m/s,电量为100%;随机产生100条订单任务;根据背景图构建基本地图,其中包括452个基本点、485条路线、30个冲突区;实验路线长度为2 m左右;实验障碍物突发率为0.1,即车辆在每条路线上行驶遇见障碍物的概率。

3.2 实验结果分析

将FAGVS与一般AGV系统进行实验模拟,对实验结果进行数据对比分析的结果如表3所示。

表3 两种AGV系统运行数据对比

注:T为车载系统与地面系统通讯交互的次数;总时耗tall=∑(ti),i=1,2,…,6;差异=(一般AGV系统-FAGVS)/一般AGV系统,差异取正。

由表3可见,在通讯次数方面,一般AGV系统的通讯请求次数是FAGVS的8~9倍;在订单解析、路径规划和交通管制的时耗方面,一般AGV系统和FAGVS基本相同;在车辆选派、任务下发和通讯时耗方面,一般AGV系统是FAGVS的8~9倍;在行走时耗方面,一般AGV系统是FAGVS的1~2倍;在总时耗上,一般AGV系统是FAGVS的2~3倍。

由差异分析可知,一般AGV系统和FAGVS在订单解析、路径规划和交通管制方面的差异主要源于不同计算机之间的运行误差。在车辆选派过程中,一般AGV系统需要由地面系统串行计算所有小车的最短距离,FAGVS采用竞标模式,即地面系统不计算小车的最短距离,而是由小车并行计算最短距离,这样导致前者的计算时间是后者的8~9倍。理论上,串行计算时耗应该为并行计算的n倍(由于小车数量为10,此处n=10)。

在任务下发、通讯时耗和通讯次数方面,由于一般AGV系统的小车不具备自主行走的能力,需要地面系统实时发送行走任务给小车,即地面系统每次仅给小车下发一条行走路线任务,等接收到小车任务完成的反馈后再下发第二条行走路线任务,这种方法耗时较多。FAGVS的小车具有自主行走的能力,因此耗时相对一般AGV系统低很多。

在行走方面,由于一般AGV系统的小车不具有自主避障能力,行驶中遇到障碍物时会停止等待地面系统的指令,而FAGVS的小车通过局部路径规划可以很容易避开障碍物,不需要停车等待,因此一般AGV系统比FAGVS耗时多。经过上述分析得出优劣对比表,如表4所示。

表4 一般AGV系统与FAGVS的优劣对比

3.3 成果展示

图5所示为车间中的整体情况,包括上位订单系统的出入库界面、车辆冲突图、车辆状态图、整体仓库路线布局图、搬运AGV与叉车实物图以及车载系统界面。其中,出入库订单系统下发订单任务到调度系统,地面系统对车间中的搬运式AGV和叉车进行交通管制与车辆管理,车载系统对小车进行路径规划与自动避障等。在FAGVS框架中,监控系统通过订阅AGV中的数据信息和查询数据库进行监控展示,用户可以在监控端查看AGV系统的运行情况(如订单执行状态、小车的具体位置等)及异常信息。因此,FAGVS满足车间的搬运需求。

4 结束语

本文提出的FAGVS框架采用分布式协作思想重新构建传统的AGV系统。首先对FAGVS中的资源进行形式化定义,用以描述FAGVS的数据形式,其次描述了资源与模块间的相互作用关系;然后通过整体运行流程分析了FAGVS中的关键问题,并提出相应的思路与解决方法;最后通过实验分析了FAGVS与传统AGV系统的差异与优劣,通过实验对比发现,FAGVS不仅能够降低地面系统的负载压力,还能提高AGV的搬运效率,以及安全性和智能性,非常适用于智能车间的环境。

本文基于该框架研发出一套AGV系统,该系统已成功应用于实际的工厂车间,表明FAGVS具有可行性,且有一定的实用价值。

猜你喜欢
小车订单规划
春节期间“订单蔬菜”走俏
订单农业打开广阔市场
大车拉小车
自制小车来比赛
刘老师想开小车
“最确切”的幸福观感——我们的致富订单
两轮自平衡小车的设计与实现
规划引领把握未来
快递业十三五规划发布
多管齐下落实规划