本发明属于物联网和车联网领域,具体涉及一种基于obd的北斗/gps的轨迹优化方法。
背景技术:
近年来随着物联网和车联网行业的快速发展,各种物联网和车联网终端设备在中国发展蔓延,特别是最近这两年,借助于4g通信网络的迅速发展延伸,移动互联网、物联网及车联网也逐渐形成一种融合趋势。随着北斗/gps定位终端设备的使用日趋广泛,车载定位终端设备的数量也日趋庞大。但由于在城市里使用时,由于建筑物密度较大导致北斗/gps信号遮挡和反射的情况,在进入地下通道时完全接收不到信号的盲区情况也比较多。会导致定位漂移和无法定位的情况发生,这就需要在这种应用场景进行纠错的一种方法,最大限度减少相关的影响。
目前的定位终端在定位信号纠错补偿的主要手段有以下两种:一是通过基站定位;二是通过道路规划进行轨迹补偿。
目前现有的定位信号纠错补偿技术存在以下缺点:
1、基站定位和通信基站的分布密度相关,定位精度较低,;
2、道路规划的轨迹补偿一般也只能应用于道路密度较低的场景,增加平台的计算压力。
技术实现要素:
本发明的目的在于克服上述不足,提供一种基于obd的北斗/gps的轨迹优化方法,在不需要人工参与的情况下,实现实时优化轨迹的功能。
为了达到上述目的,本发明包括以下步骤:
步骤一,采集当前车辆的北斗/gps数据,通过obd接口采集当前车辆的发动机转速和车速数据;
步骤二,采用漂移过滤算法过滤北斗/gps数据中由于信号干扰或衰减产生的漂移定位数据;
步骤三,采用轨迹补偿算法计算出当前定位点的数据;
步骤四,用计算出的定位点的数据代替被过滤的漂移定位数据,整合成优化后的北斗/gps轨迹。
步骤一中,北斗/gps数据包括当前车辆的经纬度和方向角数据。
步骤二中,漂移过滤算法的具体方法如下:
每隔固定时间获取一次北斗/gps数据,并计算本次有效定位点与前次有效定位点的直线距离,以最大速度作为限制条件,计算以最大速度行驶t秒的距离dt米作为阀值,如果前次有效定位点和t秒后的定位点间的直线距离大于阀值,则认为后面这个定位点为漂移误差值,过滤且不统计为有效定位点。
本次有效定位点与前次有效定位点的直线距离的计算公式如下:
d=s·cos{1/[sinφasinφb+cosφacosφbcos(λb-λa)]}
其中,s为车辆速度,本次有效定位点a的经纬度分别为λa和φa,前次有效定位点b的经纬度为λb和φa。
步骤三中,轨迹补偿算法的具体方法如下:
根据obd接口采集到的当前车辆的速度平均值,以及北斗/gps采集到的距离上次有效定位点的时间,计算出行驶的距离;
根据上次有效定位点的位置和北斗/gps的方向角数据,计算并还原出过滤定位点的位置数据,再将该数据补偿到轨迹数据中。
步骤四中,整合是指将还原数据代替被过滤的漂移定位数据补偿到轨迹数据中。
与现有技术相比,本发明从obd芯片获取发动机的转速和车速数据,从北斗/gps芯片获取经纬度和方向角数据,采用漂移过滤算法筛选有效定位数据和漂移数据,并将漂移数据过滤,同时采用轨迹补偿算法将过滤的漂移数据进行补偿还原以维持轨迹的平滑完整。在不用人工参与的情况下实现了车载终端的漂移数据自动过滤和轨迹补偿。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
参见图1,本发明包括以下步骤:
步骤一,采集当前车辆的北斗/gps数据,北斗/gps数据包括当前车辆的经纬度和方向角数据,通过obd接口采集当前车辆的发动机转速和车速数据;
步骤二,采用漂移过滤算法过滤北斗/gps数据中由于信号干扰或衰减产生的漂移定位数据,漂移过滤算法的具体方法如下:
每隔固定时间获取一次北斗/gps数据,并计算本次有效定位点与前次有效定位点的直线距离,计算公式如下:
d=s·cos{1/[sinφasinφb+cosφacosφbcos(λb-λa)]}
其中,s为车辆速度,本次有效定位点a的经纬度分别为λa和φa,前次有效定位点b的经纬度为λb和φa。
以最大速度作为限制条件,计算以最大速度行驶t秒的距离dt米作为阀值,如果前次有效定位点和t秒后的定位点间的直线距离大于阀值,则认为后面这个定位点为漂移误差值,过滤且不统计为有效定位点。
步骤三,采用轨迹补偿算法计算出当前定位点的数据,具体方法如下:
根据obd接口采集到的当前车辆的速度平均值,以及北斗/gps采集到的距离上次有效定位点的时间,计算出行驶的距离;
根据上次有效定位点的位置和北斗/gps的方向角数据,计算并还原出过滤定位点的位置数据,再将该数据补偿到轨迹数据中。;
步骤四,用计算出的定位点的数据代替被过滤的漂移定位数据,将代替被过滤的漂移定位数据补偿到轨迹数据中整合成优化后的北斗/gps轨迹。
实施例:
处理机同步采集obd发动机数据和北斗/gps的定位数据,轨迹的起点根据发动机转速是否产生由零值到非零值的变化作为前提条件,如有此变化则采用在1秒内获取10帧定位数据的加权平均值作为轨迹的初始定位点,然后每间隔3秒获取1帧定位数据,应用两点间经纬度距离公式计算和上次定位点的直线距离,任意两点距离的计算公式为:
d=111.12·cos{1/[sinφasinφb+cosφacosφbcos(λb-λa)]}
其中,本次有效定位点a的经纬度分别为λa和φa,前次有效定位点b的经纬度为λb和φa。
以最大速度s=250(公里/小时)作为限制条件,以该速度行驶t=3秒的距离作为阀值dt,连续漂移次数c的初始值为0,则阀值dt的计算公式为:dt=s·t·(c+1),并根据此公式计算出阀值dt的值为69.4·t·(c+1)米。
如果前次有效定位点和3秒后的定位点间的直线距离大于这个阀值,则认为后面这个定位点为漂移误差值,过滤且不统计为有效定位点,连续漂移次数c加1。此时下次计算阀值的行驶时间为3·(c+1)秒,并依次累计直到前次有效定位点和之后的定位点间的直线距离小于这个阀值,并重置计算起点位置,连续漂移次数c置为0。
同时对过滤的漂移数据进行补偿恢复,根据obd的漂移时间内的速度平均值、距离上次有效定位点的时间,计算出行驶的距离;再根据上次有效定位点的位置和北斗/gps的方向角数据,计算并还原出过滤定位点的位置数据,再将该数据补偿到轨迹数据中。
本发明通过处理机采集obd发动机数据和北斗/gps定位数据;根据漂移过滤算法筛选有效定位数据并过滤无效定位数据;根据轨迹补偿算法恢复无效定位数据。在北斗/gps信号有干扰或者衰减时,根据obd接口获取的发动机转速和车速以及前次定位信息之间的关系过滤漂移定位数据。在过滤掉漂移定位数据后根据车速和方向角在前次有效定位和末次有效定位之间添加轨迹补偿点,保证轨迹圆滑避免轨迹点丢失过多导致拉大直线的情况。
本发明针对车载定位终端的城市区域内局部信号衰减导致漂移的定位特征,设计了一种基于obd的北斗/gps的轨迹优化方法,通过设计漂移过滤算法和轨迹补偿算法,在不需要人工参与的情况下,实现了过滤漂移定位数据和补偿过滤定位点的功能。