使用高清地图为自主车辆生成路线

文档序号:1472084 发布日期:2020-02-21 浏览:5次 >En<

阅读说明:本技术 使用高清地图为自主车辆生成路线 (Generating routes for autonomous vehicles using high-definition maps ) 是由 马克·达蒙·惠乐 于 2017-12-22 设计创作,主要内容包括:一种系统生成用于自主车辆从源位置行驶到目的地位置的高清地图。该系统确定低分辨率路线,并且接收覆盖低分辨率路线的一组地理区域的高清地图数据。该系统使用地理区域内的车道元素来形成一组潜在部分路线。该系统计算潜在部分路线与低分辨率路线之间的误差,并且移除误差高于阈值的潜在部分路线。一旦完成,该系统选择最终路线,并且将信号发送至自主车辆的控制器以遵循最终路线。该系统在紧急情况下确定不是道路的一部分的车道附近的表面区域对于车辆驾驶是否安全。该系统存储用车道的表示来描述可导航表面区域的信息。(A system generates a high-definition map for autonomous vehicle travel from a source location to a destination location. The system determines a low resolution route and receives high definition map data covering a set of geographic areas of the low resolution route. The system uses lane elements within a geographic area to form a set of potential partial routes. The system calculates an error between the potential partial route and the low resolution route, and removes the potential partial route having an error above a threshold. Once completed, the system selects a final route and sends a signal to the controller of the autonomous vehicle to follow the final route. The system determines in an emergency whether a surface area near a lane that is not part of the road is safe for vehicle driving. The system stores information describing the navigable surface area with a representation of a lane.)

使用高清地图为自主车辆生成路线

相关申请的交叉引用

本申请根据35USC 119(e)要求于2016年12月30日提交的标题为“ImprovedRouting for Using High Definition Maps in Vehicles”的美国临时申请第62/441,078号的优先权的权益,其全部内容通过引用并入本文中以用于所有的目的。

背景技术

本公开总体上一般地涉及为车辆生成路线,并且更具体地涉及基于具有高精度的高清地图来生成准确路线以用于自主车辆的安全导航。

自主车辆(也称为自动驾驶汽车、无人驾驶汽车、a33uto或机器人汽车)从源位置驾驶至目的地位置,而不需要人类驾驶员对车辆进行控制和导航。由于几个原因,驾驶的自动化很困难。例如,自主车辆使用传感器即时做出驾驶决策,但是车辆传感器无法始终观察所有对象。车辆传感器可能被拐角、绵延起伏的山丘和其他车辆遮挡。车辆传感器可能无法及早观察某些事情以做出决策。此外,道路上可能缺少车道和标志,或者标志被撞倒或被丛林隐藏,因此传感器无法检测到。此外,可能不容易看到关于通行权的道路标志以用于确定哪里可能会驶来车辆,或者在紧急情况下转向或移出车道,或者存在必须通过的停滞的障碍物。

自主车辆可以使用地图数据以高可信度计算出上述信息中的一些,而不是依赖于不太可靠的传感器数据。然而,常规地图具有若干缺点,使得常规地图难以用于自主车辆。为了有用,地图的几何形状以及车辆确定其在地图中的位置的能力需要高度准确(例如,10cm或更小)。常规地图无法提供安全导航所需的精度。GPS系统提供大约3-5米的精度,但是具有导致精度超过100m的大的误差状况,这取决于环境条件而经常发生。这使得用常规地图和GPS准确地确定车辆的位置具有挑战性。

此外,常规地图由勘测队创建,勘测队使用驾驶员以及特别装备的具有高分辨率传感器的汽车,汽车在地理区域周围行驶并且进行测量。回收测量结果,并且一组地图编辑器根据测量结果来汇总地图。该处理昂贵且耗时(例如,可能花费几个月来完成地图)。因此,使用这种技术汇总的地图没有新的数据。例如,道路以每年大约5-10%的频率更新/修改。但是勘测车价格昂贵且数目有限,因此无法捕获大部分的更新。例如,勘测车队可能包括一千辆汽车。即使对于美国的一个州来说,一千辆汽车也无法定期使地图保持最新以允许安全的自动驾驶。因此,维护地图的常规技术无法提供对于自主车辆的安全导航而言足够准确并且最新的正确数据。

发明内容

车辆计算系统利用来自在线系统的信息生成用于自主车辆从源地址行驶至目的地地址的高清地图。由在线系统提供的信息可以包括覆盖低分辨率地图的路线的地理区域以及描述那些地理区域内的交通设施的车道元素。创建车道元素以形成连接图,该连接图指示通过地图的在物理上可以导航的路径。车辆计算系统分析车道元素图并且允许分辨率路线产生若干潜在部分路线或路线假设(例如,从起点到终点之前的某个中间点的部分路线)。车辆计算系统通过将附加车道元素迭代地添加到具有最低误差的潜在部分路线来开发这些潜在部分路线,直到找到完整的潜在部分路线。可以将误差计算为高分辨率路线与低分辨率路线之间的最大偏差。当潜在路线最终包括最终目的地或终点(例如,潜在完整路线)时,这可以为高分辨率车道元素路线的误差提供上限。可以丢弃其误差超过该上限的其他可能的潜在路线。如果剩余的潜在路线具有大于上限的误差,则搜索完成(即,这是从起点至终点的最终路线)。如果某些不完整的潜在路线具有低于上限的误差,则系统可以沿着那些潜在路线继续搜索,直到达到目的地车道元素或者误差超过上限。因此,系统寻找由误差测量值(例如,低分辨率路线与高分辨率路线之间的最大距离)限定的最佳可能完整路线。

在实施方式中,车辆计算系统从第三方服务接收低分辨率路线并且将该路线发送至在线系统。车辆计算系统从在线系统接收描述覆盖低分辨率路线的一组地理区域内的交通特征的车道元素图的表示。基于车道元素图,车辆计算系统确定从源地址到目的地地址的一组潜在部分路线。对于每个潜在部分路线,识别附加连接的车道元素,并且计算潜在部分路线与低分辨率路线之间的误差测量值。在实施方式中,车辆计算系统不考虑具有高于阈值的误差的潜在部分路线。

在实施方式中,在从源地址到目的地地址的完整路线中,车辆计算系统选择最终路线并且将信号发送至自主车辆的控制器以行驶该最终路线。

系统利用来自在线系统的信息生成高清地图,以供自主车辆用于从源地址行驶到目的地地址。系统使用由传感器收集的信息来生成交通车道以及相对于车道的特征(例如每个车道的可导航表面边界)的高清地图。系统使用检测到的信息来生成描述位于超出车道的边界但是车辆可以在其内安全地导航而不损坏车辆(即,开到路肩上)的物理区域的车道的可导航表面边界的表示。通过分析可导航表面边界,系统可以在紧急情况下向自主车辆的控制器发信号以在可导航表面上行驶,例如,如果在自主车辆驶入的车道中遇到意外障碍,则车辆可以通过在车道的可导航表面边界内通过移动来安全地避开或绕过障碍物。

在实施方式中,车辆计算系统从在线系统接收地理区域的高清地图表示。高清地图由一个或更多个地理区域组成。在每个地理区域内,系统识别车道以及车道的边界之外的一个或更多个结构。这些结构表示潜在的障碍物,如栅栏、墙壁、树木或建筑物。车辆计算系统识别接近车道边界的每个结构内的一组点。系统生成车道的可导航表面边界的3D或2D多段线表示。多段线表示被存储在高清地图中作为车道的属性。

在实施方式中,系统确定车辆在可导航表面上行驶的难度水平。难度水平可以与正在考虑的可导航表面的类型有关。例如,砾石路肩可以与比铺砌路肩高的难度水平有关。系统进一步确定在车道中行驶时遇到的紧急情况的严重程度。系统基于在可导航的表面上驾驶的难度水平和紧急情况的严重性来确定是否在可导航的表面上行驶。因此,系统将控制信号发送至自主车辆的车辆控制器,使得自主车辆改变车道、停留在当前车道中或者在可导航的表面上行驶。

附图说明

图1示出了根据实施方式的与多个车辆计算系统交互的HD地图系统的整体系统环境。

图2示出了根据实施方式的车辆计算系统的系统架构。

图3示出了根据实施方式的车辆计算系统的HD地图API中的各种指令层。

