实验5 基于RFID的目标定位追踪系统:RF-Robot
8.5.1 实验目标
- 学习RFID信号与传输距离、辐射角度的关系。
- 理解基于RFID的目标定位追踪原理。
- 学会构建基于RFID的目标定位追踪系统。
8.5.2 实验原理
在生活中,人们经常需要对各种目标物体进行搜索与定位,以便尽快找到目标物体做进一步操作:例如,在房间中寻找遗失的钥匙或文件,在仓库中定位需求的货物,或者在商场中寻找心仪的商品等。在这类场景中,由于环境多样、覆盖区域大等特点,传统的无线定位系统往往需要在每个场景都部署大量的参考节点或者收集大量的指纹信号信息,这些不仅大大增加了系统的人力与资金开销,而且也很难满足用户多变的需求。
而伴随着RFID技术的蓬勃发展,RFID标签凭借其得天独厚的远距离识别与价格低廉优势,已作为二维码的补充与替代产品大量涌入大众的视野中:在沃尔玛等大型超市、机场安检、物流管理等多个领域,大量的RFID标签被广泛用于唯一标识各类物体。而作为一种新型的无线技术,类似于Wi-Fi技术,RFID技术不仅可以用来传输信息,还可以借助信号信息反映信道特征。因此,基于RFID技术的定位系统也处于稳步发展中。
RF-Robot是一套由南京大学课题组自行设计研发的基于RFID技术的定位机器人,它能够搜索周围环境中的RFID标签,并对贴有RFID标签的目标物体进行定位和导航。图8.26展示了RF-Robot的硬件架构,主要由RFID阅读器、阅读器天线、笔记本电脑、无线路由器、轮式移动平台等组件组成。作为控制终端,笔记本通过无线路由器控制RFID阅读器扫描与查询相应的标签信息,通过串口控制轮式移动平台运动。
图8.26
图8.27展示了RF-Robot的系统架构,主要包含三个层次:1) 硬件层,包括所有的设备;2) 控制层,负责硬件层和数据处理层之间的数据交互,并执行数据处理层发来的指令;3) 数据处理层,运行定位算法并控制所有设备。
图8.27
RF-Robot定位算法主要是基于标签信号强度RSSI的变化模式,通过观察标签RSSI在RF-Robot旋转过程的的变化判断目标的方向,朝该方向前进以接近目标并最终定位该目标。如图8.28所示,随着RF-Robot的旋转,阅读器天线角度逐步发生变化,与天线距离不同的标签的RSSI会以不同的速度变化,但RSSI总是在0°时(标签位于天线正前方)达到一个峰值。实验中,我们注意到RSSI的变化模式在峰值附近接近于二次函数曲线,因此选择做二次函数拟合来得到目标标签相对于阅读器天线的角度。此后,RF-Robot会向此方向不断前进,在前进过程中,通过同样方法校准方向,以此最终定位到目标物体。
图8.28
图8.29
RF-Robot的定位过程如图8.29所示,包含四个步骤:粗粒度扫描,数据预处理,细粒度转动,迭代接近。
粗粒度扫描:用来粗略地确定目标所在的区域。如每隔40°划分为一个区域,旋转阅读器天线,在每个40°区域内采集目标标签的RSSI,可以确定目标属于哪一个区域。
数据预处理:确定目标大致的区域后,系统处理原始RSSI数据,收集充足的信息用于下一步的细粒度转动,即至少有3个相邻的非零RSSI样本,用于拟合二次函数。
细粒度转动:对采集的RSSI数据集进行二次函数拟合,用拟合得到的二次函数的最高点对应的角度代表标签的方向。
迭代接近:得到方向之后,根据对应的RSSI值计算得到移动距离d,在向目标所在方向移动该距离d之后,检测新的RSSI值,判断是继续向目标靠近还是修正角度后再向目标靠近。按照这样的方式,迭代地向目标靠近,直到检测到的RSSI达到阈值为止。
8.5.3 实验设备
Impinj Speedway R420阅读器1台,Impinj天线1个,平板电脑(或智能手机)1台,RFID标签8个,路由器1台,RF-Robot,包装食品、杯子等实物8份,三角支架8个。
图8.30
8.5.4 实验内容
- 实验准备。搭建实验环境,如图1所示。
- 部署实验场景,如图30所示。RFID标签贴在物体表面,所有贴有RFID标签的物体固定在三角支架上。将三角支架随机地摆放,三角支架之间保持适当的距离,确保RF-Robot可以到达每个三角支架附近。
- 系统初始化。运行智能设备上的APP向RF-Robot下达“系统初始化”指令,让RF-Robot原地旋转一周(360°),检测当前环境中的所有目标。如果所有目标都能够被检测到,则初始化成功;否则,需要调整物品部署。
- 测试定位误差和定位时间。在APP上选择要定位的物品,APP向RF-Robot发送“定位”指令,记录定位误差和定位时间。重复测试5次,记录结果并计算平均值。
- 更换物品或位置,重复上述实验,对实验结果进行比较。
8.5.5 实验结果
完成上述实验,填写表8.12、表8.13。
物品名称 | 定位误差/cm | 平均误差/cm | ||||
测试1 | 测试2 | 测试3 | 测试4 | 测试5 | ||
1 | ||||||
2 | ||||||
3 | ||||||
4 | ||||||
5 | ||||||
6 | ||||||
7 | ||||||
8 |
表8.12 测试定位误差
物品名称 | 定位时间/s | 平均时间/s | ||||
测试1 | 测试2 | 测试3 | 测试4 | 测试5 | ||
1 | ||||||
2 | ||||||
3 | ||||||
4 | ||||||
5 | ||||||
6 | ||||||
7 | ||||||
8 |
表8.13 测试定位时间