基于高清地图的定位优化

文档序号:1145915 发布日期:2020-09-11 浏览:7次 >En<

阅读说明:本技术 基于高清地图的定位优化 (Positioning optimization based on high-definition map ) 是由 马克·达蒙·惠乐 于 2018-12-03 设计创作,主要内容包括:车辆(例如,自主车辆)在车辆行驶时使用不同的定位技术执行定位以确定车辆的当前位置。自主车辆使用的定位技术选自存储从驾驶情境到定位变量的映射的定位变量索引,每个定位变量识别定位技术。所述驾驶情境可以包括信息,该信息包括:所述自主车辆正在其中驾驶的地理区域、所述自主车辆正在驾驶的速度、所述自主车辆的角速度或其它信息。在每种驾驶情境中使用最优定位技术提高了定位的精度以及定位过程的计算效率。(Vehicles (e.g., autonomous vehicles) perform positioning using different positioning techniques while the vehicle is traveling to determine a current location of the vehicle. The positioning technology used by the autonomous vehicle is selected from an index of positioning variables that stores a mapping from the driving context to positioning variables, each positioning variable identifying a positioning technology. The driving context may include information including: a geographic area in which the autonomous vehicle is driving, a speed at which the autonomous vehicle is driving, an angular velocity of the autonomous vehicle, or other information. The use of optimal positioning techniques in each driving situation improves the accuracy of the positioning and the computational efficiency of the positioning process.)

基于高清地图的定位优化

相关申请的交叉引用

本申请要求于2017年12月1日提交的美国临时申请62/593,334根据35USC 119(e)的优先权权益,该美国临时申请的全部内容通过引用结合于此用于所有目的。

背景技术

本公开总体上涉及自主车辆的定位,并且更具体地涉及基于驾驶情境(例如,自主车辆正在驾驶的地理区域、一天中的时间、自主车辆的速度等)来优化自主车辆所使用的定位策略。

自主车辆(也称为自动驾驶汽车、无人驾驶汽车、汽车或机器人汽车)从源位置驾驶到目的地位置,而不需要人类驾驶员来控制和导航车辆。自主车辆需要精确地确定它们的位置以便能够导航。自主车辆使用传感器数据来确定它们的位置。存在几种技术可用于确定自主车辆的位置。这些技术可取决于用于确定位置的传感器数据的类型,例如相机图像、激光雷达扫描、全球定位系统(GPS)数据、惯性测量单元(IMU)数据等。

某些本地化技术在某些情况下可能工作得更好,而另一种技术在其他情况下可能工作得更好。例如,基于激光雷达信号的定位技术可以在一些情况下更好地工作,而基于全球定位系统(GPS)和惯性测量单元(IMU)的定位技术可以在不同情况下更好地工作。类似地,在具有房屋或建筑物和树木的街道上,基于几何激光雷达的定位可以表现得非常好。然而,在没有有趣垂直几何形状的公路上,相同的定位技术可能无法识别自主车辆的向前位置或偏航角。

定位技术的性能取决于各种因素,例如,可用传感器数据的类型、地形类型、可用信号的类型、车辆是在城市还是在高速公路上行驶、车辆旁边是否有卡车行驶遮挡了侧面的视野等。定位必须以高频率周期性地执行,以允许自主车辆正确地导航。

传统系统使用特定的定位技术,当控制定位技术精度的因素改变时,该技术可能会失败。在一个地理区域中工作良好的定位技术可以在另一地理区域中工作不良,例如,其可能花费显著更长的时间来处理或具有低精度。此外,定位技术具有需要针对不同驾驶情境调整的参数。在一个地理区域中工作良好的参数可能在另一地理区域中工作不良。如果定位过程失败,则自主车辆可能不能正确地导航。

发明内容

本发明的实施例在自主车辆行驶时使用不同的定位技术来执行自主车辆的定位。使用存储从驾驶情境到定位变量的映射的定位变量索引来选择自主车辆所使用的定位技术。定位变量识别定位技术和与该定位技术相关联的一个或多个参数的值。定位技术的示例包括:基于相机图像的定位技术、基于激光雷达扫描的定位技术、基于GNSS数据的定位技术和基于IMU数据的定位技术。可以存在基于相同定位技术的多个定位变量,例如,对应于相同定位技术的不同参数值的不同定位变量。所述驾驶情境包括描述以下各项中的一个或多个的信息:所述自主车辆正驾驶的地理区域、所述自主车辆正驾驶的一天中的时间、描述在所述自主车辆正驾驶时所述自主车辆正驾驶的地理区域中的天气状况的信息、所述自主车辆正驾驶的速度、或所述自主车辆的角速度。

系统存储多个定位变量。每个定位变量代表用于确定自主车辆的位置的定位技术。该系统还存储描述多个驾驶情境的信息。驾驶情境可被表示为具有诸如地理区域、一天中的时间、天气状况、自主车辆的速度、自主车辆的角速度等的各种元素的元组。系统构建将驾驶情境映射到定位变量的定位索引。该系统基于驾驶情境中的定位变量的性能测量将每个驾驶情境映射到一个或多个定位变量。在实施例中,所述系统为每个传感器模态存储多个定位变量。传感器模态对应于定位变量所使用的传感器输入的类型,例如,基于激光雷达扫描的定位变量表示传感器模态,基于相机的定位变量表示另一传感器模态,等等。因此,车辆计算机系统选择用于使用的特定传感器模态并选择用于定位的传感器模态的一个或多个定位变量。在一个实施例中,所述车辆计算系统使用不同的传感器确定定位变量的置信度测量值和跨定位变量的协方差测量值。所述车辆计算系统使用卡尔曼滤波集成来自不同传感器模态的定位变量的结果。基于卡尔曼滤波的定位变量的集成使用置信度值的测量值和协方差值的测量值。