图4示出了根据实施方式的在线HD地图系统的系统架构。

图5示出了根据实施方式的HD地图的部件。

图6A至图6B示出了根据实施方式的在HD地图中限定的地理区域。

图7示出了根据实施方式的HD地图中的车道的表示。

图8A至图8B示出了根据实施方式的HD地图中的车道元素以及各车道元素之间的关系。

图9A示出了根据实施方式的HD地图中的可导航的表面边界的表示。

图9B示出了根据实施方式的HD地图中的多个可导航的表面边界的表示。

图10示出了根据实施方式的可导航的表面模块的系统架构。

图11示出了根据实施方式的用于生成可导航的表面边界的整个处理的流程图。

图12示出了根据实施方式的用于障碍物检测的处理的流程图。

图13示出了根据实施方式的用于确定可导航的表面边界的处理的流程图。

图14示出了根据实施方式的用于在高清地图中实现可导航的表面边界的处理的流程图。

图15示出了根据实施方式的路线生成模块的系统架构。

图16示出了根据实施方式的路线生成处理的流程图。

图17示出了计算机器的实施方式,该计算机器可以从机器可读介质读取指令并且在处理器或控制器中执行指令。

附图仅出于说明的目的而描绘了本发明的各种实施方式。本领域技术人员将从以下论述中容易地认识到,在不脱离本文中描述的本发明的原理的情况下,可以采用本文中示出的结构和方法的替选实施方式。

具体实施方式

概述

本发明的实施方式使用高精度来维护包含最新信息的高清(HD)地图。自主车辆可以使用HD地图来安全地导航至其目的地而无需人工输入或者仅需有限的人工输入。自主车辆是能够感测其环境并且在没有人工输入的情况下导航的车辆。自主车辆在这里也可称为“无人驾驶汽车”、“自动驾驶汽车”或“机器人汽车”。高清地图提供高几何精度以及允许车辆以类似的精度识别其在地图中的位置的附加信息。HD地图是指以非常高的精度(通常为5-10cm)存储数据的地图。实施方式生成包含关于自主车辆可以行驶的道路的空间几何信息的HD地图。因此,所生成的HD地图包括自主车辆在没有人工干预的情况下安全地导航所需的信息。本发明的实施方式不是使用包括配备有高分辨率传感器的车辆的昂贵且耗时的绘图车队处理来为HD地图收集数据,而是使用当自动驾驶车辆在其环境中行驶时来自该自动驾驶车辆的较低分辨率传感器的数据。车辆可能没有这些路线的先前地图数据,或者甚至没有该地区的地图数据。本发明的实施方式提供位置即服务(LaaS),使得不同制造商的自主车辆均能够访问通过本发明的这些实施方式创建的最新地图信息。

实施方式生成并维护高清(HD)地图,该HD地图是准确的并且包括用于安全导航的最新路况。例如,HD地图提供自主车辆相对于道路的车道的当前位置,这精确到足以使自主车辆能够在车道中安全地行驶。

HD地图存储非常大量的信息,因此在管理信息时面临挑战。例如,用于大的地理区域的HD地图可能不适合车辆的本地存储器。本发明的实施方式向自主车辆提供HD地图的下述必要部分,该部分允许车辆确定其在HD地图中的当前位置,确定道路上的特征相对于车辆的位置,基于物理约束和法律约束等来确定是否可以安全地移动车辆,等等。物理约束的示例包括诸如墙壁的物理障碍,法律约束的示例包括法律上允许的车道行驶方向,限速、让行、停止。

本发明的实施方式通过提供下述方面来提供对请求的响应,从而允许自主车辆的安全导航:高时延(例如,10-20毫秒或更短);位置上的高精度,即10cm或更小的精度;数据的新鲜度,通过确保更新地图以反映在合理时间范围内的道路变化;以及通过使HD地图所需的存储最小化来提供存储效率。

通用系统架构

图1示出了根据实施方式的与多个车辆交互的HD地图系统的整体系统环境。HD地图系统100包括与多个车辆150交互的在线HD地图系统110。车辆150可以是自主车辆,但是不是必需的。在线HD地图系统110接收由车辆的传感器捕获的传感器数据,并且将从车辆150接收的数据进行组合以生成并维护HD地图。在线HD地图系统110将HD地图数据发送至车辆以用于驾驶车辆。在实施方式中,在线HD地图系统110被实现为分布式计算系统,例如,基于云的服务,该系统允许诸如车辆计算系统120的客户端对信息和服务进行请求。例如,车辆计算系统120可以请求用于沿着路线行驶的HD地图数据,并且在线HD地图系统110提供所请求的HD地图数据。

图1和其他附图使用相同的附图标记来标识相同的元件。附图标记后面的字母如“105A”表示该文本特指具有特定附图标记的元件。文本中没有后续字母的附图标记如“105”是指附图中带有该附图标记的任何或所有元件(例如,文本中的“105”表示附图中的附图标记“105A”和/或“105N”)。

在线HD地图系统110包括车辆接口模块160和HD地图存储器165。在线HD地图系统110使用车辆接口模块160与各种车辆150的车辆计算系统120交互。在线HD地图系统110将各种地理区域的地图信息存储在HD地图存储器165中。在线HD地图系统110可以包括除图1中所示的模块之外的其他模块,例如,如图4所示并在本文中进一步描述的各种其他模块。

在线HD地图系统110接收115由多个车辆150(例如,数百或数千辆汽车)的传感器收集的数据。车辆提供在沿着各种路线行驶时捕获的传感器数据并且将该数据发送这在线HD地图系统110。在线HD地图系统110使用从车辆150接收的数据来创建和更新描述车辆150正在行驶的区域的HD地图。在线HD地图系统110基于从车辆150接收的集体信息来构建高清地图,并且将HD地图信息存储在HD地图存储器165中。

在线HD地图系统110根据各车辆150的需求将HD地图发送125至车辆150。例如,如果自主车辆需要沿着路线行驶,则自主车辆的车辆计算系统120向在线HD地图系统110提供描述正在行驶的路线的信息。作为响应,在线HD地图系统110提供用于沿着路线行驶所需的HD地图。

在实施方式中,在线HD地图系统110以压缩格式将HD地图数据的各部分发送至车辆,使得所传输的数据消耗较少的带宽。在线HD地图系统110从各种车辆接收描述存储在车辆的本地HD地图存储器275中的数据的信息。如果在线HD地图系统110确定车辆不具有本地存储在本地HD地图存储器275中的HD地图的某个部分,则在线HD地图系统110将HD地图的该部分发送至车辆。如果在线HD地图系统110确定车辆先前确实接收到HD地图的该特定部分但是由于车辆最后接收到数据而由在线HD地图系统110更新了相应的数据,则在线HD地图系统110发送存储在车辆处的HD地图的该部分的更新。这允许在线HD地图系统110使与车辆通信的数据量最小化,并且还使本地存储在车辆中的HD地图数据保持定期更新。

车辆150包括车辆传感器105、车辆控制器130和车辆计算系统120。车辆传感器105允许车辆150检测车辆的周围环境以及描述车辆的当前状态的信息,例如,描述车辆的位置和运动参数的信息。车辆传感器105包括摄像装置、光检测和测距传感器(LIDAR)、全球定位系统(GPS)导航系统、惯性测量单元(IMU)等。车辆具有捕获车辆的周围环境的图像的一个或更多个摄像装置。LIDAR通过用激光脉冲照射目标并且测量反射脉冲来测量到目标的距离,以勘测车辆的周围环境。GPS导航系统基于来自卫星的信号来确定车辆的位置。IMU是使用加速度计和陀螺仪或其他测量仪器的组合来测量和报告车辆的运动数据(例如速度、加速度、运动方向、速度、角速率等)的电子装置。

车辆控制器130控制车辆的物理运动,例如,加速、改变方向、启动、停止等。车辆控制器130包括用于控制加速器、制动器、方向盘等的机械装置。车辆计算系统120向车辆控制器130连续地提供控制信号,从而使自主车辆沿着选定的路线行驶。

车辆计算系统120执行各种任务,包括处理由传感器收集的数据以及从在线HD地图系统110接收的地图数据。车辆计算系统120还处理用于发送至在线HD地图系统110的数据。车辆计算系统的详情在图2中示出并且结合图2进一步描述。

