一种基于Linux操作系统的地图匹配方法及装置与流程

文档序号:19482212发布日期:2019-12-21 03:27阅读:178来源:国知局
一种基于Linux操作系统的地图匹配方法及装置与流程

本发明涉及定位导航技术领域,尤其涉及一种基于linux操作系统的地图匹配方法及装置。



背景技术:

地图匹配技术是组合导航系统中的一项关键技术,能有效的解决惯性导航系统长时间累计误差对组合导航系统的影响,实时修正位置信息误差,实现高精度自主定位。

目前高精度的地图匹配技术依赖于高精度的地图数据以及高复杂度的地图匹配算法,时间和空间数据量越来越大,与嵌入式系统的有限资源已经不匹配,因此在嵌入式系统中实现地图匹配技术的产品化具有实际应用价值。



技术实现要素:

本发明旨在提供一种克服上述问题或者至少部分地解决上述问题的基于linux操作系统的地图匹配方法及装置。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种基于linux操作系统的地图匹配方法,包括:s1,根据待定位车辆的初始点和误差区域半径,确定误差区域;s2,确定在误差区域内的道路,初始化当前候选路段的匹配度;s3,更新误差区域内所有候选路段的匹配度;s4,确定最大匹配度的第一路段,判断第一路段的匹配度是否大于第一阈值,如果第一路段的匹配度大于第一阈值,则执行s5;否则执行s3;s5,更新待定位车辆的第一位置信息;s6,计算待定位车辆到后续节点的距离;s7,判断待定位车辆在道路的位置情况,如果待定位车辆在道路节点,则执行s8,如果待定位车辆在道路中段,则执行s11;s8,更新节点相关路段的匹配度;s9,确定最大匹配度的第二路段,判断第二路段的匹配度是否大于第二阈值,如果第二路段的匹配度大于第二阈值,则执行s10,否则执行s1;s10,将待定位车辆匹配到第一当前路段,更新待定位车辆的第二位置信息,返回执行s6;s11,更新当前路段的匹配度;s12,判断当前路段匹配度是否大于第三阈值,如果当前路段匹配度大于第三阈值,则执行s13,否则执行s14;s13,将待定位车辆匹配到第二当前路段,更新待定位车辆的第三位置信息,返回执行s6;s14,输出惯性位置输出值,并返回执行s1。

其中,方法还包括:预先设置第一阈值、第二阈值和第三阈值。

其中,第一阈值、第二阈值和第三阈值相等。

其中,s3,更新误差区域内所有候选路段的匹配度包括:通过如下公式计算误差区域内所有候选路段的匹配度:qi(k)=adi(k)+bvi(k)+gqi(k-1),i=1,lm,其中,m为候选路段个数,l为节点区域半径;更新计算得到的匹配度。

其中,匹配度为利用导航系统测量的待定位车辆的位置信息或行驶轨迹与电子地图求取的匹配度量值。

本发明另一方面提供了一种基于linux操作系统的地图匹配装置,包括:确定模块,用于根据待定位车辆的初始点和误差区域半径,确定误差区域;初始化模块,用于确定在误差区域内的道路,初始化当前候选路段的匹配度;第一更新模块,用于更新误差区域内所有候选路段的匹配度;第一判断模块,用于确定最大匹配度的第一路段,判断第一路段的匹配度是否大于第一阈值,如果第一路段的匹配度大于第一阈值,则通知第二更新模块;否则通知第一更新模块;第二更新模块,用于更新待定位车辆的第一位置信息;计算模块,用于计算待定位车辆到后续节点的距离;第二判断模块,用于判断待定位车辆在道路的位置情况,如果待定位车辆在道路节点,则通知第三更新模块,如果待定位车辆在道路中段,则通知第五更新模块;第三更新模块,用于更新节点相关路段的匹配度;第三判断模块,用于确定最大匹配度的第二路段,判断第二路段的匹配度是否大于第二阈值,如果第二路段的匹配度大于第二阈值,则通知第四更新模块,否则通知确定模块;第四更新模块,用于将待定位车辆匹配到第一当前路段,更新待定位车辆的第二位置信息,通知计算模块;第五更新模块,用于更新当前路段的匹配度;第四判断模块,用于判断当前路段匹配度是否大于第三阈值,如果当前路段匹配度大于第三阈值,则通知第六更新模块,否则通知输出模块;第六更新模块,将待定位车辆匹配到第二当前路段,更新待定位车辆的第三位置信息,通知计算模块;输出模块,用于输出惯性位置输出值,并通知确定模块。

其中,装置还包括:设置模块;设置模块,用于预先设置第一阈值、第二阈值和第三阈值。

其中,第一阈值、第二阈值和第三阈值相等。

其中,第一更新模块通过如下方式更新误差区域内所有候选路段的匹配度:第一更新模块,具体用于通过如下公式计算误差区域内所有候选路段的匹配度:qi(k)=adi(k)+bvi(k)+gqi(k-1),i=1,lm,其中,m为候选路段个数,l为节点区域半径;更新计算得到的匹配度。

其中,匹配度为利用导航系统测量的待定位车辆的位置信息或行驶轨迹与电子地图求取的匹配度量值。

由此可见,通过本发明提供的基于linux操作系统的地图匹配方法及装置,通过在车辆轨迹的邻近区域内搜索所有道路路段,将导航系统测量的车辆位置信息或行驶轨迹与电子地图求取匹配度量值,找到车辆可能在的道路,并计算出车辆在此道路上的位置,从而提高车辆的定位精度,同时利用linux操作系统的实时性和嵌入式数据库sqlite的微小性,显著提高了惯性导航的定位精度,满足组合导航系统对地图匹配技术的精度要求。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的基于linux操作系统的地图匹配方法的流程图;

图2为本发明实施例提供的基于linux操作系统的地图匹配装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供的基于linux操作系统的地图匹配方法及装置,利用分层设计思想,架构在由硬件平台、地图匹配软件平台、用户软件平台三部分构成的平台上。其中:

在硬件平台中,采用龙芯2h处理器,主频800m,完全可以支撑平台可靠运行;内存1gb,满足复杂运算的内存需求;内置16g的数据存储单元,用于存储地图数据库和工作日志数据文件等数据,便于线下分析;有1路422串口和一路10mbps/100mbps网口用于与用户软件平台的通讯,可以实时监控系统的运行状态和事后数据分析,同时模拟惯性导航数据动态注入,测试地图匹配软件的匹配精度。

地图匹配软件平台采用linux2.6版本的操作系统,该系统和以前版本对比有了很大改进,尤其是实时性方面有了很大提高,在不同进程之间采用了信号灯集、共享内存等来进行通信和交互。嵌入式数据库采用sqlite3,占用资源非常低,处理速度非常快,满足地图匹配算法对数据库的要求。设置在地图匹配软件平台上的地图匹配算法按照曲线匹配的思想,在车辆轨迹的邻近区域内搜索所有道路路段,将导航系统测量的车辆位置信息或行驶轨迹与电子地图求取匹配度量值,找到车辆可能在的道路,并计算出车辆在此道路上的位置,从而提高车辆的定位精度。

本发明实施例提供的基于linux操作系统的地图匹配方法及装置,应用在地图匹配软件平台上,以便进行地图匹配,定位待定位车辆。

图1示出了本发明实施例提供的基于linux操作系统的地图匹配方法的流程图,参见图1,本发明实施例提供的基于linux操作系统的地图匹配方法,包括:

s1,根据待定位车辆的初始点和误差区域半径,确定误差区域。

具体地,可以事先通过分析大量实验数据,优化误差区域半径,保证在最合适的范围内搜索到当前行驶的道路。

作为本发明实施例的一个可选实施方式,本发明实施例提供的基于linux操作系统的地图匹配方法还包括:预先设置第一阈值、第二阈值和第三阈值。通过合理设置阈值,可以降低算法占用的资源。优选的,其特征在于,第一阈值、第二阈值和第三阈值相等。从而降低算法的复杂度。

s2,确定在误差区域内的道路,初始化当前候选路段的匹配度。

具体地,首先确定误差区域,计算候选路段的匹配度,从而识别车辆所在的路段。

作为本发明实施例的一个可选实施方式,匹配度为利用导航系统测量的待定位车辆的位置信息或行驶轨迹与电子地图求取的匹配度量值。

s3,更新误差区域内所有候选路段的匹配度。

作为本发明实施例的一个可选实施方式,s3,更新误差区域内所有候选路段的匹配度包括:通过如下公式计算误差区域内所有候选路段的匹配度:qi(k)=adi(k)+bvi(k)+gqi(k-1),i=1,lm,其中,m为候选路段个数,l为节点区域半径;更新计算得到的匹配度。