自主车辆在行驶过程中使用定位索引,具体如下。所述自主车辆接收由自主车辆的传感器捕获的传感器数据。所述自主车辆使用传感器数据来确定自主车辆当前正在其中驾驶的驾驶情境。例如,自主车辆可基于传感器数据确定近似位置并基于该近似位置确定地理区域。所述自主车辆使用定位索引来选择对应于驾驶情境的一个或多个定位变量。所述自主车辆使用所选择的定位变量来确定自主车辆的位置,并使用该位置来导航自主车辆。当自主车辆行驶时重复这些步骤。

在一个实施例中,系统建立如下的定位索引。系统针对每个驾驶情境重复以下步骤。对于多个定位变量中的每一个,系统确定定位变量的性能的度量。该系统基于性能度量来对定位变量进行排名。系统基于排名为驾驶情境选择一个或多个定位变量,并将驾驶情境与所选择的定位变量之间的关联存储在定位索引中。

可以基于一个或多个因素来确定特定驾驶情境中的定位变量的性能度量,这些因素包括:在驾驶情境中使用定位变量的定位错误、在驾驶情境中执行定位变量的时间、或者在驾驶情境中定位变量的成功率。如果定位变量确定自主车辆的位置在准确位置值的阈值内,则定位变量是成功的。

在一个实施例中,系统将地理区域的表示存储为例如多边形。定位索引将地理区域映射到定位变量。自主车辆确定自主车辆当前正在其中驾驶的地理区域。自主车辆选择对应于地理区域的一个或多个定位变量并使用它们进行定位。

在一个实施例中,系统存储车道元素的表示,每个车道元素对应于街道(或高速公路、道路等)的车道的一部分。定位索引将车道元素映射到定位变量。自主车辆确定自主车辆当前正在其中驾驶的车道元素。自主车辆选择对应于车道元素的一个或多个定位变量并使用它们进行定位。

在一个实施例中,系统将位置坐标(例如,纬度和经度)映射到定位变量。自主车辆例如使用GPS数据或IMU数据来确定自主车辆的当前坐标。系统识别存储在定位变量索引中的存储定位变量的最近坐标。该系统使用与离自主车辆的位置最近的坐标相关联地存储的定位变量来执行定位。

虽然结合自主车辆描述了实施例,但是本文描述的技术可以由其他类型的车辆使用,例如,由人类驾驶员驾驶的车辆。此外,本发明的实施例可用于其它类型的可导航机器,例如机器人、船舶、无人机、飞机等。

附图说明

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

图2示出了根据一个实施例的车辆计算机系统的系统架构。

图3示出了根据一个实施例的车辆计算系统的HD Map API中的指令的各个层。

图4示出了根据一个实施例的HD地图系统的系统架构。

图5示出了根据一个实施例的HD地图的组件。

图6A至图6B示出了根据一个实施例的在HD地图中定义的地理区域。

图7示出了根据一个实施例的HD地图中的车道的表示。

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

图9描述了根据一个实施例的定位模块的系统架构。

图10示出了根据实施例的用于执行车辆定位的过程。

图11示出了根据一个实施例的用于构建定位索引的过程。

图12示出了根据实施例的用于基于定位索引执行定位的过程。

图13示出了可以从机器可读介质读取指令并在处理器或控制器中执行指令的计算机器的实施例。

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

具体实施方式

本发明的实施例使用高精度来维持包含最新信息的高清晰度(HD)地图。HD地图可由自主车辆使用以安全地导航到其目的地,而无需人工输入或具有有限的人工输入。自主车辆是能够在没有人类输入的情况下感测其环境并导航的车辆。自主车辆在本文中也可称为“无人驾驶汽车”、“自动驾驶汽车”或“机器人汽车”。HD地图是指以非常高的精度(通常为5-10cm)存储数据的地图。实施例生成包含关于自主车辆可以在其上行驶的道路的空间几何信息的HD地图。因此,所生成的HD地图包括自主车辆在没有人工干预的情况下安全导航所必需的信息。实施例生成并维护精确的并且包括用于安全导航的最新道路条件的高清(HD)地图。

使用HD地图的自主车辆需要定位,即,以高精度确定自主车辆的当前位置,以便能够导航。HD地图系统支持多种定位技术和每种定位技术的变型。定位技术的性能可取决于各种因素,例如,自主车辆周围的场景,包括自主车辆周围的结构的几何形状、可识别的光度特征等。本发明的实施例选择针对特定情境调谐的适当定位技术和参数以高效且准确地执行定位。定位技术和相应参数值的组合被称为定位变量。HD地图系统针对不同情境估计每个定位变量的性能,并且使用索引来基于自主车辆的当前位置高效地查找最佳定位变量。HD地图系统还通过管理与在自主车辆上运行的可执行文件的版本以及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的需要向各个车辆150发送125个HD地图。例如,如果自主车辆需要沿着路线驾驶,则自主车辆的车辆计算系统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、定位模块290a和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将各种对象的预测提供给规划模块200,以规划车辆接下来需要采取的后续动作。

