邱怡飞,吕 鹏,刘晓凯,常锋伟,赵成林
(1.北京邮电大学 信息与通信工程学院,北京100876;2.北京科技大学 计算机与通信工程学院,北京100083;3.北京物联智通科技有限公司,北京100041)
目前,5G技术的迅速普及和发展,使得汽车的车联网技术也迈进了5G时代。5G 技术的发展让人们传输信息、及时更新路况等方面都更加方便快捷,同时也能促进汽车的智能化发展,交通也能更加安全、便捷。而车辆定位是车联网技术中的关键,实时获取精确的汽车位置是进行车联智能化管理的重要前提。
车辆定位目前主要通过GPS、BDS等全球卫星定位系统技术获得绝对位置信息[1]。民用GPS标准位置服务的定位精度为10 m左右,难以满足目前车联网场景下的精确定位应用需求。不仅如此,卫星信号在密集建筑群、地下停车场、隧道、立交桥下、室内和森林等区域时[2]会受到遮挡,定位误差较大,严重时甚至无法定位。因此,经过这些区域时,车辆定位需要通过非卫星手段[3]实现。常用的非卫星手段定位方法主要包括基于惯性导航的轨迹跟踪定位和基于信号特征测量的无线定位。其中主流的无线定位算法[4]分为测距定位算法和非测距定位算法。基于测距的定位技术包含基于信号到达时间(Time of Arrival,TOA)[5]、基于信号到达时间差(Time Difference of Arrical,TDOA)[6]、基于信号到达角度(Arrival of Angle,AOA)[7]和基于信号接收信号强度(Received Signal Strength Indication,RSSI)[8]的定位技术。非测距定位算法包含质心算法[9]和距离矢量跳数(Distance Vecto -Hop)[10]算法等。
基于测距的定位算法中,基于RSSI的定位方法相比于其他3种定位技术有着节点无需增加额外的硬件设备[11]、功耗低和成本低等优点。但是由于5G所用毫米波信号穿透力弱[12]、车辆的高动态特性和道路交通环境复杂多变等原因,会受信号反射、多径传播、天线增益和障碍物[13]等多种因素影响,信号具有较强的时变性,使得测距误差较大的情况下出现定位不准确的问题[14]。因此,对于基于RSSI测距定位算法的主要改进方向为提高RSSI数据的精确性、降低RSSI测距定位模型的误差率和提高定位算法的精度[15]。文献[16]提出基于RSSI的拟牛顿定位算法,该算法首先引用高斯函数对RSSI值进行筛选和加权过滤,然后采用拟牛顿法迭代进行节点定位。文献[17]提出一种基于特征匹配和距离加权的蓝牙定位算法,该算法分为离线和在线阶段,离线阶段负责生成指纹数据库,在线阶段负责根据特征匹配算法和距离加权算法进行节点定位,其缺点是离线状态需要采集大量指纹点,工作量较大。文献[18]提出一种基于蓝牙RSSI的贝叶斯区域判别定位算法,该算法提出了根据接收信号强度划分目标区域的思想,根据已知信息进行区域内定位,其缺点是区域划分部分的计算复杂度较高。
现有的基于RSSI测距定位方法的改进算法尽管在准确性上有一定提升,但是算法复杂度过高,在复杂环境下适用性较差。本文提出一种基于RSSI预滤波的序贯车辆定位跟踪技术,首先根据车辆之前时刻的位置和速度信息,对其进行状态方程的建模,将车辆速度和车辆与路边单元通信时的接收信号强度作为输入,使用扩展卡尔曼滤波对车辆下一时刻的速度和位置进行最优估计。对于RSSI,用更新后的车辆状态预测RSSI值,建立RSSI值前一时刻与当前时刻的状态转移方程,根据前一时刻的RSSI预测当前时刻的RSSI值,再根据接收的实际RSSI做出最优估计,这个过程称为预滤波,再用预滤波后的RSSI值更新车辆位置和速度信息,以此循环,达到提高定位精度的目的。本文的方法可以解决RSSI值在复杂环境下误差较大的问题,在不增加硬件成本的基础上提高定位精度,是一种复杂环境下有很大应用价值的定位方案。
考虑智能交通车载网络的场景,如图1所示。车载单元(OBU)安装于路面行驶的汽车内;N个路边单元(RSU)部署在道路两侧,RSU将信息进一步发送至边缘云服务器进行处理。OBU和RSU通过V2I技术进行通信。RSUi的位置用(xi,yi)表示,车辆在t时刻的位置由(x(t),y(t))表示,车辆在水平和垂直方向的速度由(vx(t),vy(t))来表示。当车辆进入RSU的射频区域时,OBU将与RSU建立连接并将车辆位置和当前速度发送至RSU和其边缘云服务器上,RSU得到其初始位置信息和RSSI值,边缘云服务器预测车辆下一时刻的位置和速度,最后将计算结果传播给其他RSU。
图1 智能交通车载网络系统Fig.1 System diagram of intelligent transportation vehicle network
无线信号的发射功率和接收功率之间的关系表示为:
PR=PT/rn,
(1)
式中,PR是未知节点的接收功率;PT是已知节点的发射功率;r是收发单元之间的距离;n是传播因子,数值大小取决于无线信号的传播环境。
对式(1)两边取对数可得:
10nlgr=10lg(PT/PR),
(2)
节点的发射功率是已知的,将发送功率代入式中可得:
10lgPR=A-10nlgr,
(3)
式(3)的左半部分10lgPR是接收信号功率转换为dBm的表达式,可以直接写成式(4)。式(4)中A可以看作信号传输l m远时接收信号的功率:
PR(dBm)=A-10nlgr。
(4)
由式(4)可以得到接收信号强度和信号传输距离的关系,其中关键影响因素是常数A和n的大小。A不变且n变化时接收信号强度与信号传播距离的关系如图2所示。传播因子n的大小反映了无线信号在传播过程中受到的衰减、反射、多径等干扰,n取值越小代表信号在传播过程所受到的干扰越小,信号传播距离更远,无线信号的传播曲线与理想情况更接近,基于RSSI的测距定位就会越精确。因此,复杂环境下传播因子n较大时,RSSI信号值衰减严重且受噪声干扰造成振荡,复杂环境下RSSI信号值稳定性较差,使得定位精度下降。
图2 n变化时RSSI路径损耗曲线Fig.2 RSSI path loss curve when n changes
为了预测车辆下一时刻的位置信息,将一个n维车辆状态方程建模为离散时间随机过程,其状态方程可表示为:
X(t+1)=F(t)X(t)+G(t)u(t)+w(t),
(5)
Z(t)=H(t)X(t)+v(t),
(6)
式中,X(t)Rn是车辆在t时刻的状态向量,包括位置(x(t),y(t))和水平和垂直方向的速度由(vx(t),vy(t));F(t)是车辆在t时刻的状态转移矩阵;G(t)是车辆在t时刻的输入向量;u(t)是车辆在t时刻的加速度;Z(t)Rn是RSU在t时刻所接收到的RSSI值;H(t)是车辆在t时刻的观测矩阵;w(t)表示系统误差,v(t)表示观测误差,都是呈高斯分布的白噪声,分别服从N(0,Q)和N(0,R)分布。
针对复杂无线环境下RSSI接收可能遇到的强噪声、障碍物遮挡问题,提出一种基于RSSI预滤波的序贯车辆定位跟踪技术,用卡尔曼滤波最优估计的车辆状态预测RSSI值,建立RSSI值前一时刻与当前时刻的状态转移方程,根据前一时刻的RSSI预测当前时刻的RSSI值,再根据接收的实际RSSI做出最优估计,这个过程称为预滤波,再用预滤波后的RSSI值更新车辆位置和速度信息,以此循环,达到提高定位精度的目的。
首先利用扩展卡尔曼滤波对车辆状态X(t)进行预测,包括位置(x(t),y(t))和水平和垂直方向的速度由(vx(t),vy(t)),该算法由预测部分和更新部分组成。
步骤1:预测车辆状态信息
(7)
步骤2:计算协方差矩阵
(8)
步骤3:更新卡尔曼增益
(9)
(10)
步骤4:更新车辆状态信息和误差协方差矩阵
(11)
P(t+1)=(I-K(t+1)H(t+1))P(t+1),
(12)
步骤5:用更新后的车辆状态预测观测值RSSI
D(t+1)=H(t+1)F(t+1)H(t+1)-1,
(13)
(14)
(15)
步骤6:计算观测值的协方差矩阵和其卡尔曼增益
(16)
(17)
步骤7:更新观测值和其误差协方差矩阵
(18)
PZ(t+1)=(I-KZ(t+1))PZ(t+1),
(19)
此后,边缘云服务器将计算后的车辆状态信息发送给其他RSU,实现道路各方位上车辆信息的交互,促进交通流的协作运作,实现对车辆的统一管理,降低交通事故发生率。
对所设计的基于接收信号强度RSSI的预滤波定位算法进行试验验证。数值仿真参数设置如下:考虑车辆行驶周围随机分布6个RSU,车载OBU发射功率为-10 dBm;路径损耗指数为2;车辆初始状态X(t)设置为(20,20,2,1)包括位置(x(t),y(t)),水平和垂直方向的速度(vx(t),vy(t))。复杂环境下,选择5个节点采集RSSI信号值,每个节点采集30组RSSI信号值。
实验中首先考虑2种情况,分别是正常行驶情况和强遮挡情况,对比在实验中接收到的RSSI真实值和预滤波算法后的RSSI值。正常行驶情况如图3所示,而在强遮挡情况时,无线信号受到强烈遮挡使得接收到的RSSI信号值出现连续的零值,传统的滤波定位算法中观测值出现突变时会使得定位精度大幅下降,在实验中设置在第20个采样点出现5个连续的零值,接收到的RSSI真实值和预滤波算法后的RSSI值如图4所示。
(a) RSSI初始值
(b) 预滤波校正后的RSSI值图3 不同节点RSSI值校正对比Fig.3 Comparison of RSSI correction for different nodes
(a) RSSI初始值
(b) 预滤波校正后的RSSI值图4 强遮挡情况下不同节点RSSI值校正对比Fig.4 Comparison of RSSI correction of different nodes under strong occlusion
经过预滤波算法对RSSI值的去噪和补齐,减小了RSSI值突变为0所带来的定位误差。可知原始接收到的RSSI信号值具有非常明显的时变性,波动较大,但是通过预滤波算法的校正后可以将RSSI值更加平稳地输出。
本文采用传统三角定位算法和文献[16]中的四点质心定位算法为基准,同样考虑正常行驶情况下和强遮挡情况,对提出的预滤波定位算法进行对比,正常行驶情况定位效果如图5所示,可以看到其中预滤波定位最为准确,其次是四点质心定位算法,最后是传统三角定位算法。计算每个采样时刻各个算法的最优估计值和真实值的差距如图6所示,传统三角定位算法精度在2.1 m,四点质心定位算法精度为1.2 m,本文提出的方法精度可达到0.9 m,与2种算法相比,精度分别提升57%和25%。
图5 定位效果对比Fig.5 Comparison of locating effect
图6 定位误差对比Fig.5 Comparison chart of locating error
在强遮挡情况时,选用均方根误差为指标评价模型的定位性能:
(20)
各定位算法的均方根误差如表1所示。
表1 各定位算法的均方根误差
由计算出的RMSE可知,在强遮挡情况下,预滤波定位算法仍然可以保持较为稳定的定位精度,而其他2种算法误差较大,无法使用。预滤波定位误差与噪声标准差关系如图7所示,当噪声标准差增大时,所接收到的RSSI值误差也增大,使得预滤波定位精度下降,定位误差增大。
图7 预滤波定位误差与噪声标准差关系Fig.7 Relationship between pre-filtering locating error and noise standard deviation
目标车辆的位置信息是车联网实际应用中至关重要的部分。本文采用低功耗低成本的RSSI测距方法,提出了基于RSSI的预滤波目标定位算法,减小和消除RSSI数据中的噪声波动和数据突变,将RSSI值平滑准确地输出,再结合运动模型完成目标跟踪与定位。仿真结果表明,与传统的RSSI滤波定位算法相比,改进方法定位准确,在强遮挡环境下容错率高,抗干扰能力更强,有一定实用价值。目前方法中的状态转移矩阵在固定场景下为固定值,在后续尝试加入深度学习方法使其自适应地更新参数,使方法适用于更多复杂场景。