具有低功耗自组织特性的广域定位系统能较好符合大规模厂区定位需求。LoRa技术能够实现低成本与低功耗的通信,本作品设计的定位系统利用LoRa技术,通过LoRa进行数据包ToF测距实现低功耗的多边定位,通过设计LoRa Mesh自组网协议实现定位系统自组织。本作品进一步设计了定位中的测距结果筛选和锚点选择算法,提出了LoRa Mesh中一种基于吸引力的路由选择算法。本系统基于中国移动OneOS操作系统开发,定位结果可以通过网络中的网关节点经MQTT协议上传至OneNet平台并通过开发的网页地图实时查看。经过多次校园实验,本定位系统的性能得到了很好的验证。
系统实现
硬件设计
网关
硬件原型采用中国移动提供的万耦天工STM32F103ZET6开发板搭建,如图4-1所示,除开发板本体外,通过SPI总线连接SX1280模块,对于有端云协同需求的网关,通过串口连接Air724UG 4G模块。
硬件原型实物图
节点
为了能有多个节点完成组网与定位实验,我们采用STM32L4低功耗单片机和SX1280射频收发器,经过原理图绘制、PCB Layout、PCB打样、SMT贴片、剩余元器件焊接等步骤制作了节点硬件,硬件PCB Layout图如图4-2所示,制作完成实物如图4-3所示。
硬件PCB Layout图
硬件原型实物图
LoRa Mesh组网
组网流程
LoRa Mesh组网流程图如图4-4所示,根据功能设计部分所述,发送数据时若存在有效路由路径则直接按路由发送至下一跳,如果不存在则进行广播路由查找,自主发现通向网络任一其他节点的多跳路由,构成可自适应组网的Mesh网络。在此过程中我们加入加入应答与超时重发机制,提升可靠性。
Mesh组网下通信流程图
路由选择
Mesh网络中有效路由路径往往有多条,路由选择算法优劣决定了通信延时等质量。我们实现了3种组网算法并进行比较,分别是最小跳数组网、最佳路径RSSI组网与基于吸引力的协同优化组网。最小跳数组网为组网时的自然状态,但在两节点间RSSI低于-80dbm后,连接可靠性将严重下降,反映为高丢包率;最大RSSI组网选择链路中整体RSSI最大的路径,保证了每跳之间的连接质量,但是若不考虑跳数限制,所选路径可能存在不必要转发,使得传输延时增加。
为综合考虑跳数、RSSI和链路负载,我们综合以上参数设计了吸引力指标,节点i将选择吸引力值最大的节点j作为下一跳。
LoRa定位
模式切换
收到测距指令后,被定位标签收集周围可供定位锚点节点信息,并与锚点节点逐一协商进入测距模式,具体流程如图4-6所示,进入测距模式后将无法正常收发LoRa数据包,因此为防止模式切换不同步导致节点无法通信,我们设计了完整的回复应答、超时重发、超时退出机制。
测距与通信模式切换流程
结果筛选
如功能设计部分所述,我们对至多39个信道的测距结果进行筛选与滤波,具体流程如图4-7所示。
测距结果筛选流程
系统实验结果
测距实验
使用我们提出的信道筛选算法进行测距性能测试,在校园内直路上每隔25米左右测距一次,结果如图5-1,结果显示800米内测距误差在15米以内,测距距离可达1000米。
测距实验结果图
Mesh组网实验
在校园内摆放10个锚点节点,获取不同路由选择算法下的网络拓扑,并通过上位机测试丢包率和延时情况,表5-1呈现了测试结果。根据测试结果,采用最小跳数路由选择时,若路径中存在RSSI较低的跳,则严重影响包到达率和平均延时;采用最大路径RSSI选择时,跳数可能偏多,也导致包到达率和平均延时恶化;基于吸引力的协同优化算法实现了更高可靠性和普遍更低的延时。
制作完成等待参与实验的节点
锚点节点摆放情况
不同路由选择算法下路由情况
三种路由选择算法通信质量的区别
选择算法 |
目标节点 |
跳数 |
包到达率 |
平均延时 |
最小延时 |
最大延时 |
最小跳数 |
3 |
1 |
80 |
3695.3 |
175.2 |
9206.9 |
10 |
1 |
28 |
6223.8 |
2390 |
10370.1 |
|
最大RSSI |
8 |
5 |
90 |
3630.1 |
756 |
9713 |
9 |
5 |
84 |
4299.2 |
614.2 |
10544.3 |
|
协同优化 |
6 |
4 |
94 |
3048.8 |
610 |
9624 |
7 |
3 |
100 |
2799.3 |
489.1 |
10437 |
|
5 |
3 |
94 |
3219.75 |
514 |
9514 |
|
10 |
3 |
98 |
2957.4 |
501 |
10426 |
|
8 |
3 |
90 |
4198.8 |
518 |
10466 |
|
9 |
2 |
100 |
1802.8 |
381 |
6388 |
|
3 |
2 |
100 |
1547.8 |
384.9 |
5374.7 |
|
4 |
2 |
100 |
2333 |
379.6 |
10317.7 |
|
2 |
1 |
100 |
438.8 |
167.7 |
2255.45 |
定位实验
放置10个锚点节点,手持被定位标签节点并自由移动,记录GPS位置与LoRa定位位置解算结果,对比最小二乘所得近似解与对近似解进行牛顿迭代后定位误差的CDF图如图5-4所示,进行迭代后的定位误差在40米以内。在网页上实时查看并对比定位情况,如图5-5所示,LoRa位置解算结果为蓝点,GPS位置解算结果为黑点。
定位误差CDF图
实时定位结果在地图中呈现