车辆计算系统120与在线HD地图系统110之间的交互通常经由网络(例如,经由因特网)执行。网络实现车辆计算系统120与在线HD地图系统110之间的通信。在一个实施方式中,网络使用标准通信技术和/或协议。通过网络交换的数据可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来表示。此外,可以使用诸如安全套接字层(SSL)、传输层安全性(TLS)、虚拟专用网络(VPN)、互联网协议安全性(IPsec)等常规加密技术来将所有或一些链接加密。在另一实施方式中,代替上述技术或者除了上述技术之外,实体可以使用定制和/或专用数据通信技术。

图2示出了根据实施方式的车辆计算系统的系统架构。车辆计算系统120包括感知模块210、预测模块215、规划模块220、控制模块225、本地HD地图存储器275、HD地图系统接口280、路线生成模块260和HD地图应用编程接口(API)205。车辆计算系统120的各种模块处理各种类型的数据,包括传感器数据230、行为模型235、路线240和物理约束245。在其他实施方式中,车辆计算系统120可以具有更多或更少的模块。被描述为由特定模块实现的功能可以由其他模块实现。

感知模块210从车辆150的传感器105接收传感器数据230。这包括由汽车的摄像装置、LIDAR、IMU、GPS导航系统等收集的数据。感知模块210使用传感器数据来确定车辆周围有什么对象、车辆行驶的道路的详情等。感知模块210处理传感器数据230以填充存储传感器数据的数据结构并且将该信息提供给预测模块215。

预测模块215使用被感知的对象的行为模型来解释由感知模块提供的数据,以确定对象是否正在移动或者可能会移动。例如,预测模块215可以确定表示道路标志的对象不可能移动,而被识别为车辆、人等的对象正在移动或者可能会移动。预测模块215使用各种类型的对象的行为模型235来确定对象是否可能移动。预测模块215将各种对象的预测提供给规划模块220,以规划车辆接下来需要采取的后续动作。

规划模块220从预测模块215接收描述车辆的周围环境的信息、确定车辆的目的地的路线240以及车辆到达目的地应该采取的路径。规划模块220使用来自预测模块215的信息和路线240来规划车辆在短时间间隔内(例如,在接下来的几秒内)需要采取的一系列动作。在实施方式中,规划模块220将动作的序列指定为表示车辆接下来要经过的附近位置的一个或更多个点。规划模块220将规划的详情提供给控制模块225,规划包括车辆将采取的动作的序列。规划可以确定车辆的后续动作,例如,车辆是否执行车道变换、转向、通过提高速度来加速或者减慢速度等。为了处理来自车辆的周围环境的实时数据,规划模块220还包括车道运行时间处理模块285,以确定车辆是否可以安全地跨越车道边界并在车道边界之外的表面上行驶。下面参照图9A至图9B进一步描述导航车道边界。在一个实施方式中,基于自主车辆的周围环境,预测模块215检测将迫使自主车辆离开车道的紧急情况并且向规划模块220通知该紧急情况。车道运行时间处理模块确定车辆可以安全地行驶在车道边界之外并且向控制模块225发信号。

控制模块225基于从规划模块220接收的规划来确定用于发送至车辆的控制器130的控制信号。例如,如果车辆当前在点A处并且该规划指定车辆应该接着驶向附近的点B处,则控制模块225确定用于控制器130的控制信号,该控制信号将使车辆以安全和平稳的方式(例如,不采用任何急转弯或者从A点到B点的锯齿形路径)从A点驶向B点。车辆采用的从A点驶向B点的路径可以取决于车辆的当前速度和方向以及B点相对于A点的位置。例如,如果车辆的当前速度高,则与缓慢行驶的车辆相比,车辆可以采用更宽的转弯。

控制模块225还接收物理约束245作为输入。这些包括特定车辆的物理能力。例如,具有特定品牌和型号的汽车可能能够安全地进行诸如加速和转动之类的某些类型的车辆运动,而具有不同品牌和型号的另一辆车可能无法安全地进行这些车辆运动。控制模块225在确定控制信号时结合这些物理约束。控制模块225将控制信号发送至车辆控制器130,该控制信号使车辆执行指定的动作序列,使车辆按规划移动。每隔几秒不断重复上述步骤,使车辆沿着为车辆规划的路线安全地行驶。

包括感知模块210、预测模块215和规划模块220的车辆计算系统120的各种模块接收地图信息以执行其各自的计算。车辆100将HD地图数据存储在本地HD地图存储器275中。车辆计算系统120的模块使用HD地图API 205与地图数据交互,HD地图API 205提供一组应用程序编程接口(API),该API可以由用于访问地图信息的模块调用。HD地图系统接口280允许车辆计算系统120经由网络(附图中未示出)与在线HD地图系统110交互。本地HD地图存储器275以HD地图系统110指定的格式存储地图数据。HD地图API 205能够处理由HD地图系统110提供的地图数据格式。HD地图API 205为车辆计算系统120提供用于与HD地图数据交互的接口。HD地图API 205包括若干API,若干API包括定位API 250、地标地图API 255、路线API 265、3D地图API 270、地图更新API 285等。

例如,当车辆启动时以及当车辆沿着路线移动时,定位API 250确定车辆的当前位置。定位API 250包括其确定车辆在HD地图内的准确位置的定位API。车辆计算系统120可以将该位置用作准确的相对定位,以进行其他查询,例如,本文进一步描述的特征查询、可导航空间查询和占用地图查询。定位API接收包括下述中的一个或更多个的输入:由GPS提供的位置、由IMU提供的车辆运动数据、LIDAR扫描器数据和相机图像。定位API以纬度和经度坐标返回车辆的准确位置。与用作输入的GPS坐标相比,由定位API返回的坐标更准确,例如,定位API的输出可以具有5-10cm的精度范围。在一个实施方式中,车辆计算系统120调用定位API以使用扫描器数据(例如,以10Hz的频率)基于LIDAR来周期性地确定车辆的位置。如果GPS/IMU数据在该速率下可用,则车辆计算系统120可以调用定位API以更高的速率(例如,60Hz)确定车辆位置。车辆计算系统120存储位置历史记录作为内部状态,以提高后续定位调用的准确性。位置历史记录存储从汽车熄火/停止的时间点起的位置的历史。定位API250包括定位路线API,其基于HD地图来生成指定车道的准确路线。定位路线API通过第三方地图将从源到目的地的路线作为输入,并且基于HD地图来生成高精度路线,该高精度路线表示为沿着输入路线上的可导航车道的连通图。

地标地图API 255提供对车辆周围的世界的几何和语义描述,例如,对车辆当前行驶的车道的各个部分的描述。地标地图API 255包括允许基于地标地图来进行查询的API,例如,提取车道API和提取特征API。提取车道API提供相对于车辆和提取特征API的车道信息。提取车道API接收位置(例如,使用车辆的纬度和经度指定的车辆的位置)作为输入,并且返回相对于输入位置的车道信息。提取车道API可以指定距离参数,该距离参数指示相对于检索到车道信息的输入位置的距离。提取特征API接收标识一个或更多个车道元素的信息,并且返回相对于所指定的车道元素的地标特征。对于每个地标,地标特征包括特定于地标的类型的空间描述。

3D地图API 265提供对存储在本地HD地图存储器275中的道路和道路周围的各种物理对象的空间三维(3D)表示的有效访问。3D地图API 265包括提取可导航表面API和提取占用网格API。提取可导航表面API接收一个或更多个车道元素的标识符作为输入,并且返回所指定的车道元素的可导航边界。提取占用网格API接收位置(例如车辆的纬度和经度)作为输入,并且返回描述道路表面的占用的信息以及在HD地图中该位置附近的可用的所有对象。描述占用的信息包括考虑在地图中占据的所有位置的分层体积网格。占用网格包括在可导航区域(例如,在路缘和凸起处)附近的高分辨率的信息以及在较不重要的区域(例如,在路缘外的树木和墙壁)中的相对低分辨率的信息。提取占用网格API可以用于检测障碍物并在必要时改变方向。

3D地图API 265还包括地图更新API 285,例如,下载地图更新API和上传地图更新API。下载地图更新API接收规划路线标识符作为输入,并且下载与所有规划路线或特定规划路线相关的数据的地图更新。上传地图更新API将由车辆计算系统120收集的数据上传至在线HD地图系统110。这允许在线HD地图系统110基于由沿着各种路线行驶的车辆的传感器观察到的地图数据的变化来使存储在在线HD地图系统110中的HD地图数据保持最新。

