导航路径规划方法和装置与流程

文档序号:27684772发布日期:2021-12-01 00:56阅读:127来源:国知局
导航路径规划方法和装置与流程

1.本技术涉及导航技术领域,特别是涉及导航路径规划方法和装置。


背景技术:

2.在相关技术中,在对三维场景进行导航路径规划时,可以选择导航网格地图作为导航地图,从而避免无向节点地图的信息丢失和栅格地图的内存限制,同时导航地图还具备栅格地图环境失真度低的优点。
3.图1是根据相关技术中的基于导航网格地图的路径规划方法的示意图,如图1所示,该方法将场景划分为多个呈凸多边形的可通行区域,并使用漏斗算法,根据凸多边形之间的公共顶点来生成导航路径,但这种方法生成的路径点均为可通行区域之间公共顶点,这些点在实际场景中为障碍物或者墙与可通行区域的边界,生成的路径并不在道路中间。
4.针对相关技术中,基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题,尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种导航路径规划方法和装置,以至少解决相关技术中基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题。
6.第一方面,本技术实施例提供了一种导航路径规划方法,基于导航网格地图,所述方法包括:
7.获取导航起点和导航终点,以所述导航起点为起始点,使用漏斗算法得到第一路径点;
8.向可通行区域中间移动所述第一路径点,得到第二路径点,连接所述起始点和所述第二路径点,得到第一路径;
9.确定从所述起始点至所述第二路径点所经过的可通行区域,并在所述可通行区域大于一个的情况下,确定所述第一路径是否与各所述可通行区域间的公共边均相交;
10.若否,调整所述第一路径,得到与所述公共边均相交的导航子路径。
11.在其中一些实施例中,所述调整所述第一路径的过程包括:
12.确定与所述第一路径不相交的公共边,得到第一公共边,确定所述第一公共边的靠近所述起始点一侧的前一条公共边,得到第二公共边;
13.确定所述第一路径与所述第二公共边的交点,得到第三路径点;
14.在所述第一公共边上插入第一目标点,连接所述第三路径点和所述第一目标点,得到第二路径,以所述第三路径点为第二目标点的起点,沿所述第二路径长度方向,每间隔第一目标距离移动一次所述第二目标点,直到所述第二目标点与所述第二路径点的连线路径与所述第一公共边相交,并且交点与所述第一公共边的两端点的间距均大于预设的间距值;
15.依次连接所述起始点和所述第三路径点、所述第三路径点与所述第二目标点、所
述第二目标点与所述第二路径点,得到所述导航子路径。
16.在其中一些实施例中,所述得到第二路径之后,所述方法包括:确定所述第二路径的长度是否小于所述第一目标距离,若是,取第一目标点位置作为所述第二目标点的位置。
17.在其中一些实施例中,所述得到导航子路径之后,所述方法包括:
18.更新所述起始点为所述第二路径点,以获取下一段的导航子路径;
19.在所述起始点与导航终点的连线路径处于可通行区域内的情况下,得到末段的导航子路径;
20.拼接所有导航子路径,得到导航路径。
21.在其中一些实施例中,移动所述第一路径点的过程包括:
22.确定所述第一路径点所在的各区域边中,是否存在至少一条区域边与所述第一路径点所在的公共边平行或近似平行;
23.若是,从所述第一路径点的位置沿所述第一路径点所在的各区域边间的角平分线的方向移动第二目标距离,得到所述第二路径点;
24.若否,从所述第一路径点的位置沿所述公共边的方向移动所述第二目标距离,得到所述第二路径点。
25.在其中一些实施例中,在所述区域边与所述公共边的夹角值大于0度且小于10度,或大于170度且小于180度的情况下,判定所述区域边与所述公共边平行或近似平行。
26.在其中一些实施例中,所述第二目标距离的确定过程包括:确定所述第一路径点所在的公共边的长度是否大于第一预设阈值,若是,所述第二目标距离为所述第一预设阈值的一半,若否,所述第二目标距离为所述公共边的长度的一半。
27.在其中一些实施例中,在所述第一公共边上插入所述第一目标点的过程包括:
28.确定所述第一公共边靠近所述第一路径的端点,得到第一端点;
29.以所述第一端点为起点,沿所述第一公共边的长度方向移动第三目标距离,插入所述目标点,其中,第三目标距离的确定过程包括:
30.确定所述第一公共边的长度是否大于第二预设阈值,若是,所述第三目标距离为所述第二预设阈值的一半,若否,所述第三目标距离为所述第一公共边的长度的一半。
31.在其中一些实施例中,所述使用漏斗算法得到第一路径点的过程包括:
32.确定所述导航网格地图中的每个可通行区域的中心点,以及确定有公共边的每对可通行区域,连接各对所述可通行区域的中心点,得到无向节点图;
33.根据所述导航起点、所述导航终点和所述无向节点图,确定从导航起点所在的可通行区域至导航终点所在的可通行区域所经过的可通行区域,得到目标可通行区域的集合;
34.确定各目标可通行区域间的公共边的集合,根据所述目标可通行区域的集合和所述公共边的集合,输入所述导航起点和所述导航起点所在可通行区域至漏斗算法中,得到所述第一路径点。
35.第二方面,本技术实施例提供了一种导航路径规划装置,基于导航网格地图,所述装置包括:
36.获取模块,用于获取导航起点和导航终点,以所述导航起点为起始点,使用漏斗算法得到第一路径点;
37.移动模块,用于向可通行区域中间移动所述第一路径点,得到第二路径点,连接所述起始点和所述第二路径点,得到第一路径;
38.确定模块,用于确定从所述起始点至所述第二路径点所经过的可通行区域,并在所述可通行区域大于一个的情况下,确定所述第一路径是否与各所述可通行区域间的公共边均相交;
39.调整模块,用于在所述第一路径与至少一条所述公共边不相交的情况下,调整所述第一路径,得到与所述公共边均相交的导航子路径。
40.相比于相关技术,本技术实施例提供的导航路径规划方法,基于导航网格地图,通过获取导航起点和导航终点,以导航起点为起始点,使用漏斗算法得到第一路径点;向可通行区域中间移动第一路径点,得到第二路径点,连接起始点和第二路径点,得到第一路径;确定从起始点至第二路径点所经过的可通行区域,并在可通行区域大于一个的情况下,确定第一路径是否与各可通行区域间的公共边均相交;若否,调整第一路径,得到与公共边均相交的导航子路径,解决了相关技术中基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题,实现了便于用户跟着导航移动的效果。
附图说明
41.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
42.图1是根据相关技术中的基于导航网格地图的路径规划方法的示意图;
43.图2是根据本技术实施例的导航路径规划方法的应用环境示意图;
44.图3是根据本技术第一实施例的导航路径规划方法的流程图;
45.图4是根据本技术第二实施例的无向节点图的创建过程的示意图;
46.图5是根据本技术第三实施例的导航路径规划方法的流程图;
47.图6是根据本技术第三实施例的第一路径点的获取过程示意图;
48.图7是根据本技术第三实施例的平行情况下获取新的路径点的示意图;
49.图8是根据本技术第四实施例的非平行情况下获取新的路径点的示意图;
50.图9是根据本技术第五实施例的路径超出可通行区域的示意图;
51.图10是根据本技术第三实施例的路径调整过程的示意图;
52.图11是根据本技术第六实施例的导航路径规划方法的示意图。
具体实施方式
53.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.显而易见地,下面描述中的附图仅仅是本技术的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本技术应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭
露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
55.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
56.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
57.本技术提供的导航路径规划方法,可以应用于如图2所示的应用环境中,图2是根据本技术实施例的导航路径规划方法的应用环境示意图,如图2所示,服务器201获取导航起点和导航终点,以导航起点为起始点,使用漏斗算法得到第一路径点;向可通行区域中间移动第一路径点,得到第二路径点,连接起始点和第二路径点,得到第一路径;确定从起始点至第二路径点所经过的可通行区域,并在可通行区域大于一个的情况下,确定第一路径是否与各可通行区域间的公共边均相交;若否,调整第一路径,得到与公共边均相交的导航子路径,实现导航路径规划,其中,服务器201可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
58.本实施例提供了一种导航路径规划方法,图3是根据本技术第一实施例的导航路径规划方法的流程图,如图3所示,该流程包括如下步骤:
59.步骤s301,获取导航起点和导航终点,以导航起点为起始点,使用漏斗算法得到第一路径点;
60.步骤s302,向可通行区域中间移动第一路径点,得到第二路径点,连接起始点和第二路径点,得到第一路径;
61.步骤s303,确定从起始点至第二路径点所经过的可通行区域,并在该可通行区域大于一个的情况下,确定第一路径是否与各可通行区域间的公共边均相交;
62.步骤s304,若否,调整第一路径,得到与公共边均相交的导航子路径。
63.通过步骤s301至s304,相对于相关技术中基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题,本实施例基于导航网格地图,通过将漏斗算法搜索到的路径点移动到靠近可通行区域的中间位置,并考虑到移动路径点之后会导致路径穿出可通行
区域的情况,对移动后的路径点与起始点所形成的新的路径进行调整,由于导航网格地图将场景划分为多个呈凸多边形的可通行区域,且由于凸多边形内任意两点组成的线段必定在该可通行区域内,所以只要路径线段与该线段两端点之间的可通行区域的所有公共边都相交,该路径线段中的任意子线段一定在可通行区域内,因此在调整路径时,使该路径与该路径两端点之间的可通行区域间的各公共边均相交,可以得到在可通行区域内的导航子路径,从而解决了相关技术中基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题,实现了便于用户跟着导航移动的效果。
64.此外,本技术实施例还至少具有以下两个有益效果:
65.第一,由于本技术实施例充分利用了可通行区域凸多边形特性以及公共边的约束,使得路径生成不依赖于标注的场景地图,只要符合可通行区域是凸多边形,该方法生成的路径一定在可通行区域上且靠近道路中间,方法简单有效,可通用性强,计算复杂度低,具有较好的适用性;
66.第二,由于本技术实施例解决了相关技术中基于导航网格地图的路径规划方法生成的路径并不在道路中间的问题,当本导航路径规划方法应用于ar导航时,不容易发生ar物体穿模,使得ar效果更逼真。
67.在其中一些实施例中,图4是根据本技术第二实施例的无向节点图的创建过程的示意图,如图4所示,在路径规划之前,通过区域分割算法将实际环境转换为由多块凸多边形(可通行区域)组成的导航网格地图,计算导航网格地图中的每个可通行区域的中心点坐标,假设第i个可通行区域有m个顶点,那么该可通行区域的中心点坐标的计算公式为:
[0068][0069]
由于可通行区域均为凸多边形,所以得到的中心点一定在对应可通行区域的内部;
[0070]
如果两个可通行区域之间有公共边,那么连接这两个可通行区域的中心点,例如r
i
与r
j
之间有公共边v
i
v
j
,连接这两个可通行区域的中心点c
i
和c
j
,用<c
i
,c
j
>和<c
j
,c
i
>表示,最后连接导航网格图中所有相互关联的可通行区域中心点,就可以得到表示可通行区域连接关系的无向节点图:
[0071]
g
rc
=[<c
i
,c
j
>,<c
j
,c
i
>,...,<c
n
,c
m
>]。
[0072]
在其中一些实施例中,图5是根据本技术第三实施例的导航路径规划方法的流程图,如图5所示,该流程包括如下步骤:
[0073]
步骤s501,在输入起点为s和终点为g的情况下,根据位置信息可分别获取起点和终点所在的区域为r
s
和r
g
,然后将得到的可通行区域作为输入,通过a*算法在构建的无向节点图中搜索得到从r
s
到r
g
需经过区域r
p
以及对应的公共边e
c

