(1.南京邮电大学通信与信息工程学院,江苏 南京 210003;2.南京邮电大学通信与网络技术国家工程研究中心,江苏 南京 210003)
0 引言
随着科技的发展,各种无线通信系统相继出现,这使以通信为基础的导航、定位等技术迅速发展。全球定位系统(GPS,global positioning system)是一个由24 颗卫星组成并覆盖全球的卫星系统[1],在室外空旷地带定位效果很好。但是GPS 信号的接收功率很小,并且在有障碍物遮挡时会出现很大的误差,因此并不适用于室内定位。针对这一问题,各种室内定位方案也相继出现,常见的方案有蓝牙定位、无线局域网定位、红外线定位、超宽带(UWB,ultra wide band)定位等。
蓝牙定位技术[2]是比较主流的定位技术,在综合成本、抗干扰能力和布局复杂度上有一定优势。但是,其定位误差一般在1~3 m,不适合对定位精度要求较高的室内场景。无线局域网定位技术[3]通过采集网络节点位置信息,完成对目标位置的定位。目前,室内无线局域网布置广泛、应用场景较多,这是其优势所在。但是无线局域网信号容易受到干扰并且能耗较大,因此定位精度较低、定位稳定性较差。红外线定位技术[4]利用光学传感器接收定位目标发射的红外线进行测距,并实现对目标定位。但是红外线只能沿直线传播,不能穿透遮蔽物,其在室内复杂环境下的定位效果不佳。UWB 定位技术[5]是一种无线载波通信技术,频率带宽在1 GHz 以上,范围在3.1~10.6 GHz。UWB 信号发射不需要使用传统通信体制中的载波,而是通过发送纳秒级及以下的极窄脉冲来传输数据[6]。UWB 定位是通过计算脉冲到达时间完成对距离的测量,从而实现目标的定位。与其他室内定位技术相比,UWB 信号具有很高的频率和时间分辨率,使多径信号在时间上不容易重叠,方便接收机分离多径信号分量并充分利用,提升定位精度。因此,UWB 定位精度可达到分米级,且抗干扰能力及抗多径衰落能力强[7]。本文在复杂室内环境下,选取其作为定位算法的实现方案。
文献[8]提出了具有闭式解的二步加权最小二乘算法,即CHAN 算法。该算法本质上是利用最大似然估计求出目标节点的位置信息,充分利用了冗余信息。同时,该算法定位精度较高,当基站数大于3 时接近定位估计的克拉美罗下界(CRLB,Cramer-Rao lower bound),也是使用较广泛的定位算法。该算法在推导过程中存在一个前提条件,即假设测量距离误差较小且为理想的零均值高斯随机变量。所以在一些复杂定位环境中,该算法定位精度较低。
为了降低室内定位中非视距(NLOS,non-line-of-sight)误差带来的影响,可以利用信号反射的几何性质推算出信号的反射路径。该类算法首先通过发射角和入射角将NLOS 信号的反射点估算出来,然后推算出信号传输的实际路径,最后计算出目标与基站间的直射路径长度。通过提高发射角、入射角的精度和单反射圆模型的准确度,可以实现对目标的高精度定位[9-10]。另外,由于直射信号在穿透室内常见障碍物时产生的损耗是不同的,比如钢板、人体和木板等情况产生的穿透损耗是不一样的。因此在确定具体障碍物的类型、厚度和数量等信息的情况下,对信号在穿透障碍物时造成的能量损耗逐一进行校准和对比分析,可以准确地计算出信号直射距离[11-12]。
以上2 类室内定位算法虽然可以在复杂室内环境下将定位精度提高到30 cm 左右,但是需要提前知道室内障碍物的位置、类别、数量等信息,因此在实际场景中较难应用。在实际应用中,一般对NLOS 信号误差本身进行处理,从而优化定位结果。残差检验算法在观测定位突变数据时计算残差并设置一个阈值,若产生的残差大于阈值,则视为NLOS 信号,并进行丢弃;否则,视为视线线路(LOS,line of sight)信号,可以加以利用并实现目标定位。但是该算法在存在大量NLOS 信号时无法对目标进行定位处理[13]。中值滤波算法对NLOS观测值进行预处理,将某一距离量进行多次观测量,加权去除其中的最大值和最小值,将剩余的测量值进行均值滤波作为该处距离的观测量。在实际场景中,一个位置处于NLOS 的情况很可能一直存在,对某一个点的多次观测量会一直存在较大误差,这也是该算法需要优化解决的问题[14]。文献[15]假设在每次进行观测时,当前标签(Tag)的位置离前一时刻标签的位置应该保持低于阈值。基于以上假设,在多基站定位情况下可以对定位基站进行分组,取任意3 个基站为一组,将每组计算结果与上一时刻标签位置之差在给定阈值内的所有结果进行加权平均处理,计算出当前时刻的标签位置。该算法考虑定位结果的时间关联性,当存在至少一组基站与标签之间为全LOS的情况时,该算法性能可达到30 cm 左右的定位精度。但是在实际环境中,很难保证基站和标签之间的信号传输情况,所以在复杂室内条件下,其定位性能急剧下降。
文献[16]利用卡尔曼滤波来修正CHAN 算法在NLOS 下产生的距离误差值。其核心思想包括定位结果的预测和校正2 个阶段,其中,预测阶段是根据前一时刻系统状态的估计值,计算当前时刻系统状态的预测值;校正阶段是获取当前阶段的观测值,对预测值进行修正,从而给出当前时刻系统状态的最优估计。同时,该算法随着定位时间的推移,会不断改善卡尔曼滤波增益系数K来达到精准定位的效果。但是在初始定位阶段,由于增益系数K调节较慢,会使其在初始时刻定位精度不高,并且增益系数K是根据上一时刻状态而不断改变的,因此当场景变化较大时,反而会引入新的误差。
综上所述,本文提出了一种基于CHAN 的改进卡尔曼滤波算法。该算法在不同置信区域下选择不同的增益系数K,避免了上一时刻增益系数的负面影响,提高了定位精度。同时,在判断置信区域方面,CHAN 算法对NLOS 场景下定位误差比较敏感,因此选择其定位结果残差作为判断依据,提高了置信区域判别的准确程度。
1 UWB 定位环境及模型
1.1 UWB 室内定位环境介绍
UWB 室内定位系统[17]的节点根据其在无线网络中的作用和类型分为2 类:第一类是作为坐标系参考的已知节点,称作锚节点,也可以称为基站(BS,base station),主要作用是接收目标节点发出的信号并上传数据;第二类是作为目标节点的标签,其主要作用是作为待测目标给基站发送信号。
UWB 室内定位系统主要是以各个节点之间发送信号的特征作为测距依据,其定位方程构建算法有基于信号到达角度(AOA,angel of arrival)、基于到达时间(TOA,time of arrival)等。本文采用基于到达时间差(TDOA,time difference of arrival)[18]定位方程构建算法。
在构建定位模型之前,首先要分析UWB 室内定位系统的误差源,可以分为系统误差、环境误差、算法误差3 类[19],如图1 所示。
![](https://cimg.fx361.com/images/2023/0416/68390c262eb9879a932273449fcd3dc91f55194f.webp)
图1 UWB 定位误差
UWB 定位系统的两类系统误差为时钟同步误差和时钟漂移[20]误差。时钟同步误差是指BS 与Tag设备之间的时钟并不完全同步,使BS 接收到Tag发送信号时间与真实的信号到达时间不一致,从而降低了定位精度。时钟漂移误差是由各个芯片的晶振频率不同导致的。在实际系统中,可通过时钟同步处理及调整芯片的晶振频率降低以上误差。
环境误差是实际定位中影响最大的因素,有多径干扰误差[21]、NLOS 误差[22]和高斯白噪声误差等。多径干扰误差是由信号频率选择性衰落引起的,但是UWB 信号具有良好的频率分辨率,故可以暂时忽略此影响。NLOS 误差的产生原因是在复杂的室内环境中受到多种障碍物的阻挡,造成了Tag 发射信号不能沿直线传播到BS,使原本的测量时间延长,降低了定位精度。高斯白噪声误差是信号在空间传播过程中普遍存在的一种误差。
假设对于某一个BS 而言,Tag 与该BS 之间的情况是随着时间在LOS 与NLOS 中不断转换的。如果不能及时地分辨这2 种信号,并对其进行适当处理,则会导致定位结果误差增加。为了真实描述室内复杂定位环境,本文假设
其中,PLOS和PNLOS分别为复杂室内定位环境下LOS和NLOS 出现的概率。
算法误差是定位解算算法在解定位方程时产生的,其大小表征了不同定位算法的性能。
1.2 UWB 室内定位建模
UWB 室内定位系统通常基于不同的测量参数建立不同的室内定位模型。目前,常用的模型有泊松模型、POCA-NAZA 模型、S-V 模型、双簇模型和IEEE802.15.4a 模型[23]等。其中,IEEE802.15.4a模型是现阶段研究最多的模型。因此,本文根据此标准建立室内定位模型。
考虑一个室内定位系统中有N个BS 和一个Tag,其中,BSi= [xi,y i,zi]T是第i个BS 的位置,Tag 与第i个BS 之间的测量距离可表示为[24]
其中,c=3×108m/s 为光速;τi为Tag 信号到达BSi的时间,单位为s;Di为Tag 信号到达BSi的真实距离,单位为cm;n i为满足N~ (0,)分布的加性白高斯噪声。
IEEE802.15.4a 的研究结果表明,室内情况下NLOS 误差的分布满足Nakagami-m 分布,其均方根时延扩展τRMS和平均超量时延μ有近似1:1 的关系。因此,NLOS 误差服从指数分布,其概率密度函数为
其中,τRMS可看作满足对数正态分布的随机变量。表1 给出了IEEE802.15.4a 中室内住宅和室内办公室的τRMS,其中,μNLOS和σNLOS分别是τRMS的均值和标准差。
![](https://cimg.fx361.com/images/2023/0416/c7e0af9136c1a91d1aedff245277b004f289a0aa.webp)
表1 IEEE802.15.4a 中室内住宅和室内办公室的 τRMS
根据上述情况,在复杂的室内办公室环境中,UWB 室内定位的距离模型可以建模为
其中,τiNLOS为Tag 到BSi的NLOS 时间,bi为Tag到BSi的NLOS 距离。由于τiNLOS满足对数正态分布,其值一定为正,即满足
TDOA 主要依据双曲线特性实现定位。该算法只需要将BSi进行时间同步,不需要Tag 与BSi之间进行时间同步,更符合实际情况,降低了时间同步造成的误差。该算法实现的具体步骤为首先将已知的BSi进行时间同步,由Tag 向BSi发射信号,BSi记录下信号所到达的时间戳,并将其数据上传给上位机。然后以BSi为基点,用BSj(j≠i)收到信号的时间减去BSi收到信号的时间,就是到达时间差。根据双曲线的定义,建立N-1 个双曲线方程,可得到Tag 的具体位置。TDOA 定位算法如图2 所示。
![](https://cimg.fx361.com/images/2023/0416/5be22b9a150178862febcda65c6b7216906caa65.webp)
图2 TDOA 定位算法
图2 中,BS1、BS2、BS3、B S4分别为4 个已知节点,以BS1为基准画3 个双曲线,它们的交点即Tag。假设4 个已知BS 的坐标分别为 (x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)、(x4,y4,z4),Tag 为未知节点,其坐标为(x,y,z),由上述分析可得
其中,D i表示BSi到Tag 的实际距离,Dj表示BSj到Tag 的实际距离,Dij表示Tag 到BSi的距离和Tag 到BSj的距离的差值,τij表示Tag 发送的信息到达BSi的时间和Tag 发送的信息到达BSj的时间的差值。
将式(8)代入具体数据并化为矩阵形式
可解出Tag 的具体位置为
1.3 基于CHAN 的卡尔曼滤波算法
CHAN 定位解算算法是一种具有闭式解的二步加权最小二乘算法[25],在噪声满足高斯分布的情况下具有较好的算法性能,广泛应用于各个场景。该算法分为四基站定位与多基站定位,本文采用的是后者。
设Za= [Zp,D1]T为 Tag 未知的位置信息,Zp=[x,y,z]T为Tag 在坐标系中的具体位置,根据式(9)可得
用矩阵Q代替误差矢量ε的协方差矩阵Ψ,并通过加权最小二乘法求解式(15)可得
其中,Za中的Zp即Tag 具体坐标。上述过程中用协方差矩阵Q代替误差矢量ε的协方差矩阵Ψ,增加了一定误差,为了降低这部分误差的影响,要对上述的过程进行进一步优化,即进行二步加权最小二乘算法的运算
得到的估计结果为
卡尔曼滤波器[26]也被称为最佳线性滤波器,用于解决状态估计问题中的线性系统。其主要通过对输入的预测值和观测值进行滤波处理,使估计结果更加接近真实值。卡尔曼滤波算法的状态空间模型为
其中,k为离散时间,X(k) ∈Rn为系统在时刻k的状态,Y(k) ∈Rm为对应状态的观测信号;W(k) ∈Rr为输入的白噪声,V(k) ∈Rm为观测噪声;Φ为状态转移矩阵,Γ为噪声驱动矩阵,H为观测矩阵。将CHAN 算法的定位结果作为卡尔曼滤波器的输入量
状态一步预测为
状态更新为
滤波增益矩阵为
一步预测协方差矩阵为
协方差矩阵更新为
其中,P(k|k)和P(k+1|k)分别为对应估计结果的协方差矩阵;R为测量噪声矩阵;K为卡尔曼滤波增益,是根据协方差矩阵和测量误差矩阵决定的值,K值越大,代表越相信观测值,K值越小,代表越相信预测值;(k|k)为上一个状态的最优估计结果,(k+1|k+1)为当前时间基于CHAN 的卡尔曼滤波的定位结果。
整体而言,卡尔曼滤波是一个不断迭代并且优化其参数的过程,其最优估计结果越来越逼近真实值。该算法有效地降低了CHAN 算法在NLOS 环境下的误差。然而,为了保证卡尔曼滤波迭代的准确性,需要在初始位置给一个指定的初值,这个初值必须满足与标签的实际位置接近[24],否则会对后续的迭代过程产生偏移,导致定位结果误差增大。其次,由于卡尔曼滤波是一连续优化的过程,上一时刻的协方差矩阵影响下一时刻的位置信息。在复杂的室内环境中,存在LOS 与NLOS 信号共存并且频繁转换的情况,这使协方差矩阵比较难判断该时刻的定位信息是否准确,从而导致下一时刻的协方差矩阵受到影响,逐渐产生累计误差。与此同时,对于一个基站而言,假设LOS 信号与NLOS 信号出现的概率是相等的,会使卡尔曼滤波增益系数K一直维持在0.5 左右,降低了卡尔曼滤波的精度。
2 基于CHAN 的改进卡尔曼滤波算法
为了解决上述问题,考虑到复杂室内场景中LOS/NLOS 场景频繁切换的特性,对LOS/NLOS 基站存在数目进行置信区域的划分。同时,考虑到CHAN 算法在NLOS 情况与LOS 情况下定位误差相差较大,将其作为置信区域的判别依据。最后,根据划分的不同区域,选择合适的滤波增益系数K提高定位精度。
对于多基站的定位而言,BS1接收Tag 传输的信号是在LOS 场景下,但是BS2接收Tag 传输的信号是在NLOS 场景下,这就导致定位环境复杂度的增加。
考虑到CHAN 方法在LOS 基站大于4 个时定位精度较高,将其定位结果和各个基站的位置进行残差并作为区域判别的置信因子。
假设总共有N个BS,在三维定位中必须有4 个BS 才能解算出Tag 坐标,选取其中任意(l l>4)个基站为一组,总共有M种组合,其值为
索引集为{Sr,r= 1,2,…,M}。残差定义为
通过对该测量时刻计算的M组残差值进行归一化处理,得到当前测量时刻的置信因子为
其中,α为置信因子,是区域判别指标。同时,对每一测量时刻的M组残差加权,得到此测量时刻的定位结果为
式(35)是该时刻所有组合残差加权的过程。残差值越大,说明定位结果越差;残差越小,说明定位结果越好。因此,分母为该时刻所有组合情况的残差值倒数之和,分子为该时刻第r种组合的Tag位置与其残差倒数之积。考虑到置信因子α表示不同区域内定位结果的可信程度。将定位的区域划分为3 个,即
其中,Knew为根据不同置信区域选择的卡尔曼滤波增益,α为置信因子,δ1和δ2为划分置信区域的阈值。例如,在仿真设置环境中,由多次测量可得出,δ1和δ2的取值分别为0.3 和0.5。在置信区域中,δ1、δ2和滤波增益Knew满足在可信区域中滤波增益Knew更加相信测量结果,此时α在0 和δ1之间;在模糊区域中,滤波增益Knew会适当地调整测量结果和预测结果的关系,此时α在δ1和δ2之间;在不可信区域中,滤波增益Knew更加相信预测结果,此时α在δ2和1 之间。
根据不同区域选择不同的卡尔曼滤波增益Knew,并将当前测量时刻的定位结果xTag代入不同的区域进行卡尔曼滤波。
相对于基础的卡尔曼滤波过程,该过程只更改了状态更新和协方差更新方程的滤波增益因子
基于CHAN 的改进卡尔曼滤波算法流程如图3所示。
![](https://cimg.fx361.com/images/2023/0416/cbf951558bcb4298a1cfe1872dfbf26140ee24b3.webp)
图3 基于CHAN 的改进卡尔曼滤波算法流程
本文算法解决了卡尔曼滤波在定位初始时定位精度不高和卡尔曼滤波增益K在复杂室内定位场景下产生新误差的问题,具有不错的定位精度。
3 实验与分析
3.1 仿真实验数据构建
本文实验主要分析在复杂室内环境下,各种室内定位算法的精度。假设在1 000 cm×1 000 cm×1 000 cm 的复杂室内空间存在8 个BS,其LOS 信号和NLOS 信号的概率都为50%,且为随机产生。一个物体的运动轨迹为从(200,200,200)到(700,700,700)的匀速直线运动,该物体在每个方向上的加速度都为20 cm/s,由于物体运动时存在一定误差,其概率分布满足加性白高斯噪声,ω的取值为10 cm。因此其真实运动轨迹如图4 所示。
![](https://cimg.fx361.com/images/2023/0416/a8b2561984751e7836379d1d5cbea5d243901b29.webp)
图4 真实运动轨迹
在UWB 室内定位中,根据IEEE802.15.4a可知,设定测量误差的标准差符合高斯分布,其均值为0,方差为10 cm;NLOS 的均方根时延扩展τRMS满足对数正态分布,均值为2.075 4 cm,方差为0.178 3 cm。根据多次数据的测量,阈值δ1=0.3,δ2=0.5。可信区域代表8 个BS 中有5 个及以上BS 的接收信号为LOS 情况,模糊区域代表存在3~4 个BS 的接收信号为LOS 情况,不可信区域代表低于2 个BS 的接收信号为LOS 情况。由于CHAN 算法在5 个基站时就有很高精度,因此本文选取k=5。
综上,本节构建了一个LOS 信号和NLOS 信号概率相等的复杂室内定位场景,其参数基本符合现实情况。
3.2 仿真实验数据分析
为了充分说明本文算法的性能,仿真实验选取3 种相关定位算法与本文算法进行分析对比,分别为传统的CHAN 算法[8]、基于分组的协同定位算法[15]和CHAN+卡尔曼滤波算法[16]。
图5~图8 为传统的CHAN 算法、协同定位算法、CHAN+卡尔曼滤波算法和CHAN+改进卡尔曼滤波算法的定位示意,运行次数为10 000 次来保证实验的准确性。图5 是三维空间内4 种算法的定位结果。从图5 可以明显地看出,传统的CHAN 算法由于室内环境复杂,定位效果很差,运动轨迹偏离真实轨迹较大,甚至出现了先定位点在后定位点之前的情况;基于分组的协同定位算法由于基站分组的非理想化影响,依然存在一定的定位误差;CHAN+卡尔曼滤波算法由于卡尔曼滤波的加入,一定程度上降低了定位的NLOS 误差,运动轨迹更加平滑,接近真实运动轨迹。但是由于在初始定位时增益值选取的问题,在运动初始定位的过程中,产生了较大的定位偏移情况;CHAN+改进卡尔曼滤波算法是4 种定位算法中定位误差最低的算法,其定位轨迹更加接近真实轨迹。同时,在初始定位的过程中,CHAN+改进卡尔曼滤波算法从初始定位时就接近真实的定位轨迹,有较低的定位误差,相比前3 种算法的定位轨迹有了明显的校正,解决了卡尔曼滤波在初始位置定位精度不高的问题。综上,CHAN+改进卡尔曼滤波算法相比另外3 种算法在定位精度和定位稳定性上都有较大提升。
![](https://cimg.fx361.com/images/2023/0416/ea8e4a6997c4c384234f3a4b37f563096c540ee5.webp)
图5 三维空间内4 种算法的定位结果
![](https://cimg.fx361.com/images/2023/0416/e67bdeeebf58f1563ca876a7389459f1699de2f9.webp)
图6 x-y 运动轨迹
![](https://cimg.fx361.com/images/2023/0416/ed50bb770d743793526369d44e396984ed6427b7.webp)
图7 x-z 运动轨迹
![](https://cimg.fx361.com/images/2023/0416/12888ffcaf8fc6e382eb2c1aecc1fc4dd466b422.webp)
图8 y-z 运动轨迹
图9 显示了4 种室内定位算法的定位误差。从图9 可以看出,传统的CHAN 算法的定位误差稳定在2.2 m 左右。对于需要精准定位的室内定位来说,传统的CHAN 算法不满足其要求。基于分组的协同定位算法受LOS 与NLOS 频繁转换和阈值设定的影响,误差在1.8 m 左右。CHAN+卡尔曼滤波算法的定位误差在1.0~1.5 m,假设需要定位的运动体是人,则此误差在人运动的合理范围之内,可以用于普通的室内定位情况。从图9 中也可以看出,CHAN+卡尔曼滤波算法在定位初始的位置时误差仍偏大。CHAN+改进卡尔曼滤波算法的定位精度在0.5~1.0 m,符合室内精准定位的要求,达到了UWB 在民用室内定位中的规范。同时,在定位初始的情况下,也满足室内精准定位的需求。总体而言,4 种定位算法整体误差曲线平滑。在整个定位过程中,CHAN+改进卡尔曼滤波算法的定位误差始终比其他3 种算法定位误差要小,与传统的CHAN 算法相比,定位误差降低了1.5 m;与CHAN+卡尔曼滤波算法相比,定位误差降低了0.5 m。
![](https://cimg.fx361.com/images/2023/0416/bcd5d5a3890631eab98200587c346858665e3183.webp)
图9 4 种室内定位算法的定位误差
为了更好地对比4 种算法的定位精度,表2 给出了在10 000 次定位结果下,4 种定位算法的均方根误差(RMSE,root mean squared error)。在复杂的室内环境下,传统的CHAN 算法的RMSE 在2.2 m 以上,有明显的定位误差,不能用于室内定位;基于分组的协同定位算法的RMSE 在2.0 m 左右,也存在较大的误差;CHAN+卡尔曼滤波算法定位精度在1.0 m 以上,基本符合室内定位的需求;CHAN+改进卡尔曼滤波算法的定位精度在0.8 m 左右,与传统的CHAN算法和CHAN+卡尔曼滤波算法对比,提升了60%和34%,降低了复杂室内环境的定位误差。
![](https://cimg.fx361.com/images/2023/0416/ab58bc515219dd7add7b74ac5cbead9e8abd24f1.webp)
表2 各定位算法的RMSE
同时,在不同定位测量噪声标准差的场景下,CHAN+改进卡尔曼滤波算法仍然拥有较好的定位精度。如图10 所示,在固定了LOS/NLOS 基站的分布情况下,随着定位测量噪声标准差的增大,各种定位算法的定位精度都在降低,符合实际情况。传统的CHAN 算法受定位测量噪声标准差的影响较大,测量噪声标准差增加的情况下,定位精度降低得十分明显。基于分组的协同定位算法由于对NLOS 信号进行了简单的处理,而CHAN+卡尔曼滤波算法和CHAN+改进卡尔曼滤波算则是在卡尔曼滤波迭代过程中,更新质量优劣因子P随着定位的过程逐渐改善,弥补了测量噪声标准差的增大。因此,相较于传统的CHAN 算法,基于分组的协同定位算法、CHAN+卡尔曼滤波算法和CHAN+改进卡尔曼滤波算法受定位测量噪声标准差的影响较小。在同一测量噪声标准差的情况下,CHAN+改进卡尔曼滤波算法相比其他3 种算法的RMSE 更小,有更好的定位精度。在定位环境越来越恶劣的情况下,传统的CHAN 算法的RMSE 趋势不收敛,定位效果较差。CHAN+卡尔曼滤波算法和CHAN+改进卡尔曼滤波算法的RMSE 逐渐稳定在2.0 m 和1.8 m 左右,对于定位环境十分恶劣的情况而言,在可接受范围内。
![](https://cimg.fx361.com/images/2023/0416/c67f1c818396e23a688db37fc951646fdbf464c3.webp)
图10 RMSE 与测量噪声标准差的关系
本文实验还验证了卡尔曼滤波增益系数在初始状态改善的问题,设ΔK为CHAN+改进卡尔曼滤波算法与CHAN+卡尔曼滤波算法增益系数的差值,其与时间的关系如图11 所示。从图11 可以看出,ΔK在初始状态时接近-0.3,说明CHAN+改进卡尔曼滤波算法与CHAN+卡尔曼滤波算法的增益系数取值有明显不同,其原因是CHAN+卡尔曼滤波算法在初始定位时滤波增益还未改善。相比CHAN+卡尔曼滤波算法,CHAN+改进卡尔曼滤波算法由于需要对置信区域进行选择,改善了增益系数,让其更快地趋于稳定和精准。随着时间的推移,2 种算法增益系数的差值逐渐缩小,系数逐渐相等,这说明不同区域预先选择的增益值提高了定位的精度。综上,CHAN+改进卡尔曼滤波算法在初始状态时就已经改善了增益系数,降低了由复杂室内环境产生的新误差。
![](https://cimg.fx361.com/images/2023/0416/56f2d0bec91713411f7f282980753b88e87fb482.webp)
图11 ΔK 与运行时间的关系
最后,为了表征不同定位算法之间的复杂度区别,记录了各种定位算法的实际运行时间,如表3所示。传统的CHAN 算法的实际运行时间最快,而本文提出的CHAN+改进卡尔曼滤波算法要进行多次CHAN 算法解算,并根据解算结果与各个基站进行残差,判别置信区域后再进行卡尔曼滤波,增加了算法复杂度,因此实际运行时间最长。但是本文算法实际运行时间仍然满足定位实时处理的要求,可在实际定位系统中使用。
![](https://cimg.fx361.com/images/2023/0416/d056598b6846af40fcbd674d712aada44fc5551c.webp)
表3 各种定位算法的实际运行时间
3.3 实际定位环境
根据前文的分析与仿真验证,本文采用CHAN+改进卡尔曼滤波算法作为定位系统的定位方案。
本文实验实际环境为某会议室,该会议室长为812 cm,宽为404 cm,高为216 cm,人携带UWB定位标签在选取的范围内按照指定的轨迹进行移动。8 个定位基站布置如下:主机站坐标为(0,0,25),其余基站坐标分别为(812,0,25)、(812,404,25)、(0,404,25)、(0,0,216)、(812,0,216)、(812,404,216)、(0,404,216)。在会议室内有明显的桌椅摆放,随机遮挡了部分基站与标签之间的信号LOS 传播路径,形成了复杂的室内环境。根据会议室内基站的坐标分布可知,其中位于房间顶部的4 个基站与标签之间并无障碍物遮挡,此时4 个顶部基站与标签之间的信号为LOS 传输信号;而位于会议室底部的4 个基站与标签之间存在会议室桌椅的遮挡,该4 个基站与标签之间的信号为NLOS 传输信号,实际测试环境满足前文假设的LOS 和NLOS 信号分布概率。
3.4 定位数据分析
为了直观地表现测试的轨迹,本文实验的标签运行轨迹为在会议桌上的一条直线,具体的空间坐标为[350,215,40]到[750,215,40]的一条直线,但是由于实际的轨迹并不能严格控制为一条直线,因此图中以黑色的理想预测轨迹作为参考基准,具体定位结果如图12~图15 所示。
![](https://cimg.fx361.com/images/2023/0416/e4d4cdd4d413d7cc7e93ba6f7291c845d0aafff2.webp)
图12 实际定位轨迹
![](https://cimg.fx361.com/images/2023/0416/3b0bfc2208fefcd248fea39782edfbb6f5fdf228.webp)
图13 x-y 实际定位轨迹
![](https://cimg.fx361.com/images/2023/0416/c2186d6f074dfeb2a1cc1dd52bb187b95416e06b.webp)
图14 x-z 实际定位轨迹
![](https://cimg.fx361.com/images/2023/0416/feb596f6f4009364312d58253f9f985ce1123884.webp)
图15 z-y 实际定位轨迹
根据与理想轨迹的对比可得,本文实验所用的CHAN+改进卡尔曼滤波算法基本符合预测轨迹,并且在预测轨迹附近波动。由图13~图15 可知,y轴和z轴的定位误差在40 cm 左右,x轴的定位误差在20 cm 左右。
为了更进一步地说明本文算法相比同类算法的性能优势,图16 在给定预测轨迹的情况下,利用实际系统对比本文算法、传统的CHAN 算法[8]和CHAN+卡尔曼滤波算法[16]的定位结果。从图16 可知,在初始时刻,由于标签与基站之间有信号自动校准的时间差,因此初始定位时刻的偏差较大,但是随着时间的推移,定位结果逐渐稳定。由实际的数据可得,CHAN+改进卡尔曼滤波算法的平均定位误差最小,在50~60 cm,且其定位的稳定性比其余2 种算法都高。CHAN+卡尔曼滤波算法的平均定位误差在150 cm 左右,而传统的CHAN 算法的平均定位误差在250 cm 左右,并不适用于实际复杂环境的室内定位。上述算法在实际数据中的对比进一步验证了本文算法的性能。
![](https://cimg.fx361.com/images/2023/0416/d0c9ec702015b6a765187957dbe2a512c4995c1e.webp)
图16 实际定位误差
4 结束语
本文提出了一种在复杂室内定位环境下基于CHAN 的改进卡尔曼滤波算法。该算法提高了基于CHAN 的卡尔曼滤波算法在复杂室内环境下的定位精度,并且改善了卡尔曼滤波增益在初始定位时的准确性。通过实际测量验证,本文算法具有较高的定位精度,在复杂室内环境下精度达到了亚米级,是一种有效的定位方法。