路线API 270返回在车辆沿着路线行驶时包括源与目的地之间的完整路线以及路线的各部分的路线信息。3D地图API 265允许查询HD地图。路线API 270包括添加规划路线API和获取规划路线API。添加规划路线API将描述所规划的路线的信息提供给在线HD地图系统110,使得描述相关HD地图的信息可以由车辆计算系统120下载并保持最新。添加规划路线API接收下述作为输入:使用以纬度和经度表示的多段线指定的路线;以及指定在其后可以删除路线数据的时间段的生存时间(TTL)参数。因此,添加规划路线API允许车辆指示该车辆在不久的将来规划要采用的路线作为自主行程。添加规划路线API将路线与HD地图对准,记录路线及其14L值,并且确保存储在车辆计算系统120中的路线的HD地图数据是最新的。获取规划路线API返回规划路线的列表,并且提供描述由路线标识符标识的路线的信息。

地图更新API 285针对本地HD地图存储器275和HD地图存储器165二者管理存储在在线HD地图系统110中的与地图数据的更新有关的操作。因此,车辆计算系统120中的模块调用地图更新API 285,以根据需要将数据从在线HD地图系统110下载至车辆计算系统120,以存储在本地HD地图存储器275中。地图更新API 285还允许车辆计算系统120确定由车辆传感器105监测的信息是否指示由在线HD地图系统110提供的地图信息中的差异,并且将数据上传至在线HD地图系统110,该数据可以导致在线HD地图系统110更新存储在HD地图存储器165中的地图数据,该地图数据被提供给其他车辆150。

路线生成模块260计算并确定从源地址(或源位置)行驶至目的地地址(或目的地位置)的最佳路线。路线生成模块的详情在结合图16描述的图15中示出。可以在在线HD地图系统110中执行路线生成模块260的一些功能。因此,在线HD地图系统110可以保存对应的路线生成模块260,该对应的路线生成模块260与保存在车辆计算系统120中的路线生成模块260交互。

下面描述的图4还示出了根据实施方式的车辆计算系统的HD地图API中的各种指令层。不同的车辆的制造商具有用于从车辆传感器105接收信息和用于控制车辆控制器130的不同指令。此外,不同的供应商提供对自动驾驶能力的不同计算平台,例如收集和分析车辆传感器数据。用于自主车辆的计算平台的示例包括诸如NVIDIA、QUALCOMM和INTEL的平台提供商。这些平台提供由自主车辆制造商在制造自主车辆时使用的功能。车辆制造商可以将任何一个或若干个计算平台用于自主车辆。在线HD地图系统110提供用于基于特定于车辆的制造商的指令和特定于车辆的供应商特定平台的指令来处理HD地图的库。该库提供对HD地图数据的访问,并且允许车辆与在线HD地图系统110交互。

如图3所示,在实施方式中,HD地图API 205被实现为包括车辆制造商适配器310、计算平台适配器320和公共HD地图API层330的库。公共HD地图API层330包括可以跨多个车辆计算平台和车辆制造商使用的通用指令。计算平台适配器320包括特定于每个计算机平台的指令。例如,公共HD地图API层330可以调用计算平台适配器320以从特定计算平台支持的传感器接收数据。车辆制造商适配器310包括特定于车辆制造商的指令。例如,公共HD地图API层330可以调用由车辆制造商适配器310提供的功能,以将特定控制指令发送至车辆控制装置130。

在线HD地图系统110存储用于多个计算平台的计算平台适配器320和用于多个车辆制造商的车辆制造商适配器310。在线HD地图系统110确定特定自主车辆的特定车辆制造商和特定计算平台。在线HD地图系统110选择用于特定车辆制造商的车辆制造商适配器310以及用于该特定车辆的特定计算平台的计算平台适配器320。在线HD地图系统110将所选择的车辆制造商适配器310和所选择的计算平台适配器320的指令发送至该特定自主车辆的车辆计算系统120。该特定自主车辆的车辆计算系统120安装所接收的车辆制造商适配器310和计算平台适配器320。车辆计算系统120周期性地检查在线HD地图系统110是否具有对所安装的车辆制造商适配器310和计算平台适配器320的更新。如果与安装在车辆上的版本相比可以获得更近期的更新,则车辆计算系统120请求并接收最新更新并且进行安装。

HD地图系统架构

图4示出了根据实施方式的HD地图系统的系统架构。在线HD地图系统110包括地图创建模块410、地图更新模块420、地图数据编码模块430、负荷平衡模块440、地图精度管理模块450、车辆接口模块160和HD地图存储器165。在线HD地图系统110的其他实施方式可以包括比图4中所示更多或更少的模块。指示由特定模块执行的功能可以由其他模块实现。在实施方式中,在线HD地图系统110可以是包括多个处理器的分布式系统。

地图创建模块410根据从沿着各种路线行驶的若干车辆收集的地图数据来创建地图。地图更新模块420通过从最近沿着地图信息改变的路线行驶的车辆接收更近期的信息来更新先前计算的地图数据。例如,如果某些道路标志已经改变或者车道信息由于区域中的建设的结果而改变,则地图更新模块420相应地更新地图。地图数据编码模块430对地图数据进行编码以便能够有效地存储数据以及将所需的地图数据有效地发送至车辆150。负荷平衡模块440平衡车辆之间的负荷以确保从车辆接收数据的请求均匀地分布在不同的车辆上。即使从各个车辆接收的信息可能不具有高精度,地图精度管理模块450仍利用各种技术来保持地图数据的高精度。

图5示出了根据实施方式的HD地图的组成部分。HD地图包括若干地理区域的地图。地理区域的HD地图510包括地标地图(LMap)520和占用地图(OMap)530。地标地图包括描述车道的信息,包括车道的空间位置以及关于每个车道的语义信息。车道的空间位置包括在纬度、经度和高度方面高精度(例如,等于或低于10cm的精度)的几何位置。车道的语义信息包括诸如方向、速度、车道类型(例如,直行车道、左转车道、右转车道、出口车道等)的限制、对向左横穿、连接至其他车道的限制等等。地标地图还可以包括描述停止线、让行线、人行横道的空间位置、可安全导航的空间、减速带的空间位置、路缘和道路标志的信息,道路标志包括与驾驶限制相关的所有标志的空间位置和类型。在HD地图中描述的道路标志的示例包括停车标志、交通灯、限速、单行、不能进入、让行(车辆、行人、动物)等。

占用地图530包括道路的空间三维(3D)表示以及道路周围的所有物理对象。存储在占用地图530中的数据在本文中也称为占用网格数据。3D表示可以与指示对象存在于该位置的可能性的置信度分数相关联。占用地图530可以以多种其他方式表示。在一个实施方式中,占用地图530被表示为覆盖表面的3D网格几何形状(三角形的集合)。在另一实施方式中,占用地图530被表示为覆盖表面的3D点的集合。在另一实施方式中,以5-10cm分辨率的3D单元格的体积网格来表示占用地图530。每个单元格指示在该单元格处是否存在表面,并且如果存在表面,则指示表面沿其定向的方向。

与地标地图520相比,占用地图530可能占用大量存储空间。例如,占用地图530可能会使用1GB/英里的数据,从而产生占用4x1015字节或4拍字节(petabyte)的美国地图(包括4百万英里的道路)。因此,在线HD地图系统110和车辆计算系统120使用数据压缩技术以能够存储和传输地图数据,从而降低存储和传输成本。因此,本文中公开的技术使得自主车辆的自动驾驶成为可能。

在一个实施方式中,HD地图不需要或依赖于通常包括在地图中的数据,例如地址、道路名称、对地址进行地理编码的能力以及计算地名或地址之间的路线的能力。车辆计算系统120或在线HD地图系统110访问其他地图系统(例如谷歌地图(GOOGLE MAP))以获得该信息。因此,车辆计算系统120或在线HD地图系统110从诸如谷歌地图的工具接收进入路线的导航指令,并且基于HD地图信息将信息转换成路线。

HD地图中的地理区域

