发明内容
本公开实施例至少提供一种导航方案。
第一方面,本公开实施例提供了一种导航方法,包括:
获取目标车辆的当前定位位置和导航目的地以及由所述当前定位位置到达所述导航目的地之间的道路上的各车道关联的导航线,其中所述导航线是预先生成的;
基于所述导航线,生成所述目标车辆由当前定位位置到达导航目的地的目标导航线,所述目标导航线由至少一条所述车道的导航线拼接形成;
控制所述目标车辆按照所述目标导航线进行行驶。
本公开实施例中,可以预先生成目标车辆行驶的各条车道关联的导航线,这样目标车辆在行驶过程中,可以根据预先生成的导航线,快速确定出从当前定位位置到达导航目的地的目标导航线,从而提高导航效率。
在一种可能的实施方式中,所述导航线包括用于引导车辆在车道内的行驶路径的第一导航路线;
所述基于所述导航线,生成所述目标车辆由当前定位位置到达导航目的地的目标导航线,包括:
基于预先存储的车道连接关系,确定所述目标车辆由所述当前定位位置到达所述导航目标地的道路不经过路口的情况下,获取所述目标车辆由所述当前定位位置到达所述导航目的地经过的第一车道组,所述第一车道组中包含至少一条车道;
提取所述第一车道组中每条车道对应的第一导航路线;
对所述第一车道组分别对应的所述第一导航路线按照由所述当前定位位置到达所述导航目的地的顺序进行拼接,得到所述目标导航线。
本公开实施例中,在确定目标车辆由当前定位位置到达导航目的地的过程中不经过路口的情况下,可以基于经过的至少一条车道分别对应的第一导航路线进行依次连接,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
在一种可能的实施方式中,所述导航线还包括与车道连接的路口对应的第二导航路线,所述第二导航路线用于引导车辆在由所述路口连接的第一车道行驶至第二车道的行驶路径;
所述基于所述导航线,生成所述目标车辆由当前定位位置到达导航目的地的目标导航线,包括:
基于预先存储的车道连接关系,确定所述目标车辆由所述当前定位位置到达所述导航目标地的道路经过路口的情况下,获取所述目标车辆由所述当前定位位置到达所述导航目的地经过的第二车道组,以及经过的第一路口集,所述第二车道组包含至少两条车道,所述第一路口集包含至少一个路口;
提取所述第二车道组中每条车道对应的第一导航路线,以及所述第一路口集中每个路口对应的第二导航路线;
对所述第二车道组分别对应的所述第一导航路线以及所述路口集分别对应的第二导航路线按照由所述当前定位位置到达所述导航目的地的顺序进行拼接,得到所述目标导航线。
本公开实施例中,在确定目标车辆由当前定位位置到达导航目的地的过程中经过路口的情况下,可以基于经过的至少一条车道分别对应的第一导航路线以及至少一个路口对应的第二导航路线进行依次连接,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
在一种可能的实施方式中,所述基于所述导航线,生成所述目标车辆由当前定位位置到达导航目的地的目标导航线,包括:
获取由当前定位位置到达导航目的地的之间的道路中的路口信息;
根据所述路口信息将所述道路划分为多个路段;
基于所述导航线确定所述多个路段中每个路段的目标子导航线;
对所述目标子导航线进行拼接,得到所述目标导航线。
本公开实施例中,可以根据由当前定位位置到达导航目的地之间的道路包含的路口信息,对该道路进行分段,进一步可以基于每个路段的目标子导航线,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
在一种可能的实施方式中,所述导航线包括用于引导车辆在车道内的行驶路径的第一导航路线和与车道连接的路口对应的第二导航路线,所述第二导航路线用于引导车辆在由所述路口连接的第一车道行驶至第二车道的行驶路径;
所述多个路段包括至少一个第一路段,所述第一路段经过至少一个路口;
所述基于所述导航线确定所述多个路段中每个路段的目标子导航线,包括针对每个第一路段:
确定所述第一路段内的第三车道组和第二路口集,所述第三车道组包含至少两条车道,所述第二路口集包括至少一个路口;
提取所述第二路口集的各个路口对应的第二导航路线,以及所述第三车道组中由所述第二导航路线指示连接的目标车道的第一导航路线;
将所述目标车道的第一导航路线与所述第二路口集中的各个路口对应的第二导航路线按照在所述第一路段内的行经顺序进行拼接,得到所述第一路段的目标子导航线。
本公开实施例中,在确定经过至少一个路口的每个第一路段的目标子导航线的过程中,可以按照该第一路段包含的每个路口对应的第二导航路线,以及该第一路段包含的第三车道组中由第二导航路线指示连接的第一导航路线,快速确定引导目标车辆通过该第一路段中的目标子导航线。
在一种可能的实施方式中,所述多个路段还包括至少一个第二路段,所述第二路段不经过路口;
所述基于所述导航线确定所述多个路段中每个路段的目标子导航线,包括针对每个第二路段:
基于与所述第二路段连接的第一路段的目标子导航线,确定所述第二路段内的起始车道和结束车道;
基于预先存储的车道连接关系,提取所述第二路段内由所述起始车道到达所述结束车道的每条车道对应的第一导航路线;
对所述第二路段内由所述起始车道到达所述结束车道的每条车道对应的第一导航路线按照在所述第二路段内的行经顺序进行拼接,得到所述第二路段的目标子导航线。
本公开实施例中,在确定不经过路口的每个第二路段的目标子导航线的过程中,可以按照该第二路段连接的第一路段的目标子导航线,确定第二路段内的启示车道和结束车道,进一步按照预先存储的车道连接关系,可以对第二路段内由起始车道到达结束车道的每条车道的第一导航路线按照行经顺序进行拼接,快速确定引导目标车辆通过该第二路段中的目标子导航线。
在一种可能的实施方式中,按照以下步骤预先生成所述第一导航路线:
针对道路场景中的任一条车道,在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对;
基于所述多个位置点对分别在所述道路场景中的地理位置,确定该条车道的多个中心位置点在所述道路场景中的地理位置;每个位置点对对应一个中心位置点;
基于所述多个中心位置点在所述道路场景中的地理位置,确定该条车道对应的第一导航路线。
在一种可能的实施方式中,所述在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对,包括:
获取该条车道包含的两条车道线在所述道路场景中的长度;
基于该条车道包含的两条车道线中长度最长的车道线的长度,确定所述多个位置点数量;
基于所述多个位置点数量,分别在该条车道包含的两条车道线中按照插值方式提取所述多个位置点;
在对该条车道包含的每条车道线上的多个位置点按照车道行驶方向排序后,将不同车道线中序号相同的两个位置点构成一个位置点对。
本公开实施例中,通过车道包含的两条车道线中长度较长的车道线的长度来确定位置点数量,可以得到更加与车道形状匹配的位置点对,以便得到准确度较高的中心位置点。
在一种可能的实施方式中,所述基于所述多个位置点对分别在所述道路场景中的地理位置,确定该条车道的多个中心位置点在所述道路场景中的地理位置,包括:
针对每个位置点对,基于该位置点对中每个位置点在所述道路场景中的地理位置,确定该位置点对连线的中心位置点在所述道路场景中的地理位置。
在一种可能的实施方式中,所述基于所述多个中心位置点在所述道路场景中的地理位置,确定该条车道对应的第一导航路线,包括:
基于所述多个中心位置点在所述道路场景中的地理位置,对所述多个中心位置点进行曲线拟合,得到第一拟合曲线;
按照预设间隔在所述第一拟合曲线上提取多个点,并获取在所述第一拟合曲线上提取的多个点在所述道路场景中的地理位置;
将在所述第一拟合曲线上提取的多个点在道路场景中的地理位置,作为该条车道对应的第一导航路线的行驶轨迹。
本公开实施例中,首先通过车道的若干中心位置点可以拟合得到车道的中心线,然后进一步在该中心线上提取多个点,可以准确的得到指导目标车辆在同一车道中行驶的行驶轨迹。
在一种可能的实施方式中,所述同一路口连接的不同道路的车道包括第一车道和第二车道,按照以下步骤生成所述第二导航路线:
分别获取由所述第一车道驶入该路口时经过的第一中心位置点,以及由该路口驶入所述第二车道时经过的第二中心位置点;所述第一中心位置点为所述第一车道上的最后一个中心位置点,所述第二中心位置点为所述第二车道上的第一个中心位置点;
基于所述第一车道上包含所述第一中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由所述第一车道驶入该路口的第一方向向量,以及基于所述第二车道上包含所述第二中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由该路口驶入所述第二车道的第二方向向量;
基于所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量,确定由所述第一车道驶入所述第二车道时在所述路口的第二导航路线的行驶轨迹。
本公开实施例中,在确定第二导航路线前,规划了目标车辆在路口的起点位置和终点位置、按照什么方向从起点位置驶入路口、按照什么方向从路口驶入终点,通过该方式可以得到准确度较高的第二导航路线的行驶轨迹。
在一种可能的实施方式中,所述基于所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量,确定由所述第一车道驶入所述第二车道时在所述路口的第二导航路线的行驶轨迹,包括:
基于所述第一方向向量和所述第二方向向量,确定由所述第一车道驶入所述第二车道驶的转向角;
基于所述转向角、所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量,确定用于控制所述第二导航路线形状的多个目标控制点;
基于所述多个目标控制点,确定由所述第一车道驶入所述第二车道时在所述路口的第二导航路线的行驶轨迹。
本公开实施例中,提出在确定第二导航路线时,可以先通过第一车道行驶至第二车道的转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定出控制第二导航路线形状的多个目标控制点,从而得到准确度较高的第二导航路线的行驶轨迹。
在一种可能的实施方式中,所述基于所述转向角、所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量,确定用于控制所述第二导航路线形状的多个目标控制点,包括:
在所述转向角小于预设角度的情况下,确定所述第一中心位置点和所述第二中心位置点连线的中点,以及所述第一中心位置点和所述第二中心位置点的第一距离;
获取所述第一中心位置点按照所述第一方向向量指示的方向延长所述第一距离的预设倍数后得到的第一目标点;
获取所述第二中心位置点按照所述第二方向向量的相反向量指示的方向延长所述第一距离的预设倍数后得到的第二目标点;
其中,所述第一中心位置点、所述第一目标点、所述第一中心位置点和所述第二中心位置点连线的中点、所述第二目标点以及所述第二中心位置点构成所述多个目标控制点。
本公开实施例中,提出在两条车道之间的转向角小于预设角度的情况下,提出可以基于第一中心位置点、第二中心位置点以及第一方向向量和第二方向向量快速确定出这两条车道在路口对应的第二导航路线。
在一种可能的实施方式中,所述基于所述转向角、所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量,确定用于控制所述第二导航路线形状的多个目标控制点,包括:
在所述转向角大于或等于预设角度的情况下,基于所述目标车辆的尺寸信息和所述第一车道对应的障碍区域,确定所述目标车辆由所述第一车道驶入该路口时的第一安全避障距离;
基于所述目标车辆的尺寸信息和所述第二车道对应的障碍区域,确定所述目标车辆由该路口驶入所述第二车道时的第二安全避障距离;
基于所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量的交点、所述第一安全避障距离和所述第二安全避障距离确定所述多个目标控制点。
本公开实施例中,在确定与较大角度转向对应的第二导航路线的过程中,需要考虑目标车辆在该路口行驶过程中的起点和终点,以及避障距离,以提高目标车辆在路口行驶过程中的安全性。
在一种可能的实施方式中,所述基于所述第一中心位置点、所述第二中心位置点、所述第一方向向量和所述第二方向向量的交点、所述第一安全避障距离和所述第二安全避障距离确定所述多个目标控制点,包括:
获取所述第一中心位置点按照所述第一方向向量指示的方向延长所述第一安全避障距离后得到的第三目标点;以及,
获取所述第二中心位置点按照所述第二方向向量的相反向量指示的方向延长所述第二安全避障距离后得到的第四目标点;
基于所述第三目标点、所述第四目标点、以及所述交点,确定除所述第三目标点和第四目标点之外的其它多个目标点;
其中,所述第三目标点、确定的所述其它多个目标点、和所述第四目标点构成所述多个目标控制点。
在一种可能的实施方式中,所述基于所述多个目标控制点,确定由所述第一车道驶入所述第二车道时在所述路口的第二导航路线的行驶轨迹,包括:
基于所述多个目标控制点,确定由所述第一车道驶入所述第二车道时在该路口的第二拟合曲线;
按照预设间隔在所述第二拟合曲线上提取多个点,并获取在所述第二拟合曲线上提取的多个点在道路场景中的地理位置;
将在所述第二拟合曲线上提取的多个点在道路场景中的地理位置,作为由所述第一车道驶入所述第二车道时在所述路口的第二导航路线的行驶轨迹。
本公开实施例中,通过在规划出的用于指示目标车辆在路口行驶过程中的第二导航路线,以及确定出第二导航路线中多个点在道路场景中的地理位置,可以准确的得到指导目标车辆在路口行驶的行驶轨迹。
在一种可能的实施方式中,所述控制所述目标车辆按照所述目标导航线进行行驶,包括:
在检测到所述目标车辆按照所述目标导航线行驶过程中存在障碍物的情况下,获取所述障碍物在道路场景中的地理位置;
在控制所述目标车辆按照所述目标导航线进行行驶的过程中,基于所述障碍物的地理位置调整所述目标导航线,以控制所述目标车辆绕开所述障碍物。
本公开实施例中,在控制目标车辆按照目标导航线行驶的过程中,若检测到动态障碍物,可以基于动态障碍物在道路场景中的地理位置进行避障,提高行驶的安全性。
第二方面,本公开实施例提供了一种导航装置,包括:
获取模块,用于获取目标车辆的当前定位位置和导航目的地以及由所述当前定位位置到所述导航目的地之间的道路上的各车道关联的导航线,其中所述导航线是预先生成的;
生成模块,用于基于所述导航线,生成所述目标车辆由当前定位位置到达导航目的地的目标导航线,所述目标导航线由至少一条所述车道的导航线拼接形成;
控制模块,用于控制所述目标车辆按照所述目标导航线进行行驶。
第三方面,本公开实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面所述的导航方法的步骤。
第四方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面所述的导航方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
无人车在道路场景中自主行驶的过程中,需要基于采集到的道路场景图像和预先构建的道路场景地图中各条道路之间的连接关系实时确定到达导航目的地的导航路线,该过程效率较低。
基于上述研究,本公开提供了一种导航方法,可以预先生成目标车辆行驶的各条车道关联的导航线,这样目标车辆在行驶过程中,可以根据预先生成的导航线,快速确定出从当前定位位置到达导航目的地的目标导航线,从而提高导航效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种导航方法进行详细介绍,本公开实施例所提供的导航方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该导航方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的导航方法的流程图,该导航方法包括以下S101~S103:
S101,获取目标车辆的当前定位位置和导航目的地以及由当前定位位置到达导航目的地之间的道路上的各车道关联的导航线,其中导航线是预先生成的。
示例性地,目标车辆可以包括无人驾驶车辆,目标车辆上可以设置有多种定位传感器,比如可以安装有惯性测量单元(Inertial measurement unit,IMU)和全球定位系统(Global Positioning System,GPS)组成的组合导航设备,可以确定目标车辆的当前定位位置。
示例性地,目标车辆上还可以设置有采集设备,比如可以为设置在目标车辆上的单目相机,用于在目标车辆行驶过程中进行拍摄,其拍摄的方向可以预先设定好,基于拍摄得到的道路场景图像,可以采用视觉定位技术获取目标车辆的当前定位位置。
示例性地,导航线可以由多个用于对目标车辆进行导航的轨迹点构成,每个轨迹点对应有唯一标识码和该轨迹点在道路场景中的地理位置信息,目标车辆在道路场景中行驶过程中,可以按照导航线中提供的轨迹点的地理位置进行行驶,直至到达导航目的地。
S102,基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线,目标导航线由至少一条车道的导航线拼接形成。
示例性地,在当前定位位置和导航目的地位于同一车道的情况下,可以基于预先规划的该同一车道的导航线,确定目标车辆由当前定位位置到达导航目的地的目标导航线;在当前定位位置和导航目的地位于不同车道,且需要跨过路口的情况下,可以基于预先规划的不同车道分别对应的导航线、以及连接不同车道的导航线来确定目标车辆由当前定位位置到达导航目的地的目标导航线。
示例性地,目标导航线可以包含多个轨迹点在道路场景中的地理位置,目标车辆按照目标导航线中的多个轨迹点对应的地理位置行驶,可以从当前定位位置到达目的地。
S103,控制目标车辆按照目标导航线进行行驶。
示例性地,确定出目标导航线后,可以控制目标车辆按照目标导航线中各个轨迹点所在的地理位置进行行驶,直至到达导航目的地。
本公开实施例中,可以预先生成目标车辆行驶的各条车道关联的导航线,这样目标车辆在行驶过程中,可以根据预先生成的导航线,快速确定出从当前定位位置到达导航目的地的目标导航线,从而提高导航效率。
下面将结合具体实施例对上述S101~S103进行阐述。
在一种可能的实施方式中,导航线包括用于引导车辆在车道内的行驶路径的第一导航路线;针对上述S102,基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线的一种可选实现方式,包括以下S1021~S1023:
S1021,基于预先存储的车道连接关系,确定目标车辆由当前定位位置到达导航目标地的道路不经过路口的情况下,获取目标车辆由当前定位位置到达导航目的地经过的第一车道组,第一车道组中包含至少一条车道。
示例性地,基于道路场景对应的道路场景地图中存储的车道连接关系中包含每条车道的前驱车道和后继车道,其中目标车辆能够由前驱车道行驶至该车道,并且有该车道行驶至后继车道,因此可以基于当前车道、目标车道、以及道路场景地图中存储的车道连接关系,确定目标车辆由当前定位位置到达导航目的地需要经过的第一车道组。
示例性地,比如当前定位位置所在的车道为车道S1,车道S1的后继车道包含车道S2,其中,只有车道S2的后继车道S3包含导航目的地,因此目标车辆由当前定位位置到达导航目的地经过的第一车道组包括车道S1、车道S2和车道S3。
S1022,提取第一车道组中每条车道对应的第一导航路线。
示例性地,以车道为例,预先生成的该车道的第一导航路线可以包含N个轨迹点,并且可以按照该条车道的行驶方向对这N个轨迹点进行依次编码,得到每个轨迹点的唯一标识码,并将该轨迹点的标识码和在道路场景中的地理位置进行关联存储,以目标车辆行驶在一条东西走向的车道为例,假如目标车辆的当前定位位置与该条车道中的其中一个轨迹点A匹配,可以按照该条车道的第一导航路线中包含的N个轨迹点中各个轨迹点的地理位置以及各个轨迹点的顺序,指示目标车辆从轨迹点A开始如何在该条道路中进行行驶,比如按照该车道的行驶方向,该轨迹点A的下一个轨迹点为轨迹点B,则目标车辆在该条车道的行驶轨迹为从轨迹点A行驶至轨迹点B,第一导航路线的确定过程将在下文进行阐述。
S1023,对第一车道组分别对应的第一导航路线按照由当前定位位置到达导航目的地的顺序进行拼接,得到目标导航线。
示例性地,在目标车辆在车道S1、车道S2和车道S3上行驶时,可以分别按照车道S1、车道S2和车道S3上行驶各自的第一导航路线指示的行驶路径进行行驶,按照由当前定位位置到达导航目的地的顺序,可以对这些第一导航路线进行拼接,可以得到指示目标车辆由当前定位位置到达导航目的地的目标导航线。
本公开实施例中,在确定目标车辆由当前定位位置到达导航目的地的过程中不经过路口的情况下,可以基于经过的至少一条车道分别对应的第一导航路线进行依次连接,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
在一种可能的实施方式中,导航线还包括与车道连接的路口对应的第二导航路线,第二导航路线用于引导车辆由路口连接的第一车道行驶至第二车道的行驶路径;针对上述S102,基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线的一种可选实现方式,还包括以下S1024~S1026:
S1024,基于预先存储的车道连接关系,确定目标车辆由当前定位位置到达导航目标地的道路经过路口的情况下,获取目标车辆由当前定位位置到达导航目的地经过的第二车道组,以及经过的第一路口集,第二车道组包含至少两条车道,第一路口集包含至少一个路口。
示例性地,目标车辆在道路场景中进行行驶的过程中,很多情况下需要路过不同的道路,比如需要从第一条道路行驶至第二条道路,且第一条道路1和第二条道路2之间通过如图2所示的路口连接,当目标车辆到达导航目的地需要从第一条道路1中的车道11行驶至第二条道路2中的车道21的情况下,需要跨过与车道11和车道21连接的路口,因此可以预先生成同一路口连接的不同道路的车道之间的第二导航路线,比如生成从如图2所示的由车道11驶入车道21时在路口的行驶路径的第二导航路线,这里可以将驶入路口的车道称为第一车道,将由路口驶入的车道称为第二车道,即这里的车道11称为第一车道,车道21称为第二车道。
示例性地,第二导航路线与第一导航路线相似,同样包含多个轨迹点,多个轨迹点可以按照目标车辆在不同道路的车道之间的行驶顺序,对多个轨迹点进行编码,得到第二导航路线中每个轨迹点对应有唯一标识码和该轨迹点在道路场景中的地理位置信息,比如上述图2所示,若车道11为驶出车道,车道21为驶入车道,因此生成的连接车道11和车道21的第二导航路线中的多个轨迹点可以按照由车道11到车道21的方向进行依次编码,并存储各轨迹点在道路场景中的地理位置信息,这样目标车辆从车道11向车道21行驶的过程中,可以按照第二导航路线中各轨迹点指示的地理位置进行安全行驶。
S1025,提取第二车道组中每条车道对应的第一导航路线,以及第一路口集中每个路口对应的第二导航路线。
S1026,对第二车道组分别对应的第一导航路线以及路口集分别对应的第二导航路线按照由当前定位位置到达导航目的地的顺序进行拼接,得到目标导航线。
示例性地,在目标车辆需要切换车道的情况下,若需要切换的下一个车道与当前车道之间需要跨过如图2所示的路口,可以按照由当前车道驶入下一个车道时在路口对应的第二导航路线的行驶轨迹行驶,若不需要切换路口,比如两条车道之间的距离很近,可以按照当前车道的第一导航路线中的最后一个轨迹点,以及下一个车道的第一导航路线中的第一个轨迹点,进行切换车道。
本公开实施例中,在确定目标车辆由当前定位位置到达导航目的地的过程中经过路口的情况下,可以基于经过的至少一条车道分别对应的第一导航路线以及至少一个路口对应的第二导航路线进行依次连接,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
在另一种实施方式中,针对上述S102,基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线的一种可选实现方式,包括以下S1027~S1030:
S1027,获取由当前定位位置到达导航目的地的之间的道路中的路口信息。
示例性地,路口信息可以包括路口数量,以及预先存储的每个路口的ID,具体可以根据预先存储得车道连接关系确定,比如根据预先存储的车道连接关系,确定由当前定位位置到达导航目的地之间的道路包含的路口。
S1028,根据路口信息将道路划分为多个路段。
示例性地,可以根据由当前定位位置到达导航目的地的之间的道路中包含的路口,将由当前定位位置到达导航目的地的之间的道路划分为多个路段,被划分的多个路段中存在包含路口的第一路段和不包含路口的第二路段。
S1029,基于导航线确定多个路段中每个路段的目标子导航线。
示例性地,可以根据路段的种类,比如上述提到的第一路段和第二路段分别确定每个路段的目标子导航线,每个路段的目标子导航线用于引导车辆由该路段的起始位置移动至该路段的结束位置。
S1030,对目标子导航线进行拼接,得到目标导航线。
示例性地,在得到每个目标子导航线后,可以按照行驶顺序进行拼接,得到目标导航线。
本公开实施例中,可以根据由当前定位位置到达导航目的地之间的道路包含的路口信息,对该道路进行分段,进一步可以基于每个路段的目标子导航线,快速得到用于指示目标车辆由当前定位位置到达导航目的地的目标导航线。
具体地,导航线包括用于引导车辆在车道内的行驶路径的第一导航路线和与车道连接的路口对应的第二导航路线,第二导航路线用于引导车辆在由路口连接的第一车道行驶至第二车道的行驶路径;
多个路段包括至少一个第一路段,第一路段经过至少一个路口;
基于导航线确定多个路段中每个路段的目标子导航线的一种可选实现方式,包括针对每个第一路段:
S10291,确定第一路段内的第三车道组和第二路口集,第三车道组包含至少两条车道,第二路口集包括至少一个路口。
示例性地,针对上述S1028,在根据路口信息将道路划分为多个路段后,针对其中一段包含至少一个路口的第一路段,可以基于道路场景对应的道路场景地图,确定该第一路段包含的车道以及路口。
S10292,提取第二路口集的各个路口对应的第二导航路线,以及第三车道组中由第二导航路线指示连接的目标车道的第一导航路线。
示例性地,针对该第一路段中每个路口,可以提取预先生成的该路口对应的第二导航路线,以及第三车道组中由第二导航路线指示连接的目标车道的第一导航路线,比如针对如图2中所示的路口,可以提取由该路口中引导车辆从车道11至车道21的第二导航路线P1P2,以及第三车道组中由第二导航路线P1P2连接的目标车道11和目标车道21分别对应的第一导航路线(图2中未示出)。
S10293,将目标车道的第一导航路线与第二路口集中的各个路口对应的第二导航路线按照在第一路段内的行经顺序进行拼接,得到第一路段的目标子导航线。
示例性地,行经顺序指车辆由当前定位位置到达导航目的地的过程中在该第一路段的行驶顺序,比如行经顺序为从车道11行驶至车道21的情况下,拼接方式为目标车道11对应的第一导航路线与第二导航路线P1P2拼接,第二导航路线P1P2与目标车道21对应的第一导航路线拼接后,得到第一路段的目标子导航线。
本公开实施例中,在确定经过至少一个路口的每个第一路段的目标子导航线的过程中,可以按照该第一路段包含的每个路口对应的第二导航路线,以及该第一路段包含的第三车道组中由第二导航路线指示连接的第一导航路线,快速确定引导目标车辆通过该第一路段中的目标子导航线。
在另一种方式中,多个路段还包括至少一个第二路段,第二路段不经过路口;基于导航线确定多个路段中每个路段的目标子导航线,包括针对每个第二路段:
S10294,基于与第二路段连接的第一路段的目标子导航线,确定第二路段内的起始车道和结束车道。
示例性地,该第二路段连接的上一个第一路段的目标子导航线的结束位置所在的车道可以作为这里第二路段的起始车道,该第二路段连接的下一个第一路段的目标子导航线的开始位置所在的车道可以作为这里第二路段的结束车道,特别地,在该第二路段为多个路段中的第一个路段时,该第二路段内的起始车道具体由当前定位位置所在车道确定,在该第二路段为多个路段中的最后一个路段时,该第二路段内的结束车道具体由导航目的地所在车道确定。
S10295,基于预先存储的车道连接关系,提取第二路段内由起始车道到达结束车道的每条车道对应的第一导航路线。
示例性地,若第二路段内由起始车道到达结束车道中间还包含n个车道,则这里需要提取由起始车道开始,依次经过n个车道到达结束车道的过程中每条车道对应的第一导航路线。
S10296,对第二路段内由起始车道到达结束车道的每条车道对应的第一导航路线按照在第二路段内的行经顺序进行拼接,得到第二路段的目标子导航线。
本公开实施例中,在确定不经过路口的每个第二路段的目标子导航线的过程中,可以按照该第二路段连接的第一路段的目标子导航线,确定第二路段内的启示车道和结束车道,进一步按照预先存储的车道连接关系,可以对第二路段内由起始车道到达结束车道的每条车道的第一导航路线按照行经顺序进行拼接,快速确定引导目标车辆通过该第二路段中的目标子导航线。
针对上述S101中提到的同一车道的第一导航路线,如图3所示,可以按照以下步骤预先生成第一导航路线,包括S201~S203:
S201,针对道路场景中的任一条车道,在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对。
示例性地,可以将该条车道的中心线作为第一导航路线,中心线可以由多个中心位置点来拟合得到,中心位置点可以由该条车道两侧边界的车道线上的一对位置点来确定。
示例性地,该条车道包含两条车道线,可以分别在该条车道的两条车道线上提取多个位置点,使得不同车道线上的两个位置点构成一个位置点对,比如车道线L1中的位置点K1和车道线L2中的位置点K1’构成一个位置点对,车道线L1中的位置点K2和车道线L2中的位置点K2’构成一个位置点,然后通过确定位置点对连线的中心点,可以得到该条车道的中心位置点,在提取位置点对的过程中,应该尽量使得位置点对的连线垂直于两侧的车道线,这样可以提高得到的中心位置点的准确度。
示例性地,考虑到车道在一般情况下存在弯曲,为了提取到准确的位置点对,在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对时,包括以下S2011~S2014:
S2011,获取该条车道包含的两条车道线在道路场景中的长度。
示例性地,该条车道包含的两条车道线在道路场景中的长度可以从预先针对道路场景构建的道路场景地图中得到,比如该条车道包含的两条车道线的长度分别为l1和l2。
S2012,基于该条车道包含的两条车道线中长度最长的车道线的长度,确定多个位置点数量。
示例性地,比较l1和l2,在l1大于l2的情况下,通过l1来确定多个位置点数量,在l2大于l1的情况下,通过l2来确定多个位置点数量。
示例性地,在两条车道线中长度最长的车道线的长度,确定多个位置点的数量时,可以结合预设的位置点间隔来共同确定,比如将两条车道线中长度最长的车道线的长度和预设的位置点间隔的比值,作为多个位置点数量,其中预设的位置点间隔可以根据经验获取。
S2013,基于多个位置点数量,分别在该条车道包含的两条车道线中按照插值方式提取多个位置点。
示例性地,假设得到的多个位置点数量为N,可以在该条车道包含的两条车道线上按照N进行线性插值,得到N个位置点。
S2014,在对该条车道包含的每条车道线上的多个位置点按照车道行驶方向排序后,将不同车道线中序号相同的两个位置点构成一个位置点对。
示例性地,在该条车道具有预设的行驶方向的情况下,可以按照该行驶方向对每条车道线的多个位置点进行排序,在该条车道不具有预设的行驶方向的情况下,可以按照设定的行驶方向对每条车道线的多个位置点进行排序,然后将不同车道线中序号相同的两个位置点构成一个位置点对。
本公开实施例中,通过车道包含的两条车道线中长度较长的车道线的长度来确定位置点数量,可以得到更加与车道形状匹配的位置点对,以便得到准确度较高的中心位置点。
S202,基于多个位置点对分别在道路场景中的地理位置,确定该条车道的多个中心位置点在道路场景中的地理位置;每个位置点对对应一个中心位置点。
示例性地,针对每个位置点对,基于该位置点对中每个位置点在道路场景中的地理位置,确定该位置点对连线的中心位置点在道路场景中的地理位置。
示例性地,可以预先针对道路场景构建世界坐标系,基于此可以将该条道路的车道线上包含的每个位置点在世界坐标系中的世界坐标作为该位置点在道路场景中的地理位置。
示例性地,针对每个位置点对,可以根据该位置点对包含的两个位置点分别在世界坐标系中的世界坐标,确定两个位置点连线的中心位置点在世界坐标系中的世界坐标,可以得到两个位置点连线的中心位置点的世界坐标可以表示该中心位置点在道路场景中的地理位置。
S203,基于多个中心位置点在道路场景中的地理位置,确定该条车道对应的第一导航路线。
具体地,基于多个中心位置点在道路场景中的地理位置,确定该条车道对应的第一导航路线的一种可能实施方式中,可以包括S2031~S2033:
S2031,基于多个中心位置点在道路场景中的地理位置,对多个中心位置点进行曲线拟合,得到第一拟合曲线。
示例性地,在得到多个中心位置点在道路场景中的地理位置后,可以通过三次样条曲线拟合的方式,对多个中心位置点进行曲线拟合,得到第一拟合曲线,该第一拟合曲线可以表示该条车道的中心线。
S2032,按照预设间隔在第一拟合曲线上提取多个点,并获取在第一拟合曲线上提取的多个点在道路场景中的地理位置。
示例性地,预设间隔可以通过从目标车辆采集到自身的当前地理位置,到基于当前地理位置确定出下一个位置点时行驶的距离来确定,按照该预设间隔在第一拟合曲线上进行插值,提取得到第一拟合曲线上的多个点,以及获取多个点在道路场景中的地理位置。
S2033,将在第一拟合曲线上提取的多个点在道路场景中的地理位置,作为该条车道对应的第一导航路线的行驶轨迹。
本公开实施例中,首先通过车道的若干中心位置点可以拟合得到车道的中心线,然后进一步在该中心线上提取多个点,可以准确的得到指导目标车辆在同一车道中行驶的行驶轨迹。
下面将结合图4所示,以一具体实施例介绍确定同一车道的第一导航路线,具体包括以下过程:
(1)计算车道1的左车道线L1的长度l1,以及右车道线L2的长度l2;
(2)比较l1和l2,用长度较大的长度除以预设值g,得到目标中所需插值数T,目标中心间隔值g一般取5米;
(3)对L1和L2分别根据插值数T重新进行线性插值,生成带有T个点的新的L1和L2
(4)从前往后遍历L1和L2中的所有点,计算每一对位置点的中点。
(5)所有中点组成车道的中心位置点。
(6)使用采样点进行三次样条曲线拟合,按长度0.2米进行插值,得到最后的第一导航路线包含的轨迹点如图4中L3中的轨迹点。
在一种实施方式中,针对上述S101,同一路口连接的不同道路的车道包括第一车道和第二车道,按照以下步骤生成第二导航路线,如图5所示,可以包括以下S301~S303:
S301,分别获取由第一车道驶入该路口时经过的第一中心位置点,以及由该路口驶入第二车道时经过的第二中心位置点;第一中心位置点为第一车道上的最后一个中心位置点,第二中心位置点为第二车道上的第一个中心位置点。
示例性地,可以将第一车道作为驶出车道,将第二车道作为驶入车道,这里来确定由第一车道驶入第二车道时在路口的第二导航路线。
示例性地,第一车道11驶入该路口时经过的第一中心位置点可以在确定第一车道的第一导航路线的过程中确定,同样,该路口驶入第二车道时经过的第二中心位置点可以在确定第二车道的第一导航路线的过程中确定,如上述图2,该路口中示出的第一车道可以为车道11、车道12和车道13,第一车道11对应的第二车道可以包括车道21、车道22和车道23,第一车道12对应的第二车道可以包括车道31、车道32和车道33,第一车道13对应的第二车道可以包括车道41、车道42和车道43,其中P1点各第一车道的第一中心位置点,P2点为各第二车道的第二中心位置点。
S302,基于第一车道上包含第一中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由第一车道驶入该路口的第一方向向量,以及基于第二车道上包含第二中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由该路口驶入第二车道的第二方向向量。
示例性地,在第一车道为驶出车道的情况下,将第一车道包含与第一中心位置点P1相邻的前一个中心位置点C1作为第一方向向量的起点,以第一中心位置点P1作为第一方向向量的终点,得到如图2所示的第一方向向量
在第二车道为驶入车道的情况下,将第二车道包含与第二中心位置点P2作为第二方向向量的起点,将与第二中心位置点相邻的前一个中心位置点C2作为第二方向向量的终点,得到如图2所示的第二方向向量
S303,基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
示例性地,第一中心位置点可以表示目标车辆在该路口的起点,第二中心位置点可以表示目标车辆在该路口的终点,第一方向向量可以表示目标车辆由第一车道驶入该路口时的方向,第二方向向量可以表示目标车辆从该路口驶入第二车道时的方向,基于这些参数信息,可以为目标车辆规划安全经过该路口的第二导航路线的行驶轨迹。
本公开实施例中,在确定第二导航路线前,规划了目标车辆在路口的起点位置和终点位置、按照什么方向从起点位置驶入路口、按照什么方向从路口驶入终点,通过该方式可以得到准确度较高的第二导航路线的行驶轨迹。
具体地,基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹的一种可能实施方式中,如图6所示,可以包括以下S401~S403:
S401,基于第一方向向量和第二方向向量,确定由第一车道驶入第二车道驶的转向角。
示例性地,可以将第一方向向量和第二方向向量之间的夹角作为由第一车道驶入第二车道驶的转向角,在第一车道位于第二车道的对侧的情况下,如上图2中车道11为第一车道,车道31为第二车道的情况,转向角较小;在第二车道位于第一车道的右侧的情况下,如上图2中车道11为第一车道,车道21为第二车道的情况,转向角较大。
S402,基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定用于控制第二导航路线形状的多个目标控制点。
示例性地,可以引入四阶贝塞尔曲线来表示第二导航路线,确定四阶贝塞尔曲线的过程,需要确定出五个目标控制点,这五个目标控制点可以用来表示四阶贝塞尔曲线的形状,以及可以表示第二导航路线的形状。
S403,基于多个目标控制点,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
示例性地,可以基于多个目标控制点在道路场景中的地理位置,确定出四阶贝塞尔曲线,进一步得到由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
本公开实施例中,提出在确定第二导航路线时,可以先通过第一车道行驶至第二车道的转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定出控制第二导航路线形状的多个目标控制点,从而得到准确度较高的第二导航路线的行驶轨迹。
在基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定四阶贝塞尔曲线的多个目标控制点的过程中,按照转向角的大小,可以分为两种不同的确定方式,一种是确定直线贝塞尔控制点,另一种是确定转向贝塞尔控制点,详见以下阐述。
在一种实施方式中,基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定用于控制第二导航路线形状的多个目标控制点的一种可能实施方式中,包括以下S4021~S4023:
S4021,在转向角小于预设角度的情况下,确定第一中心位置点和第二中心位置点连线的中点,以及第一中心位置点和第二中心位置点的第一距离。
示例性地,在转向角小于预设角度的情况下,按照确定直线贝塞尔控制点的方式确定多个目标控制点,可以基于第一中心位置点P1和第二中心位置点P2分别在世界坐标系下的世界坐标,确定第一中心位置点P1和第二中心位置点P2连线的中点M1在世界坐标系下的世界坐标,以及基于第一中心位置点P1和第二中心位置点P2分别在世界坐标系下的世界坐标,确定第一中心位置点P1和第二中心位置点P2之间的第一距离D1。
S4022,获取第一中心位置点按照第一方向向量指示的方向延长第一距离的预设倍数后得到的第一目标点。
示例性地,以第一中心位置点P1为起点,按照第一方向向量
延长nD1后可以得到第一目标点B1,其中n表示预设倍数,可以根据路口的尺寸按照经验设定,n的值大于0且小于1。
S4023,获取第二中心位置点按照第二方向向量的相反向量指示的方向延长第一距离的预设倍数后得到的第二目标点;
其中,第一中心位置点、第一目标点、第一中心位置点和第二中心位置点连线的中点、第二目标点以及第二中心位置点构成多个目标控制点。
示例性地,以第二中心位置点P2为起点,按照第二方向向量
的相反向量
延长nD1后可以得到第二目标点B2。
将上述得到的第一中心位置点P1、第一目标点B1、第一中心位置点P1和第二中心位置点连线的中点M1、第二目标点B2以及第二中心位置点P2作为四阶贝塞尔曲线的五个目标控制点。
下面以一具体实施例介绍确定直线贝塞尔控制点的过程,具体包括以下步骤:
(1)将第一中心位置点P1为贝塞尔曲线的第一个控制点
(2)确定第一中心位置点P1和第二中心位置点P2的中点M1
(3)确定第一中心位置点P1和第二中心位置点P2之间的长度D1
(4)将第一中心位置点P1以第一方向向量
进行0.3D1长度的延长得第一目标点B1,将该第一目标点作为贝塞尔曲线的第二个控制点;
(5)将第一中心位置点P1和第二中心位置点P2的中点M1为作为贝塞尔曲线的第三个控制点;
(6)将第二中心位置点P2以第二方向向量
的反向向量
进行0.3D1长度的延长得第二目标点B2,将该第二目标点作为贝塞尔曲线的第四个控制点;
(7)将第二中心位置点P2为贝塞尔曲线的第五个控制点。
本公开实施例中,提出在两条车道之间的转向角小于预设角度的情况下,提出可以基于第一中心位置点、第二中心位置点以及第一方向向量和第二方向向量快速确定出这两条车道在路口对应的第二导航路线。
在另一种实施方式中,针对上述S402,基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定用于控制第二导航路线形状的多个目标控制点的一种可能实施方式中,包括以下S4024~S4026:
S4024,在转向角大于或等于预设角度的情况下,基于目标车辆的尺寸信息和第一车道对应的障碍区域,确定目标车辆由第一车道驶入该路口时的第一安全避障距离。
示例性地,在转向角大于或等于预设角度的情况下,按照确定转向贝塞尔控制点的方式确定多个目标控制点,在确定多个目标控制点之前,可以先基于目标车辆的尺寸信息和第一车道对应的障碍区域,确定目标车辆由第一车道驶入该路口时的第一安全避障距离。
示例性地,在一些路口中,平行的两条道路之间可能存在用于分割两条道路的静止障碍物,这些障碍物在道路场景中对应的区域称为障碍区域,如图2所示,该路口包含障碍区域A、障碍区域B、障碍区域C和障碍区域D,以第一车道为如图2中的车道13,第二车道为如图2中的车道43为例,在目标车辆由车道13经过该路口驶入车道43的过程中,在从车道13驶出时需要向前行驶一段距离以超过障碍区域A,需要向前行驶的一段距离可以称为第一安全避障距离,特别地,在不存在障碍区域A的情况下,这里的第一安全避障距离可以为0。
示例性地,可以按照以下方式确定第一安全避障距离:
(1)基于车道13中的第一中心位置点P1和车道43中的第二中心位置点P2,确定障碍搜索方向向量
示例性地,该障碍搜索方向向量用于确定车道13关联的障碍区域和车道43关联的障碍区域,如图2中车道13关联的障碍区域为A,车道43关联的障碍区域为D。
(2)基于障碍搜索方向向量和车道13对应的第一方向向量
确定障碍敏感方向向量
示例性地,该障碍物敏感方向向量用于指示容易和目标车辆发生碰撞的障碍区域所在的方向。
(3)针对车道13,对障碍区域A轮廓上包含的多个边界点Q
i进行遍历,分别构建矢量
并确定
在
上的投影的长度d
i;其中Q
i表示多个边界点中的第i个边界点,
表示基于第i个边界点和第一中心位置点构建的第i个矢量;d
i表示第i个矢量在
上的投影的长度。
示例性地,该长度di用于筛选出若目标车辆未按照第一安全避障距离向前行驶容易与目标车辆发生碰撞的目标边界点。
(4)基于di和第一预设范围(比如第一预设范围为大于0且小于h,其中h与车身的宽度相关,可以等于车身宽度),选择使得di符合预设范围的目标边界点;
(5)在确定存在至少一个目标边界点的情况下,确定每个目标边界点和第一中心位置点P1构成的矢量
在第一方向向量
上的投影长度N
x(其中Q
x表示至少一个目标边界点中的第x个目标边界点,N
x表示第x个目标点对应的投影长度);
(6)基于投影长度Nx和第二预设范围(比如第二预设范围为大于0且小于m,其中m为预先基于障碍区域的尺寸按照经验设置的,用于指示障碍区域属于车道13侧的障碍区域),筛选出符合第二预设范围且长度最长的N1作为第一安全避障距离,如图2所示。
S4025,基于目标车辆的尺寸信息和第二车道对应的障碍区域,确定目标车辆由该路口驶入第二车道时的第二安全避障距离。
示例性地,确定第二安全避障距离的过程使用到的障碍搜索方向向量为
第二车道为上述图2中的车道43的情况下,可以基于障碍区域D、目标车辆的尺寸信息和障碍搜索方向向量为
来确定第二安全避障距离N2,如图2所示,确定过程与上述确定第一安全避障距离N1的原理相同,在此不再赘述。
S4026,基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量的交点、第一安全避障距离和第二安全避障距离确定多个目标控制点。
本公开实施例中,在确定与较大角度转向对应的第二导航路线的过程中,需要考虑目标车辆在该路口行驶过程中的起点和终点,以及避障距离,以提高目标车辆在路口行驶过程中的安全性。
具体地,基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量的交点、第一安全避障距离和第二安全避障距离确定多个目标控制点的一种可能的实施方式中,包括以下S40261~S40263:
S40261,获取第一中心位置点按照第一方向向量指示的方向延长第一安全避障距离后得到的第三目标点。
示例性地,以第一中心位置点P1为起点,按照第一方向向量
延长N1后可以得到第三目标点B3。
S40262,获取第二中心位置点按照第二方向向量指示的方向延长第二安全避障距离后得到的第四目标点。
示例性地,以第二中心位置点P2为起点,按照第二方向向量
的反向向量
延长N2后可以得到第四目标点B4。
S40263,基于第三目标点、第四目标点、以及交点,确定除第三目标点和第四目标点之外的其它多个目标点。
其中,第三目标点、确定的其它多个目标点、和第四目标点构成多个目标控制点。
示例性地,第三目标点可以作为转向贝塞尔控制点的第一个目标控制点,第四目标点可以作为转向贝塞尔控制点中的第五个目标控制点,其它多个目标控制点分别可以包含转向贝塞尔控制点中的第二个目标控制点、第三个目标控制点和第四个目标控制点。
具体地,基于第三目标点、第四目标点、以及交点,确定除第三目标点和第四目标点之外的其它多个目标点的一种可能的实施方式中,包括:
(1)获取第一方向向量和第二方向向量的交点M2;
(2)确定第三目标点B3和交点M2之间的长度D2,以及确定第四目标点B4和交点M2之间的长度D3;
(3)确定(D2+D3)/4与D2的比例r1,以及确定(D2+D3)/4与D3的比例r2;
(4)在第三目标点B3和交点M2之间选取一个切分点作为第五目标点B5,使得B3到B5之间的距离和B3到M2之间的距离的比值等于上述r1;其中第五目标点B5作为转向贝塞尔控制点中的第二个目标控制点;
(5)在第四目标点B4和交点M2之间选取一个切分点作为第六目标点B6,使得B4到B6之间的距离和B4到M2之间的距离的比值等于上述r2;第六目标点B6作为转向贝塞尔控制点中的第四个目标控制点;
(6)确定e=D2-D3,在D2大于D3的情况下,确定(D2+D3)/2在D2上的且分点M3,然后将M3和
相加后,得到第七目标点B7,将第七目标点B7作为该情况下转向贝塞尔控制点的第三目标控制点;在D2小于D3的情况下,确定(D2+D3)/2在D3上的且分点M4,然后将M4和
相加后,得到第八目标点B8,将第七目标点B8作为该情况下转向贝塞尔控制点的第三目标控制点;在D2等于D3的情况下,将第一方向向量和第二方向向量的交点M2作为转向贝塞尔控制点中的第三目标控制点。
在一种实施方式中,针对上述S403,基于多个目标控制点,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹的一种可能实施方式中,可以包括以下S4031~S4033:
S4031,基于多个目标控制点,确定由第一车道驶入第二车道时在该路口的第二拟合曲线。
示例性地,可以将多个目标控制点在道路场景中的地理位置输入四阶贝塞尔曲线函数,得到第二拟合曲线。
S4032,按照预设间隔在第二拟合曲线上提取多个点,并获取在第二拟合曲线上提取的多个点在道路场景中的地理位置。
示例性地,预设间隔可以通过从目标车辆采集到自身的当前地理位置,到基于当前地理位置确定出下一个位置点时行驶的距离来确定,按照该预设间隔在第二拟合曲线上进行插值,提取得到第二拟合曲线上的多个点,以及获取多个点在道路场景中的地理位置。
S4033,将在第二拟合曲线上提取的多个点在道路场景中的地理位置,作为由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
示例性地,如上述图2中所示,示出三条第二导航路线的行驶轨迹,分别为车道11到车道21在路口的第二导航路线的行驶轨迹U1,车道12到车道32在路口的第二导航路线的行驶轨迹U2,以及车道13到车道43在路口的第二导航路线的行驶轨迹U3。
本公开实施例中,通过在规划出的用于指示目标车辆在路口行驶过程中的第二导航路线,以及确定出第二导航路线中多个点在道路场景中的地理位置,可以准确的得到指导目标车辆在路口行驶的行驶轨迹。
在一种实施方式中,针对上述S103,在控制目标车辆按照目标导航线进行行驶时,如图7所示,可以包括以下S501~S502:
S501,在检测到目标车辆按照目标导航线行驶过程中存在障碍物的情况下,获取障碍物在道路场景中的地理位置。
示例性地,在这里的障碍物属于动态障碍物,比如行人、车辆等。
示例性地,可以通过目标车辆上安装的采集设备,比如单目相机来获取道路场景图像,基于道路场景图像中检测到动态障碍物的情况下,可以基于障碍物在道路场景图像中的图像位置、以及预先确定的单目相机拍摄的道路场景图像对应的图像坐标系和目标车辆对应的车体坐标系之间的转换关系,确定出障碍物在车体坐标系下的坐标位置,进一步基于目标车辆在道路场景中的地理位置,确定出障碍物在道路场景中的地理位置。
S502,在控制目标车辆按照目标导航线进行行驶的过程中,基于障碍物的地理位置调整目标导航线,以控制目标车辆绕开障碍物。
示例性地,在目标车辆按照目标导航线进行行驶过程中,若检测到障碍物位于目标车辆的行驶前方,可以控制目标车辆停止,在检测到障碍物离开目标车辆的行驶前方后,再控制目标车辆继续按照目标导航线进行行驶,或者,在检测到障碍物位于目标车辆的行驶前方的情况下,可以控制目标车辆转移到相邻的车道对应的第一导航路线上继续行驶,在检测到初始车道不存在障碍物的情况下,再控制目标车辆行驶到初始车道中,按照目标导航线继续行驶。
本公开实施例中,在控制目标车辆按照目标导航线行驶的过程中,若检测到动态障碍物,可以基于动态障碍物在道路场景中的地理位置进行避障,提高行驶的安全性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与导航方法对应的导航装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述导航方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图8所示,为本公开实施例提供的一种导航装置600的示意图,该导航装置600包括:
获取模块601,用于获取目标车辆的当前定位位置和导航目的地以及由当前定位位置到达导航目的地之间的道路上的各车道关联的导航线,其中导航线是预先生成的;
生成模块602,用于基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线,目标导航线由至少一条车道的导航线拼接形成;
控制模块603,用于控制目标车辆按照目标导航线进行行驶。
在一种可能的实施方式中,导航线包括用于引导车辆在车道内的行驶路径的第一导航路线;生成模块602在用于基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线时,包括:
基于预先存储的车道连接关系,确定目标车辆由当前定位位置到达导航目标地的道路不经过路口的情况下,获取目标车辆由当前定位位置到达导航目的地经过的第一车道组,第一车道组中包含至少一条车道;
提取第一车道组中每条车道对应的第一导航路线;
对第一车道组分别对应的第一导航路线按照由当前定位位置到达导航目的地的顺序进行拼接,得到目标导航线。
在一种可能的实施方式中,导航线还包括与车道连接的路口对应的第二导航路线,第二导航路线用于引导车辆在由路口由连接的第一车道行驶至第二车道的行驶路径;生成模块602用于按照如下方式生成目标车辆由当前定位位置到达导航目的地的目标导航线:
基于预先存储的车道连接关系,确定目标车辆由当前定位位置到达导航目标地的道路经过路口的情况下,获取目标车辆由当前定位位置到达导航目的地经过的第二车道组,以及经过的第一路口集,第二车道组包含至少两条车道,第一路口集包含至少一个路口;
提取第二车道组中每条车道对应的第一导航路线,以及第一路口集中每个路口对应的第二导航路线;
对第二车道组分别对应的第一导航路线以及路口集分别对应的第二导航路线按照由当前定位位置到达导航目的地的顺序进行拼接,得到目标导航线。
在一种可能的实施方式中,生成模块602用于按照如下方式生成所述目标车辆由当前定位位置到达导航目的地的目标导航线:
获取由当前定位位置到达导航目的地的之间的道路中的路口信息;
根据所述路口信息将所述道路划分为多个路段;
基于所述导航线确定所述多个路段中每个路段的目标子导航线;
对所述目标子导航线进行拼接,得到所述目标导航线。
在一种可能的实施方式中,所述导航线包括用于引导车辆在车道内的行驶路径的第一导航路线和与车道连接的路口对应的第二导航路线,所述第二导航路线用于引导车辆在由所述路口连接的第一车道行驶至第二车道的行驶路径;
所述多个路段包括至少一个第一路段,所述第一路段经过至少一个路口;
生成模块602用于针对每个第一路段,按照如下方式确定多个路段中每个路段的目标子导航线:
确定所述第一路段内的第三车道组和第二路口集,所述第三车道组包含至少两条车道,所述第二路口集包括至少一个路口;
提取所述第二路口集的各个路口对应的第二导航路线,以及所述第三车道组中由所述第二导航路线指示连接的目标车道的第一导航路线;
将所述目标车道的第一导航路线与所述第二路口集中的各个路口对应的第二导航路线按照在所述第一路段内的行经顺序进行拼接,得到所述第一路段的目标子导航线。
在一种可能的实施方式中,所述多个路段还包括至少一个第二路段,所述第二路段不经过路口;
生成模块602用于针对每个第二路段,按照如下方式确定多个路段中每个路段的目标子导航线:
基于与所述第二路段连接的第一路段的目标子导航线,确定所述第二路段内的起始车道和结束车道;
基于预先存储的车道连接关系,提取所述第二路段内由所述起始车道到达所述结束车道的每条车道对应的第一导航路线;
对所述第二路段内由所述起始车道到达所述结束车道的每条车道对应的第一导航路线按照在所述第二路段内的行经顺序进行拼接,得到所述第二路段的目标子导航线。
在一种可能的实施方式中,生成模块602用于按照以下步骤预先生成第一导航路线:
针对道路场景中的任一条车道,在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对;
基于多个位置点对分别在道路场景中的地理位置,确定该条车道的多个中心位置点在道路场景中的地理位置;每个位置点对对应一个中心位置点;
基于多个中心位置点在道路场景中的地理位置,确定该条车道对应的第一导航路线。
在一种可能的实施方式中,生成模块602用于按照如下方式在该条车道对应的指示车道两侧边界的车道线中分别提取多个位置点,构成多个位置点对:
获取该条车道包含的两条车道线在道路场景中的长度;
基于该条车道包含的两条车道线中长度最长的车道线的长度,确定多个位置点数量;
基于多个位置点数量,分别在该条车道包含的两条车道线中按照插值方式提取多个位置点;
在对该条车道包含的每条车道线上的多个位置点按照车道行驶方向排序后,将不同车道线中序号相同的两个位置点构成一个位置点对。
在一种可能的实施方式中,生成模块602用于基于多个位置点对分别在道路场景中的地理位置,按照如下方式确定该条车道的多个中心位置点在道路场景中的地理位置:
针对每个位置点对,基于该位置点对中每个位置点在道路场景中的地理位置,确定该位置点对连线的中心位置点在道路场景中的地理位置。
在一种可能的实施方式中,生成模块602在用于基于多个中心位置点在道路场景中的地理位置,按照如下方式确定该条车道对应的第一导航路线:
基于多个中心位置点在道路场景中的地理位置,对多个中心位置点进行曲线拟合,得到第一拟合曲线;
按照预设间隔在第一拟合曲线上提取多个点,并获取在第一拟合曲线上提取的多个点在道路场景中的地理位置;
将在第一拟合曲线上提取的多个点在道路场景中的地理位置,作为该条车道对应的第一导航路线的行驶轨迹。
在一种可能的实施方式中,同一路口连接的不同道路的车道包括第一车道和第二车道,生成模块602用于按照以下步骤生成第二导航路线:
分别获取由第一车道驶入该路口时经过的第一中心位置点,以及由该路口驶入第二车道时经过的第二中心位置点;第一中心位置点为第一车道上的最后一个中心位置点,第二中心位置点为第二车道上的第一个中心位置点;
基于第一车道上包含第一中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由第一车道驶入该路口的第一方向向量,以及基于第二车道上包含第二中心位置点在内的相邻两个中心位置点分别对应的地理位置,确定用于表征由该路口驶入第二车道的第二方向向量;
基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
在一种可能的实施方式中,生成模块602用于基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,按照如下方式确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹:
基于第一方向向量和第二方向向量,确定由第一车道驶入第二车道驶的转向角;
基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,确定用于控制第二导航路线形状的多个目标控制点;
基于多个目标控制点,确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
在一种可能的实施方式中,生成模块602用于基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,按照如下方式确定用于控制第二导航路线形状的多个目标控制点:
在转向角小于预设角度的情况下,确定第一中心位置点和第二中心位置点连线的中点,以及第一中心位置点和第二中心位置点的第一距离;
获取第一中心位置点按照第一方向向量指示的方向延长第一距离的预设倍数后得到的第一目标点;
获取第二中心位置点按照第二方向向量的反向向量指示的方向延长第一距离的预设倍数后得到的第二目标点;
其中,第一中心位置点、第一目标点、第一中心位置点和第二中心位置点连线的中点、第二目标点以及第二中心位置点构成多个目标控制点。
在一种可能的实施方式中,生成模块602用于基于转向角、第一中心位置点、第二中心位置点、第一方向向量和第二方向向量,按照如下方式确定用于控制第二导航路线形状的多个目标控制点:
在转向角大于或等于预设角度的情况下,基于目标车辆的尺寸信息和第一车道对应的障碍区域,确定目标车辆由第一车道驶入该路口时的第一安全避障距离;
基于目标车辆的尺寸信息和第二车道对应的障碍区域,确定目标车辆由该路口驶入第二车道时的第二安全避障距离;
基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量的交点、第一安全避障距离和第二安全避障距离确定多个目标控制点。
在一种可能的实施方式中,生成模块602用于基于第一中心位置点、第二中心位置点、第一方向向量和第二方向向量的交点、第一安全避障距离和第二安全避障距离,按照如下方式确定多个目标控制点:
获取第一中心位置点按照第一方向向量指示的方向延长第一安全避障距离后得到的第三目标点;以及,
获取第二中心位置点按照第二方向向量的反向向量指示的方向延长第二安全避障距离后得到的第四目标点;
基于第三目标点、第四目标点、以及交点,确定除第三目标点和第四目标点之外的其它多个目标点;
其中,第三目标点、确定的其它多个目标点、和第四目标点构成多个目标控制点。
在一种可能的实施方式中,生成模块602用于基于多个目标控制点,按照如下方式确定由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹:
基于多个目标控制点,确定由第一车道驶入第二车道时在该路口的第二拟合曲线;
按照预设间隔在第二拟合曲线上提取多个点,并获取在第二拟合曲线上提取的多个点在道路场景中的地理位置;
将在第二拟合曲线上提取的多个点在道路场景中的地理位置,作为由第一车道驶入第二车道时在路口的第二导航路线的行驶轨迹。
在一种可能的实施方式中,控制模块603用于按照如下方式控制目标车辆按照目标导航线进行行驶:
在检测到目标车辆按照目标导航线行驶过程中存在障碍物的情况下,获取障碍物在道路场景中的地理位置;
在控制目标车辆按照目标导航线进行行驶的过程中,基于障碍物的地理位置调整目标导航线,以控制目标车辆绕开障碍物。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的导航方法,本公开实施例还提供了一种电子设备700,如图9所示,为本公开实施例提供的电子设备700结构示意图,包括:
处理器71、存储器72、和总线73;存储器72用于存储执行指令,包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换,当电子设备700运行时,处理器71与存储器72之间通过总线73通信,使得处理器71执行以下指令:获取目标车辆的当前定位位置和导航目的地以及由当前定位位置到导航目的地之间的道路上的各车道关联的导航线,其中导航线是预先生成的;基于导航线,生成目标车辆由当前定位位置到达导航目的地的目标导航线,目标导航线由至少一条车道的导航线拼接形成;控制目标车辆按照目标导航线进行行驶。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的导航方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的导航方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。