2. 北部湾大学电子与信息工程学院, 广西钦州 535011
2. School of Electronic and Information Engineering, Beibu Gulf University, Qinzhou, Guangxi, 535011, China
自动导航小车(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.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所示。
1.2 上位机
上位机可由PC机或工控机担任。上位机安装无线通信网络收发终端,存储AGV当前运行环境相对应的RFID阵列地板的地图,建立基于该地图的路径规划、多AGV间的防撞控制系统。上位机通过上述地图和系统,根据工作任务的要求通过无线通信网络向AGV发出控制指令,指挥AGV的运行。
1.3 AGV本体及其运行控制系统AGV包括中央控制系统、运行驱动模块、RFID读卡模块阵列、传感器模块、电池、小车本体。如图 3所示,主要模块说明如下:
① 中央控制系统由嵌入式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所示。
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所示。
显见,每一块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可表示为
上位机根据用户所设定的运行路径及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+1、L、P、vt、Dirt分别为下一时刻的运行速度、下一时刻的运行方向、设定的运行路线、当前的运行速度、当前的运行方向。C为运行控制算法,其主要过程如下:
Step 1 将路径按一定的分辨率分解成若干运行控制点,如图 6所示。
图 6中,P0、P1、P2、P3、P4为路径线段的端点,p0、p1、p2、p3、…、pn为路径所分解的运行控制点,d为运行控制点的间隔(即分辨率)。运行控制点的求解过程如下:
以P0→P1路径为例,令P0、P1点的坐标分别为(x0,y0)、(x1, y1), 该路径上运行控制点pn的坐标为(xn, yn), 依据点斜式直线方程法得出路径P0→P1的方程为
$ y - {y_0} = k\left( {x - {x_0}} \right), $ | (1) |
式(1)中,k为直线的斜率,整理后得:
$ y = kx + \left( {{y_0} - k{x_0}} \right)。$ | (2) |
由图 6不难得出,P0→P1路径上运行控制点pn存在如下关系:
$ \sqrt {{{\left( {{x_n} - {x_0}} \right)}^2} - {{\left( {{y_n} - {y_0}} \right)}^2}} = nd。$ | (3) |
式(3)中,d为运行控制点的间距。
令w=y0-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) |
令
$ \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) |
到此,求解出P0→P1路径的运行控制点有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″分别为pn′、pn″与P1点的距离,则:
$ {\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所示。
测试时AGV以不同的速度,沿路径L(P1→P2→P3→P4→P5→P6)行驶, 上位机通过AGV发送上来的RFID的ID号、运行方向、运行速度计算出AGV实时的位置,并记录和生成AGV的运行轨迹及位置数据。不同运行速度下,运行轨迹与预设路径的对比如图 8所示。
由图 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. |