在线HD地图系统110将物理区域划分成地理区域并且存储每个地理区域的单独表示。每个地理区域表示由几何形状界定的连续物理区域,例如,正方形、矩形、四边形或一般多边形。在实施方式中,在线HD地图系统110将物理区域划分成相同大小的地理区域,而与存储每个地理区域的表示所需的数据量无关。在另一实施方式中,在线HD地图系统110基于表示地理区域所需的数据量将物理区域划分成不同大小的地理区域。表示该区域所需的数据的示例包括但不限于该区域所包含的几何区域、该区域中的交通特征的集中度或者该区域中的人口密度。如上所述,在一些实施方式中,基于地理区域的交通特征的集中度来划分地理区域。例如,具有大量交通特征的物理区域可以被划分成多个地理区域,而具有较少交通特征的相同大小的物理区域可以被表示为单个地理区域。交通特征包括但不限于一个或更多个交通标志、一个或更多个交通灯、一个或更多个行车道以及一个或更多个限速的变化。

在一些实施方式中,交通特征的组合不仅可以描述地理区域的特征的集中度,还可以描述区域的复杂度。例如,包含多个街道、限速有变化的区域可能比具有相同数目的街道、限速没有变化但是交通灯更多的第二区域具有更少的交通特征。在这种情况下,第二街道可能更集中,但是第一街道更复杂,导致该区域在物理上小于第二区域。在一些实施方式中,特征之间的相对复杂度排名可能因HD地图而异。因此,在该实施方式中,在线HD地图系统110基于存储对与用于生成HD地图相关的物理区域的各种元素所需的数据量的估计来确定地理区域的大小。

在实施方式中,在线HD地图系统110使用包括各种属性的对象或数据记录(例如,使用纬度和经度坐标的边界框以及地标特征和占用网格数据的集合)来表示地理区域,各种属性包括地理区域的唯一标识符、地理区域的唯一名称、地理区域的边界的描述。

图6A至图6B示出了根据实施方式的在HD地图中限定的地理区域。图6A示出了正方形地理区域610a。在其他实施方式中,地理区域可以被划分成不同形状的图块。图6B示出了两个相邻的地理区域610a和610b。在线HD地图系统110以地理区域的表示来存储数据,当车辆越过地理区域边界行驶时,该地理区域的表示允许从一个地理区域平滑过渡至另一个地理区域。

根据实施方式,如图6所示,每个地理区域具有围绕该地理区域的预定宽度的缓冲区。缓冲区包括围绕地理区域的所有4条边的冗余地图数据(在地理区域由矩形界定的情况下)。图6A示出了地理区域610a周围50米的缓冲区的边界620以及地理区域610a周围100米的缓冲区的边界630。当车辆越过该缓冲区内的阈值距离时,车辆计算系统120将车辆的当前地理区域从一个地理区域切换至相邻的地理区域。例如,如图6B所示,车辆在地理区域610a中的位置650a处开始。车辆沿着路线行驶以到达位置650b,在650b处车辆越过地理区域610的边界但是停留在缓冲区的边界620内。因此,车辆计算系统120继续使用地理区域610a作为车辆的当前地理区域。一旦车辆在位置650c处越过缓冲区的边界620,车辆计算系统120就将车辆的当前地理区域从610a切换至地理区域610b。由于车辆沿着紧密跟踪地理区域的边界的路线行驶,因此缓冲区的使用阻止了车辆的当前地理区域的快速切换。

HD地图中的车道表示

HD地图系统100表示HD地图中的街道的车道信息。尽管本文中描述的实施方式涉及街道,但是该技术适用于车辆可以行驶的高速公路、小巷、大道、林荫大道或任何其他路径。HD地图系统100使用车道作为参考框架,以用于路线选择的目的和车辆的定位。由HD地图系统100表示的车道包括明确标记的车道,例如,白色和黄色条纹的车道;隐性车道,例如,没有线或路缘但是双向行驶的乡村道路;以及充当车道的隐性路径,例如,当转向的汽车从另一车道进入车道时行驶的路径。HD地图系统100还存储关于车道的信息,例如,诸如相对于车道的道路标志和交通灯的地标特征、用于障碍物检测的相对于车道的占用网格以及相对于车道的可导航空间,因此在车辆意外地必须移出车道时的紧急情况下车辆可以有效地规划/做出反应。因此,HD地图系统100存储车道的网络的表示,以允许车辆规划源与目的地之间的合法路径,并且添加用于实时感测和车辆的控制的参考的框架。HD地图系统100存储信息并提供API,API允许车辆确定车辆当前所在的车道、相对于车道几何形状的精确车辆位置以及相对于车道和相邻和连接车道的所有相关特征/数据。

图7示出了根据实施方式的HD地图中的车道表示。图7示出了交通路口处的车辆710。HD地图系统为车辆提供对与车辆的自动驾驶相关的地图数据的访问。这包括例如与车道相关联的、但是可能不是与车辆最接近的特征的特征720a和720b。因此,HD地图系统100存储以车道为中心的数据的表示,其表示车道与特征的关系,使得车辆可以有效地提取给定车道的特征。

HD地图系统100将车道的各部分表示为车道元素。车道元素指定车道的边缘界和各种约束,包括车辆可以在车道元素内行驶的合法方向、车辆可以在车道元素内行驶的速度、车道元素是否仅用于左转向或者仅用于右转向,等等。HD地图系统100将车道元素表示为单个车道的连续几何部分。HD地图系统100存储表示包括下述的车道元素的对象或数据结构:表示车道的几何边界的信息;沿着车道的行驶方向;用于在车道中行驶的车辆限制,例如限速、与包括驶入和驶出车道的连接车道的关系;终止限制,例如,车道是否在停止线、让行标志或减速带处停止;以及与自动驾驶相关的道路特征(例如交通灯位置、道路标志位置等)的关系。

由HD地图系统100表示的车道元素的示例包括:高速公路上的一条右车道、道路上的一条车道、左转车道、从左转车道进入另一车道的转弯、从匝道进入的汇入车道、匝道上的出口车道以及行车道。HD地图系统100表示使用两个车道元素的单车道道路,每个方向一个车道元素。HD地图系统100表示与单车道道路类似的共享的中间转向车道。

如上所述,车道元素被存储为聚合的车道元素图的片段。在车道元素图中,各个车道元素被表示为图上的节点,该节点通过边连接到其他节点,该其他节点表示图的相邻车道元素。连接两个车道元素的边指示车辆可以合法地穿过的两个车道元素之间的物理连接。例如,两个车道元素之间的边可以表示车辆能够改变车道的白色虚线,但是不表示车辆不能合法地穿过的中央隔离带。在一些实施方式中,车辆不能穿过的车道线之间的边界具有与车道元素图的上述边不同的表示。另外,在地理区域内,车道元素从当前车道元素过渡到一个或更多个后续车道元素,并且车道元素可以例如在车辆可以从其当前车道左转、右转或继续直行(这些均为车道元素)的交叉路口处连接到多个驶出车道元素。类似地,越过两个地理区域的边界并且从当前地理区域过渡到相邻地理区域,当前地理区域的车道元素也转变为与相邻地理区域的连接车道元素。

图8A至图8B示出了根据实施方式的HD地图中的车道元素以及车道元素之间的关系。图8A示出了道路中的T形连接的示例,该示例示出了车道元素810a,该车道元素810a经由转向车道810b被连接至车道元素810c并且经由转向车道810d被连接至车道810e。图8B示出了道路中的Y形连接的示例,该示例示出了标记810f,标记810f被直接连接至车道810h并且经由车道810g被连接至车道810i。HD地图系统100确定从源位置到目的地位置的路线,作为可以穿过以从源位置到达目的地位置的连接的车道元素的序列。

可导航表面边界实现

图9A示出了根据实施方式的HD地图中的车道边界和可导航表面区域的表示。可导航表面边界描述了超出车道的边界但是车辆可以在其内安全地导航而不会损坏车辆的物理区域。给定车道具有两个车道边界——第一车道边界910和第二车道边界920。在每个车道边界之外并且在多段线表示内是可导航表面的区域。更具体地,在第一车道边界910与第一可导航表面的第一多段线930之间存在第一可导航表面950,自主车辆可以在该第一可导航表面950上行驶。类似地,在第二车道边界920与第一可导航表面的第二多段线940之间存在第二可导航表面960,自主车辆可以在该第二可导航表面960上行驶。在一些实施方式中,可导航表面区域可以指道路上的路肩、与车道相邻的人行道、或者与车道相邻的一段未铺砌的地面。图9B示出了具有第一可导航表面边界和第二可导航表面边界的车道元素的附加表示。类似于第一可导航表面边界,第二可导航表面边界由第二可导航表面边界的第一多段线970和第二可导航表面边界的第二多段线980表示。

