基于信号强度与超声波测距的室内定位系统
2019-02-22徐盛良鲁照权周永燕王肖玥峰
徐盛良,鲁照权,周永燕,王肖玥峰
(合肥工业大学电气与自动化工程学院, 安徽合肥 230009)
0 引言
导航技术已经广泛应用于公路交通、航天、航空、航海等诸多领域,而定位是导航的关键技术。随着经济的高速发展、人力资源成本的大幅度提高、智能制造技术的快速上升,企业对数字化码头、数字化工厂、数字化仓库的需求越来越高。传统的AGV小车通常采用循迹技术,移动路径是固定的,已无法满足智能制造的要求。为了能方便地任意规划路径,必须寻求新的循迹技术并实现室内导航。而室内定位是实现室内导航的关键技术。
常见的室内定位技术有超声波[1]、红外线[2]、超宽带[3]、射频识别[4](RFID)等技术,其中,基于射频信号强度和超声波是常用的定位手段。射频信号强度定位成本低,覆盖范围广,一般可覆盖50 m的范围,但是定位精度低,定位精度达m级。室内超声定位精度较高,文献[5]在室内无遮挡的情况下达到了10 cm以下的定位精度,但覆盖范围小,容易受障碍物的影响。结合射频信号强度和超声波的优点,文献[6]将射频信号强度与超声波融合,通过压缩感知算法及超声波网格定位法,在有障碍物的情况下取得了较好的效果,但在全视距下仍有8 cm的误差。文献[7] 在Cricket室内定位的基础上,引入节能机制的方法,改进信道分配策略,降低了系统的能耗和成本,但并未在定位精度上给出更多的证实。
在室内定位中,精度是最重要的衡量标准,在此基础上,还需要将系统的成本和能耗降到最低,并保证其安全可靠。因此,本文提出射频信号强度[8]与超声波结合的室内定位系统,通过粗定位阶段,将定位区域进一步缩减,降低了能耗,并采用增加定位基点的方法弥补非视距和覆盖范围小的不足,采用移动平均滤波法使得数据更加可靠。
1 定位原理
移动目标通过射频收发器向每个块的中心定位基点发出射频信号,读出各信号强度值,比较出信号强度的最大值,确定出移动目标所处的块,唤醒块中各定位基点到工作状态,然后移动目标对该块的各定位基点发出射频同步命令和超声波,并开始计时。块中各定位基点收到射频同步信号后便开始计时,同时接收超声波,接收到超声波后计时结束,由定时器得出时间差,将时间差无线传输给移动目标。移动目标根据时间差与超声波传播速度计算出距离。得出移动目标到这些定位基点的距离后,寻找最小的3个距离值,通过三边测量法[9]并考虑3个基点的坐标,计算出移动目标在定位区域内的坐标。
测距原理图如图1所示。移动目标向定位基点发射超声波的具体步骤如下:
图1 测距原理图
(1)移动目标发送命令01给确定出移动目标所处的块中的各定位基点,唤醒定位基点模块,使其处于工作状态,定位基点收到移动目标发送命令01,应答收到命令02且返回工作状态值81,其格式见表1。
表1 唤醒定位基点格式表
(2)定位基点处于工作状态后,移动目标发送RF同步命令11,立即发射N次超声波信号。N次超声波发射时间间隔为1 ms。定位基点收到超声波获得测距数据后,向移动目标发送命令12,即发送测距数据,其格式见表2。
(3)移动目标计算出定位坐标后,向上位机发送命令21,其格式见表3。
表2 RF同步命令格式表
表3 向上位机发送坐标格式表
(4)上位机收到数据后,发送应答命令22,其格式见表4。
表4 发送应答命令格式表
2 系统设计案例
采用长为6.8 m、宽为3.4 m、高为3 m的房间作为定位实验环境。考虑所选HC-SR04超声波模块的发射角为30°,在高为3 m时圆形照射区域的半径为1.7 m,将平面的最小定位区域定义为1.7 m×1.7 m的方格,如图2所示。这样,当移动目标位于定位方格内任意位置时,总会位于3个圆形照射区域内。图中黑色方点表示定位基点,黑色圆点表示移动目标。块N1由1、2、3、4方格组成,中心定位基点为B1;块N2由3、4、5、6方格组成,中心定位基点为B2;块N3由5、6、7、8方格组成,中心定位基点为B3。
图2 室内平面图
移动目标i(xMi,yMi)首先分别对块N1、N2、N3的中心定位基点B1、B2、B3发送射频信号,读出定位基点信号强度值为RSS1、RSS2、RSS3。比较出3个强度值中的最大强度值,确定移动目标位于哪个块内,该块作为粗定位区域,然后对粗定位区域每个方格4个角上的定位基点进行超声波测距,寻找到最小的3个测距值。
由于声速对温度变化很敏感,室内温度变化较大,故需要对其进行修正,修正公式[10]为
(1)
式中:v为超声波在介质中的传播速度;T为室内温度。
测量出移动目标i(xMi,yMi)(i=00H-FFH)到3个基点(xi,yi)之间的到达时间差ti,再乘以速度v,计算出移动目标与定位基点之间的距离Ri。分别以定位基点(xi,yi)为圆心,Ri为半径画圆,各圆的交点为移动目标的坐标(xMi,yMi)。三边测量法[11]原理如图3所示。
图3 三边测量法
(2)
2.1 硬件设计
每个定位基点的硬件均包含CC1101射频收发器和HC-SR04超声波模块及AT89C52单片机。移动目标的硬件包含CC1101射频收发器、HC-SR04超声波模块、AT89C52单片机、数码管显示、DS18B20温度传感器等。CC1101射频收发器主要实现2个功能:实现数据的无线通信和超声波测距的信号同步。由于CC1101的工作电压为3.3 V,AT89C52芯片的工作电压为5 V,故需要采用电平转换芯片74LS4245才能实现CC1101与AT89C52的连接。移动目标和定位基点模块的核心电路如图4所示。
图4 CC1101模块、HC-SR04与AT89C52连接图
CC1101针对工业、科研和医疗以及短距离无线通信设备而设计,可提供数据包处理、数据缓冲、突发传输、接收信号强度指示(RSSI)、空闲信道评估(CCA)、链路质量指示以及无线唤醒(WOR)等硬件支持。其工作频段为387.0~464.0 MHz。通过4线SPI接口与MCU连接,同时提供2个可设定功能的通用数字输出引脚。超声波模块HC-SR04可提供2~700 cm的非接触式距离感测功能,测距精度可高达到0.3 cm,感应角度、探测距离可调,即HC-SR04模块中可调电阻为392 Ω、≤15°、2~300 cm;可调电阻为472 Ω、≤30°、2~700 cm。模块包括发射器、接收器与控制电路等。CC1101模块、HC-SR04与AT89C52单片机连接方式如图4所示。
2.2 软件设计
每个定位基点有一个编号,每个编号对应确定的坐标,编号从原点开始。编号范围:B0 00 00H-B0 FF FFH。例如:第000行第000列:B0 00 00H;第000行第255列:B0 00 FFH;第255行第255列:B0 FF FFH。同时也给移动目标编号,编号的起始字母为D,编号范围:D0 00H-D0 FFH。
(1)定位基点坐标号及ID设置。上位机通过无线通信给定位基点写ID号,定位基点的坐标安装时通过人工测量获得并通过命令61设置,定位基点ID号写入成功后,则返回命令62给上位机,其格式见表5。
表5 定位基点写ID号格式表
(2)移动目标ID 号设置。上位机通过命令71给移动目标写ID号,移动目标ID号写入成功后,则返回命令72给上位机,其格式见表6。
表6 移动目标写ID号格式表
(3)定位软件设计。在超声波测距之前需要读取射频信号强度,缩小定位区域。信号强度绝对值与距离之间的关系[12]如图5所示。
图5 信号强度绝对值与距离的关系
从图5可以看出,距离越小,信号强度越强,因此可使移动目标由整块区域缩减为在信号强度最强的区域进行超声波测距定位。
超声波工作频率为40 kHz,测距方式采用对射式测距,无线射频RF作为同步信号。超声波测距模块的工作时序[13]如图6所示。
图6 超声波工作时序图
移动目标发送射频同步信号的同时AT89C52的P3.6给HC-SR04的Trig端口发出一个10 μs的脉冲触发信号,然后HC-SR04的内部立刻发出8个40 kHz的超声波信号。当定位基点接收到射频同步信号后超声波接收端Echo引脚为高电平并且定时器开始计时,直到检测到声波信号时,Echo引脚为低电平,计时结束。此时,通过Echo高电平的持续时间便可算出距离。距离=高电平持续时间×声速。
读取信号强度程序流程图如图7所示。移动目标程序流程图如图8所示。定位基点程序流程图如图9所示。
图7 读取信号强度流程图
图8 移动目标程序流程图
2.3 测距误差及修正
根据超声波的传播特性,超声波在空气中的传播质量会随着距离的增大而衰减。同时,超声波测距是由对射式到达时间差来计算距离,因此,延时和同步精度以及定时器中断产生的误差,使得测量到的数据比实际值大。
图9 定位基点程序流程图
在无障碍物环境中进行测距实验,温度为25 ℃,补偿后的声速为346.7 m/s。测距距离从0.5 m增加到7 m,每隔0.5 m进行1组测距实验,共测10组数据。每组实验测量50次,100 ms测量1次。取多次测量的样本平均值去掉极值再平均作为实际测距数据。得到测距数据与误差曲线图如图10所示。
图10 测距误差曲线图
利用一元线性回归方法对测量误差与实测距离的关系进行拟合,设一元线性回归方程[14]为
(3)
根据实验测量得到的n组测量误差与距离的数据(x1,e1),(x2,e2),…,(xn,en),则:
(4)
(5)
根据式(4)、式(5),由MATLAB求得一元线性回归方程为式(6),拟合线见图10。
e=0.010 135x+0.001 66
(6)
距离修正公式为
x′=x-e
(7)
式中x′的修正后的距离值,m。
即通过误差补偿达到距离修正。修正后,平均误差为1.1 cm,满足高精度定位要求。
3 实验结果及误差分析
3.1 静态定位结果
分别在实验环境的角落、中心点以及其他点进行静态定位。每个点测50次取平均值。静态点的定位结果见表7。其中,定位偏差由式(10)计算。
(8)
(9)
(10)
式中:(XM′i,YM′i)为移动目标的实际坐标值;(XMi,YMi)为移动目标的定位坐标值。
表7 定位偏差表 m
由表7可知静态定位最大偏差为3.6 cm,不大于4 cm,具有很高的精度,然而还有一些误差,比如:皮尺测量实际坐标不准确引起的测量误差,定位基点坐标不准确引起的系统误差,外界干扰引起的随机误差等。
3.2 动态定位结果与误差分析
实验中,小车作为移动目标。在实验环境的地面上规划出行驶路径,通过红外寻迹的方法使小车以不同的速度按路径行驶。小车上的定位模块不断比较B1、B2、B3之间的信号强度,比较一次需要1 ms,确定出粗定位区域,然后检测出与粗定位区域各定位基点之间的距离,检测一个定位基点的距离需要6 ms,每个粗定位区域的9个定位基点共需要54 ms。每个定位基点的每次测量值分别存放在相应的16个缓冲单元中,每存一个新的数据就丢弃一个最老的数据。
分别计算粗定位区域每个定位基点16个缓冲单元中的平均值,再把粗定位区域每个定位基点的16个值与平均值比较,大于平均值则替换成平均值,然后再平均作为移动目标与该定位基点之间的定位距离,从9个定位距离中选择最小的3个值作为式(2)中的R1,R2,R3。求解式(2)即可获得移动目标的定位坐标(xMi,yMi)。
每隔500 ms,上位机命令移动目标上报一次定位坐标,小车速度在0.2 m/s和0.4 m/s时的轨迹如图11、图12所示。其中,以圆心(240,165),半径140 cm的圆为实际轨迹,实心点为定位坐标点。
图11 小车速度为0.2 m/s时的轨迹
图12 小车速度为0.4 m/s时的轨迹
对不同的速度进行实验,可得速度与误差关系如图13所示。
图13 动态定位速度误差图
由图13可知,当速度变快时,误差逐渐增大,且在实验中观察到还有一定的时滞误差,定位的坐标点稍滞后于小车实际位置,随着速度增大,这种滞后变大。
4 结束语
本文给出的室内定位系统实现方案通用性强,系统结构简单,易于实现,能够显著减小能耗,且能够弥补超声波覆盖面积小和非视距的不足。动态定位能实现较高的精度,为数字化工厂、数字化仓储以及无人分拣等定位精度要求较高的领域提供了参考。人机交互直观方便,在上位机的图形界面上,可对系统实时查看、管理和维护。然而,目前的研究工作仅在较小的室内空间实现方案的可行性,要满足较大的场合,还需要更多的实验和数据收集、分析。