基于RFID阵列的无轨AGV系统的研究与设计
王青青1, 梁家海2     
1. 桂林理工大学信息科学与工程学院, 广西桂林 541004;
2. 北部湾大学电子与信息工程学院, 广西钦州 535011
摘要: 为改进有轨自动导航小车(AGV)的不足,研究一种基于RFID阵列的无轨AGV系统。该系统包括RFID阵列地板、无线通信网络、上位机、运行场地地图、小车运行控制系统;AGV安装若干RFID读卡器,运行在RFID阵列地板上,运行时通过读取地板下RFID电子标签的ID号,并通过无线通信网络发送到上位机;上位机构建和存储RFID阵列地板地图,上机位将接收到的ID号与存储的地图进行对照,计算出小车当前的位置的运行姿态,依据预设的运行路径生成AGV当前的控制指令并通过无线网络发送小车,控制小车的运行。系统通过利用RFID与地图实现定位,上位机生成控制指令的方式,实现AGV无轨运行。验证测试结果表明,AGV在预设运行路径上行驶,平均定位精度 < 5 cm,实用性好,稳定性高。
关键词: RFID阵列    无轨    AGV系统    研究与设计    
Research and Design of Trackless AGV System Based on RFID Array
WANG Qingqing1, LIANG Jiahai2     
1. School of Information Science and Engineering, Guilin University of Technology, Guilin, Guangxi, 541004, China;
2. School of Electronic and Information Engineering, Beibu Gulf University, Qinzhou, Guangxi, 535011, China
Abstract: In order to improve the shortage of orbital AGV, a trackless automatic guided vehicle (AGV) system based on RFID array is studied. This system includes an RFID array floor, wireless communication network, a host computer, operation site map, vehicle operation control system. The AGV is equipped with a plurality of RFID readers, which are run on the floor of the RFID array. The ID number of the RFID electronic tag under the floor is read by the mobile phone and transmitted to the master computer through the wireless communication network. The master computer constructs and stores the RFID array floor map. The upper position compares the received ID number with the stored map, calculates the running posture of the current position of the vehicle, generates the current control command of the AGV according to the preset running path, and controls the operation of the vehicle through the wireless network, so as to achieve trackless operation. By using RFID to positioning with maps and using the host computer to generate control commands and the host computer generates control commands, the system realizes the trackless operation of AGV. The verification test results show that the AGV is driven on the running path by default, and the average positioning accuracy is < 5 cm, which has good practicability and high stability.
Key words: RFID array    trackless    AGV system    research and design    
0 引言

自动导航小车(Automatic guided vehicle, AGV)系统属于工业机器人的分支之一,一般使用电池进行驱动,在一定的运行环境中可自主运行,在物流企业、柔性制造车间、自动化仓储等领域应用日益广泛,是制造业智能化的重要组成部分[1-3]。目前,AGV的导引技术可分为有轨导引和无轨导引两大类型,有轨导引需要小车运行的路径上铺设磁条或色块等导引物[4-6]; 曾祥苹等[7]利用模糊控制策略研究提高磁导引AGV路径跟踪精度及系统鲁棒性;任彧等[8]使用改进的免模型深度强化学习算法设计了路径跟踪控制器,在建立磁导航AGV离散时域的运动学和动力学模型的基础上, 将路径跟踪问题建模为连续状态与动作空间的马尔可夫决策过程,优化了控制规则;罗奎等[9]基于HMC1021设计了磁导引AGV控制系统;沈忱等[10]使用磁阻传感芯片HMC1021组成线阵的测量方案,研究一种磁导引AGV传感器,并提出减小误差的方法和改进方案;郑炳坤等[11]提出一种基于CAN总线的控制系统,其硬件架构以嵌入式工控机为核心, 实现由模糊自整定PD调节器来改良磁导航AGV的动态跟踪行为。综上,有轨AGV运行在固定路径上,对AGV路径的控制相对方便,定位较准确,可实现厘米级的定位,是目前AGV主要的导引方式,但存在路径一旦铺设就难以变更、轨道铺设成本高等不足。