图10示出了根据实施方式的可导航表面模块460的系统架构。可导航表面模块460生成高清地图内的可导航表面的表示,并且响应于某些环境条件利用这些可导航表面来操纵自主车辆。可导航表面模块460的系统架构包括障碍物检测模块1030和可导航表面边界检测模块1040。在其他实施方式中,可导航表面模块460可以包括更多或更少的模块。指示由特定模块执行的功能可以由其他模块执行。可导航表面模块460的模块中的一些可以被存储在在线HD地图系统460中。

障碍物检测模块1030执行图像分析以从高清地图内的一组结构中识别车道内的障碍物。在一些实施方式中,结构包括诸如栅栏、安全防护栏、柱、墙壁、路缘、沟渠或排水渠、山丘、建筑物和树木之类的特征。经受图像分析的图像可以由一个或更多个固定的、定位的传感器或者由被连接至与在线HD地图系统110连接的其他车辆的传感器捕获。下面参照图12进一步描述用于确定结构是否为障碍物的图像分析处理。另外,图像分析识别每个结构并且将每个结构与一种类型的表面(例如路面、砾石或尘土)相关联。

根据所识别的障碍物,可导航表面边界检测模块1020生成可导航表面的多段线表示。下面参照图13进一步描述用于生成表示可导航表面的外边界的多段线表示的处理。使用多段线表示,车辆计算系统确定是否在可导航表面上行驶。在一些实施方式中,该确定考虑了车辆在可导航表面上行驶的难度水平。基于该确定,在特定条件下,车辆计算系统可以将在可导航表面上行驶的控制信号发送至自主车辆的车辆控制器130。下面参照图14进一步描述用于在高清地图中实现可导航表面边界的处理。

图11描述了根据实施方式的车辆计算系统120在高清地图中生成并实现可导航表面边界的处理。车辆计算系统接收1110地理区域的高清地图,该高清地图具有该地理区域内的对象的3D表示。根据这些3D表示,障碍物检测模块1030从高清地图的地理区域内的一组结构中识别1115高清地图内的表示车辆的障碍物的结构。对于被识别为障碍物的结构中的每个,车辆计算系统120基于该结构与第一车道边界910或第二车道边界920的垂直距离来识别1120结构上的一组点,并且生成1125表示通过先前确定的点的可导航表面边界的多段线。多段线被存储1130在高清地图内,作为特定车道的可导航表面边界的表示。对于存储的多段线中的每个,车辆计算系统确定1135自主车辆是否可以在可导航表面上行驶,并且基于该确定,向车辆控制器发信号1140以在可导航表面边界内行驶或者继续在当前车道内行驶。

图12描述了根据实施方式的用于准确检测障碍物的处理。障碍物检测模块1010接收1210地理区域的三维表示,例如,地理区域的点云表示,并且识别1215在高于阈值高度的高度处的结构的3D表示上的一组点。在一些实施方式中,阈值高度由自主车辆的用户手动设定。在其他实施方式中,基于自主车辆的当前周围环境来确定阈值高度。根据所识别的点,障碍物检测模块1010访问1220与结构上的点对应的一个或更多个捕获图像,并且基于这些图像将对象分类1225为障碍物。在一些实施方式中,基于机器学习的对象识别方法用于将结构分类为各种类型的障碍物。在实施方式中,通过提供包括识别图像中的结构的图像和标签的经标记的训练数据集,使用监督学习来训练基于机器学习的对象识别。

图13描述了根据实施方式的用于生成可导航表面边界的多段线表示的处理。可导航表面边界检测模块1020从高清地图的地理区域中选择1310自主车辆当前正在上面行驶的车道。可导航表面边界模块1020选择1315车道内的一个或更多个结构,并且确定车道边界与结构之间的垂直距离。如果在远离车道边界行驶时遇到多个结构,则可导航表面边界模块1020选择距车道边界最近的结构,因为这是车辆驶离车道时将遇到的结构。对于每个所选结构,可导航表面边界模块1020识别1320与边界具有最小垂直距离的点,并且生成1325通过所识别的多个障碍物的点的多段线。导航表面边界检测模块1020生成通过来自剩余的所选障碍物的识别点和相邻的识别点的1330多段线,并且将多段线存储1330在高清地图内作为可导航表面边界。

在多段线上的每个点处,可导航表面边界检测模块确定1335高清地图内的难度水平分数,该难度水平分数描述自主车辆在障碍物上行驶将经历的难度。在一些实施方式中,难度水平考虑了自主车辆的品牌和型号。在其他实施方式中,难度水平与可导航表面的类型和可导航表面边界上的结构(即,物理特性、几何尺寸和障碍物的类型)相关联。例如,铺砌路肩可以与低于砾石路肩的难度水平相关联。另外,作为结构的平滑斜坡与路缘相比,在其上驾驶的难度较低,这可以导致与路缘相关联的更高难度。此外,在路缘上行驶的难度基于路缘的高度来确定。在一些实施方式中,难度水平还考虑到车辆损坏的风险。例如,具有路缘的人行道比没有路缘的人行道具有更高的难度,因为撞击路缘可能会损坏车辆。此外,在确定难度水平时,损坏的风险必须通过替选选项(例如撞击车道中的障碍物)进行平衡。可导航表面边界检测模块将难度水平存储1340在高清地图系统内的沿多段线的各个点处。

图14描述了根据实施方式的用于实现可导航表面边界的处理。车道运行时间处理模块280在高清地图中检索1410高清地图的地理区域,并且识别1415自主车辆当前正在行驶的车道元素。对于所识别的车道元素,车道运行时间处理模块280访问1420可导航表面边界。在紧急情况下,车道运行时间处理模块280接收1420紧急情况的指示。紧急情况是指可能意外地迫使自主车辆驶离其车道的情有可原的情况,例如,突然转向失控的另一辆车、阻挡车道的大块碎片或者道路中间的洞。车辆通过经由车辆的传感器检测车道状况并且分析图像来检测紧急情况,例如,检测车道内阻碍车道继续在车道中行驶的障碍物。车辆确定该车辆是否可以改变车道以移动至相邻车道。如果车辆确定相邻车道被阻挡或者如果没有相邻车道,则车辆确定在车道的可导航表面上行驶是否安全(如果可导航表面可用的话)。

在接收到紧急情况的指示之后,车道运行时间处理模块280基于存储在多段线的点内的难度水平来确定1425车辆是否可以在可导航表面上安全地行驶。如果确定车辆在可导航表面上行驶是安全的,则车道运行时间处理模块280向自主车辆的车辆控制器发信号,以移出当前车道并在可导航表面边界内行驶。车辆传感器继续监测车道状况以确定从可导航表面返回车道是否安全。如果车辆计算系统120确定车道状况是安全的,则车辆计算系统120向车辆控制器130发送控制信号,使车辆返回至与可导航表面边界相关联的车道。在一些实施方式中,车道运行时间处理模块280连续监测存储在多段线内的难度水平,并且将该难度水平与在车道内确定的紧急程度进行比较,以确定返回车道是否更安全。

路线规划和生成

图15示出了根据实施方式的路线生成模块260的系统架构。路线生成模块260存储一组部分路线并且使部分路线增长以获得最终路线。路线生成模块260的系统架构包括低分辨率路线生成器1510、部分路线存储器1520、部分路线生成模块1530、地理区域存储器1540、车道元素选择模块1550和路线误差分析模块1560。在其他实施方式中,路线生成模块260可以包括更多或更少的模块。指示由特定模块执行的功能可以由其他模块执行。路线生成模块260的模块中的一些可以被存储在在线HD地图系统110中。

