基于 RFID 和无人机的畜牧定位系统分为数据采集、数据分析处理和数据显示 3 个功能模块。系统组合利用了有源RFID 设备、无人机和移动互联网技术来解决放养牲畜定位过程中要求电池续航能力强、体积小、成本低的问题。
系统的基本原理是利用 RFID, 在一百多米的范围之内发射无线射频信号,带有 RFID 读卡器和手机的无人机在放养范围内自动巡航, 每当扫描到有 RFID 信号时即把 RFID 数据、信号强度,通过蓝牙传输到一个智能手机,手机获取到此时地理位置,经过数据预处理后再通过移动数据网络把数据发射到系统服务器端。服务器端对所采集到的位置和 RFID 数据进行处理和分析。手机客户端 App 可以查看到牲畜的最新位置数据,方便养殖户进行牲畜管理。
在同一时间内能扫描到的 RFID 卡设备比较多, 需要对搜集到的 RFID 卡数据进行数据去重和融合。读卡器扫描到的 RFID 原始数据是时间点为元数据组成的数据序列,即 Data={time,longitude,latitude, [{id1,rssi1}, {id2,rssi2}……]}, 原始数据为数据序列 data1、data2、data3… …。从 RFID 读卡器读取数据间隔时间较短 (1 秒), 每秒采集到的数据量比较大。可以把采集的时间间隔延长,把1秒时间间隔增 加为5妙。增加时间周期的方法为:
1) 以5秒时间周期内的第一秒数据为初始的融合数据。
2) 添加其余每秒的数据到初始数据。合并方法是: 遍历新数据中每个 RFID 数据, 若该 RFID 不存在融合数据中, 则把该 RFID 数据增加到 RFID 列表中。若该 RFID 数据已经存在 RFID 列表中,并且把rssi值最大的元数据的当前位置设置为融合数据的位置和rssi值。
算法伪代码为:
经过数据预处理之后,从手机端发送到服务器的数据如表3所示。
3 数据处理模块
3.1 数据转换
将以按时间划分的元数据,转换为以 RFID 进行划分的数据。数据采集模块采集到的元数据格式 Data1= {t1,long1, lati1,{{rfid1,rssi1}, {rfid2,rssi2}。}}。由于每项数据是以时间为主键进行的划分,不便于后期的数据分析处理,需要把数据转化为以 RFID 号为主键的划分。转化方法为遍历每个rssi和经 纬度数据。转换后格式为 Data= {rfid1, {rssi1,{long1,lati1},{rssi2,{long2,lati2},… …}}}。
3.2 根据信号强度修正地理位置
装载于无人机上的 RFID 读卡器在一百多米的范围内扫描
RFID 卡,扫描范围R,扫描距离在地面的投影距离 L 和飞行高度高度 H 的关系是:
(1)假设无人机的飞行高度为 30 米, 读卡器的读卡范围是
150米,计算得到地面上的覆盖高度是146米。
由于 RFID 读卡器读卡距离过长, 定位精度不高。若采用缩短 RFID 读卡器读卡距离的方法提高精度, 则需要无人机在同一区域内扫描的路径更为密集。本系统使用信号强度 (RS- SI) 修正目标位置范围的方法来提高位置精度。
根据 RSSI和距离的公式:
(2)则
(3)其中:n 代表信号传播常量,d 代表距发射器间的距离; A 代表距离 1 m 时的接收信号强度。RSSI值会随着距离的增加按如式 (2) 递减。即RSSI的值越高,采集的位置数据越精确。于是对地理位置的作如下纠正: