当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于移动导航系统的路径搜索方法技术方案

技术编号:2825417 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于移动导航系统的路径搜索方法,基于导航系统的特性-利用目标点位置已知的信息,作为搜索过程的启发信息,利用该启发信息重新设计路径搜索方法,使得搜索过程中扩展的节点数大大减少,这样便减少了内存的占用,提高搜索效率。

【技术实现步骤摘要】

本专利技术涉及移动导航中的路径搜索领域,特别地,涉及一种基于移动导航系统的路径搜索方法
技术介绍
移动导航系统一般分为以下几个模块:导航数据载入,导航地图显示,导航路径搜索,导航提示分析模块。移动导航系统通过GPS设备实时接收当前位置,在导航过程中有时需要进行路径重算,并且由于移动设备的硬件资源受限,所以对路径搜索算法的效率和内存消耗方面要求较严格。在导航路径搜索中,当前一般采用的方法主要是基于Dijkstra算法进行搜索的,该方法是面向路径搜索的通用型方法,没有充分利用导航系统的特征,并且在搜索的扩散过程中需要记录的节点数较多,耗费的内存较多,并且效率较低,特别是在移动导航系统中,一般的移动设备硬件资源受限,更加突出了传统方法的资源耗费和效率较低问题。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于移动导航系统的路径搜索方法。应用本专利技术的方法,搜索过程中扩展的节点数大大减少,这样便减少了内存的占用,提高搜索效率。本专利技术的目的是通过以下技术方案来实现的:一种基于移动导航的路径搜索方法,包括以下步骤:选取目标点;将目标点和出发点的坐标转化为投影坐标,绑定到地图上道路网络中最近的路上;记录当前目标点作为下次目标点绑定的启发信息;根据绑定后的出发点和目标点以及当前的行驶方向,该方向以正北作为0度,来自GPS模块,转化为弧度单位,在路网上进行拓扑路径搜索。-->路径搜索完毕,返回搜索结果。本专利技术的有益效果是:本专利技术充分利用了目标点的坐标位置已知的信息,通过启发搜索,减少搜索扩散过程中扩散的节点数,从而减少搜索过程载入内存的数据量,提高搜索效率。测试发现,在搜索距离出发点不超过半个路网的半径距离内的目标点时,使用本专利技术的扩散节点数是一般方法扩散节点数的25%;而在超过了半个路网之外的目标点的搜索上,其扩散节点数也可达到一般方法的50%;从而扩散节点数大幅减少,载入的内存成相应减少,效率得到提高。附图说明图1是本专利技术基于移动导航系统的路径搜索方法流程图;图2是绑定道路流程图。具体实施方式本专利技术所依据的原理是:将道路网络的拓扑邻接信息提取出来作路径分析,道路网络包含拓扑节点和拓扑边结构,边中含有长度信息,作为路径搜索时的权重信息,拓扑节点和拓扑边存有网络对象的邻接关系。利用目标点坐标位置已知的信息作为启发信息,利用当前节点到目标点的直线距离作为搜索过程的启发值,加快搜索。本专利技术的路径搜索方法,包含以下步骤:1.选取目标点:可通过触摸笔在地图上选取,也可通过选取兴趣点,设为目标点;出发点是根据GPS模块实时地位得到的当前位置;2.出发点和目标点绑定到最近道路:将目标点和出发点转化为投影坐标,绑定到地图上道路网络中最近的路上;记录当前目标点作为下次目标点绑定的启发信息,初始设置上次目标点为位置为(0,0);2.1先绑定目标点,判断当前目标点是否在上次的目标点附近(如在容忍距离50米内),若是,则直接使用上次绑定结果,不需要进行绑定,否则转绑定(绑定步骤见下);-->2.2根据目标点的绑定结果(包含绑定到路的距离,绑定到的路的GRL(地理资源定位)信息,绑定到路上的位置),判定目标点是否在搜索路网上,若不在,则转4;否则更新上次目标点绑定结果,转下步;2.3绑定出发点,出发点位置来自GPS模块的当前位置,也即导航设备当前位置,和目标点不同,这里直接进行绑定,若绑定结果判断出发点不在路网上,则转4;否则转下步;3.搜索路径:3.1转化绑定点为拓扑节点对:该拓扑节点对含以下信息:节点坐标位置,出发点到节点方向(正北为0弧度),出发点到当前节点实际距离;根据所在的道路GRL得到对应的网络拓扑边,分别记录出发点和目标点对应的拓扑节点对,记录绑定的点到该拓扑边的两个端节点的距离;3.2判断出发点和目标点是否在同一条网络边上,若是,则转3.3;否则转3.4;3.3两点同边的特殊情况处理:若当前方向cur_dir<0,认为是不考虑方向信息,则直接取出出发点和目标点之间的路段信息,将该路段信息转为路径结果,转4;否则,计算得出发点到目标点的直线方向dir1,比较cur_dir和dir1,如果两个方向的角度偏差在(-90,90)度,取出出发点与目标点之间的路段信息,转为路径结果,转4;否则,计算得出发点与目标点之间的中间节点,该节点满足条件:从出发点到该节点方向dir2和dir1反向(相差超过90度),取得路段road_segment_sm(出发点start到中间点middle)和路段road_segment_me(中间点middle到目标点end),将路段信息转为路径结果,转4;3.4根据GPS当前前进方向,调整出发点拓扑点对:如果当前GPS方向<0,表示不关注方向;不做调整,否则,根据前进方向,选择出发拓扑点对中的方向较接近GPS前进方向的拓扑节点作为出发节点;3.5搜索拓扑最短路径:-->拓扑边以道路长度作为权重;最短路径搜索算子的中间搜索对象为PathNode,PathNode含有如下信息:是否终点b_target,当前对应拓扑节点nw_node,路径对应上个PathNode:previous_pathNode,累计出发点到当前节点距离accu_weight_from,当前节点到目标点启发值accu_weight_to;3.5.1准备出发拓扑点:根据出发点拓扑点对,即当前绑定到的最近道路对应的拓扑边的两个拓扑端点,生成出发PathNode,插入待扩展节点集合extandable_nodes,extandable_nodes集合中对象的先后关系采用accu_weight_from+accu_weight_to做比较;3.5.2准备目标拓扑点根据目标点拓扑点对,生成两个PathNode,插入目标PathNode集合target_nodes;并记录目标点位置target_pos,作为启发值搜索之用;3.5.3路径扩散搜索初始化:初始化当前搜索结果current_result为无效;3.5.4从extandable_nodes中取出第一个PathNode作为current_path_node,判断current_path_node是否目标点,若是,记录当前搜索结果为有效current_result,转3.5.8;否则,转3.5.5;3.5.5扩散当前节点:取出所有和current_path_node对应拓扑节点cur_nw_node邻接并且以cur_nw_node为起始节点的拓扑边集合adjacent_edges;通过邻接边adjacent_edges取得当前nw_node的邻居节点集合;3.5.6判断邻接节点neighbour_nw_node是否待扩展节点:对每个邻居节点neighbour_nw_node,判断neighbour_node是否在待扩展节点集合expandable_nodes中;若不在,则新生成一个PathNode——other_path_node;否则,从expandable_nodes中取出对应于neighbour_nw_node的PathNode作为other_path_node;若neighbour_nw_node是已经扩展过的节点(visited_nodes)或者other_path_n本文档来自技高网...

