面向物流AGV的电子地图系统设计与实现
2013-11-16苏益超苏志远李忠明
苏益超,翁 迅,苏志远,李忠明
(北京邮电大学 自动化学院,北京 100876)
自动导引小车(Automatic Guided Vehicle,AGV),是一种集机、声、光、电、计算机等技术为一体的搬运设备[1],是物流行业中关键的基础设备。电子地图作为在物流AGV地面系统中的应用,对物流AGV的自主作业起着重要的辅助作用。
在人们日常生活中,使用的地图不外乎具有定位和导航功能,物流AGV中的电子地图也与此类似。随着物流AGV应用的不断发展,复杂路径作业中的货物装卸,起始点、充电位置的选择,加减速控制等不同功能对AGV车在地图中的定位精度都提出了较高要求;而当路径中具有多条连通线路,或者多AGV运行时,对最短路径,最优路径的选择,以及协同作业下的协同调度问题都是未来AGV发展的核心所在;除此之外为了直观的将地图展现在用户面前,并且提供地图信息的操作分析功能,而不是仅仅简单的将AGV车辆的坐标信息传入上位机等问题都使得电子地图系统的引入显得非常必要。同时,电子地图的应用为监测人员对故障的及时发现和排除提供了更高的可靠性和信息支持。因此本文将针对面向物流AGV平台的电子地图系统的设计与实现进行探讨。
图1 系统结构图
1 电子地图平台设计
AGV的电子地图具有自适应性、实时性和交互性的特点,自适应性是电子地图对不同场景的适应,可以灵活制作不同类型的地图;实时性要求对AGV车进行实时定位,从而实现整体信息更新;可交互性是系统对场地信息具有一定的分析和反馈能力,从而达到对AGV的控制决策。
因此为了更好地适应物流场景应用,电子地图系统软件平台的设计就以高效智能化作为目标。一个完整的电子地图系统功能可归纳为显示功能、编辑功能、存取功能和路径规划功能。整个系统设计架构如图1所示。
对电子地图系统平台功能需求分析为如下几点:
显示功能:定位显示问题是整个地图系统设计的关键。管理员使用电子地图时首先可以对整个场地大小进行自定义比例的设置,自主编辑完整地图,每一段路径的坐标信息,长度、角度、类型及其独有的id号等信息也可以通过程序界面直观查看。车辆运行时,通过与运动控制系统间的通讯,将速度信息和车辆位置实时显示在地图中,当进入特殊路段时,会向上位机反馈当前预警信息,通过上位机通过判断进行运动决策的优化。同时系统具备一个模拟运行功能,可以自定义速度,姿态角变化,实时显示车辆位置信息。通过对AGV车辆位置的实时定位监控,可及时发现实际运行中产生的故障或事故,有效地提高AGV自主运行的安全性和可靠性。
编辑功能:一个完整的电子地图系统,不单单要适应某一种特定的场地信息,灵活自主的编辑功能,极大地丰富地图的应用,加强了电子地图的健壮性。通过对企业中AGV使用场地的实地考察可以发现,一般情况下场地信息可以分为直线路段、曲线路段、工位路段、起始路段和弯道路段等。故系统灵活地运用这些基本模型来实现地图的自适应性。通过程序的预先输入将完整的地图信息展现在管理员面前。
存取功能:为实现地图信息的简单备份,系统设计文本文件存取功能。通常情况下,一个完整的系统不仅要具备前台界面与管理员的交互功能,同样,后台分析能力也是系统需要拓展的。对地图信息进行简单的文件文本存储只能将地图信息以二进制信息进行保存,不能直观显示地图数据,从而无法对地图数据进行更有效的分析利用,故系统加入数据库存取功能。通过实现数据库基本功能,即地图信息的存储、读取、增加和修改,为后续开发打下基础。
路径规划功能:最短路径问题是最优化问题研究领域中一个最基本的最重要并被广泛研究过的话题之一[2]。最短路径问题不仅可以直接应用于解决实际生产实践中的众多问题,而且也经常被作为一个基本方法和工具,用来解决其他的最优化问题以及预测和决策问题。通过对后台数据的分析,系统添加自主的路径选择功能,使电子地图具备更强大的智能性,并且对路径信息进行极大的利用,路径选择功能遵循的法则是最短路径选择,将采用经典算法Dijkstra算法进行实现。
2 电子地图平台实现
2.1 主要功能模块
通过功能分析,电子地图系统中定义的主要模块如下:编辑模块、存取模块、最短路径规划模块和预警模块等,系统平台采用VS2008和MySQL数据库设计实现。
2.2 模块技术实现
(1)编辑模块。程序中设计地图路段信息模型的基类为CMapPath,其派生类为CMapPathLine,CMapPathArc,CMapPath-Work,CMapPathBegEnd,CMapPathCorner分别代表直线路段类、曲线路段类、工位路段类、起始点路段类和弯道路段等基本模型。
各个类中主要成员变量为路段的类型,全局id号以及工位id号,起始点坐标值,长度,曲线路段的半径和样式等。通过这些成员变量在界面中直观显示当前路径的坐标、工位号和选择框等信息。
派生类实现基类的Draw()接口,并且在其Draw()函数中实现地图绘制部分的核心代码。程序通过OnBnClicked-PathAdd()函数实现信息输入,ComputeLength()函数实现信息计算。计算结果将通过对话框类中函数SetPathInfo(POINT point)进行展示。客户端界面如图2所示,界面左边为不同路段的输入部分,右端为路段信息显示部分。
图2 终端界面
(2)存取模块。本模块功能有两部分,一是实现对绘制完成的地图进行灵活的文本文件存取。程序中将文件后缀名字定义为.lma,该功能通过VC连续存储(serialize)机制实现。程序利用MFC提供的CArchive类实现,将整个路段信息以二进制码的形式保存在文本文件中,方便简单灵活的地图文件保存和加载。
数据存储是实现后台数据分析的前提,故在文本存取功能基础上,模块添加数据库存取功能。程序通过MySQL C API的方式进行存取。
为实现地图信息与数据库进行交互,共设计5张表,分别为完整地图信息表,地图比例表,工位点信息表,工位点连接信息表,工位连接信息扩展表,其中地图比例表与其他4张表无关联关系,独立存储地图场地的比例信息。读取数据库的时候,只需通过地图完整信息表以及地图比例表进行地图的重绘,而最优路径选择模块则通过工位点信息表和工位点连接信息表进行最优路径的选择。其中工位点信息表设计如图3,字段pot_x和字段pot_y分别代表工位点的x、y坐标,字段pot_style代表的是工位点的类型包括“工位”、“起点”、“终点”,字段pot_id代表的是各个工位的id号码,其余工位点连接信息表中工位号码相对应。
工位点连接信息表如图4,字段A,B分别代表的是两点的工位号码,字段AB代表两点间是否直接相连,字段AB_len代表两点间长度,字段AB_type代表连接类型,是曲线连接还是直线连接,字段map_store_id是连接线段在全局存储中的唯一标识id号,与整体路段表中的id号相对应。
图3 工位点信息表
图4 工位点连接信息表
数据库功能实现地图的完整存储,以及地图的完整读取和重绘。同样赋予管理员权限的用户可以直接选择通过数据库录入进行地图信息输入,而不需要从终端界面进行绘制。
(3)最短路径规划模块。为方便控制决策中选择最优路径进行设计,系统通过数据库存储数据,对工位点信息表,工位点连接信息表分析,以Dijkstra矩阵算法实现最短路径选择。
文中的电子地图系统实现了路径规划的基本功能,可进行最短路径长度计算,通过工位点的记录等。迪科斯彻算法主要用于计算图中一个节点到其他所有节点的最短路径[3],被认为是解决非负权值图中两点间最短路径搜索最合适的算法之一。程序中算法实现步骤如下:
①初始时,S只包含源点,U包含除v外的其他顶点,U中顶点u距离为边上的权(若v与u有边)或∞ (若u不是v的出边邻接点)。
②从U中选取一个距离v最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径长度)。
③以k为新考虑的中间点,修改U中各顶点的距离;若从源点v到顶点u(u U)的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u的距离值,修改后的距离值为顶点k的距离加上边上的权。
④重复步骤(2)和(3)直到所有顶点都包含在S中。
如图5所示,在查找最短路径界面中输入工位点3到工位点7时,地图界面会自动选择相关路线,并且将最短路径长度,路径工位线路顺序完整展示给用户,其结果与实际完全符合。
(4)预警模块。AGV运行时拥有一个阈值速度。通常当AGV行驶到例如停止标志时,传感器反馈的结果所产生的感应时间内因为惯性的原因导致AGV无法瞬间完成停止,会产生误差或功能损耗等,因此进行预先的提示就是必要的。电子地图包含完整的地图信息,当其对AGV进行实时定位时可有效地对当前位置及下一位置信息进行反馈。程序设计中添加接口设置,通过函数InPut-PathAction(double lenth)提前输入距离反应变量,该变量可以根据不同型号的AGV车辆,进行相关设定。当AGV车辆在地图中运行到距离某工位点达到该变量值时,预警模块会通过自定义函数Retroaction()反馈给控制系统预警信息,以及即将到达工位点的工位信息,从而运动控制系统可通过预警信息进行相关优化。
图5 最短路径选择结果
3 结束语及未来研究
本文通过物流AGV电子地图系统的搭建,详细介绍了系统设计及各模块的基本实现原理,并且通过Dijkstra算法实现单AGV运行中的路径规划功能。目前该电子地图对于多AGV应用还有待于进一步的开发,尤其对多AGV在同时同区域内协同作业时,运行死锁等问题的解决方案进行深入实现。
[1]Kaloutsakis G,Tsourveloudis N.Spanoudakis P.Design and development of an automated guided vehicle[J].Industrial Technology,2003(2):990-993.
[2]B.V.Cherkassky,A.V.Goldberg,T.Radzik.Shortest Paths Algorithms:Theory and Experimental Evaluation[J].Math Prog,1996,73:129-174.
[3]潘峥嵘,陈晓宇,郭凯,等.基于电子地图和Dijkstra算法路径规划的实现[J].测绘科学,2010,35(4):169-171.