低分辨率路线生成器1510生成从源到目的地的低分辨率路线。在实施方式中,低分辨率路线生成器1510调用基于低分辨率地图的现有地图服务以获得低分辨率路线。地图服务可以提供由人类解释以用于导航目的的低分辨率地图。因此,这些低分辨率地图是人类可导航的地图。在一些实施方式中,人类可导航地图基于纬度/经度,并且包括在HD地图中可能不可用的信息,例如,与纬度/经度坐标相关联的地址、地点的人类可读名称、地点的边界(例如公园边界)、用于将地址转换成纬度/经度的地理编码、用于将纬度/经度转换成最近的物理地址的反向地理编码以及两个地址之间的路线。相比之下,HD地图包括人类导航地图中可能不包括的信息,例如,包括车道线边界的对车道的3D描述、与驾驶限制相关的标志(例如限速、方向、通行权、停止标志)的3D位置、以及用于避障功能和定位的对世界的3D描述。因此,根据低分辨率地图生成的低分辨率路线包括用于在人类可理解的地图呈现上绘制路线的纬度(Lat)和经度(Lng)值的列表。此外,低分辨率地图具有低分辨率和低精度,例如,精度通常为约5-10m。相反,由路线生成模块260生成的路线具有厘米级精度和分辨率,以能够将自主车辆从源安全地引导至目的地。

部分路线存储器1520维护存储部分路线的数据结构。数据结构可以被存储在存储器中以便更快地访问。在实施方式中,用于存储部分路线的数据结构是支持添加和删除操作的队列数据结构。添加操作允许软件模块向队列添加元素,删除操作将该元素提供给调用删除操作的软件模块并且将该元素从队列数据结构中移除。在其他实施方式中,不同的数据结构(例如树形数据结构)可以用于存储部分路线。

部分路线生成模块1530从部分路线存储器1520访问潜在部分路线(例如,路线假设),并且通过将车道元素添加至所访问的部分路线来使部分路线增长。因此,部分路线生成模块1530生成比所访问的原始部分路线长的新的部分路线。部分路线生成模块1530可以修剪部分路线中的一些或者将部分路线中的一些添加回部分路线存储器1520。

地理区域存储器1540存储描述从在线HD地图系统110获得的地理区域的数据。车辆的车辆计算系统120从在线HD地图系统110检索这些地理区域。地理区域存储器1540存储描述地理区域的数据。参照图6A至图6B描述了地理区域。地理区域包括与通过地理区域的街道或道路对应的车道元素。在实施方式中,车道元素如车道元素图那样连接,其中如果车辆可以从车道元素L1驾驶至L2,则车道元素(L1,L2)在L1与L2之间具有边。每条边可以与描述两个车道之间的关系的边类型相关联。例如,特定边类型可以指示两个车道是平行的并且属于不同的车道,而另一个边类型可以指示两个车道是作为同一车道的一部分的连续车道。地理区域存储车道元素图的子集,该子集对应于与地理区域交叠的车道。

车道元素选择模块1550选择可以被添加至部分路线以使部分路线增长的车道元素。在实施方式中,车道元素选择模块1550选择与部分路线中的车道元素中的至少一个相邻的车道元素,使得车辆可以合法地从部分路线的车道元素驾驶至所选择的车道元素或者从所选择的车道元素驾驶至部分路线的车道元素。因此,车道元素选择模块1550确定哪些车道元素与当前部分路线兼容,并且将这些元素提供给部分路线生成模块以用于使当前部分路线增长。

路线误差分析模块1560通过计算所生成的路线与低分辨率路线的偏差来分析通过将新的车道元素添加到现有路线而生成的路线,以确保所生成的路线对于从源至目的地的行驶是有效的而不是不正确的。路线误差分析模块1560确定阈值误差值,该阈值误差值表示沿着路线的点的误差容限。如果存在偏离低分辨率路线超过阈值的一个或更多个点,则路线误差分析模块1560确定部分路线是不可接受的。路线误差分析模块1560可以通过对具有已知路线的一组数据的反复试验来确定阈值。替选地,路线误差分析模块1560可以从用户(例如,系统管理员)接收阈值。在另一实施方式中,路线误差分析模块1560从用户接收阈值的初始估计,然后基于包括被验证为准确的现有路线的测试数据以及被验证为不正确的现有路线来调整该估计。

图16描述了根据一个实施方式的车辆计算系统120生成高清地图路线的处理。车辆计算系统120确定1610用于从源地址行驶到目的地地址的低分辨率路线。在实施方式中,从第三方地图提供者(例如,从用作网络服务的谷歌地图(GOOGLE MAPS))接收低分辨率路线。在一个实施方式中,低分辨率路线包括一个或更多个地理编码指令的有序集合,例如从物理地址导出的纬度和经度坐标。目的地地址可以由自主车辆的用户提供。术语“街道”包括车辆可以在上面行驶的不同类型的路径,例如,高速公路、道路、大道、林荫大道、小巷、环岛等。

在确定1610低分辨率路线之后,车辆计算系统120从在线HD系统110接收1615基于低分辨率路线的一个或更多个地理区域。所接收的地理区域覆盖低分辨率路线通过的地理区域。因此,车辆计算系统120接收用于确定从源到目的地的高分辨率路径的所有必要数据。在一些实施方式中,车辆计算系统120检查先前是否检索到并且在地理区域存储器1520中存储了任何所需的地理区域。因此,车辆计算系统120仅从在线HD地图系统110接收先前没有被检索到并且没有被存储在地理区域存储器1540中的地理区域。

车辆计算系统120选择1620车道元素作为起点,并且构建车道元素图的子集,该子集使用检索到的地理区域集内找到的车道元素表示从源地址到目的地地址的路线。在一些情况下,如果当前位置和目的地二者都位于相同区域中,则单个地理区域可以包含低分辨率路线。在一些实施方式中,车辆计算系统120同时检索地理区域,并且基于目前为止已经检索到的地理区域构建部分路线。在替选实施方式中,不是车辆计算系统基于所接收的地理区域来生成路线,而是在线HD系统120使用这些所需的地理区域从车道元素图来构建路线并且将路线传递至车辆计算系统120以供执行。

部分路线生成模块1530生成1625潜在部分路线集,潜在部分路线是用于从检索到的地理区域从源地址行驶到目的地地址的路线的假设。部分路线生成模块1530将所生成的潜在部分路线存储在队列数据结构中,该队列数据结构被存储在部分路线存储器1520中。尽管以下描述使用队列作为用于存储部分路线的数据结构,但是其他实施方式可以使用其他数据结构。在实施方式中,部分路线生成模块1530从路线的端点中的一个(例如,源或目的地)开始,并且从该端点构建越来越长的潜在部分路线。部分路线生成模块1530添加一些初始潜在部分路线,这些初始潜在部分路线对应于与终点相邻的车道元素并且允许在基于低分辨率路线确定的方向上移动。在一个实施方式中,每当识别出附加的车道元素时,队列内的车道元素被更新。例如,如果车道元素A被存储在队列中并且分叉成两个车道元素A’和A”,A’和A”二者都具有低于阈值误差的误差,则将车道元素A从队列中移除并且用A’和A”代替。阈值误差可以被建立为相对于其他潜在部分路线的误差的动态值。例如,如果R1和R2是两个潜在部分路线,各自的误差为0.3和0.5,则阈值误差可以被设置为0.3,并且R2将从队列中移除。在添加更多车道元素之后,潜在路线R3的误差为0.1,阈值将更新为0.1,并且R1将从队列中移除。将执行用于更新阈值的类似迭代处理,直到生成完整路线。在另一实施方式中,队列存储聚合的合格的部分路线,仅移除误差高于阈值误差的部分路线。

基于下面描述的路线误差分析,可以针对该一组潜在部分路线移除这些潜在部分路线中的一些或者不进行移除。对于剩余的路线,适当的车道元素被连接至每个潜在部分路线,直到经修改的路线超过阈值误差值。当车辆计算系统确定不超过阈值误差值的单个完整路线时,该处理停止。在一些实施方式中,单个潜在部分路线可能遇到在多个方向上分支的交叉点,例如,A、B和C,导致单个潜在部分路线被三个潜在部分路线替换,一个潜在部分路线在方向A上行驶,另一个潜在部分路线在方向B上行驶,第三个潜在部分路线在方向C上行驶。部分路线生成模块1530识别可以连接的附加车道元素,并且路线误差分析模块1560计算每个潜在部分路线的误差并且可以移除超过误差阈值的任何潜在部分路线。

