基于RFID技术自动导引车定位和导引设计详解
0 引言
对于物件搬运AGV(自动导引车),导引和定位是其关键研究部分。常用的导引方式有磁导引[1]、视觉导引[2]、激光导引[3]等,定位方式有二维码定位[4]、RFID射频识别定位[5]、超声波定位等,其中磁导引磁条铺设方便、路径变更容易,射频识别不易污染、对声光无干扰,因此集成RFID技术的磁导引AGV在自动化生产运输中的应用广泛。
针对磁导引中的RFID技术,已有诸多学者进行研究。顾佳炜等人[6]通过在电子标签中写入标签编号和运动控制参数实现AGV导航。李季[7]采用RFID辅助定位并借助横向磁条的方式完成车辆转弯、停车等动作。罗雨佳[8]将AGV转弯动作模式固定,利用标签信息实现转弯90°和180°。
上述文献大多是把动作指令写在电子标签内,由于保存的指令信息单一,标签利用率低,当实际路径复杂时需布置更多标签,不利于路径规划和导引。本文在前人研究基础上,以解决复杂路径下AGV的导引问题为目标,提出一种车辆动作指令算法,根据调度任务生成动作指令并保存在车载控制系统,标签仅作为位置识别以提高车辆行驶灵活性。
1 行驶地图建模
1.1 地图组成
地图由导引磁条、工位组成,如图1所示,二者分别用线条和矩形表示。g表示工位,数量为h,按式(1)对其编号(图中小矩形右侧数字),则工位集合可以表示为G={g1,g2,g3,…,gh}。l表示线路,数量为n,规定横向、纵向线路编号分别用偶数、奇数表示并按式(2)对其编号(图中圆圈内的数字),线路集合为L={l1,l2,…,ln}。
基于本文的应用场景规定AGV除了进入工位时货叉朝前向前行驶外,其余情况下均后退行驶,在线路交叉处、进工位时减速行驶。
1.2 电子标签布置方式
1.2.1 工位相关标签布置
图2中pi1,pi2,…,pi7表示电子标签位置。图2(a)为AGV直行从左侧进入工位gi,规定依次在pi3、pi5、pi4、pi7处分别减速、由后退行驶变为前进、前进右转、停车。图2(b)为AGV后退左转出工位,依次在pi7、pi6、pi1处分别后退直行、后退左转、加速。AGV从工位右侧进、出和其从左侧进、出相似。定义pik是和工位gi相关的第k个标签(k∈{1,2,…,7}),按图2布置,其组成用矩阵S1表示为:
1.2.2 线路标签布置
在每条线路两端各放置两个电子标签。Sja表示线路lj上的第a个标签,a={1,2,3,4}。规定Sj1、Sj2、Sj3、Sj4在lj上依次沿坐标轴正方向布置,Sj1和Sj4之间的线段为线路lj的范围。车辆在Sj1、Sj4处执行转弯指令以进入其他线路,在Sj2、Sj3处执行加速或减速指令使其进入lj时加速,离开lj时减速。所有线路上的标签用式(4)所示矩阵S2表示,最终地图中所有标签的布置情况如图3所示。
2 动作指令算法
首先对标签编码,然后根据调度路径确定经过每个标签的顺序,最后根据标签排序生成动作指令。
2.1 电子标签编码
电子标签编码格式如图4所示,其中x、y表示标签在地图中的坐标,‘pro’表示属性,即车辆在标签处可执行的动作指令种类,‘line’表示所在线路,‘sit’表示相关工位号。根据AGV在线路上的行驶方式规定Sj1、Sj4的‘pro’位为‘01’,表示转弯,Sj2、Sj3的‘pro’位为‘02’表示加减速。Sja的‘line’位为其所在线路编号j,‘sit’位用零表示。标签pik的‘pro’位根据AGV进出工位方式将其用表1表示,‘line’位为pi1所在的线路编号,‘sit’位为和其相关的工位编号i。
2.2 路径建立与选择
其中,w表示路径,数量为m(m≥m0),则所有路径组成的矩阵可表示为W=[w1,w2,…,wm]T。ltx表示路径wt的第x条线路,其中wt={lt1,lt2,…,ltx,…},t∈{1,2,…,m},ltx∈L,设第t条路径所包含的线路数量最大且为n1,则W为m×n1阶矩阵。对于线路数目不足n1的,不足部分用0表示,路径矩阵用式(6)表示:
2.3 调度路径标签排序方式
对任意两条相连接线路上标签,第一条和第二条分别用lu、lv表示。lu上的标签为Su1、Su2、Su3、Su4,lv上的标签为Sv1、Sv2、Sv3、Sv4。r0表示从lu到lv经过的标签顺序。设Su1坐标为(x1,y1),Sv1坐标为(x2,y2),经过二者坐标比较可推断出lu和lv的相对位置关系:
第一种情况:x1》x2,y1》y2,如图5(a)、图5(b)所示,r0={Su4,Su3,Su2,Su1,Sv4,Sv3,Sv2,Sv1}。
第二种情况:x1》x2,y1《y2,如果lu为奇数,r0={Su1,Su2,Su3,Su4,Sv4,Sv3,Sv2,Sv1},对应图5(c);否则r0={Su4,Su3,Su2,Su1,Sv1,Sv2,Sv3,Sv4},对应图5(d)。同理可推断出其余几种情况下的r0元素排列情况。
对于路径wβ,首先根据式(4)选出每段线路上的标签,然后按照车辆在该路径上经过每个标签的顺序排列,步骤如下:
(1)将lβ1、lβ2分别视为第一条、第二条线路,根据坐标关系判断出两者位置关系。按照两条线路标签排序规则进行排序,并将排序结果放在数组r1中;
(2)将lβ2、lβ3分别视为第一条、第二条线路进行排序,将lβ3标签的排序结果添加在数组r1中;
(3)依次对线路lβ3、lβ4,lβ4、lβ5,…,jsj3-t6-s1.gif按照类似步骤(2)的方式排列标签。
根据AGV进出工位的方式删除r1中未在lj1和lj2上经过的标签,此时r1中元素个数用b1表示。
2.4 动作指令
动作指令格式如图6所示,前5位为电子标签编码,‘ins’位为AGV在前5位对应的标签处执行的动作指令,按其功能不同进行编码,如表2所示。AGV从起始工位gs到目标工位ge过程中,按照出工位、路径上行驶、进工位的顺序行驶,RFID阅读器持续读取地面标签信息并将其传递给车载控制系统,通过依次按条件执行指令完成调度任务,条件为当前读取的标签信息和要执行指令的标签编码位一致。
2.4.1 出工位动作指令
R1表示出工位动作指令集合。如果AGV从左侧出工位,则在S1第S行‘pro’位为‘09’、‘08’、‘03’的标签编码后分别添加‘00’、‘01’和‘05’,否则在S1第S行‘pro’位为‘09’、‘08’、‘07’的标签编码后分别添加‘00’、‘02’和‘05’,并依次作为R1中第1、2、3条动作指令。
2.4.2 路径动作指令
分别对r1中b1个标签按‘pro’位确定动作指令。R2表示路径动作指令集合,图7为其判断流程。
2.4.3 进工位动作指令
R3表示出工位动作指令集合。AGV从左侧进工位,在S1第e行‘pro’位为‘05’、‘07’、‘06’、‘09’的标签编码后分别添加‘06’、‘07’、‘04’、‘08’;否则在该行‘pro’位为‘05’、‘03’、‘04’、‘09’的标签编码后分别添加‘06’、 07’、‘03’、‘08’,并依次作为R3中第1、2、3、4条指令。
每次执行任务的完整指令集合用R表示,则:
3 试验结果及分析
在图7中选择工位12、13、17、18进行试验。标签编码如图8所示,前两位为x坐标,第3~4位为y坐标,第5~6位表示属性,第7~8位为其所在线路编号,最后两位为和其相关工位编号。
在VC++6.0中编写车辆动作指令程序,选取基于ARM架构并集成了RC522射频识别模块的模型车作为试验对象。图9为铺设导引线和放置标签后的实际车辆运行图。试验表明,车辆能够按照预期的目的完成调度任务。图10为将动作指令写入标签内的导引方式,AGV通过执行标签内指令完成加减速等动作。因地面标签布置结束后其内部指令信息已确定,所以车辆经过每个标签时仅能完成某个固定动作,导引方式相对单一,灵活性差。
选取不同的起始工位和目标工位进行组合,代表不同调度任务,在C++6.0中其每次运算结果如图11所示,每条动作指令前10位为电子标签编码,最后两位为AGV在该标签执行的动作。
由图11(a)、11(b)可知任务1、2的行驶路线分别为20→22→24,20→22→21→18,AGV均经过了标签4610012200,任务1中没有该标签对应的指令,AGV在此处不执行任何指令,从线路22保持直行状态进入线路24;任务2中在该标签对应的指令为461001220002,最后两位‘02’表示AGV在此处后退右转,由线路22进入线路21。对比可得: AGV仅在满足动作指令执行条件的标签处执行该指令。
由图11(c)、11(d)可知任务3、4的行驶路线分别为24→21→16→14,24→21→18,AGV均经过了标签4722012100,任务3中AGV在该标签对应的指令为472201210002,最后两位‘02’表示AGV在此处后退右转,由线路21进入线路16;任务4中在该标签对应的指令为472201210001,最后两位‘01’表示AGV在此处后退左转,由线路21进入线路18。对比可得:AGV完成不同任务时在同一个标签处能够执行不同的指令,增加了行驶灵活性。
4 总结
本文采取了电子标签作为位置识别,且动作指令根据具体任务由算法生成并存储在车载控制系统的方式,使得车辆在执行不同任务过程中经过同一电子标签时可执行不同的动作指令,弥补了传统导航方式中行驶路线固定、在标签处执行指令单一的不足。该方法解决了复杂路径下车辆的导引问题,提高了行驶灵活性和标签利用率,具有一定的应用价值。