【技术保护点】
一种基于移动导航的路径搜索方法,其特征在于,包括以下步骤:    A.选取目标点,可通过触摸笔在地图上选取,也可通过选取兴趣点,设为目标点;出发点是根据GPS模块实时地位得到的当前位置。    B.将目标点和出发点的坐标转化为投影坐标,绑定到地图上道路网络中最近的路上;记录当前目标点作为下次目标点绑定的启发信息,初始设置上次目标点位置为(0,0)。    a)先绑定目标点,判断当前目标点是否在上次的目标点附近,所述目标点附近为在距离目标点50米的范围内,若是,则直接使用上次绑定结果,不需要进行绑定,否则绑定。    b)根据目标点的绑定结果判定目标点是否在搜索路网上,若不在,则转D;否则更新上次目标点绑定结果,转下步;所述绑定结果包含绑定到路的距离,绑定到的路的GRL信息,绑定到路上的位置。    c)绑定出发点,出发点位置来自GPS模块的当前位置,也即导航设备当前位置,和目标点不同,这里直接进行绑定,若绑定结果判断出发点不在路网上,则转D;否则转下步。    C.根据绑定后的出发点和目标点以及当前的行驶方向,该方向以正北作为0度,来自GPS模块,转化为弧度单位,在路网上进行拓扑路径搜索。    a)将两个绑定的点转化为两对拓扑节点对:根据所在的道路GRL得到对应的网络拓扑边,分别记录出发点和目标点对应的拓扑节点对,记录绑定的点到该拓扑边的两个端节点的距离。    b)判断出发点和目标点是否在同一条网络边上,若是,则转f);否则转g)。    c)两点同边的特殊情况处理:若当前方向cur_dir为负值,认为是不考虑方向信息,则直接取出出发点和目标点之间的路段信息,将该路段信息转为路径结果,转D;否则,计算得出发点到目标点的直线方向dir1,比较cur_dir和dir1,如果两个方向的角度偏差在-90~90°,取出出发点与目标点之间的路段信息,转为路径结果,转步骤D;否则,计算得出发点与目标点之间的中间节点,该节点满足条件:从出发点到该节点方向dir2和dir1反向,取得出发点到中间点的路段road_segment_sm和中间点到目标点的路段road_segment_me,将路段信息转为路径结果,转步骤D。    d)根据GPS当前前进方向,调整出发点拓扑点对;如果当前GPS方向为负值,表示不关注方向;不做调整,否则,根据前进方向,选择出发拓扑点对中的方向较接近GPS前进方向的拓扑节点作为出发节点。    e)搜...