规划模块200从预测模块215接收描述车辆周围环境的信息、确定车辆目的地的路线240、以及车辆应当采取以到达目的地的路径。规划模块200使用来自预测模块215的信息和路线240来规划车辆需要在短时间间隔内(例如,在接下来的几秒内)采取的一系列动作。在一个实施例中,规划模块200将一系列动作指定为表示车辆接下来需要驶过的附近位置的一个或多个点。规划模块200向控制模块225提供包括车辆要采取的一系列动作的计划的细节。计划可以确定车辆的后续动作,例如,车辆是否执行车道变换、转弯、通过提高速度或减速的加速度等。

控制模块225基于从规划模块200接收的计划确定用于发送到车辆的控制器130的控制信号。例如,如果车辆当前处于点A并且该计划规定车辆接下来应当行进到附近的点B,则控制模块225确定用于控制器130的控制信号,所述控制信号将使得车辆以安全和平滑的方式从点A行进到点B,例如,不需要任何急转弯或从点A到点B的Z字形路径。车辆从点A到点B的路径可能取决于车辆的当前速度和方向以及点B相对于点A的位置。例如,如果车辆的当前速度较高,则与缓慢行驶的车辆相比,车辆可以进行更宽的转弯。

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

包括感知模块210、预测模块215和规划模块220的车辆计算系统120的各个模块接收地图信息以执行其各自的计算。车辆100将HD地图数据存储在本地HD地图存储器275中。车辆计算系统120的模块使用HD地图API 205与地图数据交互,HD地图API 205提供可由用于访问地图信息的模块调用的一组应用编程接口(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 250、地标地图API 255、路线API 265、3D地图API270、地图更新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数据以较高速率(例如,60Hz)可用,则车辆计算系统120可调用本地化API来以该较高速率(例如,60Hz)确定车辆位置。车辆计算系统120将位置历史记录存储为内部状态,以提高后续本地化调用的准确性。位置历史记录存储从汽车被关掉/停止时的时间点起的位置的历史。本地化API 250包括生成基于HD地图指定车道的精确路线的定位路线API。本地化路线API将经由第三方地图从源到目的地的路线作为输入,并且基于HD地图生成被表示为沿着输入路线的可导航车道的连接图的高精度路线。

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

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

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

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

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

定位模块290a执行自主车辆的定位。在此进一步描述定位模块290的细节。

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

如图3中所示,在一个实施例中,HD地图API被实现为包括车辆制造商适配器310、计算平台适配器320和公共HD地图API层330的库。公共HD地图API层包括可以跨多个车辆计算平台和车辆制造商使用的通用指令。计算平台适配器320包括专用于每个计算机平台的指令。例如,公共HD Map 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、地图精度管理模块、车辆接口模块、HD地图存储器165和定位模块290。在线HD地图系统110的其他实施例可以包括比图4所示更多或更少的模块。指示为由特定模块执行的功能性可由其它模块实施。在一个实施例中,在线HD地图系统110可以是包括多个处理器的分布式系统。

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

图5示出了根据一个实施例的HD地图的组件。HD地图包括多个地理区域的地图。地理区域的HD地图510包括地标地图(LMap)520和占用地图(OMap)530。地标地图包括描述车道的信息,包括车道的空间位置和关于每个车道的语义信息。车道的空间位置包括在高预见下(例如,在10cm精度或以下)在纬度、经度和海拔上的几何位置。车道的语义信息包括诸如方向、速度、车道类型(例如,用于直行的车道、左转车道、右转车道、出口车道等)、对向左交叉的限制、与其他车道的连通性等的限制。地标地图还可以包括描述停车线、让行线、十字路口的空间位置、安全可导航空间、减速带、路缘和道路标志的空间位置的信息,该信息包括与驾驶限制相关的所有标志的空间位置和类型。HD地图中描述的道路标志的示例包括停止标志、交通灯、速度限制、单向、禁止进入、让位(车辆、行人、动物)等。

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

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

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

HD地图中的地理区域

在线HD地图系统110将大的物理区域划分成地理区域并存储每个地理区域的表示。每个地理区域表示由几何形状(例如,矩形或正方形)界定的连续区域。在一个实施例中,在线HD地图系统110将物理区域划分成大小相同的地理区域,而与存储每个地理区域的表示所需的数据量无关。在另一实施例中,在线HD地图系统110将物理区域划分成不同大小的地理区域,其中基于表示该地理区域所需的信息量来确定每个地理区域的大小。例如,与表示具有很少街道的人口稀少区域的地理区域相比,表示具有大量街道的人口密集区域的地理区域表示较小的物理区域。因此,在该实施例中,在线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形交叉点的示例,其示出了经由转向车道810b连接到车道元素810c并且经由转向车道810d连接到车道810e的车道元素810a。图8B示出了道路中的Y形交叉点的示例,其示出直接连接到车道810h且经由车道810g连接到车道810i的标签810f。HD地图系统100将从源位置到目的地位置的路线确定为可横穿以从源位置到达目的地位置的一系列连接车道元素。

定位模块的系统架构

图9描述了根据一个实施例的定位模块的系统架构。定位模块290包括定位变量模块910、定位变量选择模块920、定位索引生成模块930和定位索引940。其它实施例可以包括比本文所指示的模块更少的模块中的更多模块。由模块执行的功能可由除本文所指示的模块之外的其它模块执行。

定位模块290可以存在于车辆计算机系统120或在线HD地图系统110中。在一些实施例中,与在线HD地图系统110中存在的定位模块290b相比,车辆计算系统120中存在的定位模块290a具有不同的模块(或子模块)。例如,车辆计算系统120中存在的定位模块290a可以不具有定位索引生成模块930。与在线HD地图系统110中存在的定位模块290b相比,车辆计算系统120中存在的定位模块290a可以具有更少的定位变量。

在线HD地图系统110中存在的定位模块290b从各种车辆计算系统收集描述轨道的数据,并评估每个轨道上的各种定位变量以建立定位索引940。定位模块290b将定位索引940的至少一部分发送到各个自主车辆。可以基于各个自主车辆的配置来确定子集。例如,如果自主车辆具有特定的传感器配置,则与那些传感器配置相关的定位变量被发送到自主车辆,并且基于自主车辆中不存在的传感器配置的定位变量被跳过。

在一个实施例中,在线HD地图系统110中存在的定位模块290b例如将定位索引940的子集导出到文件,并将该文件发送到自主车辆以存储在该自主车辆的车辆计算系统120中存在的定位模块290a中。存在于自主车辆的车辆计算机系统120中的定位模块290a在驾驶时使用定位变量来基于驾驶情境选择特定定位变量,例如,自主车辆正在驾驶的地理区域,并且使用定位变量来执行自主车辆的定位。当自主车辆正在行驶时,自主车辆可以从一个地理区域移动到另一个地理区域。因此,当驾驶情境的地理区域或其它属性改变时,自主车辆改变用于定位的定位变量。

定位变量模块910存储用于多个定位变量的指令和参数。定位变量模块910存储用于定位技术的指令。例如,对于每个定位技术,定位变量模块910存储一组可执行指令,诸如实现定位技术的一个或多个功能或方法。定位变量模块910识别与定位技术相关的参数,并存储这些参数的值的集合。定位技术接收车辆接收的地图和传感器数据作为输入,并基于传感器数据识别车辆在地图中的位置。

各种定位技术可以例如由专家手动地添加到定位模块290。用于各种定位技术的可执行指令可存储在辅助存储器(例如,磁盘或固态驱动器(SSD))上,并由定位模块290加载。定位模块290可以根据需要预加载用于各种定位技术的指令或者以懒惰的方式加载这些指令。

定位技术可以基于里程计,其表示基于车辆接收的顺序传感器数据来估计车辆相对于车辆位置的运动的过程。定位模块290可以使用里程计来协助使车辆的位置初始化,以供定位技术在执行其本地搜索时使用。定位模块290还可使用里程计来估计车辆的速度和加速度,作为在可用于定位的传感器读数之间外推车辆位置的方式。例如,如果定位失败,则定位模块290回到里程计以基于IMU或车辆控制信号从先前已知的姿态估计运动。

另一种定位技术是基于激光雷达的定位。基于根据激光雷达定位的定位变量,包括对地面特征和非地面特征执行单独处理的地面/非地面变化;对所有点和高强度点进行处理的基于激光雷达的定位;执行颜色匹配的基于激光雷达的定位;分离硬景观(诸如建筑物的硬表面)和软景观(植被)的基于激光雷达的定位;等等。

另一种定位技术使用edgel进行定位。因此,系统识别传感器数据(例如相机图像)中的edgel,并使用edgel将传感器数据中的对象与OMap中的对象匹配以确定车辆的位置。在2018年10月15日提交的序列号为16/161,035的美国专利申请中描述了用于确定edgel的系统和技术,该申请的全部内容通过引用结合于此。基于edgel的定位技术的变型处理与非地面点分开的地面点。另一种基于edgel的定位技术分别处理硬景观和软景观。

另一种定位技术是基于特征的定位,其使用诸如相机图像和激光雷达扫描的传感器数据来检测特征,并将这些特征与HD地图中的特征进行比较,以确定车辆的位置。另一种定位技术使用基于图像的里程计来确定车辆的位置。基于图像的里程计的变型通过将从相机图像提取的不同特征与地图(例如,地面纹理、图像特征、边缘等)进行比较来确定车辆的位置。另一种定位技术使用基于激光雷达的里程计来确定车辆的位置。基于激光雷达的里程计的变型使用成对迭代最近点(ICP)或多次扫描ICP之一。通过改变诸如迭代极限、搜索半径、洛伦兹加权等各种参数来获得所有上述技术的变量。其它定位技术包括基于全球导航卫星系统(GNSS)的定位和基于惯性测量单元(IMU)的里程计。这些技术的变量使用不同的积分方法和各种校正方法。

定位索引940存储从驾驶情境到定位变量的映射。在一个实施例中,定位索引940表示将地理区域映射到定位变量的空间索引。在一个实施例中,定位模块290定义地理区域的默认定位变量。定位模块290接收并存储定义过渡区域的多边形,例如,如专家所定义的。这些多边形的面积可以相对较小,例如高速公路上的入口和高速公路外的出口。定位模块290通过评估各种定位变量并且识别默认变量发生故障的区域来识别地理区域中的过渡点。还可以通过知道什么类型的问题导致默认变量问题来识别过渡点。如果车辆在过渡区域T1中使用定位变量L1,则其继续使用定位变量L1,直到其进入过渡区域T2,在过渡区域T2中其切换到另一定位变量L2。

定位索引940可以存储车道元素和在该车道元素上表现良好的定位变量之间的关联。在一个实施例中,定位索引存储坐标,例如在围绕坐标的地理区域中具有高性能的一些位置的纬度和经度以及对应的定位变量。

在一些实施例中,定位索引940存储数据,以便通过对具有相似定位变量的地理区域进行聚类来节省空间。例如,如果彼此几米内的3个样本共享定位变量的相同集合,则定位索引940针对作为位置聚类的平均值的位置一次存储定位变量的集合。可替换地,定位索引940存储由所有这些地理区域共享的定位变量集合的表示。

当自主车辆正在行驶时,定位变量选择模块920选择一个或多个定位变量。定位变量选择模块920从自主车辆接收传感器数据和其他情境信息,并使用定位索引940来选择定位变量。

定位索引生成模块930针对每种驾驶情境评估不同的定位变量,并且识别要在地理区域中使用的一个或多个定位变量。驾驶情境包括描述自主车辆的当前轨迹的信息,即,在其中自主车辆沿着路线的一部分驾驶的实例。驾驶情境可被表示为具有诸如地理区域、一天中的时间、天气状况、自主车辆的速度、自主车辆的角速度等的各种元素的元组。

定位索引生成模块930针对每种驾驶情境执行每个定位变量,并且将其与地面实况(例如,使用通过对准来自各种轨迹的数据而获得的HD地图来确定的自主车辆的姿态)进行比较。轨迹表示描述自主车辆通过路线的驾驶的信息。由于每个自主车辆在车辆行驶时收集并存储传感器数据,因此传感器数据可在稍后阶段用于执行各种定位变量,而不管自主车辆在行驶期间是否使用定位变量。在一个实施例中,HD地图系统通过改变初始猜测中的误差来执行定位变量的指令。

定位索引生成模块930基于各种标准来评估定位变量的性能,这些标准包括:(1)指示定位变量工作的准确度的度量(准确度的度量可以以米为单位);(2)指示定位变量多么倾向于局部最小值的以米为单位的稳健性的度量(指示与局部最小值相对应的吸引盆地的大小的度量);(3)指示计算结果的成本的定位变量的计算成本的度量;以及(4)当自主车辆转弯时,与当自主车辆直线向前行驶时相比,定位变量工作得有多好的度量。在一个实施例中,定位索引生成模块930基于上述因素中的每一个来确定分数,并且将表示定位变量的性能的分数确定为这些因素的个体分数的加权集合。

在一个实施例中,定位模块290使用卡尔曼滤波来最优地融合定位和里程计输入。定位模块290从每个输入源(定位、里程计、IMU、GPS、控制器局域网(CAN)总线)接收不确定性估计以用于卡尔曼滤波器。卡尔曼滤波器集成多个输入和来自多个定位技术的结果以估计位置。

在一个实施例中,定位模块290存储用于驾驶情境或用于特定地理区域的定位策略的表示。定位策略包括在驾驶情境中表现良好的定位变量。定位模块290使用用于存储定位策略的存储高效机制,该定位策略存储每类定位/里程计的定位变量ID。定位/里程计的不同类别包括:激光雷达定位、激光雷达里程计、相机定位、相机里程计、GPS(或GNSS)定位、IMU里程计。定位模块290可以为每个定位变量使用一个字节,从而使用与定位/里程计的类别一样多的字节来存储定位策略,例如,如果每个变量ID适合8位并且存在6类的定位/里程计,则使用6个字节。

在2017年12月22日提交的序列号为15/853,614的美国专利申请中描述了用于使用HD地图数据表示自主车辆的车道和路线生成的系统和方法,该美国专利申请的全部内容通过引用结合于此。

过程

图10示出了根据实施例的用于执行车辆定位的过程。所描述的步骤可以按照与这里所指示的不同的顺序来执行。所述步骤可由不同于本文中所指示的模块的模块执行。

定位模块290存储多个定位变量。在一个实施例中,定位模块290的定位变量模块910存储1010用于各种定位技术的指令和用于各种定位变量的参数值。HD地图系统存储1020描述各种驾驶情境的信息。系统构建1030将驾驶情境映射到定位变量的定位索引。定位索引基于驾驶情境中的每个定位变量的性能度量来存储从每种驾驶情境到一个或多个定位变量的映射。当自主车辆正在行驶时,自主车辆使用定位指数来确定自主车辆的位置。该系统通过基于所确定的位置确定用于自主车辆的控制信号并向自主车辆的控制器发送1060控制信号来导航。

图11示出了根据一个实施例的用于构建定位索引的过程。所描述的步骤可以按照与这里所指示的不同的顺序来执行。所述步骤可由不同于本文中所指示的模块的模块执行。

定位模块290对每种驾驶情境或驾驶情境的子集重复以下步骤。定位模块290确定多个定位变量中的每一个(或多个定位变量的子集)的性能度量。定位模块290通过基于诸如传感器数据(或路线上车辆的先前驾驶)的轨迹数据确定车辆的位置来确定定位变量的性能。定位模块290基于经由各种轨迹数据的对准获得的结果来确定车辆的实际姿态。经由多个轨道的对准确定的车辆姿态被称为对准姿态。对准姿态被视为地面实况,定位模块290将基于各个定位变量的定位结果与该地面实况进行比较。在2017年12月28日提交的序列号为15/857,602的美国专利申请中描述了用于执行从车辆的传感器收集的数据的全局对准以确定车辆的姿态的系统和方法,该美国专利申请通过引用整体结合于此。

定位模块290基于定位变量的性能度量对多个定位变量进行排名1120。定位模块290基于排名选择1130用于驾驶情境的一个或多个定位变量。定位模块290在定位索引中存储1140从驾驶情境到对应定位变量的映射。

图12示出了根据实施例的用于基于定位索引执行定位的过程。所描述的步骤可以按照与这里所指示的不同的顺序来执行。所述步骤可由不同于本文中所指示的模块的模块执行。

自主车辆行驶时重复以下步骤。自主车辆可以每秒多次重复这些步骤。自主车辆接收1210由自主车辆的传感器捕获的传感器数据。自主车辆基于传感器数据确定自主车辆当前正在其中驾驶的驾驶情境。例如,驾驶情境可以描述自主车辆正在其中驾驶的地理区域。

自主车辆基于传感器数据确定1220自主车辆的近似位置。自主车辆基于近似位置识别1230自主车辆当前正在其中驾驶的地理区域。例如,每个地理区域可以表示为多边形。定位模块290确定自主车辆的当前位置是否落入表示地理区域的多边形内。在一个实施例中,定位模块290使用其中自主车辆正在驾驶的先前地理区域来缩小对地理区域的搜索。例如,HD地图系统存储相邻地理区域之间的关联。定位模块290使用这些关联来标识与先前地理区域相邻的地理区域。定位模块290将对地理区域的搜索限制到与自主车辆正在其中驾驶的先前地理区域相邻的该组地理区域。定位模块290可在执行对新地理区域的搜索之前首先验证当前位置是否继续位于先前地理区域内。在一个实施例中,HD地图系统存储描述相对于地理区域(例如,北、南、东、西等)存在的相邻地理区域中的方向的信息。定位模块290基于从传感器(例如IMU或GNSS)接收的信息来跟踪车辆自主车辆正在行驶的方向。定位模块290进一步将对地理区域的搜索缩窄到沿着自主车辆行驶的方向与先前地理区域相邻的地理区域。

自主车辆使用定位索引选择1240与包括地理区域的驾驶情境相对应的一个或多个定位变量。自主车辆使用定位变量确定1250自主车辆的准确位置。自主车辆基于自主车辆的位置来导航。例如,控制模块225可以使用自主车辆的当前位置确定用于导航自主车辆的控制信号,并将控制信号发送到自主车辆的控制器。

自主车辆可以使用自主车辆的当前位置和HD地图的数据来确定用于导航自主车辆的控制信号。自主车辆基于控制信号来导航自主车辆。

例如,如果自主车辆需要在短距离内左转/右转,则自主车辆可以识别车辆当前正在行驶的车道,并且可以基于位置来决定改变车道。作为另一示例,自主车辆可以基于位置来确定停止标志正在接近并且自主车辆需要减速以停止。

在一个实施例中,定位索引存储坐标,例如在围绕坐标的地理区域中具有高性能的一些位置的纬度和经度以及对应的定位变量。定位模块290确定存储的最接近自主车辆的当前位置的坐标,并使用对应于所存储的坐标的定位变量来确定自主车辆的位置。

版本化

HD地图系统可以例如,随着定位技术的发展接收和存储相同定位技术的不同版本。如果存在以下变化,则HD地图系统可能必须重新计算从地理区域到对应的定位变量的映射:(1)与地理区域相关联的HD地图数据的变化,例如,如果从HD地图数据中添加或删除诸如建筑物或树之类的新结构;(2)改变定位技术所使用的参数;(3)改变与定位技术相对应的可执行机器指令。定位索引940存储(1)针对其计算来自地理区域和定位变量的映射的HD地图数据的版本;(2)在被定位到地图以计算映射的数据中使用的传感器配置(这包括传感器的配置名称和版本以及配置的改变(即,传感器或传感器位置/取向的变化);(3)用于计算映射的定位技术的版本。定位索引940存储与映射数据一起使用的HD地图的版本。因此,如果具有地图版本X和二进制版本Y(参考车辆计算系统120的可执行文件的版本)的自主车辆,则定位模块290确保使用HD地图数据版本X和二进制版本Y将所使用的定位变量映射到地理区域。

传感器配置相关性

同一地理区域或驾驶情境中不同传感器配置的定位策略可能不同。结果,定位模块290需要评估每个传感器配置的每个定位变量。为了管理组合***,定位模块290分析地图的给定区域并识别对于给定传感器配置什么类型的定位策略将是最优的。

在一个实施例中,定位模块290分析跨地理区域的不同传感器配置之间的相关性。如果定位模块290确定跨传感器配置的高相关性,则定位模块290评估具有一个传感器配置的地理区域并映射相关的其他传感器配置的结果。这允许定位模块290针对定位变量来评估较少的传感器配置。

在一个实施例中,定位模块290分析地理区域的特性,并使用该特性来预测工作最好的定位变量。地理区域的特性包括该区域是郊区还是城市、公路类型(城市还是农村)、如果该地理区域是农村、该区域是否有森林或农业、是否有桥梁、隧道、该地理区域是否平坦、丘陵、多风等。在一个实施例中,定位模块290构建标识每个地理区域的这些特性的地图。定位模块290为具有一组特性的每种类型的地理区域确定最佳定位变量。当定位模块290接收新的地理区域时,定位模块290确定该地理区域的特性并且基于该特性来确定要使用的定位变量。因此,驾驶情境包括地理区域的各种特性而不是各个地理区域。定位模块290确定地理区域的特性并识别与该地理区域的特性匹配的驾驶情境。定位模块290识别用于该驾驶情境的定位变量,并使用它们来执行定位。

在一个实施例中,驾驶情境还包括传感器配置细节。因此,定位模块290将地理区域的特性和传感器配置的组合映射到定位变量。

定位模块290将地理特性与我们的地面实况数据集中的区域的相同特性相匹配。我们将为所有地面实况数据集计算最佳定位策略。然后,对于新的地图,我们将遍历地图并识别地面实况集中每个区域的最佳匹配区域(例如,具有建筑物和狭窄街道的区域与具有树木和弯曲道路的区域)。通过这样的映射,我们可以将地图中的区域映射到我们跟踪的每种传感器配置的一组定位策略。

虽然结合自主车辆描述了实施例,但是本文描述的技术可以由其他类型的车辆使用,例如,由人类驾驶员驾驶的车辆。此外,本发明的实施例可用于其它类型的可导航机器,例如机器人、船舶、无人机、飞机等。

基于机器学习的定位

在一个实施例中,定位模块290使用诸如深度学习和神经网络之类的基于机器学习的技术来构建定位变量索引940并执行定位。定位模块290使用深度学习来表征某些定位变量工作最佳的区域的类型。定位模块290使用训练数据集,该训练数据集包括基于表示自主车辆驾驶通过各个地理区域的过去实例的轨迹的样本。定位模块290使用先前确定的各种定位变量的性能作为定位变量的预期分数。在一个实施例中,定位模块290训练基于深度学习的模型,例如神经网络,诸如被配置为接收地理区域的编码作为输入并确定定位变量的分数的多层感知器。分数指示性能的度量,例如,高分数可以指示定位变体表现良好,而低分数指示定位变体表现不良。在另一实施例中,经训练的基于深度学习的模型的定位模块290接收地理区域的编码作为输入,并预测在该地理区域中表现良好的定位变量。地理区域的编码可以包括该地理区域的HD地图数据。或者,地理区域的编码可包括低分辨率地图,其描述地理区域的各种结构,例如建筑物、隧道、桥梁以及物理特征,例如河流、丘陵、不同点的海拔等。定位模块290使用基于深度学习的模型来构建定位变量索引940,例如,以基于行驶通过地理区域的车辆来确定没有足够的轨迹数据的地理区域的定位变量。

定位模块290测试基于深度学习的模型的性能,以查看预测结果的精度是否至少高于阈值。定位模块290通过获取一个或多个地理区域的地图、通过测量各种定位变量的性能来执行定位变量的强力分析、以及针对每个定位变量的各种传感器配置来测试性能。定位模块290执行基于深度学习的模型以确定最佳执行的定位变量或确定特定定位变量的分数。

定位模块290将强力执行的结果与基于深度学习的模型的预测进行比较,并确定误差统计。定位模块290测量性能的净损失,以确定基于深度学习的模型在特定地理区域中是否可用。

如果定位模块290确定基于深度学习的模型具有差的性能并且不能预测最佳定位变量,则定位模块290识别模型不准确的地理区域。因此,定位模块切换到执行对那些区域中的所有定位变量和不同传感器配置的性能的评估的强力分析。然而,在基于深度学习的模型准确的区域中,定位模块290能够在那些区域中使用基于深度学习的模型,从而通过不必执行强力分析来节省计算资源。

虽然上述实施例描述了基于深度学习的模型,但是也可以利用其它基于机器学习的模型(例如,基于机器学习的模型)来执行上述分析。例如,定位模块290提取地理区域的特定特征并将其作为输入提供给基于机器学习的模型。基于机器学习的模型预测对于输入地理区域表现良好的一个或多个定位变量,或者基于机器学习的模型确定指示该定位变量在该地理区域中的性能的特定定位变量的分数。地理区域的特征的示例包括存在于地理区域中的结构的类型,诸如建筑物、隧道、桥梁以及描述物理特征的特征,诸如河流、丘陵、不同点的海拔等。

虽然以上实施例描述了接收地理区域的描述的基于机器学习的模型,但是该技术应也用于其它类型的驾驶情境,例如,自主车辆的速度、一天中的时间、天气状况、角速度等。因此,模型的输入可以是一般驾驶情境的编码或驾驶情境的特定特征,这取决于模型的类型。

定位置信度图

在一个实施例中,定位模块290基于对定位变量的分析来收集统计。所收集的统计量的示例包括收敛半径、定位结果的协方差和特定定位结果的误差统计量。根据定位统计,定位模块290在地图中的每个点建立定位变量的置信度测量的地图。这提供了有用的可视化,帮助用户识别问题区域并在过程中进行改进。对于每个样本,定位模块290确定最佳情况下定位变量的结果,并将其用作样本在地图中的位置的值。定位模块290创建示出地图(例如,具有指示高误差的红色和指示低误差的绿色的地图)的颜色编码表示的可视化。红色区域将指示需要进一步调查的位置,例如,其它定位变量的分析。置信度值地图还用作对特定位置处的定位结果的信任水平的测量。置信度值地图允许HD地图系统最优地对来自对应于不同传感器模态的不同定位变量的多个定位结果进行积分。在一个实施例中,H地图系统使用卡尔曼滤波对来自不同定位变量的结果进行积分。每个定位变量的结果基于其各自的收敛置信度进行加权。在一个实施例中,HD地图系统基于不同的传感器确定跨成对定位变量的协方差的测量。HD地图系统使用协方差的测量来使用卡尔曼滤波对来自不同定位变量的结果进行积分。

置信度地图还可用于生成HD地图中需要进一步检查和分析的位置的热点。由于各种原因,定位误差可能很高。例如,由于传感器数据中的约束不足(例如,由于在行进方向上缺乏垂直结构,或者所有部件都是均匀平坦的),定位误差可能很高。由于传感器数据中的误差,例如由于软件或硬件故障,定位误差可能很高。由于OMap中的误差,定位误差可能是高的,OMap中的误差包括:(1)不良对准的样本,其可能通过使地图的一部分未对准而影响定位结果,从而导致定位时的模糊结果;(2)应该从OMap中移除但没有移除的时间对象(例如,汽车、骑自行车者或行人);当类似对象接近被定位样本中的相同位置时,这些不是永久的对象可能导致定位误差;(3)例如,由于在OMap构建之前的数据收集问题(例如,车辆的传感器在该位置被阻挡)或者由于没有为地图的该部分收集数据,在OMap中丢失数据。

在定位误差较高的情况下,OMap需要由专家进行分析或自动进行分析,以确定是解决问题(如添加缺失数据)还是识别需要进行额外定位变量分析的场景。在一个实施例中,定位模块290通过基于特定阈值过滤点、以某个最大半径(比方说10m)聚类剩余点、以及为每个聚类创建回顾任务来分析置信度地图的数据。定位模块290可经由用户接口显示审阅任务或经由某一通信机制将审阅任务发送到用户/专家以供分析。例如,用户可以可视地检查这样的区域并确定所需的后续动作。

替代实施例

由于参数变化,定位变量的数量可能是无限的。系统剪除参数空间以减少有效定位变量的数量。这可以使用利用定位技术的实验并且在宽范围的参数上比较结果并且最终缩窄到最有效的参数集合的组合来执行。这可能导致针对特定定位技术的几个10s左右的定位变量,这对于进一步分析是可管理的。在一个实施例中,定位模块290剪除在给定驾驶情境中很可能表现较差的定位变量。定位模块290可以为地理区域标记这些定位变量。因此,定位模块290能够从任何分析中立即消除这些定位变量,从而节省计算资源。如果定位模块290确定定位变量仅对于小百分比的轨迹表现良好,则定位模块290可以进一步分析这些情况。如果定位模块290识别出对于驾驶情境表现得接近最佳并且通常适用的另一变量,则定位模块290将该变量标记为一次性的,并且用该变量的评估结果来记录分辨率的描述。对于获胜变量,定位模块290可进一步创建和评估对关键参数做出较小变化(即,小于来自先前变量集合的初始变化)的那些定位变量的多个变化。定位模块290评估那些定位变量以重新评估获胜的定位变量以及需要剪除的丢失的定位变量。

根据定位表现良好的维度,不同的传感器模态具有不同的收敛区域和解的协方差。例如,在特定地理区域中,基于GPS信号的定位变量的收敛置信度可以比基于激光雷达扫描的那些高,而在另一地理区域中,基于激光雷达扫描的定位变量的收敛置信度可以比基于GPS信号的那些高。在一个实施例中,HD地图系统存储每个地理区域的定位变量的收敛置信度和协方差的度量。例如,HD地图系统确定每个地理区域中不同轨道的定位变量的收敛速率。HD地图系统基于针对每个地理区域中的不同轨道的每种类型的传感器的定位变量的聚合收敛速率来确定收敛置信度的度量。

在一个实施例中,HD地图系统使用预先计算的协方差和卡尔曼滤波对来自定位变量的结果进行积分。当HD地图系统集成不同传感器模态的定位变量时,HD地图系统使用置信度值来确定哪些定位变量更可靠以及在哪些方向上。在一个实施例中,HD地图系统基于不同的传感器确定跨成对定位变量的协方差的测量。HD地图系统使用协方差的测量来使用卡尔曼滤波对来自不同定位变量的结果进行积分。

计算机器架构

图13是示出能够从机器可读介质读取指令并在处理器(或控制器)中执行指令的示例机器的组件的框图。具体地,图13示出了计算机系统1300的示例形式的机器的图示,在计算机系统1400内可以执行用于使机器执行本文所讨论的任何一个或多个方法的指令1324(例如,软件)。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以作为服务器-客户端网络环境中的服务器机器或客户端机器来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。

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

示例性计算机系统1300包括处理器1302(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)或其任意组合)、主存储器1304和静态存储器1306,它们被配置为经由总线1308彼此通信。计算机系统1300还可以包括图形显示单元1310(例如,等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统1300还可以包括字母数字输入设备1312(例如,键盘)、光标控制设备1314(例如,鼠标、轨迹球、操纵杆、运动传感器或其他定点仪器)、存储单元1316、信号生成设备1318(例如,扬声器)和网络接口设备1320,它们也被配置为经由总线1308进行通信。

存储单元1316包括机器可读介质1322,其上存储有实现本文描述的方法或功能中的任何一个或多个的指令1324(例如,软件)。指令1324(例如,软件)还可在其由计算机系统1300执行期间完全或至少部分地驻存于主存储器1304内或处理器1302内(例如,驻存于处理器的高速缓冲存储器内),主存储器1304和处理器1302也构成机器可读介质。指令1324(例如,软件)可经由网络接口设备1320通过网络1326发送或接收。

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

额外的配置考虑

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

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

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

本文中所描述的步骤、操作或过程中的任何一个可单独地或与其它设备组合地用一个或多个硬件或软件模块来执行或实施。在一个实施例中,用包括包含计算机程序代码的计算机可读介质的计算机程序产品来实现软件模块,计算机程序代码可由计算机处理器执行以用于执行所描述的步骤、操作或过程中的任一个或全部。

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

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

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用激光雷达的车辆定位系统

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!