部分路线生成模块1530递增地将车道元素聚合成完整路线,并且在每次增量添加时进行精度检查。部分路线生成模块1530重复执行步骤1630、1635、1645、1645和1650,直到找到从源到目的地完整路线。部分路线生成模块1530从存储在队列数据结构中的一组部分路线中选择1630潜在部分路线。车道元素选择模块1550接收所选择的潜在部分路线作为输入,并且从地理区域的车道元素子图中确定附加车道元素,该附加车道元素连接至现有潜在部分路线并且允许车辆沿着潜在部分路线合法行驶并且通过附加车道元素。例如,如果潜在部分路线用于向右行驶,则车道元素选择模块1550可以不选择车辆向左移动的车道元素。部分路线生成模块1530将所选择的车道元素添加1635至所选择的潜在部分路线。一旦潜在部分路线与附加的车道元素连接,则将潜在部分路线称为经修改的部分路线,直到认为连接另一个车道元素为止。

在将车道元素添加至部分路线之后,路线误差分析模块1560确定1640经修改的部分路线与低分辨率路线之间的误差。在实施方式中,误差描述了经修改的部分路线的点与低分辨率路线的对应点之间的垂直距离。部分路线生成模块1530将表示经修改的部分路线的点与低分辨率路线的对应点之间的最大垂直距离的误差与指示高清地图可以偏离低分辨率路线的最大距离的阈值进行比较。如果部分路线生成模块1530确定误差小于阈值,则部分路线生成模块1530将经修改的部分路线添加至队列数据结构,否则部分路线生成模块1530消除经修改的部分路线,不再进行进一步考虑。

车道元素选择模块1550生成可以被连接至部分路线以产生与每个附加车道元素对应的一组经修改的部分路线的所有附加车道元素的集合。路线误差分析模块1560确定每个经修改的部分路线的误差测量。在其他实施方式中,路线误差分析模块1560在每个添加的车道元素处将经修改的部分路线与低分辨率路线之间的每个车道元素的聚合误差与阈值误差进行比较。每次计算新误差时,部分路线生成模块1530将误差与阈值进行比较,并且基于阈值对部分路线进行排序1645。在计算的误差超过阈值的情况下,从该一组部分路线中移除经修改的部分路线,并且分析下一个经修改的部分路线。在一些实施方式中,如果部分路线生成模块1530确定在不超过阈值误差的情况下没有可以被添加至潜在部分路线的附加车道元素,则从存储在队列数据结构中的该一组潜在部分路线中移除潜在部分路线。替选地,如果特定的经修改的部分路线的计算误差不超过阈值,则将该特定的经修改的部分路线添加至队列数据结构,并且更新阈值以反映添加的经修改的部分路线。在实施方式中,部分路线生成模块1530以误差增加的排序顺序选择下一个可能的部分路线进行处理,从而首先处理具有较小误差的潜在部分路线。由潜在部分路线生成模块1530针对整组潜在部分路线重复执行上述分析。一旦分析了起点与终点之间的所有潜在路线(例如,潜在的完整路线或完整路线假设),则选择1650具有最低误差的路线作为最终路线。在一些实施方式中,部分路线生成模块1530选择从源到目的地的第一路线。车辆计算系统向车辆控制器系统130发送1655信号以沿着最终路线行驶。

返回至描述分成三个不同方向的单个车道元素的示例,在一些情况下,针对从交叉点***的每个车道元素的计算误差可能低于误差阈值,在这种情况下,与每个车道元素对应的经修改的部分路线被添加至队列数据结构。接下来,对于三个经修改的部分路线中的每一个,第二组所识别的车道元素被识别并且进一步被添加至经修改的部分路线并进行分析。为了进一步扩展当前示例,如果三个经修改的部分路线中的每一个又被分成三个岔路,则该队列将潜在地包括九个新的经修改的部分路线,假设其误差低于误差阈值。重复该处理,直到经修改的部分路线允许车辆从源地址行驶至目的地地址。

计算机器架构

图17是示出能够从机器可读介质读取指令并在处理器(或控制器)中执行指令的示例机器的部件的框图。具体地,图17示出了计算机系统1700的示例形式的机器的图形表示,在该机器中,可以执行用于使机器执行本文中论述的任何一种或更多种方法的指令1724(例如,软件)。在替选实施方式中,机器作为独立装置操作或者可以被连接(例如,联网)至其他机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力运行,或者在对等(或分布式)网络环境中作为对等机器运行。

该机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能手机、web设备、网络路由器、交换机或网桥,或者能够执行用于指定该机器要采取的动作的指令1724(顺序地或以其他方式)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被视为包括单独或联合执行指令1724以执行本文中论述的任何一种或更多种方法的任何机器集合。

示例计算机系统1700包括处理器1702(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或更多个专用集成电路(ASIC)、一个或更多个射频集成电路(RFIC)或其任何组合)、主存储器1704和静态存储器1706,上述部件被配置成经由总线1708彼此通信。计算机系统1700还可以包括:图形显示单元1710(例如,等离子体显示板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统1700还可以包括字母数字输入装置1712(例如,键盘)、光标控制装置1714(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指示仪器)、存储单元1716、信号生成装置1718(例如、扬声器)和网络接口装置1720、上述部件也被配置成经由总线1708进行通信。

存储单元1716包括机器可读介质1722,在机器可读介质1722上存储有实施本文中描述的方法或功能中的任何一个或更多个的指令1724(例如,软件)。指令1724(例如,软件)还可以在由计算机系统1700执行期间完全或至少部分地驻留在主存储器1704内或处理器1702内(例如,处理器的高速缓冲存储器内),主存储器1704和处理器1702还构成机器可读介质。可以经由网络接口装置1720在网络1726上发送或接收指令1724(例如,软件)。

虽然在示例实施方式中将机器可读介质1722示出为单个介质,但是术语“机器可读介质”应当被视为包括能够存储指令(例如,指令1724)的单个介质或多个介质(例如,集中式或分布式数据库,或者相关高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储用于由机器执行的指令(例如,指令1724)并且使机器执行本文中公开的任何一种或更多种方法的任何介质。术语“机器可读介质”包括但不限于固态存储器、光学介质和磁介质形式的数据存储库。

附加配置考虑

出于说明的目的呈现了本发明的实施方式的前述描述;该描述并非旨在穷举或者将本发明限制于所公开的精确形式。相关领域的技术人员可以理解,鉴于以上公开内容,许多修改和变化是可能的。

例如,尽管本文中描述的技术被应用于自主车辆,但是该技术还可以被应用于其他应用,例如,用于为有驾驶员的车辆显示HD地图,用于在诸如移动电话、膝上型电脑、平板电脑或任何具有显示屏的计算设备的客户端装置的显示器上显示HD地图。本文中显示的技术还可以应用于显示用于计算机模拟的地图,例如,在计算机游戏中等。

本说明书的一些部分根据对信息的操作的算法和符号表示来描述本发明的实施方式。数据处理领域的技术人员通常使用这些算法描述和表示来将其工作的实质有效地传达给本领域其他技术人员。虽然在功能上、计算上或逻辑上描述这些操作,但是这些操作应理解为由计算机程序或等效电路、微代码等实现。此外,在不失一般性的情况下,有时将这些操作安排称为模块也已证明是方便的。所描述的操作及其相关联的模块可以被实施为软件、固件、硬件或其任何组合。

本文中描述的任何步骤、操作或处理可以单独地或者与其他装置组合地用一个或更多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块用计算机程序产品实现,该计算机程序产品包括含有计算机程序代码的计算机可读介质,该计算机程序代码可以由计算机处理器执行以执行所描述的任何或所有步骤、操作或处理。

本发明的实施方式还可以涉及用于执行本文中的操作的设备。该设备可以针对所需目的而专门构建,以及/或者该设备可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算装置。这样的计算机程序可以被存储在有形计算机可读存储介质或者适合于存储电子指令并且被耦接至计算机系统总线的任何类型的介质中。此外,说明书中提到的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。

本发明的实施方式还可以涉及实施在载波中的计算机数据信号,其中计算机数据信号包括计算机程序产品或者本文所述的其他数据组合的任何实施方式。计算机数据信号是以有形介质或载波呈现并在载波中调制或以其他方式编码的产品,该产品是有形的,并且根据任何合适的传输方法进行传输。

最后,说明书中使用的语言主要是出于可读性和指导目的而选择的,并且可能不是出于描绘或限制本发明的主题而选择的。因此,本发明的范围旨在不受该详细描述的限制,而是受基于此处的应用而发布的任何权利要求的限制。

45页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:无人飞行器控制方法、控制装置及无人飞行器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类