无轨导引主要有激光导引、超声波导引、视觉导引、惯性导引等,激光导引、超声波导引技术采用信号传输距离与时间关系的测距原理,受环境的影响大,定位误差大,市场应用还不广泛。随着中央处理器处理能力的提高,视觉导引越来越多被应用到AGV和机器人领域,浙江大学李月华等[12]针对工业场景对自动导引车高定位精度的要求,提出一种改进的视觉同时定位与地图创建(VSLAM)算法,取得不错的效果;南京航空航天大学武星等[13]针对复杂光照条件下视觉导引AGV的路径提取问题,提出一种基于光照色彩模型的自适应图像照度分区阈值分割方法,提高对导引路径的识别率,但视觉导引方式依然存在对复杂环境和光线处理困难等不足。北京航空航天大学吴鹏等[14]针对在没有外部信号的室内环境下自动导引车定位问题, 提出一种将惯性导航与里程计相结合的算法,该算法在提升了位置估计的准确性与稳定性方面具有显著效果;季冉鸣等[15]提出了一种基于磁传感器、低精度惯导系统、编码器的机器人导航控制方法,该算法在工程上易于实现, 且提高了机器人导航的实时性和定位精度。但惯性导引方式在复杂环境下的累计误差问题依然难以解决。

本文研究针对目前市场上自动导航小车(AGV)应用中存在的不足,提出一种基于RFID阵列的无轨自动导航小车(AGV)系统。该系统将通过构建RFID阵列的方式实现对AGV的定位,并以此为基础,实现AGV运行路线动态规划和无轨运行控制,降低AGV运行门坎,提高AGV运行的灵活性。

1 系统设计原理及实现

无论是有轨AGV还是无轨的AGV,要使AGV在特定的环境中能自主运行,AGV定位是关键,传统的有轨AGV利用轨道将二维定位模式简化为一维定位,通过计算AGV在轨道上运行的相对距离即可实现定位,激光导引、超声波导引、红外线导引的无轨AGV采用三角测距法实现定位。本研究采用运行环境标识的方法进行定位,即对AGV的运行场地进行标识,将AGV的运行场地划分为大小相等的规则小块,每一块设定唯一的编号,建立编号与位置的关系(即地图),AGV运行在其上时,通过获取场地上的编号,在地图上查到对应的位置,从而实现定位,在此基础上实现AGV在指定路径上的自主运行。

环境标识定位法应用的关键因素为场地编号的表示、获取、实现成本等,采用科学合理、性价比高的方案尤为重要。一般而言,AGV的运行都是在特定的环境中,如工厂车间、物流现场等相对固定的场所,其特点是场地范围有限,场地上货物、车辆、人员流动较大。本研究设计一种利用RFID阵列的实现AGV定位的方案,将RFID作为场地标识,利用其性价比高、获取编号稳定性高、可靠性好、响应快等优点,设计一种低门槛、灵活性高的AGV系统。其原理是在AGV运行的环境中,通过将RFID电子标签规则嵌入到运行环境的地板上,构成RFID阵列地板,然后在上位机上构建和存储小车运行环境地板的RFID阵列地图,小车通过读取所经过地板的RFID电子标签的ID号并由上位机通过地图进行计算,从而实现小车的定位和姿态获取,以此为基础,实现小车运行的动态路径规划、运行控制等。

本研究的AGV系统包括如下部分:RFID阵列地板、上位机及地图、小车及运行控制系统、无线通信网络、电子罗盘等,系统结构如图 1所示。

图 1 AGV系统结构图 Fig. 1 Structure diagram of AGV system

1.1 RFID阵列地板

RFID阵列地板由按一定规则嵌入RFID电子标签的地板砖拼接而成。RFID电子标签按N×N(如10 cm×10 cm、15 cm×15 cm、20 cm×20 cm等)的方式进行排列,N值即为理论上的定位最大误差;N越小,小车的定位精度越高,但成本就越高,一般应用取15 cm或20 cm即可。为了便于施工,将RFID阵列地板预先按一定规格(如30 cm×30 cm、45 cm×45 cm、60 cm×60 cm等)制作成RFID阵列地板砖,小车的运行环境用上述地板砖进行铺设。地板砖的材料为非金属的硬质材料,如木材、玻璃、混凝土、工程塑料等,如图 2所示。

