一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

道路转向角度计算方法、装置、计算机设备和存储介质与流程

2022-02-22 18:52:24 来源:中国专利 TAG:


1.本技术涉及电子地图制作领域,特别是涉及一种道路转向角度计算方法、装置、计算机设备和存储介质。


背景技术:

2.随着社会经济的不断发展,交通系统越来越完善,汽车普及程度不断增加,同时,随着移动互联网技术的发展,地图导航应用普及,这为人们的日常出行提供了极大的便利。然而,交通道路也是处于不断的变化中,道路的数据是海量的,很多地图道路数据是通过对大量轨迹数据做矢量化得到的,这个过程中难免产生一些道路形状和实际街景不一致、甚至数据错误的情况。
3.例如图1,从街景中可以看出(图1右),这是一个主辅路的分岔口,而道路矢量化时,在连接处做成了一个右转的形状(图1左);又例如图2,从街景中可以看出这是一个标准的十字路口,而道路矢量化时,连接处有一个小拐角,这些都会给转向角度的计算带来了不便,继而影响了诱导的准确性,可能会影响用户体验,甚至导致发生偏航。
4.现有的用于确定路段方向的技术方案主要有2种:
5.(1)使用切线方向作为路段的方向。
6.(2)使用一定距离内的加权方向。
7.然而,目前方案不能准确识别出路段方向,这会导致后续无法计算出准确的转向角度,进而导致诱导的准确性降低。
8.比如,对于上述图1和图2所示的两个示例,采用上述方案(1)时,会将图1中右前方识别成右转,以及将图2中的直行和左转分别识别成右前方和左前方;采用上述方案(2)所识别出的路段方向会比方案(1)的更符合实际场景。然而,对于类似图3所示的情况,真实的转向方向是右转,采用上述方案(2)会将路段方向识别成右前方。其中,图1-3中标识(1)的方向为采用上述方案(1)识别出的路段方向;标识(2)的方向为采用上述方案(2)识别出的路段方向。


技术实现要素:

9.本技术针对上述不足或缺点,提供了一种道路转向角度计算方法、装置、计算机设备和存储介质,本技术实施例能够解决传统角度计算方法计算出来的转向与现实不符的技术问题,让转向角度更符合驾驶者视角的角度判断。
10.本技术根据第一方面提供了一种道路转向角度计算方法,在一个实施例中,该方法包括:
11.获取与目标道路分岔口关联的每个路段的路段数据;与道路分岔口关联的路段包括进入路段和多个退出路段;
12.根据每个路段的路段数据检测每个路段的路段类型,每个路段的路段类型为平缓型或非平缓型;
13.根据每个路段的路段类型确定每个路段的角度;
14.根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度。
15.在一个实施例中,根据每个路段的路段数据检测每个路段的路段类型,包括:
16.根据每个路段的路段数据检测每个路段中是否包含平缓子路段;
17.将包含平缓子路段的任意一个路段的路段类型确定为平缓型;
18.将不包含平缓子路段的任意一个路段的路段类型确定为非平缓型。
19.在一个实施例中,根据每个路段的路段数据检测每个路段中是否包含平缓子路段,包括:
20.根据每个路段的路段数据将每个路段拆分为若干个子路段;
21.检验每个路段所包含的每个子路段是否属于平缓子路段;
22.方法还包括:若任意一个子路段满足目标预设检验条件,则判定该子路段属于平缓子路段;
23.目标预设检验条件包括以下每一项:
24.起点和道路分岔口间的距离小于预设距离阈值;
25.长度大于预设长度阈值;
26.内部角度变化小于预设角度变化阈值。
27.在一个实施例中,目标道路分岔口是指电子地图中的任意一个道路分岔口;
28.目标预设检验条件是指与目标道路分岔口的路段类型对应的预设检验条件。
29.在一个实施例中,根据每个路段的路段类型确定每个路段的角度,包括:
30.根据每个平缓型路段中包含的平缓子路段的矢量方向确定每个平缓型路段的角度;平缓型路段是指路段类型为平缓型的路段;
31.根据每个非平缓型路段的起点处的矢量切线方向确定每个非平缓型路段的角度;非平缓型路段是指路段类型为非平缓型的路段。
32.在一个实施例中,根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度,包括:
33.根据以下公式计算进入路段到每个退出路段的转向角度;
34.进入路段到第n个退出路段的转向角度=第n个退出路段的角度-进入路段的角度。
35.在一个实施例中,该方法还包括:
36.根据进入路段到每个退出路段的转向角度生成进入路段到每个退出路段的导航诱导数据。
37.本技术根据第二方面提供了一种道路转向角度计算装置,在一个实施例中,该装置包括:
38.路段数据获取模块,用于获取与目标道路分岔口关联的每个路段的路段数据;与道路分岔口关联的路段包括进入路段和多个退出路段;
39.路段类型检验模块,用于根据每个路段的路段数据检测每个路段的路段类型,每个路段的路段类型为平缓型或非平缓型;
40.路段角度确定模块,用于根据每个路段的路段类型确定每个路段的角度;
41.转向角度计算模块,用于根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度。
42.本技术根据第三方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的实施例的步骤。
43.本技术根据第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法的实施例的步骤。
44.在本技术实施例中,通过获取与目标道路分岔口关联的每个路段的路段数据;与道路分岔口关联的路段包括进入路段和多个退出路段;根据每个路段的路段数据检测每个路段的路段类型,每个路段的路段类型为平缓型或非平缓型;根据每个路段的路段类型确定每个路段的角度;根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度,能够解决传统角度计算方法计算出来的转向与现实不符的技术问题,让转向角度更符合驾驶者视角的角度判断。
附图说明
45.图1为一个矢量化地图和街景对比示例;
46.图2为另一个矢量化地图和街景对比示例;
47.图3为又一个矢量化地图和街景对比示例;
48.图4为一个实施例中一种道路转向角度计算方法的流程示意图;
49.图5为一个实施例中的转向角度计算示意图;
50.图6为一个实施例中的内部角度变化示意图;
51.图7为一个实施例中平缓子路段的示意图;
52.图8为一个实施例中一种道路转向角度计算装置的结构框图;
53.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
55.本技术提供了一种道路转向角度计算方法,在一个实施例中提供的道路转向角度计算方法包括如图4所示的步骤,下面结合图4对该方法进行详细说明。
56.s110:获取与目标道路分岔口关联的每个路段的路段数据。其中,与道路分岔口关联的路段包括进入路段和多个退出路段。
57.本实施例中,路段,也可称为link,是地图矢量道路数据中的一个基本单位,它通过两个以上坐标点序列来表示实际的位置。
58.目标道路分岔口是指电子地图中的任意一个道路分岔口。
59.本实施例根据道路的行进方向将道路分岔口之前的路段称为进入路段,将道路分岔口之后的路段称为退出路段(也可以称为驶出路段)。可以理解,退出路段至少有两段,这样才能与进入路段形成道路分岔口。
60.s120:根据每个路段的路段数据检测每个路段的路段类型。
61.本实施例中,每个路段的路段类型为平缓型或非平缓型。路段类型为平缓型的路段可称为平缓型路段,路段类型为非平缓型的路段可称为非平缓型路段。
62.现有的用于确定路段方向的方案,如前文提及的方案(1)和方案(2),均是以同一方式来确定矢量化地图中各个路段的路段方向,从前文中的背景部分内容可知,很多地图道路数据是通过对大量轨迹数据做矢量化得到的,这个过程中难免产生一些道路形状和实际街景不一致、甚至数据错误的情况,因此,如果直接识别存在问题的矢量化地图中的各个路段的路段方向,那么识别结果也是存在错误的,具体可参见背景技术部分的内容。为此,本技术在重复多次试验之后,对路段进行分类,即根据路段中是否包含平缓子路段来将路段划分为平缓型路段和非平缓型路段,并为不同的路段类型设置相应的用于确定路段方向的方式。
63.在需要识别路段的路段方向之前,先检测出路段的路段类型,之后再使用与路段类型对应的方式来识别出路段的路段方向,这样识别出的路段方向就与实际街景一致,而在识别出的路段方向与实际街景一致的情况下,可以保证后续计算出来的路段角度,以及转向角度也是准确的。
64.s130:根据每个路段的路段类型确定每个路段的角度。
65.本实施例中,使用预先设置的与路段类型对应的用于确定路段方向的方式来确定出每个路段的角度。
66.s140:根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度。
67.其中,转向角度是表示从一个路段到另外一个路段的转向角度。
68.具体地,根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度,包括:
69.根据以下公式计算进入路段到每个退出路段的转向角度;
70.进入路段到第n个退出路段的转向角度=第n个退出路段的角度-进入路段的角度。
71.例如,如图4所示,进入边(即进入路段)方向为0,退出方向(即退出路段)为45,可以计算得到转向角度为45。其中,方向的取值范围为[0度,360度]。
[0072]
转向过程:先计算进入道路的的角度,再计算驶出道路的的角度,两个角度的差(即旋转角度)确定了转向。比如差是0度,是标准的直行;差是180度,是调头;差是90度,左转;差是270度,右转。
[0073]
本实施例通过获取与目标道路分岔口关联的每个路段的路段数据;与道路分岔口关联的路段包括进入路段和多个退出路段;根据每个路段的路段数据检测每个路段的路段类型,每个路段的路段类型为平缓型或非平缓型;根据每个路段的路段类型确定每个路段的角度;根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度,能够解决传统角度计算方法计算出来的转向与现实不符的技术问题,让转向角度更符合驾驶者视角的角度判断。
[0074]
在一个实施例中,根据每个路段的路段数据检测每个路段的路段类型,包括:
[0075]
根据每个路段的路段数据检测每个路段中是否包含平缓子路段;
[0076]
将包含平缓子路段的任意一个路段的路段类型确定为平缓型;
[0077]
将不包含平缓子路段的任意一个路段的路段类型确定为非平缓型。
[0078]
本实施例中,对于任何一个路段,假如其中包含平缓子路段,那么可以确定其对应的路段类型为平缓型,也就是说其为平缓型路段;同理,假如其中不包含平缓子路段,那么可以确定其对应的路段类型为非平缓型,也就是说其为非平缓型路段。
[0079]
进一步地,根据每个路段的路段数据检测每个路段中是否包含平缓子路段,包括:
[0080]
根据每个路段的路段数据将每个路段拆分为若干个子路段;
[0081]
检验每个路段所包含的每个子路段是否属于平缓子路段;
[0082]
本实施例中,可以根据每个路段的形状拆分为若干个子路段。示例性地,比如,某路段包括直线部分和圆弧部分,可以将该路段中的直线部分拆分作为一个子路段,将圆弧部分拆分作为一个子路段。需要说明的是,路段可以只包含一个子路段,即路段的子路段即是路段本身。比如,路段是一段直路,又比如是一段盘桥等。
[0083]
其中,每个路段的路段数据可以包括路段的长度,形状、路段中各个点的位置坐标等。根据路段中任意两个点的位置坐标可以确定出两个点之间的长度。
[0084]
相应地,该方法还包括:若任意一个子路段满足目标预设检验条件,则判定该子路段属于平缓子路段。
[0085]
其中,目标预设检验条件包括以下每一项:
[0086]
(1)起点(指子路段的起点)和道路分岔口间的距离小于预设距离阈值;
[0087]
(2)长度(指子路段的长度)大于预设长度阈值;
[0088]
(3)内部角度变化小于预设角度变化阈值。
[0089]
如图6所示,当固定起止点后,将图中的夹角的角度称为内部角度变化。该夹角是路段起点切线和路段终点切线的夹角。其中,路段方向是从左下到右侧,起点切线的方向是指向右上的,终点切线的方向是指向正右侧的。
[0090]
进一步地,预设距离阈值、预设长度阈值以及预设角度变化阈值可以根据具体场景来进行设置,本实施例对此不进行限制。示例性地,目标预设检验条件可以包括以下各项:
[0091]
(1)起点距离道路分岔口距离在50m以内;
[0092]
(2)长度在50m以上;
[0093]
(3)内部角度变化小于15度。
[0094]
请参见图7,图中示出一个路段abc,该路段中包含子路段ab和子路段bc,在检验后发现子路段ab符合上述的检验条件,因此可以确定子路段ab属于平缓子路段,进而可以确定路段abc为平缓型路段。
[0095]
更进一步地,目标预设检验条件是指与目标道路分岔口的路段类型对应的预设检验条件。
[0096]
也就是说,在识别平缓子路段时,检验条件中的预设距离阈值、预设长度阈值以及预设角度变化阈值可根据道路分岔口的路段类型进一步细分处理。其中,道路分岔口的路段类型可以包括但不限于是主辅路、匝道和上下线分离的十字路口等。对于主辅路或级别低的道路,检验条件中的各预设阈值可调整的更为严格,比如距离更短,角度更小;而对于匝道这种,条件可以更松一些,具体可根据一些实际场景进行调整。
[0097]
在一个实施例中,根据每个路段的路段类型确定每个路段的角度,包括:
[0098]
根据每个平缓型路段中包含的平缓子路段的矢量方向确定每个平缓型路段的角度;平缓型路段是指路段类型为平缓型的路段;
[0099]
根据每个非平缓型路段的起点处的矢量切线方向确定每个非平缓型路段的角度;非平缓型路段是指路段类型为非平缓型的路段。
[0100]
其中,当识别出路段的路段类型之后,使用与路段类型对应的方式来确定路段的路段方向(也可简称为方向),假如路段的路段类型为平缓型,那么将该路段中的平缓子路段的矢量方向作为该路段的角度;假如路段的路段类型为非平缓型,那么将该路段的起点处的矢量切线方向作为该路段的角度。也就是说,对于形状为非直线的路段,假如其中包含平缓子路段,那么将其中包含的平缓子路段的方向作为该路段的方向,假如其中不包含平缓子路段,比如该路段是盘桥,那么将该路段起点处的切向方向作为该路段的方向。
[0101]
以下对路段方向进行说明。
[0102]
可以知道一条笔直的道路,一定是有一个方向的,例如正北向,即由南向北(对应的角度是0度),正东向(对应的角度是90度),正南向(对应的角度是180度),正西向(对应的角度是270度),而假如是东北向,那么对应的角度就是45度。简言之,方向是以北零顺时针计算的。
[0103]
平缓子路段的方向,就是将整条路段中平缓的部分截取出来,看做一条笔直的道路,然后将其矢量方向作为整条路段的角度。
[0104]
假如一条路段中没有平缓路段的时候(比如盘桥),就以起点处的切线方向,做为该路段的角度。其中,切线方向的简单计算,就是路段的第一个点与第二个点形成的圆弧在第一个点出的切线,以图7为例,假如图中的路段的起点是左下角,那图中从左下角斜向右上角的切线方向即是该路段的方向。
[0105]
在一个实施例中,该方法还包括:根据进入路段到每个退出路段的转向角度生成进入路段到每个退出路段的导航诱导数据。
[0106]
基于之前确定出来的准确的转向角度,可以为道路分岔口生成对应的导航诱导数据。其中,导航诱导数据,也可称为route guidance,是指在导航过程中用于引导用户驾驶的所有的图像、语音提示。
[0107]
图4为一个实施例中道路转向角度计算方法的流程示意图。应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0108]
基于相同的发明构思,本技术还提供了一种道路转向角度计算装置。
[0109]
在本实施例中,如图8所示,该道路转向角度计算装置包括以下模块:
[0110]
路段数据获取模块110,用于获取与目标道路分岔口关联的每个路段的路段数据;与道路分岔口关联的路段包括进入路段和多个退出路段;
[0111]
路段类型检验模块120,用于根据每个路段的路段数据检测每个路段的路段类型,
每个路段的路段类型为平缓型或非平缓型;
[0112]
路段角度确定模块130,用于根据每个路段的路段类型确定每个路段的角度;
[0113]
转向角度计算模块140,用于根据进入路段的角度和每个退出路段的角度计算进入路段到每个退出路段的转向角度。
[0114]
在一个实施例中,路段类型检验模块,包括:
[0115]
检测子模块,用于根据每个路段的路段数据检测每个路段中是否包含平缓子路段;
[0116]
路段类型确定子模块,用于将包含平缓子路段的任意一个路段的路段类型确定为平缓型。将不包含平缓子路段的任意一个路段的路段类型确定为非平缓型。
[0117]
在一个实施例中,检测子模块,包括:
[0118]
拆分单元,用于根据每个路段的路段数据将每个路段拆分为若干个子路段;
[0119]
检验单元,用于检验每个路段所包含的每个子路段是否属于平缓子路段;
[0120]
相应地,该路段类型检验模块还包括判定子模块。判定子模块,用于在任意一个子路段满足目标预设检验条件时,判定该子路段属于平缓子路段。
[0121]
进一步地,目标预设检验条件包括以下每一项:
[0122]
(1)起点和道路分岔口间的距离小于预设距离阈值;
[0123]
(2)长度大于预设长度阈值;
[0124]
(3)内部角度变化小于预设角度变化阈值。
[0125]
更进一步地,在一个实施例中,目标道路分岔口是指电子地图中的任意一个道路分岔口;目标预设检验条件是指与目标道路分岔口的路段类型对应的预设检验条件。
[0126]
在一个实施例中,路段角度确定模块,包括:
[0127]
第一路段角度确定子模块,用于根据每个平缓型路段中包含的平缓子路段的矢量方向确定每个平缓型路段的角度;平缓型路段是指路段类型为平缓型的路段;
[0128]
第二路段角度确定子模块,用于根据每个非平缓型路段的起点处的矢量切线方向确定每个非平缓型路段的角度;非平缓型路段是指路段类型为非平缓型的路段。
[0129]
在一个实施例中,转向角度计算模块,具体用于根据以下公式计算进入路段到每个退出路段的转向角度。该公式如下所示:
[0130]
进入路段到第n个退出路段的转向角度=第n个退出路段的角度-进入路段的角度。
[0131]
在一个实施例中,该装置还包括诱导数据生成模块。
[0132]
诱导数据生成模块,用于根据进入路段到每个退出路段的转向角度生成进入路段到每个退出路段的导航诱导数据。
[0133]
关于道路转向角度计算装置的具体限定可以参见上文中对于道路转向角度计算方法的限定,在此不再赘述。上述道路转向角度计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0134]
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图9所示。
[0135]
该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其
中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储路段数据等数据,具体存储的数据还可以参见上述方法实施例中的限定。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种道路转向角度计算方法。
[0136]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0137]
本实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法实施例提供的步骤。
[0138]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例提供的步骤。
[0139]
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0140]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0141]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献