[0074]
步骤s502,图6是根据本技术第三实施例的第一路径点的获取过程示意图,如图6所示,以起点s及其所属可通行区域r
s
=r
13
为初值,利用漏斗算法获取第一路径点v
f
=v5,并获取第一条路径p1=sv
f

[0075]
步骤s503,由于漏斗算法获取的路径点都位于可通行区域边界上,所以需要移动路径点使得生成的路径靠近可通行区域中间,移动的规则如下:
[0076]
<1>取r
p
中与路径点v
f
关联的边e
j
=[v
f
v
i
,v
f
v
j
,v
f
v
k
],对于区域集r
p
中的每个可通
行区域来说,每个顶点至多只能关联到三条边,分别为区域之间的公共边和区域边;
[0077]
<2>以路径点v
f
为起点,将公共边v
f v
i
、区域边v
f v
j
和区域边v
f v
k
转换为向量和然后计算向量和以及向量和之间的夹角θ1和θ2([0
°
,180
°
]),利用向量之间的夹角来判断公共边与其他两条区域边是否平行,判断条件为:向量夹角小于10度或者大于170度,则公共边与对应区域边平行;
[0078]
<3>如果两条区域边中的任意一条边与公共边平行,则计算两条区域边对应向量和之间夹角的角平分线向量:
[0079][0080]
图7是根据本技术第三实施例的平行情况下获取新的路径点的示意图,如图7所示,将路径点v
f
沿着向量的反方向移动d
move
米获得新的路径点vf',其中d
move
数值取值规则如下:如果公共边长度l
c
大于预设阈值l
max
,d
move
=l
max
/2,如果公共边长度l
c
小于l
max
,那么d
move
=l
c
/2;
[0081]
<4>如果两条区域边与公共边都不平行,图8是根据本技术第四实施例的非平行情况下获取新的路径点的示意图,如图8所示,将路径点v
f
沿着向量方向移动d
move
米获得新的路径点v
f
';
[0082]
步骤s504,图9是根据本技术第五实施例的路径超出可通行区域的示意图,如图9所示,移动路径点v
f
得到新的路径点vf'之后,得到p1=sv
f
,p
new
=sv
f
',移动路径点方法可对移动的路径点产生约束,但两个相邻路径点相连产生的线段无法受到可通行区域的约束,从而产生p
new
的部分路径不在可通行区域内的情况,为了能够使路径点移动后产生的路径依然在可通行区域内,可以利用以下性质:凸多边形内任意两点组成的线段必定在该可通行区域内,所以只要路径线段与起始点和终点之间可通行区域的所有公共边相交,那么路径线段中的任意子线段一定在可通行区域内;在步骤s503移动路径点之后,可获取从路径起点到终点需经过的区域r
p
=[r
i
,...,r
n
]以及公共边集合e
cp
=[v
i
v
j
,...,v
n
v
m
],判断移动路径点之后的路径p
new
=sv
f
'与公共边集合e
cp
中的每一条公共边是否相交,如果路径p
new
与其中某一条公共边不相交则表示路径部分线段不在可通行区域之内,执行步骤s505,如果新路径与所有公共边相交或者路径起点和终点在同一个可通行区域内,则将新路径p
new
保存至路径集合中并执行步骤s506;
[0083]
步骤s505,如果新路径与某一条公共边不相交,那么对新路径进行调整,图10是根据本技术第三实施例的路径调整过程的示意图,如图10所示,该过程包括如下步骤:
[0084]
<1>假设新路径p
new
与由区域点v
i
和区域点v
j
组成的公共边e
ci
不相交,且e
ci
对应的区域为r
i
和r
i+1
,新路径与当前公共边e
ci
前一个公共边e
ci
‑1的交点为ips,可得路径p
si
=sips(特别的,如图9所示,当公共边e
ci
没有前一个公共边e
ci
‑1时(即公共边e
ci
为第一条公共边),ips=s),由于路径p
si
的两个端点都属于同一个区域r,所以路径p
si
必满足在可通行区域内的条件,将路径p
si
保存至路径集合中;
[0085]
<2>公共边e
ci
中插入点i,插入规则如下:如果路径p
new
靠近公共边e
ci
端点v
i
,那么
以v
i
为起点,朝着区域点v
j
方向d
insert
米插入点i,如果公共边e
ci
长度l
ci
大于预设阈值l
max
,那么取d
insert
=l
max
/2,如果l
ci
小于l
max
,那么取d
insert
=l
ci
/2;
[0086]
<3>连接点ips和点i构成向量并在向量中插入点ipi,插入规则如下:初始阶段设上一个路径插入点ipi