图 2 RFID阵列地板砖结构示意图 Fig. 2 Schematic diagram of floor tile structure of RFID array

1.2 上位机

上位机可由PC机或工控机担任。上位机安装无线通信网络收发终端,存储AGV当前运行环境相对应的RFID阵列地板的地图,建立基于该地图的路径规划、多AGV间的防撞控制系统。上位机通过上述地图和系统,根据工作任务的要求通过无线通信网络向AGV发出控制指令,指挥AGV的运行。

1.3 AGV本体及其运行控制系统

AGV包括中央控制系统、运行驱动模块、RFID读卡模块阵列、传感器模块、电池、小车本体。如图 3所示,主要模块说明如下:

图 3 AGV硬件结构图 Fig. 3 Structure diagram of AGV hardware

① 中央控制系统由嵌入式CPU(如MSP430、ARM等)组成,CPU至少有2个串行通信串口,2个8位的并行通信口及相应的外围器件。

② 运行驱动模块为直流电机的驱动电路,根据小车的载质量和所驱动的直流电机选择不同功率的模块。

③ RFID读卡模块只需读取RFID阵列地板中RFID卡的ID号,选用频率为13.56 MHz、读卡距离为5~10 cm、读卡时间小于0.2 s的读卡模块,一般安装在车首。

④ 无线通信收发模块组成小车与上位机的通信网络,负责传输小车发给上位机的RFID卡的ID号和上位机传输到小车的运行控制信息,信息量不大,但要求实时性好,可靠性高。传输距离视运行环境而定,可选择无线串口模块或WIFI网络模块。

⑤ 传感器模块主要进行小车的防撞、障碍物的检测,由超声波测距模块组成。

⑥ 小车本体是小车控制系统和载重物的载体,采用直流电机驱动,三轮或四轮的方式。

⑦ 电子罗盘:获得小车当前的运行方向。本系统选用HMC5883L数字指南针。

⑧ 无线通信网络:由小车和上位机的无线通信收发模块和通信协议组成。本系统选用E32-TTL-100无线串口模块。

1.4 AGV运行场地及地图

按预先确定的规则生产RFID阵列地板砖,然后将该地板砖铺设成RFID阵列地板,该地板为小车的运行场地。上位机建立AGV运行场地地图,在上位机上将用RFID阵列地板砖铺设而成的运行场地映射成二维地图,RFID读卡器读取运行场地中预先嵌入的RFID卡ID号,按(X, Y, ID)三元组的方式登记到上述地图相应的位置中。根据场地的实际情况在地图上划分小车运行区、货物存放区、小车停泊区等。

2 AGV运行控制及路线规划

用户通过上位机实现对AGV运行的监视、控制及路线规划。用户首先在上位机上建立AGV运行环境的地图,建立上位机与AGV的信息传输通道,AGV实时将当前运行的状态信息、所读取的RFID的ID号传输至上位机,上位机依据AGV当前的位置、运行状态和预设的运行路线生成AGV运行的控制命令,并发送给AGV,从而控制AGV的运行。

由此可见,AGV上位机监控系统是AGV的中央决策系统,主要完成AGV运行环境的建立与管理、AGV运行状态监视、AGV运行路径的规划、运行控制决策等工作,其功能结构如图 4所示。

图 4 上位机监控系统功能结构图 Fig. 4 Function structure diagram of master computer monitoring system

2.1 AGV运行环境的建立与管理

AGV运行环境的建立就是将AGV物理运行场地映射到监控系统中,建立每一张RFID与物理运行场地地理位置的对应关系,具体实现过程如下:

Step 1  给每一块RFID阵列地板编上唯一的序号,然后按统一的规则为每块RFID阵列地板建立对应的RFID的ID号向量(id1, id2, …, idn)(n=1, 2, 3, …), 并存放在数据库中。显而易见,每个ID对应其在该RFID阵列地板的相对位置,存在如下关系:

$ P\left( {{x_n}, {y_n}} \right) = F\left( {i{d_n}} \right)。$

Step 2  依据实际AGV运行场地所铺设的RFID阵列地板,在系统中建立运行场地的映射(即地图),效果如图 5所示。

图 5 AGV运行场地地图 Fig. 5 Map of AGV operation site

显见,每一块RFID阵列地板对应在运行场地的位置相对固定。不难得出,运行场地的某张RFID与其在场地的位置可由下列方法求出:

Step 1  依据指定RFID的ID号idn在数据库中搜索出其所在的阵列地板Bn, 并计算出其在该地板中的相对位置l(xn, yn);

Step 2  在场地地图中计算阵列地板Bn在运行场地中的起始位置L(Xn, Yn);

Step 3  实际位置P(Xidn, Yidn)=L(Xn, Yn)+l(xn, yn)。

2.2 AGV运行状态监视及运行控制决策

上位机实时监视AGV的运行状态,并根据设定的运行路线对AGV发出运行控制指令。上位机从AGV收到的信息有:RFID的ID号、AGV运行的速度和方向。

上机位接收到AGV的RFID的ID号后,利用2.1节所述方法计算出其在场地的位置,并实时在地图中显示。

AGV的运行路径规划在上位机所建立的地图上进行,用户所规划的路径用首尾相连线段表示,路径L可表示为$L = \sum\nolimits_{i = 0}^{i = n - 1} {{P_i}} $, Pi+1,其中Pi为路径线段的端点。

上位机根据用户所设定的运行路径及AGV当前的位置、运行速度、方向,按照所设计运行控制算法生成AGV运行控制指令。AGV运行控制指令为由运行速度及方法组成的二维控制向量Ctrl(Vt+1, Dirt+1), 算法可由下式表示:

$ {\mathop{\rm Ctr}\nolimits} 1\left( {{V_{t + 1}}, {{{\mathop{\rm Dir}\nolimits} }_{t + 1}}} \right) = C\left( {L, P, {v_t}, {{{\mathop{\rm Dir}\nolimits} }_t}} \right), $

式中:Vt+1、Dirt+1LPvt、Dirt分别为下一时刻的运行速度、下一时刻的运行方向、设定的运行路线、当前的运行速度、当前的运行方向。C为运行控制算法,其主要过程如下:

Step 1  将路径按一定的分辨率分解成若干运行控制点,如图 6所示。

图 6 路径分解示意图 Fig. 6 Schematic diagram of path decomposition

图 6中,P0P1P2P3P4为路径线段的端点,p0p1p2p3、…、pn为路径所分解的运行控制点,d为运行控制点的间隔(即分辨率)。运行控制点的求解过程如下:

P0P1路径为例,令P0P1点的坐标分别为(x0y0)、(x1, y1), 该路径上运行控制点pn的坐标为(xn, yn), 依据点斜式直线方程法得出路径P0P1的方程为

$ y - {y_0} = k\left( {x - {x_0}} \right), $ (1)

式(1)中,k为直线的斜率,整理后得:

$ y = kx + \left( {{y_0} - k{x_0}} \right)。$ (2)

图 6不难得出,P0P1路径上运行控制点pn存在如下关系:

$ \sqrt {{{\left( {{x_n} - {x_0}} \right)}^2} - {{\left( {{y_n} - {y_0}} \right)}^2}} = nd。$ (3)

式(3)中,d为运行控制点的间距。

wy0-kx0,整理式(3)得一元二次方程:

$ \begin{array}{l} \;\;\;\;\left( {1 + {k^2}} \right)x_n^2 - \left( {2{x_1} + 2k{y_0}} \right){x_n} + \left( {{x_0} + 2kw + } \right.\\ \left. {{w^2} - 2w{y_0} + y_0^2 - {n^2}{d^2}} \right) = 0。\end{array} $ (4)

a=1+k2, b=2x1+2ky0, c=x0+2kw+w2-2wy0+y02-n2d2, 式(4)简化为

$ ax_n^2 + b{x_n} + c = 0。$ (5)

求解式(5), 得:

$ \begin{array}{*{20}{l}} {x_n^\prime = - b + \frac{{\sqrt {{b^2} - 4ac} }}{{2a}}, }\\ {x_n^{\prime \prime } = - b - \frac{{\sqrt {{b^2} - 4ac} }}{{2a}}}。\end{array} $ (6)

$t = \frac{{\sqrt {{b^2} - 4ac} }}{{2a}}$, 由式(2)、式(6)得:

$ \begin{array}{l} \;\;\;\;{y^\prime } = {y_0} + kt - kb - k{x_0}, y_n^{\prime \prime } = {y_0} - kt - kb - \\ k{x_0}。\end{array} $ (7)

到此,求解出P0P1路径的运行控制点有2个,分别为

$ \begin{array}{l} \;\;\;\;p_n^\prime = \left( { - b + \frac{{\sqrt {{b^2} - 4ac} }}{{2a}},y_n^\prime = {y_0} + kt - kb - } \right.\\ \left. {k{x_0}} \right), \end{array} $
$ \begin{array}{l} \;\;\;\;p_n^{\prime \prime } = \left( { - b - \frac{{\sqrt {{b^2} - 4ac} }}{{2a}}, y_n^\prime = {y_0} - kt - kb - } \right.\\ \left. {k{x_0}} \right)。\end{array} $

显然,距离点P1最近即为实际的运行控制点pn, pn求解过程如下:

L′、L″分别为pnpnP1点的距离,则:

$ {\rm{ if }}\left( {{L^\prime } < {L^{\prime \prime }}} \right)\quad {\rm{ then }}\quad {p_n} = p_n^\prime \quad {\rm{ else }}\quad {p_n} = p_{n^\circ }^{\prime \prime }。$

同理,求解出其他路径段的运行控制点。

Step 2  依次将所生成的运行控制点作为当前运行的目标点,并根据AGV当前的位置、运行状态计算AGV下一时刻的运行控制指令,控制指令为速度、方向的二维向量,用Ctrl(Vt+1, Dirt+1)表示。

3 AGV运行效果验证与分析

为验证AGV在实际运行环境中按预设路径运行的效果,本研究采用(60 cm×60 cm)的RFID阵列地板,RFID的布置采用“隔一放一”的方案,如图 2所示。运行现场由(3×3)共9板地板组成,测试的AGV运行路径为L(P1, P2, …, Pn)(n=1, 2, 3, …), Pn依次为运行路径的端点,如表 1所示。运行控制点的间隔d=20 cm, 如图 7所示。

表 1 运行路径端点 Table 1 Endpoints of run path
P1 P2 P3 P4 P5 P6
(30, 30) (30, 150) (90, 150) (90, 30) (150, 30) (150, 150)

图中数字为地板编号,深色线为预设运行路径 The numbers in the figure are the floor number, and the dark lines are the preset running path 图 7 现场地图及预设运行路径图 Fig. 7 Site map and preset operation path diagram

测试时AGV以不同的速度,沿路径L(P1P2P3P4P5P6)行驶, 上位机通过AGV发送上来的RFID的ID号、运行方向、运行速度计算出AGV实时的位置,并记录和生成AGV的运行轨迹及位置数据。不同运行速度下,运行轨迹与预设路径的对比如图 8所示。

图 8 AGV运行轨迹与预设运行路径对比图 Fig. 8 Comparison between AGV running track and preset running path

图 8可知,小车的运行速度影响小车沿预设路径运行的能力,小车运行速度>12 cm/s时,小车大幅偏离预设路径,并产生运行轨迹来回颠簸,且速度越快路径偏离和轨迹来回颠簸现象越严重;速度越慢小车沿预设路径运行的效果越好,当小车运行速度<8 cm/s, 小车已基本能沿预设路径行驶,且没出现来回颠簸,再降低运行速度对运行效果的改善已不明显。根据观察结果,小车运行路径偏离和轨迹来回颠簸现象的主要原因如下:

1) 小车运行速度过快,系统来不及响应,错过了下一运行控制点,偏离预设路径,小车在错过控制点后,为了能通过已错过的控制点,必须折返,从而使小车的运行轨迹出现来回颠簸。

2) 小车运行速度过快,不能读到RFID的ID号,从而出现路径偏离和来回颠簸。

4 结论

本文通过利用RFID阵列构建AGV运行环境,并提出在该环境下AGV运行控制策略,实现了AGV在特定环境下的无轨运行及运行路线随意可调的功能,AGV在预设运行路径上行驶,平均定位精度<5 cm,有效改进了传统有轨AGV在运行路线灵活性差等不足。由于采用的定位信息来自RFID卡中的ID号,信号稳定、可稳性高、抗干扰能力强,因此系统运行的可靠性高、抗干扰能力强;小车上采用RFID读卡阵列,保证小车运行期间绝大部时间能读到ID号,有效地提高小车的定位精度。本系统采用上位机对系统进行集中控制的方式,充分发挥了上位机计算能力强的特点,对规划路径、控制信号的计算效率更高,适合柔性制造车间、超市等场所。

参考文献
[1]
张辰贝西, 黄志球. 自动导航车(AGV)发展综述[J]. 中国制造业信息化, 2010, 39(1): 53-59. DOI:10.3969/j.issn.1672-1616.2010.01.014
[2]
林桂潮, 邹湘军, 张青, 等. 基于主动轮廓模型的自动导引车视觉导航[J]. 农业机械学报, 2017, 48(2): 20-26.
[3]
徐仲勋, 刘建新, 王亚威, 等. 一种基于标记码的AGV小车导航修正方法[J]. 机床与液压, 2018, 46(3): 58-62. DOI:10.3969/j.issn.1001-3881.2018.03.015
[4]
常中华, 王伟. 基于BD和QR码的AGV研究与设计[J]. 青岛大学学报:自然科学版, 2014, 27(3): 74-78.
[5]
魏永来, 龙伟, 李炎炎, 等. 基于混合禁忌蝙蝠算法的AGV物料配送调度研究[J]. 组合机床与自动化加工技术, 2018(11): 145-149.
[6]
JIN J, ZHANG X H. Multi-agv scheduling problem in automated container terminal[J]. Journal of Marine Science and Technology, 2016, 24(1): 32-38.
[7]
曾祥苹, 刘兴教, 栗江. 基于磁导引AGV的路径跟踪控制策略研究[J]. 组合机床与自动化加工技术, 2018(12): 86-89.
[8]
任彧, 赵师涛. 磁导航AGV深度强化学习路径跟踪控制方法[J]. 杭州电子科技大学学报:自然科学版, 2019, 39(2): 28-34.
[9]
罗奎, 谢玮, 王振. 基于HMC1021的磁导引AGV控制系统的设计[J]. 计算机测量与控制, 2017, 25(4): 58-60, 74.
[10]
沈忱, 夏继强, 满庆丰, 等. 基于磁阻传感芯片阵列的磁导引AGV传感器设计[J]. 传感器与微系统, 2016(3): 108-110, 114.
[11]
郑炳坤, 赖乙宗, 叶峰. 磁导航AGV控制系统的设计与实现[J]. 自动化与仪表, 2014, 29(3): 6-10. DOI:10.3969/j.issn.1001-9944.2014.03.002
[12]
李月华, 朱世强, 于亦奇. 工厂环境下改进的视觉SLAM算法[J]. 机器人, 2019, 41(1): 95-103.
[13]
武星, 张颖, 李林慧, 等. 复杂光照条件下视觉导引AGV路径提取方法[J]. 农业机械学报, 2017, 48(10): 15-24. DOI:10.6041/j.issn.1000-1298.2017.10.002
[14]
吴鹏, 李东京, 贠超. 一种惯性传感器与编码器相结合的AGV航迹推算系统[J]. 机电工程, 2018, 35(3): 310-316. DOI:10.3969/j.issn.1001-4551.2018.03.019
[15]
季冉鸣, 王芳. 一种基于磁钉和惯导系统的机器人导航控制算法[J]. 制造业自动化, 2014(4): 52-54.