s4,确定最大匹配度的第一路段,判断第一路段的匹配度是否大于第一阈值,如果第一路段的匹配度大于第一阈值,则执行s5;否则执行s3;

s5,更新待定位车辆的第一位置信息。

具体地,以上步骤s1-s5可以作为捕获匹配过程,选定车辆当前的行车路段,以曲线匹配为基础,利用惯性导航的定位点信息,综合考虑车辆的姿态信息,提高定位精确度。

s6,计算待定位车辆到后续节点的距离;

s7,判断待定位车辆在道路的位置情况,如果待定位车辆在道路节点,则执行s8,如果待定位车辆在道路中段,则执行s11。

具体地,利用车辆轨迹连续以及道路网的拓扑关系,在跟踪匹配阶段下,判断车辆的位置状态,如果车辆在匹配路段上,只计算当前匹配路段的匹配度;如果车辆在路段的节点,还计算后续路段的匹配度。

s8,更新节点相关路段的匹配度;

s9,确定最大匹配度的第二路段,判断第二路段的匹配度是否大于第二阈值,如果第二路段的匹配度大于第二阈值,则执行s10,否则执行s1;

s10,将待定位车辆匹配到第一当前路段,更新待定位车辆的第二位置信息,返回执行s6;

s11,更新当前路段的匹配度;

s12,判断当前路段匹配度是否大于第三阈值,如果当前路段匹配度大于第三阈值,则执行s13,否则执行s14;

s13,将待定位车辆匹配到第二当前路段,更新待定位车辆的第三位置信息,返回执行s6;

s14,输出惯性位置输出值,并返回执行s1。

具体地,以上步骤s6-s14可以作为跟踪匹配过程,当车辆的行驶路段发生改变或者行驶方向发生改变时,判断车辆行驶路段改变的条件,主要依靠行车方向来判断,同时考虑车辆的综合定位点和道路节点的距离,使车辆能及时确定行车路段,并将车辆精确的行驶位置定位到电子地图上,完成车辆的全程精确跟踪定位。

由此可见,利用本发明实施例提供的基于linux操作系统的地图匹配方法,通过在车辆轨迹的邻近区域内搜索所有道路路段,将导航系统测量的车辆位置信息或行驶轨迹与电子地图求取匹配度量值,找到车辆可能在的道路,并计算出车辆在此道路上的位置,从而提高车辆的定位精度,同时利用linux操作系统的实时性和嵌入式数据库sqlite的微小性,显著提高了惯性导航的定位精度,满足组合导航系统对地图匹配技术的精度要求。

综上所述,相比目前许多高精度的地图匹配算法,从以下方面进行了优化:

(1)通过合理设置阈值、动态道路区域搜索、利用道路点特征等手段,优化算法复杂度,降低算法占用资源,使高精度的曲线匹配算法在嵌入式系统中得到应用;

(2)通过分析大量实验数据,优化误差区域半径,保证在最合适的范围内搜索到当前行驶的道路。

以下,通过一个具体的示例对本发明实施例提供的基于linux操作系统的地图匹配方法进行说明,但本发明并不局限于此,以下的具体示例,基于两个假设:(1)用于匹配的数字地图精度较高;(2)被定位的车辆行驶在道路上。

本发明具体示例的地图匹配算法按照曲线匹配的思想,将地图匹配的过程分为两个部分:捕获匹配过程和跟踪匹配过程。

在捕获匹配阶段,首先确定误差区域,计算候选路段的匹配度,从而识别车辆所在的路段。利用车辆轨迹连续以及道路网的拓扑关系,在跟踪匹配阶段下,判断车辆的位置状态;如果车辆在匹配路段上,只计算当前匹配路段的匹配度;如果车辆在路段的节点,还计算后续路段的匹配度。

其中:捕获匹配过程主要用来选定车辆当前的行车路段,以曲线匹配为基础,利用惯性导航的定位点信息,综合考虑车辆的姿态信息,提高定位精确度。

跟踪匹配过程主要应用于当车辆的行驶路段发生改变或者行驶方向发生改变时,算法设计了判断车辆行驶路段改变的条件,主要依靠行车方向来判断,同时考虑车辆的综合定位点和道路节点的距离,使车辆能及时确定行车路段,并将车辆精确的行驶位置定位到电子地图上,完成车辆的全程精确跟踪定位。

本发明实施例提供的基于linux操作系统的地图匹配方法的路段匹配算法描述如下:

设:候选路段有m个,节点区域半径为l。

1)在捕获匹配阶段,根据初始点和误差区域半径,确定误差区域,找到在区域内的道路,初始化当前候选路段的匹配度;

2)更新区域内所有候选路段的匹配度:

qi(k)=adi(k)+bvi(k)+gqi(k-1),i=1,lm

3)找出最大的匹配度,如果(阈值),令匹配到路段j,此时转到跟踪匹配过程下,更新车辆位置信息,执行4);否则,车辆位置不更新,继续执行2)。

4)计算车辆到后续节点的距离,判断车辆在道路的位置情况。如果在道路中段上,更新当前路段j的匹配度执行5);如果在节点,更新节点相关路段的匹配度,执行6)。

5)根据当前被更新的匹配度判断,如果匹配到路段j,更新车辆位置,执行4);否则,车辆位置采用dr输出值,执行1)。

6)如果匹配到路段j,更新车辆位置,执行4);否则执行1)。

图2示出了本发明实施例提供的基于linux操作系统的地图匹配装置的结构示意图,本发明实施例提供的基于linux操作系统的地图匹配装置利用上述基于linux操作系统的地图匹配方法,在此仅对本发明实施例提供的基于linux操作系统的地图匹配装置进行简要说明,其他未尽事宜,请参照上述基于linux操作系统的地图匹配方法的相关说明,在此不再赘述,参见图2,本发明实施例提供的基于linux操作系统的地图匹配装置,包括:

确定模块,用于根据待定位车辆的初始点和误差区域半径,确定误差区域;

初始化模块,用于确定在误差区域内的道路,初始化当前候选路段的匹配度;

第一更新模块,用于更新误差区域内所有候选路段的匹配度;

第一判断模块,用于确定最大匹配度的第一路段,判断第一路段的匹配度是否大于第一阈值,如果第一路段的匹配度大于第一阈值,则执行s5;否则执行s3;

第二更新模块,用于更新待定位车辆的第一位置信息;

计算模块,用于计算待定位车辆到后续节点的距离;

第二判断模块,用于判断待定位车辆在道路的位置情况,如果待定位车辆在道路节点,则通知第三更新模块,如果待定位车辆在道路中段,则通知第五更新模块;

第三更新模块,用于更新节点相关路段的匹配度;

第三判断模块,用于确定最大匹配度的第二路段,判断第二路段的匹配度是否大于第二阈值,如果第二路段的匹配度大于第二阈值,则通知第四更新模块,否则通知确定模块;

第四更新模块,用于将待定位车辆匹配到第一当前路段,更新待定位车辆的第二位置信息,通知计算模块;

第五更新模块,用于更新当前路段的匹配度;

第四判断模块,用于判断当前路段匹配度是否大于第三阈值,如果当前路段匹配度大于第三阈值,则通知第六更新模块,否则通知输出模块;

第六更新模块,将待定位车辆匹配到第二当前路段,更新待定位车辆的第三位置信息,通知计算模块;

输出模块,用于输出惯性位置输出值,并通知确定模块。

作为本发明实施例的一个可选实施方式,本发明实施例提供的基于linux操作系统的地图匹配装置还包括:设置模块;设置模块,用于预先设置第一阈值、第二阈值和第三阈值。

作为本发明实施例的一个可选实施方式,第一阈值、第二阈值和第三阈值相等。

作为本发明实施例的一个可选实施方式,第一更新模块通过如下方式更新误差区域内所有候选路段的匹配度:第一更新模块,具体用于通过如下公式计算误差区域内所有候选路段的匹配度:qi(k)=adi(k)+bvi(k)+gqi(k-1),i=1,lm,其中,m为候选路段个数,l为节点区域半径;更新计算得到的匹配度。

作为本发明实施例的一个可选实施方式,匹配度为利用导航系统测量的待定位车辆的位置信息或行驶轨迹与电子地图求取的匹配度量值。

由此可见,利用本发明实施例提供的基于linux操作系统的地图匹配方法,通过在车辆轨迹的邻近区域内搜索所有道路路段,将导航系统测量的车辆位置信息或行驶轨迹与电子地图求取匹配度量值,找到车辆可能在的道路,并计算出车辆在此道路上的位置,从而提高车辆的定位精度,同时利用linux操作系统的实时性和嵌入式数据库sqlite的微小性,显著提高了惯性导航的定位精度,满足组合导航系统对地图匹配技术的精度要求。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1