【技术特征摘要】
1.一种基于移动导航的路径搜索方法,其特征在于,包括以下步骤:A.选取目标点,可通过触摸笔在地图上选取,也可通过选取兴趣点,设为目标点;出发点是根据GPS模块实时地位得到的当前位置。B.将目标点和出发点的坐标转化为投影坐标,绑定到地图上道路网络中最近的路上;记录当前目标点作为下次目标点绑定的启发信息,初始设置上次目标点位置为(0,0)。a)先绑定目标点,判断当前目标点是否在上次的目标点附近,所述目标点附近为在距离目标点50米的范围内,若是,则直接使用上次绑定结果,不需要进行绑定,否则绑定。b)根据目标点的绑定结果判定目标点是否在搜索路网上,若不在,则转D;否则更新上次目标点绑定结果,转下步;所述绑定结果包含绑定到路的距离,绑定到的路的GRL信息,绑定到路上的位置。c)绑定出发点,出发点位置来自GPS模块的当前位置,也即导航设备当前位置,和目标点不同,这里直接进行绑定,若绑定结果判断出发点不在路网上,则转D;否则转下步。C.根据绑定后的出发点和目标点以及当前的行驶方向,该方向以正北作为0度,来自GPS模块,转化为弧度单位,在路网上进行拓扑路径搜索。a)将两个绑定的点转化为两对拓扑节点对:根据所在的道路GRL得到对应的网络拓扑边,分别记录出发点和目标点对应的拓扑节点对,记录绑定的点到该拓扑边的两个端节点的距离。b)判断出发点和目标点是否在同一条网络边上,若是,则转f);否则转g)。c)两点同边的特殊情况处理:若当前方向cur_dir为负值,认为是不考虑方向信息,则直接取出出发点和目标点之间的路段信息,将该路段信息转为路径结果,转D;否则,计算得出发点到目标点的直线方向dir1,比较cur_dir和dir1,如果两个方向的角度偏差在-90~90°,取出出发点与目标点之间的路段信息,转为路径结果,转步骤D;否则,计算得出发点与目标点之间的中间节点,该节点满足条件:从出发点到该节点方向dir2和dir1反向,取得出发点到中间点的路段road_segment_sm和中间点到目标点的路段road_segment_me,将路段信息转为路径结果,转步骤D。d)根据GPS当前前进方向,调整出发点拓扑点对;如果当前GPS方向为负值,表示不关注方向;不做调整,否则,根据前进方向,选择出发拓扑点对中的方向较接近GPS前进方向的拓扑节点作为出发节点。e)搜索拓扑最短路径,拓扑边以道路长度作为权重;最短路径搜索算子的中间搜索对象为PathNode,PathNode含有如下信息:是否终点b_target,当前对应拓扑节点nw_node,路径对应上个PathNode:previous_pathNode,累计出发点到当前节点距离,accu_weight_from,当前节点到目标点启发值accu_weight_to:i.准备出发拓扑点prepareStartNodes:根据出发点拓扑点对,即当前绑定到的最近道路对应的拓扑边的两个拓扑端点,生成出发PathNode,插入待扩展节点集合extandable_nodes,extandable_nodes集合中对象的先后关系采用accu_weight_from+accu_weight_to做比较。ii.准备目标拓扑点prepareTargetNodes:根据目标点拓扑点对,生成两个PathNode,插入目标PathNode集合target_nodes;并记录目标点位置target_pos,作为启发值搜索之用。iii.路径扩散搜索searchPath:初始化当前搜索结果current_result为无效。iv.从extandable_nodes中取出第一个PathNode作为current_path_node,判断current_path_node是否目标点,若是,记录当前搜索结果为有效current_result转viii;否则,转v。v.扩散当前PathNode:取出所有和current_path_node对应拓扑节点cur_nw_node邻接并且以cur_nw_node为起始节点的拓扑边集合adjacent_edges;通过邻接边adjacent_edges取得当前nw_node的邻居节点集合。vi.对每个邻居节点neighbour_nw_node,判断neighbour_no...

【专利技术属性】
技术研发人员:陈奇赵国荣李山亭黄群山徐亚娟范先迪蒋卫星
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1