1=ips,如果向量长度小于1m,直接取ipi=i,否则距离上一个路径插入点1m位置插入新路径点ipi,用向量表示为:
[0087][0088]
<4>以当前插入点ipi为起点,v
f
'为路径终点构成路径p
insert
=ipiv
f
',判断路径p
insert
与公共边e
ci
是否相交,如果相交且交点与点v
i
的距离大于设定值d
set
,d
set
可根据实际需求自主设置,例如,d
set
=0.5m,设置d
set
的目的是为了防止导航路径中经过的点为区域边界点,当然,在其他实施例中,也可以不设置交点与点v
i
的距离大于设定值d
set
的限制条件;将路径p
mid
=ipsipi和路径p
insert
保存至路径集合中,执行步骤s506,否则跳至步骤s505的第<3>步;
[0089]
步骤s506,将其终点v
f
'作为新起点s
p
=v
f
';
[0090]
步骤s507,判断新起点s
p
与输入终点g是否可形成路径p
final
=s
p
g,且路径p
final
符合在可通行区域内的条件,若否,返回步骤s502继续执行;
[0091]
步骤s508,若是,输出路径结果为[s,ips,ipi,v
f
',

,g]。
[0092]
在其中一些实施例中,图11是根据本技术第六实施例的导航路径规划方法的示意图,如图11所示,场景对应的导航网格图为p
nav
,p
nav
=[r1,r2,r3,r4,r5,r6,r7,r8,r9,r
10
,r
11
,r
12
,r
13
],计算每个导航网格地图中的可通行区域中心点c
nav
=[c1,...,c
13
],根据p
nav
中的可通行区域之间的连接关系,可得:
[0093]
g
rc
=[<c1,c5>,<c5,c1>,...,<c
12
,c
13
>],
[0094]
如图11所示,该导航路径规划方法的执行过程包括如下步骤:
[0095]
(1)输入起点s和终点g,由这两个点的位置信息可得对应的区域为r
13
和r1,通过a*算法可在g
rc
中搜索得到需要经过的区域为r
p
=[r
13
,r
12
,r
11
,r9,r7,r6,r5,r1],对应的公共边e
c
=[v1v2,v3v4,v5v6,v7v8,v9v8,v
10
v
11
,v
12
v
13
];
[0096]
(2)以起点s及其所属可通行区域r
s
为初值,利用漏斗算法可以获取第一个路径点为v5,对应的路径为p1=sv5;而顶点v5所对应的三条边为e
j
=[v5v6,v5v3,v5v7],其中v5v6是区域r9和区域r
11
之间的公共边,v5v3为区域r
11
的边,v5v7为区域r9的边;
[0097]
(3)以路径点v5为起点,可获得向量和向量和之间的夹角为90度,而向量和之间的夹角为180度,向量和之间的夹角大于170度,公共边v5v6与区域边v5v3平行,路径点沿着两条区域边向量夹角的角平分线向量反方向移动,生成点v5';
[0098]
(4)连接点s和v5'形成路径p
new
=sv5',已知点s位于区域r
13
,点v5'位于区域r
11
,所以路径穿过区域r
13
、r
12
和r
11
,如果整条路径在可通行区域内需满足与公共边v1v2和v3v4都相交,而路径p
new
与公共边v3v4不相交,所以需要对路径p
new
调整使得路径p
new
受到公共边v3v4的约束;
[0099]
(5)已知公共边v3v4的上一条公共边为v1v2,而路径p
new
与公共边v1v2的交点为ips,可得路径p
si
=sips,由于路径p
si
的两个端点都属于区域r
13
,所以路径p
si
必满足可通行区域内的条件,将其保存至路径集合中;
[0100]
(6)在公共边v3v4中插入点i,通过几何关系可知路径p
new
位于点v4的上方,以点v4为起点,沿着向量方向d
insert
米位置插入点i;
[0101]
(7)连接点ips和点i构成向量,以点ips为起点,沿着向量方向1m位置插入点ip1;以点ip1为起点,v5'为终点构成路径p
insert
=ip1v5',判断路径p
insert
与公共边v3v4是否相交,结果为不相交,那么以ip1为起点并沿着向量方向1m位置插入点ip2,直到找到点ip3符合要求,然后以点ips为起点,点ip3为终点构成路径p
mid
=ipsip3,将路径p
mid
保存至路径集合中,同时将插入路径p
insert
=ip3v5'也保存至路径集合中;
[0102]
(8)将路径v5'作为新的起点s
p
=v5',返回步骤(2),直到新起点为v
12
'并与终点g形成路径p
final
=v
12
'g,且该路径p
final
符合均在可通行区域内的条件,最终可得路径为[s,ips,ip3,v5',v8',v
12
',g]。
[0103]
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0104]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1