CN113906414A - 用于生成导航自主车辆用的高清晰度地图的位姿图的分布式处理 - Google Patents
用于生成导航自主车辆用的高清晰度地图的位姿图的分布式处理 Download PDFInfo
- Publication number
- CN113906414A CN113906414A CN202080033125.8A CN202080033125A CN113906414A CN 113906414 A CN113906414 A CN 113906414A CN 202080033125 A CN202080033125 A CN 202080033125A CN 113906414 A CN113906414 A CN 113906414A
- Authority
- CN
- China
- Prior art keywords
- pose
- graph
- boundary
- sub
- optimization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title description 28
- 238000005457 optimization Methods 0.000 claims abstract description 152
- 238000000638 solvent extraction Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 154
- 238000003860 storage Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 description 163
- 230000008569 process Effects 0.000 description 93
- 238000001514 detection method Methods 0.000 description 75
- 230000009466 transformation Effects 0.000 description 35
- 230000015654 memory Effects 0.000 description 25
- 239000013598 vector Substances 0.000 description 25
- 230000033001 locomotion Effects 0.000 description 24
- 239000011159 matrix material Substances 0.000 description 20
- 238000012549 training Methods 0.000 description 19
- 239000010410 layer Substances 0.000 description 13
- 238000005259 measurement Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000009826 distribution Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000013439 planning Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008014 freezing Effects 0.000 description 2
- 238000007710 freezing Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/3815—Road data
- G01C21/3819—Road shape data, e.g. outline of a route
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
- G01C21/3841—Data obtained from two or more sources, e.g. probe vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/0088—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
Abstract
根据实施例的一个方面,操作可包括获得包括多个节点的位姿图。操作还可包括将所述位姿图划分成多个位姿子图,每个位姿子图包括一个或更多个相应的位姿子图内部节点和一个或更多个相应的位姿子图边界节点。操作还可以包括基于所述多个位姿子图来生成一个或更多个边界子图,所述一个或更多个边界子图中的每个边界子图包括一个或更多个相应的边界子图边界节点并且包括一个或更多个相应的边界子图内部节点。操作还可包括通过执行位姿图优化来获得经优化的位姿图。所述位姿图优化可包括执行所述多个位姿子图的位姿子图优化以及执行所述多个边界子图的边界子图优化。
Description
相关申请的交叉引用
本专利申请要求于2019年3月5日提交的美国临时申请No.62/813,842的权益和优先权,该申请通过引用以其全部内容并入在本公开中。
背景技术
本公开总体上涉及用于自主车辆的地图,并且更具体地涉及执行对齐由自主车辆捕获的数据的三维表示以生成用于自主车辆导航的高清晰度地图。
自主车辆(也被称为自驾车、无人驾驶车、汽车或机器人车)在不需要人类驾驶员控制和导航车辆的情况下可从源位置驾驶到目的地位置。由于若干原因,驾驶的自动化是困难的。例如,自主车辆使用传感器即时做出驾驶决定,但是车辆传感器不能一直观察所有事物。车辆传感器可能被拐角、起伏的群山和其他车辆遮挡。车辆传感器可能无法足够早地观察到某些事物来做出决定。此外,车道和标志可能在道路上缺失或被灌木撞倒或隐藏,并且因此不能被传感器检测到。此外,用于确定车辆可能从哪里驶来,或用于在紧急情况下转弯或移出车道或当存在必须经过已停止的障碍物时,通行权的道路标志可能不容易可见。
自主车辆可以使用地图数据来计算出以上信息中的一些,而不是依赖于传感器数据。然而,常规地图具有使它们难以用于自主车辆的若干缺点。例如,常规地图可能不提供有助于安全导航的目标精度水平(例如,30cm或更小)。基于GNSS(全球导航卫星系统)的系统提供大约3-5米的精度,但在一些实例中具有可能导致超过100m的精度的大误差条件。这使得准确地确定车辆的位置具有挑战性。
此外,常规地图由测量团队创建,测量团队使用具有特殊配备的、有高分辨率传感器的汽车的驾驶员,在地理区域周围驾驶并且进行测量。测量结果被取回并且地图编辑者的团队根据测量结果组装地图。该过程昂贵且耗时(例如,花可能几个月来完成地图)。因此,使用这样的技术组装的地图不具有新近的数据。例如,道路每年大约5%-10%频繁被更新/修改。但是测量车昂贵并且数量有限,使得它们可能不能捕获这些更新中的大多数。例如,测量车队可包括一千辆汽车。对于美国的即使一个州,一千辆汽车也无法在某些安全参数内定期保持地图最新以用于自驾。因此,维护地图的传统技术无法提供足够准确且最新的正确数据用于以目标精度水平(例如,将安全保持在阈值水平内的精度水平)导航自主车辆。
发明内容
根据实施例的一个方面,操作可以包括获得包括多个节点的位姿图,位姿图的每个节点表示多个车辆中的相应车辆的相应位姿,每个相应位姿包括相应车辆的地理位置和相应车辆的方位。所述操作还可包括将所述位姿图划分成多个位姿子图,每个位姿子图包括一个或更多个相应位姿子图内部节点和一个或更多个相应位姿子图边界节点。所述操作还可以包括基于所述多个位姿子图来生成一个或更多个边界子图,所述一个或更多个边界子图中的每个边界子图包括一个或更多个相应边界子图边界节点以及各自是相应位姿子图边界节点的一个或更多个相应边界子图内部节点。所述操作还可包括通过执行位姿图优化来获得经优化的位姿图。所述位姿图优化可包括执行所述多个位姿子图的位姿子图优化。执行位姿子图优化可包括调整相应位姿子图内部节点的内部节点位姿,同时保持相应位姿子图边界节点的边界节点位姿固定。所述位姿图优化还可包括执行所述多个边界子图的边界子图优化。执行边界子图优化可包括调整相应边界子图内部节点的内部节点位姿,同时保持相应边界子图边界节点的边界节点位姿固定。
附图说明
图1示出了根据实施例的与多个车辆计算系统交互的HD地图系统的整体系统环境。
图2示出了根据实施例的车辆计算系统的系统架构。
图3示出了根据实施例的车辆计算系统的HD地图API中的各个指令层。
图4示出了根据实施例的HD地图系统的系统架构。
图5示出了根据实施例的HD地图的组成。
图6A至图6B示出了根据实施例的在HD地图中定义的地理区域。
图7示出了根据实施例的HD地图中的车道的表示。
图8A至图8B示出了根据实施例的HD地图中的车道元素和车道元素之间的关系。
图9A至图9B示出了根据实施例的供HD地图系统使用的坐标系。
图10示出了根据实施例的通过HD地图系统进行的LIDAR点云解开的过程。
图11示出了根据实施例的全局对齐模块的系统架构。
图12(A)示出了根据实施例的单轨迹成对对齐过程。
图12(B)示出了根据实施例的全局对齐过程。
图13示出了根据实施例的位姿图的可视化。
图14示出了根据实施例的包括基于GNSS的位姿先验的位姿图的可视化。
图15示出了根据实施例的用于执行位姿图优化的过程的流程图。
图16示出了根据实施例的基于机器学习的ICP结果过滤器的系统架构。
图17示出了根据实施例的用于训练基于机器学习的ICP结果过滤器的模型的过程。
图18示出了根据实施例的使用基于机器学习的模型执行ICP结果过滤的过程。
图19(A)示出了根据实施例的来自位姿图的示例子图。
图19(B)示出了根据实施例的用于分布式执行位姿图优化的将位姿图划分成子图。
图20示出了根据实施例的用于位姿图的分布式处理的过程。
图21示出了根据实施例的用于位姿图的分布式优化的过程。
图22示出了根据实施例图示出对位姿图的增量更新的过程的示例。
图23示出了根据实施例图示出对位姿图的增量更新的过程的流程图。
图24示出了根据实施例的由HD地图系统执行的ICP处理。
图25示出了根据实施例由HD地图系统使用LiDAR距离图像估计点云法线。
图26示出了根据实施例的用于由HD地图系统使用LiDAR距离图像来确定点云法线的过程。
图27示出了根据实施例的用于基于表面分类为硬/软来执行成对对齐的过程。
图28示出了根据实施例的用于确定沿着表面的点的置信度度量以用于成对对齐的过程。
图29示出了根据实施例的用于确定点的置信度度量的过程。
图30示出了根据实施例的用于自动检测未对齐热点的过程。
图31示出了根据实施例的用于检测在点云中表示的表面的未对齐的过程。
图32示出了根据实施例的在点云中表示的地面的未对齐的检测。
图33示出了根据实施例的用于检测在点云中表示的地表面的未对齐的过程。
图34示出了根据实施例的用于检测在点云中表示的垂直表面的未对齐的过程。
图35示出了根据实施例图示出检测在点云中表示的垂直结构(诸如墙壁)的未对齐的示例。
图36示出了根据实施例的示例子图的节点类型。
图37示出了根据实施例的来自地理区域(例如,局部区域)的示例子图。
图38示出了根据实施例的边界子图的组成。
图39示出了根据实施例的边界子图。
图40A示出了根据实施例的位姿互锁的问题。
图40B示出了根据实施例的位姿子图和边界子图优化的解耦。
图41示出了根据实施例的导致缓慢收敛的受限通信的问题。
图42示出了执行位姿图的分布式优化的示例方法的流程图。
图43示出了可以从机器可读介质中读取指令并且在处理器或控制器中执行指令的计算机的实施例。
附图仅出于说明的目的描绘了本公开的各个实施例。所属领域的技术人员将从以下论述容易地认识到,在不脱离本文中所描述的本公开的原理的情况下,可采用本文中所说明的结构和方法的替代实施例。
具体实施方式
综述
本公开的实施例涉及以相对高的精度生成和使用包含最新信息的高清晰度(HD)地图。HD地图可由自主车辆使用以在没有人类输入或具有有限的人类输入的情况下安全地导航到其目的地。在本公开中,提及“安全导航”可以指在目标安全阈值内执行导航。例如,目标安全阈值可以是一定数量的无事故行驶时间。这样的阈值可以由汽车制造商或政府机构设置。另外,提及“最新”信息不一定必须意味着绝对最新,而是在目标阈值时间量内最新。例如,目标阈值时间量可以是一周或更短,从而使得反映在过去一周内可能已经发生的道路的任何潜在变化的地图可以被认为是“最新的”。这样的目标阈值时间量可以在从一个月到1分钟不等,或可能甚至更短。
自主车辆是能够感测其环境并且在没有人类输入的情况下导航的车辆。自主车辆在此还可以被称为“无人驾驶车”、“自驾车”或“机器人车。”HD地图是指以非常高的精度(例如,2-30cm内的精度水平)存储数据的地图。本公开的实施例生成HD地图,所述HD地图包含关于自主车辆可以行驶的道路的空间几何信息。因此,所生成的HD地图包括可由自主车辆用于在没有人为干预的情况下安全导航的信息。代替使用包括配备有高分辨率传感器的车辆的昂贵且耗时的地图车队过程来收集HD地图的数据,本公开的实施例可以在自驾车辆驾驶通过它们的环境时使用来自自驾车辆自身的较低分辨率传感器的数据。车辆可不具有用于这些路线或甚至用于该区域的先前地图数据。本公开的实施例还可提供位置即服务(LaaS),使得不同制造商的自主车辆可分别访问经由本公开的这些实施例创建的最新地图信息。
实施例生成并维护高清晰度(HD)地图,所述HD地图是准确的并且包括用于安全导航的最新的道路状况。例如,HD地图提供自主车辆相对于道路的车道的当前位置,其精确到足以允许自主车辆在车道中安全驾驶。
HD地图存储非常大量的信息,因此在管理信息时面临挑战。例如,大的地理区域的HD地图可能不适合车辆的本地存储。本公开的一些实施例向自主车辆提供HD地图的一部分,其允许车辆在HD地图中确定其当前位置、确定道路上相对于车辆位置的特征、基于物理约束和法律约束来确定移动车辆是否安全等。物理约束的示例包括物理障碍物(诸如墙壁),并且法律约束的示例包括合法允许的车道行进方向、速度限制、让行、停车。
本公开的实施例可通过提供:低延迟(例如,10-20毫秒或更少)以提供对来自存储在车辆的本地存储器上的HD地图部分的信息的请求的响应;就位置而言的高精确度,例如在一些情况下在5-30cm内或甚至可能小于5cm的精确度;通过更新地图以反映合理时间范围内(例如,目标阈值时间量内)道路上的变化的数据新鲜度;以及通过减少或最小化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接收由多个车辆150(例如,数百或数千辆汽车)的传感器收集的数据(115)。车辆提供在沿不同路线驾驶时捕获的传感器数据并将其发送到在线HD地图系统110。在线HD地图系统110使用从车辆150接收的数据来创建和更新描述车辆150正在行驶的区域的HD地图。在线HD地图系统110基于从车辆150接收的总的信息构建高清晰度地图,并且将HD地图信息存储在HD地图存储器165中。
在线HD地图系统110基于车辆150在导航期间可使用的HD地图的哪一部分而向各个车辆150发送HD地图(125)。例如,如果自主车辆被安排沿一路线行驶,则自主车辆的车辆计算系统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)、GNSS导航系统、惯性测量单元(IMU)等。车辆具有捕获车辆周围环境的图像的一个或更多个相机。LIDAR通过用激光脉冲照射目标并测量反射脉冲来测量到目标的距离,从而探测车辆的周围环境。GNSS导航系统基于来自卫星的信号确定车辆的位置。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和HD地图应用编程接口(API)205。车辆计算系统120的各个模块处理各种类型的数据,包括传感器数据230、行为模型235、路线240和物理约束245。在其他实施例中,车辆计算系统120可以具有更多或更少的模块。被描述为由特定模块实现的功能可以由其他模块实现。
感知模块210从车辆150的传感器105接收传感器数据230。这包括由汽车的相机、LIDAR、IMU、GNSS导航系统等收集的数据。感知模块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的任何急转弯或曲折路径。车辆从点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)。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地图API 270、地图更新API 285等。
例如,当车辆启动时和当车辆沿路线移动时,定位API 250确定车辆的当前位置。定位API 250包括确定车辆在HD地图内的精确位置的定位API。车辆计算系统120可以使用该位置作为准确的相对定位用于进行其他查询,例如,本文中进一步描述的特征查询、可导航空间查询和占用地图查询。定位API接收输入,该输入包括由GNSS提供的位置、由IMU提供的车辆运动数据、LIDAR扫描仪数据和相机图像中的一个或更多个。定位API返回作为纬度和经度坐标的车辆的精确位置。由定位API返回的坐标比用作输入的GNSS坐标更精确,例如,定位API的输出可具有5-10cm的精确度范围。在一个实施例中,车辆计算系统120调用定位API以基于LIDAR使用扫描器数据周期性地确定车辆的位置,例如以10Hz的频率。如果GNSS/IMU数据以更高的速率(例如,60Hz)可用,则车辆计算系统120可调用定位API以该更高的速率确定车辆位置。车辆计算系统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地图存储器275又用于存储在在线HD地图系统110中的HD地图存储器165。因此,车辆计算系统120中的模块调用用于从在线HD地图系统110向车辆计算系统120下载数据的地图更新API 285,以便在必要时存储在本地HD地图存储器275中。地图更新API 285还允许车辆计算系统120确定由车辆传感器105监测的信息是否指示由在线HD地图系统110提供的地图信息中的差异并且将数据上传到在线HD地图系统110,这可能导致在线HD地图系统110更新存储在HD地图存储器165中的、被提供给其他车辆150的地图数据。
图4示出了根据实施例的车辆计算系统的HD地图API中的各个指令层。车辆的不同制造商具有用于从车辆传感器105接收信息和用于控制车辆控制器130的不同指令。此外,不同的供应商为不同的计算机平台提供自主驾驶能力,例如,收集和分析车辆传感器数据。用于自主车辆的计算机平台的示例包括供应商提供的平台,如辉达(NVIDIA)、高通(QUALCOMM)和英特尔(INTEL)。这些平台提供由自主车辆制造商在自主车辆的制造中使用的功能。车辆制造商可以使用用于自主车辆的任何一个或若干计算机平台。在线HD地图系统110基于特定于车辆制造商的指令和特定于车辆的供应商特定平台的指令提供用于处理HD地图的库。库提供对HD地图数据的访问并且允许车辆与在线HD地图系统110交互。
如图3所示,在实施例中,HD地图API可以被实现为包括车辆制造商适配器310、计算机平台适配器320和公共HD地图API层330的库。公共HD地图API层包括可以跨多个车辆计算机平台和车辆制造商使用的通用指令。计算机平台适配器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、地图精度管理模块、车辆接口模块和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/英里的数据,从而导致美国的地图(包含4百万英里的道路)占据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型路口的示例,其示出了车道元素810a,车道元素810a经由转弯车道810b连接至车道元素810c并且经由转弯车道810d连接至车道810e。图8B示出了道路中的Y型路口的示例,其示出了直接连接至车道810h并经由车道810g连接至车道810i的标记810f。HD地图系统100将从源位置到目的地位置的路线确定为从源位置到目的地位置的可被穿越到达的所连接车道元素的序列。
坐标系
图9A至图9B示出了根据实施例的供HD地图系统使用的坐标系。其他实施例可以使用其他坐标系。
在实施例中,HD地图系统使用图9A中示出的车辆坐标系,使得X轴的正方向是车辆的向前方向,Y轴的正方向是在面向前方时向车辆的左侧,并且Z轴的正方向是向上的。所有轴都表示距离,例如使用米。坐标系的原点在靠近汽车中心的地面上,使得在地平面的原点的z坐标值以及x坐标值和y坐标值都靠近汽车中心。在实施例中,原点的X、Y坐标在汽车的LIDAR传感器的中心处。
在另一个实施例中,HD地图系统使用图9B中示出的LIDAR坐标系,使得X轴的正方向是当面向前方时向车辆的左侧,Y轴的正方向是车辆的向前方向,并且Z轴的正方向向上。所有轴表示距离,例如使用米。坐标系的原点在LIDAR的盘件装置的物理中心处。
在校准阶段期间,HD地图系统确定坐标变换Tl2c以将LIDAR坐标系映射到车辆坐标系。例如,给定点Plidar,可以通过执行变换Pcar=Tl2c*Plidar来获得车辆中的相应点Pcar。点表示Pcar用于对齐和处理。
点云解开(UNWINDING)
图10示出了根据实施例的通过HD地图系统进行的LIDAR(或LiDAR)点云解开的过程。LiDAR安装在移动的车辆上。因而,LIDAR在其进行扫描时正在移动。例如,以每小时65英里的行进速度,以10HZ采样的LIDAR可以在每次扫描期间行进高达3.5m。HD地图系统补偿LIDAR的运动以将原始LIDAR扫描数据变换成与现实世界一致的点云。
为了在特定时间戳恢复周围环境相对于LiDAR的位置的真实3D点云,HD地图系统执行被称为解开的过程以在扫描环境的过程期间补偿LiDAR的运动。
假设在扫描期间LiDAR移动的运动为T。LiDAR波束经由其在距离图像中的行和列索引来识别。HD地图系统导出每个LiDAR波束相对于扫描的开始时间的相对定时。HD地图系统使用线性运动插值来根据其相对于开始时间的插值运动来移动每个LiDAR波束。在将该额外运动补偿添加到每个LiDAR波束之后,HD地图系统将静态世界环境恢复为解开的点云。
根据不同实施例,存在用以在每一扫描过程期间估计LiDAR的相对运动(T)(即,解开变换)的不同方式。在一个实施例中,HD地图系统使用GNSS-IMU(全球定位系统-惯性测量单元)数据来解开。在另一个实施例中,HD地图系统使用原始的连续LiDAR点云来运行成对的点云配准。在另一个实施例中,HD地图系统执行全局对齐,然后从相邻的LiDAR位姿计算相对变换。
全局对齐
给定轨迹集合(其包括GNSS-IMU和LiDAR数据),HD地图系统执行全局对齐,该全局对齐融合GNSS-IMU和LiDAR数据以计算每个LiDAR帧的全局一致的车辆位姿(位置和方位)。利用全局车辆位姿,HD地图系统将LiDAR帧合并为一致的、统一的点云,从点云可以构建3DHD地图。
图11示出了根据实施例的全局对齐模块的系统架构。全局对齐模块包括位姿图更新模块1110、成对对齐模块1120、ICP(即,迭代最近点)结果过滤器模块1130、表面分类模块1140、位姿图优化模块1150、分布式执行模块1160、未对齐热点检测模块1160、GNSS位姿先验处理模块1170和位姿图存储器1180。结合本文描述的各个过程进一步描述每一模块的功能。
单轨迹成对对齐
图12(A)示出了根据实施例的单轨迹成对对齐过程。在一个实施例中,单个成对对齐过程由成对对齐模块1120执行。HD地图系统将每个数据集合数据组织为轨迹。轨迹数据至少包括GNSS-IMU和LiDAR数据。单轨迹对齐是执行以下步骤的预处理步骤:(1)接收单轨迹数据1205,(1)执行LiDAR到车辆校准变换1210;(2)基于GNSS-IMU和LiDAR数据的时间戳执行GNSS-IMU和LiDAR数据的同步1215;(3)移除静态样本1220,例如,当汽车停在交通灯处时获取的样本;(4)计算解开变换用于运动补偿1225;(5)通过计算同一轨迹内的点云之间的成对配准来执行成对对齐1230。HD地图系统还执行ICP结果过滤1235。
当车辆停止时,例如在红色交通灯处,LiDAR测量是多余的。HD地图系统通过预过滤轨迹样本来移除静态点云样本。HD地图系统为每个轨迹保留第一样本。当并且仅当后续样本到由其GNSS位置测量的先前非静态样本的距离超过以米为单位测量的特定阈值(例如,0.1米)时,HD地图系统将后续样本识别为非静态样本。尽管GNSS测量不总是准确的,并且可能有突然的跳变,但是HD地图系统仍使用GNSS位置来滤除静态样本,因为GNSS测量是全局一致的。作为比较,每次计算全局优化时,来自全局LiDAR位姿的相对位置会变化,从而导致不稳定的非静态样本。
解开变换是在扫描过程期间(即,从扫描的开始时间到结束时间)的相对运动。因此,HD地图系统总是使用连续的LiDAR样本来估计解开变换。例如,HD地图系统可以为非静态样本i计算解开变换,HD地图系统使用即时样本(i+1)来计算该解开变换,即使样本(i+1)可能不是非静态样本。
HD地图系统使用原始LiDAR点云来预先计算解开变换。基本假设是可以通过仅使用原始LiDAR点云运行点到平面ICP来估计正确的运动。这种假设通常对于稳定运动(即,速度或旋转速率没有变化)是正确的。在该假设下,解开变换对于两个相关点云具有相同的效果,因此,忽略它也仍然从两个原始点云提供合理的运动估计。
为了计算非静态样本i的解开变换,HD地图系统使用以下设置找到其连续的LiDAR样本(i+1)并运行点到平面ICP:(1)源点云:LiDAR样本i+1(2)目标点云:LiDAR样本i。HD地图系统为目标点云估计法线并构造空间索引数据结构(KD树),并且使用点到平面ICP来计算源点云的相对变换作为解开变换。对于ICP过程的初始猜测,HD地图系统使用来自GNSS-IMU的运动估计。用以计算解开变换的ICP可能无法收敛。在这样的情况下,HD地图系统忽略非静态样本。
一旦计算了所有非静态样本的解开变换,HD地图系统就使用解开变换来运动补偿相关点云,使得它们与真实世界一致。HD地图系统计算相同轨迹的非静态样本之间的成对点云对齐。对于每个非静态轨迹样本,HD地图系统使用搜索半径来寻找其他附近的单轨迹非静态样本。HD地图系统将相关样本组织成用于ICP计算的ICP对的列表。每个ICP对可潜在地经由并行计算框架独立地计算。对于每个ICP对,源点云和目标点云首先使用它们对应的解开变换来解开,然后作为输入提供给点到平面ICP过程以获得它们的相对变换。
成对的点到平面ICP过程计算变换矩阵(T),并且还将6DOF(自由度)变换的置信度报告为6x6信息矩阵。例如,如果6-DOF的运动估计为[tx,ty,tz,侧倾,俯仰,偏摆],那么6x6信息矩阵(Ω)为协方差矩阵的逆矩阵,其提供每一维度的置信度度量。例如,如果汽车沿着x轴进入长的走廊,则点到平面ICP不能准确地确定沿着x轴的相对运动,因此,HD地图系统向信息矩阵中对应于tx的元素分配低置信度值(即,tx的大方差)。
交叉轨迹成对对齐
为了合并来自不同轨迹的LiDAR样本,HD地图系统计算来自不同轨迹的LiDAR样本的闭环成对变换。对于每个非静态样本,HD地图系统在半径内搜索来自其他轨迹的附近的非静态样本。相关样本被组织成用于ICP计算的ICP对的列表。每个ICP对可以通过并行计算框架独立地计算。对于每个ICP对,源点云和目标点云首先使用它们对应的解开变换来解开,然后被馈送到点到平面ICP以获得它们的相对变换。
在完成所有成对对齐时,HD地图系统执行全局位姿优化并解决以下问题。
给定来自多个轨迹的N个样本的集合{样本i}以及它们在这些样本之间的相对变换{Tij,i∈[1…N],j∈[1…N]}和相应的信息矩阵{Ωij,i∈[1…N],j∈[1…N]},HD地图系统为每个样本计算全局一致位姿的集合{xi,i∈[1…N]},使得成对变换之间的不一致性被减少或最小化:
图12(B)示出了根据实施例的全局对齐过程。在完成单轨迹对齐时,全局对齐模块40 0出于闭环的目的,通过对来自不同轨迹的LiDAR样本执行交叉轨迹成对对齐1245来执行全局对齐。HD地图系统将单轨迹成对对齐结果和交叉轨迹成对对齐结果组合,以构建全局位姿图。HD地图系统重复地执行全局位姿优化(1255)并执行对结果的审核和手动改进(1260)。HD地图系统经由全局位姿图优化来确定最终车辆位姿(1270)。
生成位姿图
在实施例中,全局优化可作为位姿图的处理来执行。HD地图系统针对所有可用样本({Vi=xi}),使用节点来表示每个样本的位姿。这些边是成对变换和用于节点之间的成对变换的相应信息矩阵({Eij={Tij,Ωij}})。
图13示出了根据实施例的位姿图的可视化。全局位姿优化的目标是优化位姿图中每个节点的位姿,使得它们的相对成对变换尽可能接近从成对ICP计算的由相应信息矩阵加权的变换。这可以使用以下等式在数学上表达:
向位姿图添加位姿先验
以上位姿图优化由于成对变换而添加了约束,并且因此,对所有节点的任何全局变换仍然是优化的有效解决方案。在实施例中,HD地图系统保持位姿与GNSS测量尽可能接近,因为GNSS测量一般是全局一致的。因此,HD地图系统选择节点的子集(P),并且减少或最小化其与它们对应的GNSS位姿的全局位姿差异。
图14示出了根据实施例的包括基于GNSS的位姿先验的位姿图的可视化。如图14所示,一元边被添加到位姿图中的节点的子集。示为粉红色节点的点1410是添加到对应图节点的位姿先验。
添加全局位姿先验等效于在节点的子集上添加正则化项,即:xi:是添加到节点xi的全局GNSS位姿先验,并且是当前位姿xi与其位姿先验x i之间的位姿差异;Ωii:是全局位姿先验的强度或置信度。该信息越大,为该全局位姿先验就添加越多的权重。根据各个实施例,这些是用于选择位姿先验的样本子集的一些方式:(1)以固定距离间隔从每个轨迹选择样本,(2)执行随机采样,(3)每个纬度/经度边界框选择一个节点。实施例可以基于GNSS位姿和成对对齐的质量来适配节点子集的创建。例如,选择过程可有利于选择具有高质量位姿的GNSS节点或增加具有低质量成对对齐的区域中的采样密度。
HD地图系统确定全局位姿先验的置信度,类似于GNSS位姿的置信度度量。置信度可以用估计的误差方差的逆来测量。因而,HD地图系统将位姿中的较低方差与较高置信度相关联。HD地图系统在执行用于估计位置的GNSS计算的同时确定位置误差方差。HD地图系统通过考虑诸如卫星的相对位置和到每个卫星的距离的残余误差的因素来确定位置误差方差。HD地图系统将全位姿(位置和方位)误差方差确定为用于将GNSS位姿与其他传感器数据(例如,IMU、磁力计、视觉里程计等)组合的计算的副产品。在实施例中,HD地图系统使用卡尔曼滤波器,该卡尔曼滤波器输出具有每个位姿的估计的误差方差。HD地图系统确定所估计的位姿与GNSS和IMU数据一致性越好,预期误差方差就越低且我们在位姿中的置信度就越高。位置误差方差和位姿误差方差都是集成的GNSS/IMU设备的标准输出。
位姿图优化
HD地图系统执行位姿图的初始化以便正确收敛。位姿图优化是其中可以存在多个局部最小值的非线性优化。HD地图系统使用GNSS位姿来初始化位姿图中的所有位姿。尽管每个GNSS位姿可能有偏差,但是GNSS测量提供了位姿误差的全局界限。在初始化位姿图之后,HD地图系统使用非线性求解器来优化整个位姿图。
自动构造的位姿图可能由于缺少闭环边、或者诸如天桥、多级车库等的非平面结构而容易出错。HD地图系统通过检查与全局位姿合并的点云的清晰度来指派操作员来验证全局优化的位姿。HD地图系统还允许操作者手动地添加闭环边以改善位姿图质量。在完成人工检查过程时,具有添加的人工边的新位姿图被优化,以使得可以产生更准确的全局位姿集合。为了自动识别HD地图系统在哪里可以受益于人工检查或改进,HD地图系统提供自动对齐热点检测。
对齐的总体过程
图15示出了根据实施例的用于执行位姿图优化的过程的流程图。过程的各个步骤可由位姿图优化模块1150和GNSS位姿先验处理模块1170来执行。HD地图系统将位姿图存储在位姿图存储器1180中(1500)。位姿表示车辆的位置和方位。HD地图系统收集轨迹数据,每个轨迹数据包括由沿路线行驶的车辆收集的传感器数据,例如,表示由安装在自主车辆上的LIDAR收集的距离图像的LIDAR帧。位姿图中的两个位姿之间的边连接两个相关联的节点,例如,表示由车辆沿路线从其收集传感器数据的连续位置的节点。
GNSS位姿先验处理模块1170从位姿图选择节点的子集(1510)。对于子集的每个节点,GNSS位姿先验处理模块1170执行步骤1520和1530。在1520,GNSS位姿先验处理模块1170识别对应于节点的GNSS位姿。在1530,GNSS位姿先验处理模块1170减少或最小化节点和GNSS位姿之间的全局位姿差异。
位姿图优化模块1150使用位姿图来执行位姿图优化(1540)。HD地图系统合并传感器数据(例如,LIDAR帧)以生成一致的、统一的点云。HD地图系统使用点云生成高清晰度地图。
ICP结果的过滤
传统的ICP技术不能保证收敛到全局最优解。实际上,如果对ICP算法的初始猜测是坏的,则ICP可能陷入局部最小值并返回不正确的变换。因此,实施例使用质量控制方法对每个ICP结果进行评级,并去除不良的ICP结果。HD地图系统基于在ICP计算期间可收集的各种统计数据而对ICP结果使用自动QA方法。
在每个ICP的最后一次迭代,HD地图系统从当前对应关系集C={ci|ci=[si→(di,ni)]}中收集统计数据。从这些对应关系中,HD地图系统收集以下统计数据:(1)对应关系之间的平均带符号距离误差。(2)对应关系之间的带符号点到平面误差的方差,(3)对应关系之间带符号距离误差的分布的直方图。由于变换是在6D参数空间(用于平移的三个自由度(3DOF)和用于旋转的3DOF)中,所以HD地图系统将代价函数近似为二次代价,如以下等式所示:
其中xT=[tx,ty,tz,侧倾,俯仰,偏摆]是可以生成4x4变换矩阵的6D向量,并且叫做ICP信息矩阵。信息矩阵揭示ICP优化的每个维度的不确定性。对于ICP信息矩阵,HD地图系统计算以下属性:条件数和特征值。
除了统计数据之外,HD地图系统还计算ICP结果和对应的GNSS-IMU位姿之间的位姿差异。对于每个ICP结果,HD地图系统计算ICP结果与从GNSS-IMU计算的成对位姿之间的位姿差。位姿差可被概括为6D向量:[delta_x,delta_y,delta_z,delta_侧倾,delta_俯仰,delta_偏摆]。该6D向量也被添加到SVM ICP结果分类器的特征向量中。
结合ICP信息矩阵的统计和分析,HD地图系统形成用于每个ICP的特征向量,包括以下特征:平均带符号距离误差、方差带符号距离误差、误差直方图、条件数、特征值、GNSS-IMU位姿之间的差异和其他可能的特征,例如,视觉里程计之间的差异。HD地图系统首先建立一组人类经验证的地面实况ICP结果数据集,并且计算每个ICP结果的特征向量。该特征向量的集合允许HD地图系统训练二元分类器,例如,SVM分类器,其可根据对应的特征向量预测当前ICP结果正确的概率。经训练的机器学习模型(例如,SVM模型)报告每个ICP结果正确的概率,这允许HD地图系统滤除不良的ICP结果,并且向人类标注员通知可能需要手动调整的不良的ICP结果。
图16示出了根据实施例的基于机器学习的ICP结果过滤器的系统架构。ICP结果过滤器480包括训练模块1610、ICP结果过滤器模型1620、特征提取模块1630和训练数据存储器1640。训练数据存储器1640存储用于训练ICP结果过滤器模型1620的训练数据。特征提取模块1630使用ICP结果过滤器模型1620从存储在训练数据存储器1640中的数据或从接收的用于处理的输入数据中提取特征。训练模块1610使用存储在训练数据存储器1640中的训练数据来训练ICP结果过滤器模型1620。
图17示出了根据实施例的用于训练基于机器学习的ICP结果过滤器的模型的过程。训练模块1610接收多个数据集,包括根据由车辆的传感器捕获的数据确定的区域的3D表示(1700)。
训练模块1610重复步骤1610、1620、1630、1640和1650。训练模块1610确定地理区域中的多个对象的第一3D表示和第二3D表示(1710)。训练模块1610基于迭代最近点(ICP)技术来确定将第一3D表示映射到第二3D表示的变换(1720)。特征提取模块1630基于特定的ICP结果提取包括特征的特征向量(1730)。训练模块1610从用户接收针对ICP结果的标记(1750)。训练模块1610将标记的ICP结果存储在训练数据存储器1740中。
训练模块1610训练被配置为生成分数的基于机器学习的ICP结果过滤器模型1620,该分数指示输入的ICP结果是否可受益于手动验证。
图18示出了根据实施例的使用基于机器学习的模型执行ICP结果过滤的过程。ICP结果过滤器模块480接收由在该区域中行驶的自主车辆的传感器捕获的一部分地理区域的传感器数据(1800)。
ICP结果过滤器模块480重复步骤1810、1820、1830、1840和1850以执行全局位姿优化。ICP结果过滤器模块480确定在一部分区域中的多个对象的第一3D表示和第二3D表示(1810)。ICP结果过滤器模块480基于迭代最近点(ICP)技术确定将第一3D表示映射到第二3D表示的变换(1820)。ICP结果过滤器模块480基于ICP结果提取包括特征的特征向量(1830)。ICP结果过滤器模块480提供特征向量作为基于机器学习的ICP结果过滤器模型1820的输入,用于确定指示ICP结果的正确性的分数(1840)。如果分数指示结果是不准确的,则ICP结果过滤器模块480提供用于手动验证的结果。在一些实施例中,结果验证由自动代理执行,例如由专家系统执行。
HD地图系统基于手动验证接收结果,并且基于全局位姿优化生成HD地图(1860)。
全局对齐的分布式执行
为了创建覆盖大地理区域(例如,大城市)的地图,位姿图可包含具有大量边的数十亿个样本。实际上不可能在单个计算机器上执行位姿图优化。HD地图系统的实施例实施分布式方法来优化大的位姿图。
图19(A-B)示出了根据实施例的用于位姿图优化的分布式执行的将位姿图划分成子图。如图19(A)所示,给定大的位姿图1900,HD地图系统将位姿图划分成不相交的子图1910。对于每个子图1910,HD地图系统以一定的余量扩展其边界,如图19所示。结果,每个子图包含一组核心节点1920,核心节点1920是由该特定子图处理的节点。此外,它还在缓冲区域中具有环绕的缓冲节点1930。在缓冲区域的边界上,HD地图系统具有固定的边界节点。
如图19(B)所示,HD地图系统将整个位姿图1900划分成大量子图1910,其中所有子图的核心节点1920的并集覆盖原始位姿图中的所有节点。以下过程以分布式方式优化位姿图。
图20示出了根据实施例的用于位姿图的分布式处理的过程。在实施例中,该过程的步骤由分布式执行模块1160执行。HD地图系统接收位姿图的节点和边(2000)。位姿图中的节点表示样本的位姿,并且位姿图中的边表示一对的节点之间的成对变换。分布式执行模块1160将位姿图划分成多个位姿子图,每个位姿子图包括核心位姿子图部分和边界位姿子图部分(2010),如图19中所示。分布式执行模块1160跨多个处理器分布子图,每个处理器被分配一组相邻位姿子图(2020)。HD地图系统100使用多个处理器并行地执行全局位姿图优化(2030)。
图21示出了根据实施例的用于位姿图的分布式优化的过程。HD地图系统针对每个位姿子图重复以下步骤。当边界节点位姿在迭代之间变化时或者当跨边界节点的变化的总度量大于阈值时,重复以下步骤。HD地图系统在保持边界节点固定的同时优化位姿子图(2100)。HD地图系统根据相邻位姿子图更新边界节点(2110)。HD地图系统确定边界节点中的变化量(2120)。如果边界节点没有变化或者边界节点的变化度量低于阈值,则HD地图系统标记子图优化完成(2130)。
HD地图系统将位姿图划分成具有不相交核心节点的子位姿图的方式影响相交位姿图的收敛速度。子位姿图在本文中也被称为位姿子图。存在长的反馈回路,其中,误差在位姿图上以波形反弹,从而导致边界节点在大量迭代中发生变化。各个实施例。各个实施例用不同的细分策略解决该问题。根据实施例,HD地图系统基于纬度/经度边界框来细分位姿图。此策略可导致大量的边界节点,其会减慢收敛。在另一个实施例中,HD地图系统基于图形切割来细分位姿图。例如,HD地图系统可以在长路段的中心处切割位姿图。这导致最小数量的边界节点。
在另一个实施例中,HD地图系统在交叉路口处切割位姿图。因为交叉路口中的样本通常受到很多边的约束,所以在交叉路口处切割位姿图可以导致边界节点的快速收敛,并且因此加速分布式位姿图优化。通常,在实施例中,HD地图系统识别具有由车辆返回的大量样本的地理区域部分并且将位姿图划分成子图以使得边界经过这样的区域。使子图的边界通过具有大量样本的地理区域部分导致更快的收敛。
全局对齐的增量处理
HD地图系统允许将轨迹的数据增量添加到所构建和优化的位姿图。这允许定期地更新位姿图并将其结合到HD地图中。
图22示出了根据实施例的图示出对位姿图的增量更新的过程的示例。
图22示出了包括轨迹{轨迹1,轨迹2,…,轨迹N}的现有位姿图G0。在新的轨迹被收集之后,新轨迹的集合被添加到图G0,HD地图系统添加这些M新轨迹{轨迹N+1,轨迹N+2,…,轨迹N+M}到现有位姿图以得到包括所有N+M个轨迹的新位姿图G。
图23示出了根据实施例的图示出对位姿图的增量更新的过程的流程图。在实施例中,过程的各个步骤由增量位姿图更新模块1110执行并且在在线HD地图系统110中执行。
HD地图系统生成包括轨迹的集合S1{轨迹1,轨迹2,…,轨迹N}的位姿图G0(2300)。在实施例中,使用图20和图21中示出的过程来生成和优化位姿图G0。HD地图系统接收新轨迹的集合S2{轨迹N+1,轨迹N+2,…,轨迹N+M},用于添加到现有位姿图G0(2310)。
HD地图系统在包括轨迹Tx和Ty的轨迹对之间执行成对对齐,从而使得从M个新轨迹的集合S2中选择Tx和Ty两者(2320)。因而,HD地图系统对新轨迹执行单轨迹解开变换和单轨迹成对变换。
HD地图系统在轨迹对(Tp,Tq)之间执行成对对齐,使得Tp选自集合S1并且Tq选自集合S2(2330)。因而,HD地图系统通过将新轨迹彼此相关以及将新轨迹与现有轨迹相关联来执行交叉轨迹成对对齐。如图22所示,除了计算M个新轨迹之间的交叉轨迹成对对齐之外,HD地图系统还针对新轨迹和现有N个轨迹计算交叉轨迹成对对齐。利用新的单个轨迹和交叉轨迹成对对齐结果,HD地图系统构建新的位姿图G,其中G的节点是G0中的所有样本和新轨迹中的所有样本的并集。G的边包括来自G0的边和新计算的单个轨迹和交叉轨迹成对ICP结果。
HD地图系统在来自集合S1和S2的轨迹上执行位姿图优化(2340)。在一个实施例中,HD地图系统执行位姿图的优化,而不改变针对现有轨迹的样本{轨迹1,轨迹2,…,轨迹N}的位姿。因而,在位姿图优化过程中,HD地图系统冻结现有轨迹的样本{轨迹1,轨迹2,…,轨迹N}的位姿。结果,HD地图系统仅优化新的轨迹样本位姿。
在另一个实施例中,HD地图系统对轨迹{轨迹1,轨迹2,…,轨迹N}的现有样本位姿做出改变。因而,HD地图系统在不冻结任何节点位姿的情况下开始整个新的全局优化过程。在这种情况下,全局优化类似于用于位姿图G的新全局优化。
HD地图系统将经更新的位姿图存储在位姿图存储器2280中(2350)。HD地图系统使用更新的位姿图来更新HD地图,并且将更新的HD地图提供给在适当的区域中行驶的车辆。
位姿图的修补
由于位姿图的质量,由HD地图系统生成的经优化的位姿可能对于位姿图中的所有节点来说不准确。有时,由于缺少闭环边,或插入错误的ICP边,优化结果可能在小区域中是不正确的。在这些情况下,HD地图系统从用户(例如,人类操作员)接收输入。所接收的输入使得有问题的区域被标记有纬度/经度边界框。随后,位姿图的在纬度/经度边界框内的部分被固定,例如,手动地固定。
在实施例中,HD地图系统呈现用户界面,该用户界面显示在纬度/经度边界框内的位姿图的一部分。HD地图系统经由用户界面接收移除被识别为不正确的边的请求或者添加新的经验证的边的请求。
在基于经由用户界面接收到的请求执行位姿图编辑之后,HD地图系统重新优化位姿图并且针对边界框内的所有节点生成经校正的位姿。在实施例中,HD地图系统在执行经编辑的位姿图的优化时不改变纬度/经度边界框外部的位姿。因而,HD地图系统在位姿图优化期间冻结纬度/经度边界框外部的节点的位姿。结果,HD地图系统仅优化和更新在指定的纬度/经度边界框内的样本位姿。在另一个实施例中,HD地图系统在不冻结任何节点位姿的情况下开始整个新的全局优化。在这种情况下,全局优化类似于对经编辑的位姿图执行新的全局优化。
在实施例中,HD地图系统允许弃用旧轨迹。假设当前位姿图G0被优化,则HD地图系统仅移除相应的轨迹样本以及连接至它们的所有边。结果是无被弃用的样本的更小位姿图。在这种情况下,HD地图系统响应于弃用轨迹而不执行位姿图优化。
基于表面分类为硬/软的成对对齐
HD地图系统计算两个邻近样本之间的相对成对变换。给定两个点云,HD地图系统使用点到平面ICP(即,迭代最近点)过程来获得它们的相对变换和对应的置信度估计,其使用作为协方差矩阵的逆的信息矩阵来表示。
HD地图系统执行点到平面ICP过程如下。HD地图系统将被称为源点云和目标点云的两个点云识别为周围环境的稀疏观察,并且使用ICP过程来找到将源点云从其局部坐标系变换到目标点云的坐标系的期望变换。由于数据的稀疏性,源点云和目标点云对环境中的完全相同的点进行采样是不可能的。因此,简单的点到点ICP容易在稀疏的LiDAR点云中发生错误。通常,环境(特别是在驾驶场景下),通常具有大量的平坦表面。在这些情况下,在基本ICP过程中使用点到平面误差度量会产生更稳健的变换估计。
图24示出了根据实施例的由HD地图系统执行的ICP过程。给定对应关系,HD地图系统执行使以下成本函数最小化的点到平面ICP:
其中(ni,di)是目标点云中的点,其中ni是在点di处的估计表面法线,并且si是源点云中的对应点;wi是分配给每个对应关系的权重,对于最简单的加权策略,权重设置为1.0,而对于其他加权方案权重可具有不同的适应性。优化问题通过调整变换T来最小化从源到目标的点到平面误差的总和。在每次迭代中,经由最邻近搜索来更新对应关系。
HD地图系统以不同的置信度度量来处理不同点的法线估计。例如,HD地图系统将道路表面或建筑物表面的法线与高置信度相关联,将树叶或灌木的法线与低置信度相关联,因为这些不是稳定的平面结构。在法线计算期间,除了计算每个位置处的法向量之外,HD地图系统还通过估计相邻点的分布来估计每个法线的置信度(或稳健性)。可从LiDAR距离图像获得相邻点。
图25示出了根据实施例的由HD地图系统对LiDAR距离图像的点云法线的估计。图25示出了形成LIDAR点云的LIDAR扫描的波束。图25还示出了相应的LIDAR距离图像。
由HD地图系统在执行点到平面ICP时执行的步骤之一是可靠地估计目标点云的表面法线。在一个实施例中,HD地图系统经由p在特定半径上的相邻点的统计分析来估计特定点p处的表面法线。这是有挑战性的,因为在自动驾驶车辆中使用的大多数LiDAR具有有限数量的激光束。采集的LiDAR点云对于用相同的激光束采集的点,具有更高的点密度,并且在不同的激光束之间有更稀疏的点密度。这种点密度的不均匀分布对传统的邻近搜索造成麻烦。因此,较小的搜索半径使得难以在同一激光束内找到相邻者,该激光束大部分位于一条线上而不是一个平面上。另一方面,包括来自不同行的相邻点的大搜索半径也可以包括来自其他平面表面的点。本公开的实施例解决了这些问题中的至少一些并且允许估计LIDAR范围扫描的法线。
HD地图系统将LiDAR点云的测量编码为距离图像,其中,行和列对预校准的俯仰角和偏摆角进行编码,并且像素值对到障碍物的距离进行编码。为了解决基于最邻近者的法线估计的挑战,HD地图系统直接在LiDAR距离图像上估计点云法线。这种技术可以具有以下优点中的一个或更多个:(1)更可靠,因为它解决了每个激光束内和跨激光束的点密度差异。(2)更高效,因为邻近搜索在图像网格上非常快,并且无需使用或需要额外的空间搜索结构,诸如K-D树。
图26示出了根据实施例的用于由HD地图系统在LiDAR距离图像上确定点云法线的过程。HD地图系统接收由安装于在特定地理区域中驾驶的车辆上的LIDAR捕获的LIDAR数据(2600)。HD地图系统生成LIDAR距离图像(2610)。在LIDAR图像中,行和列编码俯仰角和偏摆角,且像素值编码LIDAR到障碍物的距离。
对于每个点P,HD地图系统执行以下步骤2630、2640和2650。HD地图系统确定LiDAR距离图像中的数据点的至少远离最小阈值距离的四个直接相邻者:p上、p下、p左和p右(2630)。如果上相邻者和下相邻者两者或左相邻者和右相邻者两者都缺失,则HD地图系统确定法线是空值。
HD地图系统基于直接相邻者根据数据点确定水平向量和垂直向量(2640)。HD地图系统从p及其四个相邻者确定最适当的水平向量和垂直向量水平向量计算如下,并且以类似的方式计算垂直向量。如果存在两者,则系统检查它们的角度。如果系统确定角度太大(即,大于预定阈值),则系统将较短的一个取为否则,系统取平均值为
图27示出了根据实施例的用于基于表面分类为硬/软来执行成对对齐的过程。流程图中图示出的不同步骤可由本文中指示的模块之外的模块执行。某些步骤可以以不同于本文所指示的次序执行。
全局对齐模块400确定一部分地理区域的多个3D表示(2700)。3D表示可以是点云表示,但可以是用于对3D对象和结构建模的任何其他机制。一部分地理区域的多个3D表示包括该一部分地理区域的第一3D表示R1和第二3D表示R2。一部分地理区域可以包括多个结构或对象,例如,建筑物、树、围栏、墙壁等。
表面分类模块1140确定与数据点相关联的置信度度量(2710),该置信度度量指示对应于数据点的表面的硬度度量。表面分类模块1140认为与诸如树木的结构或诸如生物的对象相比,诸如建筑物和墙壁之类的结构和对象被视为相对硬的表面。表面分类模块1140基于与由结构的表面上的点返回的LIDAR信号相关联的不同标准来确定结构的表面的硬度度量。在实施例中,每个标准与分数相关联。表面的硬度度量被确定为与该表面相关联的分数的加权总和。用于确定结构的表面的硬度度量的标准是表面上的点的法向量的分布。用于确定结构的表面的硬度度量的另一个标准是由该表面反射的光的颜色。例如,表面分类模块1140将某些颜色识别为指示植被,例如,绿色。因此,表面分类模块1140将具有这样的颜色的表面与作为诸如树木或任何类型的植被的软表面的高可能性相关联。由表面分类模块1140使用的另一标准是由表面返回的激光信号的强度。表面分类模块1140将由表面返回的信号的较高强度关联为硬表面的指示。在实施例中,与点或表面相关联的不同特征被提取作为特征向量并且被提供给基于机器学习的模型以确定指示表面的硬度水平的分数。在实施例中,基于机器学习的模型是将表面分类为硬表面或软表面的分类器。在实施例中,使用描述由车辆的传感器捕获的表面的经标记的样本来训练基于机器学习的模型。下文结合图28、24和26进一步描述确定置信度的度量的进一步细节。
表面分类模块1140通过基于每个数据点的置信度度量对数据点进行加权,基于迭代最近点(ICP)技术确定将第一3D表示映射到第二3D表示的变换T(2730)。确定HD地图系统100通过使用变换T将第一3D表示R1与第二3D表示R2组合来确定地理区域的高清晰度地图(2740)。HD地图系统100存储高清晰度地图。HD地图系统100使用高清晰度地图以用于自主车辆的驾驶。
图27中描述的过程是基于启发式的,并且可以不测量结构的实际硬度。例如,树的硬雕像将被分类为软表面,即使它是刚性的且不可移动的。然而,该技术在实践中提供了准确的结果,因为遇到非常类似于软表面的雕像或刚性结构的可能性较低。因此,在统计学上,实践中遇到的大多数结构和物体的结果是准确的。
图28示出了根据实施例的用于确定沿着表面的点的置信度度量以用于成对对齐的过程。表面分类模块1140识别结构的表面上的点。表面分类模块1140确定在对应于该点的表面处的法线。表面分类模块1140确定该表面的相邻点的法线分布的度量。分布的度量可以是统计度量,例如方差或标准偏差。表面分类模块1140将表面处的点的置信度度量确定为与表面的相邻点的法线的分布的度量反向相关的值。因而,表面分类模块1140在例如,墙壁、建筑物等的表面的相邻点的法线分布中具有低方差的点中分配指示高置信度的分数。类似地,表面分类模块1140在例如,树的表面的相邻点的法线分布中具有高方差的点中分配指示低置信度的分数。
图29示出了根据实施例的用于确定点的置信度度量的过程。对于具有估计的法线的每个点P重复图29中的过程。表面分类模块1140初始化计数器N=0和变量V=0(2910)。针对距离图像的矩形窗口中的点P的邻域中的每个点Pi执行步骤2920和2930。表面分类模块1140使用等式针对点Pi确定点到平面距离di(2920)。表面分类模块1140将di与阈值进行比较以确定距离是否低于阈值。如果距离值是被确定为低于阈值的di,则表面分类模块1140将di的平方添加到变量V的值,即,V=V+di 2,并且例如通过执行N++将N递增1。
表面分类模块1140将方差的值确定为V/N(2940)。表面分类模块1140将点P的置信度度量确定为方差的函数(2950)。在一个实施例中,法向向量的置信度度量被确定为其中σ是一个参数。表面分类模块1140确定每个法线的置信度值,并且将置信度值组合到每个ICP成本的权重中,使得更高的权重对应于高法线置信度,如方程中所示:
在一些实施例中,除了经由法线置信度对每个对应关系进行加权之外,HD地图系统还通过基于对应点之间的距离对这些对应关系进行加权来实现针对噪声和异常值的进一步鲁棒性。给定对应关系HD地图系统通过洛伦兹函数经由对应的点到平面误差来加权对应关系:
洛伦兹函数用于惩罚错误的对应关系,由此使得结果稳健。在一些实施例中,表面分类模块1140将洛伦兹的权重与法线置信度相乘作为每一对应关系的最终权重。
软表面在本文中也被称为软景观表面,并且硬表面在本文中被称为硬景观表面。表面具有可以是硬的或软的表面类型。具有硬表面类型的表面是硬表面,例如,墙壁,并且具有软表面类型的表面是软表面,例如,树。
HD地图系统使用置信度度量作为表面分类器,其中“硬景观”表面具有高置信度,“软景观”具有低置信度。HD地图系统使用此硬景观/软景观分类方法来避免将一个扫描中的硬景观点与另一扫描中的软景观匹配,并且使用置信权重来实施此约束。
HD地图系统将硬景观表面与更高的置信度相关联,因为它们通常比软景观对于对齐更有价值。这是因为当LIDAR扫描硬表面(如墙壁)时,其返回干净的、结构良好的点集合。因此匹配墙壁的两次扫描是相当容易的。但是当它扫描软景观(像灌木)时,这些点是相当嘈杂的并且具有复杂的随机结构,这取决于信号进入灌木多深、叶片如何定向,等等。因此,当HD地图系统试图匹配灌木的两次扫描时,HD地图系统可能降低法线的权重并且仅使用点。
通常,将硬景观(hardscape)与硬景观匹配提供了约束,并且由HD地图系统加权更多。软景观(植被)到软景观(softscape)是有用的,但是具有较弱的约束,因为一次扫描可能碰到一片叶子,而第二次扫描可能碰到不同但邻近的叶子。因而,与硬景观到硬景观表面匹配相比,HD地图系统以更低的权重加权软景观到软景观表面匹配。此外,HD地图系统加权硬景观到软景观匹配最少,因为这是匹配错误的指示。
因而,如果与具有不同表面类型的点相比,点具有匹配表面类型的表面,则HD地图系统通过对相应点加权更高来确定将第一3D表示映射到第二3D表示的变换。在实施例中,如果相应点在具有匹配的硬度度量的表面上,则HD地图系统对这些点加权更高。因此,如果两个表面的硬度度量在彼此的阈值内,则这两个表面具有匹配的硬度度量。此外,如果与在软表面上的点相比,相应点在硬表面上,则HD地图系统对相应点加权更高。
未对齐热点的检测
在HD地图系统执行全局对齐之后,常常存在可能需要进一步分析的潜在对齐问题,例如人工或使用自动化工具的质量保证。人工或自动化工具可进一步提供用于改进对齐数据的输入。然而,在覆盖大面积的HD地图中存在的数据量是巨大的。因此,例如通过使用人工操作员对整个地图进行QA来执行整个地图的详细后续分析是不实际的。HD地图系统的实施例实施了自动未对齐热点检测过程以自动识别对齐问题的区域。因此,仅对所识别的热点而不是整个HD地图执行后续分析。这提高了完成HD地图的过程的效率,并且提高了结果的质量。例如,HD地图可能需要在阈值时间量内完成,以便能够提供给沿着路线驾驶的车辆。如果HD地图的验证和完成的过程需要非常长的时间,则由于从各种自主车辆接收的更新而引起的HD地图的变化不能传播到沿路线行驶的其他车辆。实施例可以使HD地图的验证和QA的过程更有效,从而允许HD地图及时提供给沿着各种路线行驶的后续车辆。
实施例自动识别可受益于例如以人工QA的形式的进一步分析和验证的以下情形。HD地图系统经由未对齐热点检测过程来检测:(1)道路的非平面交叉:例如,上/下通道、桥梁等。LIDAR样本具有非常小的重叠并且因此难以使用ICP来对齐,但是可能受益于人类输入以将它们对齐以保证全局位姿一致性。(2)远距离闭环:ICP可能由于缺少重叠的点云而失败,因此HD地图系统不会自动对齐彼此远离(例如,超过25m)的点云。由于典型的LiDAR具有非常大的距离(约100m),所以点云可能仍然具有重叠。在这种情况下,HD地图系统通过在远离但仍具有重叠部分的点云之间添加约束来向用户发送信息以手动地闭环。(3)对齐误差,其导致OMap中的未对齐的地面、未对齐的垂直平面墙壁等。
用于检测未对齐热点的总体过程
在图30之后示出了根据实施例的用于基于对未对齐热点的自动检测来生成高清晰度地图的过程。在实施例中,图30中示出的各个步骤由在线HD地图系统110执行,例如,由全局对齐模块460执行。在其他实施例中,过程的一些步骤可以由车辆计算系统120执行。
HD地图系统100从驾驶通过地理区域的多个车辆的传感器接收数据(3000)。例如,多个车辆可以在同一道路上行驶并且发送传感器数据,包括由安装在汽车上的摄像机捕获的图像、LIDAR扫描数据等。HD地图系统100基于接收到的数据来执行点云对齐(3010)。例如,基于从车辆V1接收的传感器数据确定的地理区域的一部分的点云可能略微不同于基于从车辆V2接收的传感器数据确定的地理区域的相同部分的点云。全局对齐模块460执行不同点云表示的对齐,以生成地理区域的总点云表示。因此,全局对齐模块460基于所接收的传感器数据生成该区域的三维表示。
未对齐热点检测模块1160识别在地理区域的三维表示中的未对齐热点(3030)。本文进一步详细描述热点检测模块1160用来识别未对齐热点(3030)的不同技术。在实施例中,HD地图系统100构建突出显示各种未对齐热点的地理区域的视觉表示(3040),例如,视觉表示可以是热图图表。HD地图系统100经由客户端设备的显示器的用户界面呈现视觉表示(3050)。在一个实施例中,HD地图系统100经由用户界面接收修改地理区域的高清地图的请求(3060)。例如,用户可查看视觉表示并分析热点以识别对齐问题,接着对表示对齐结果的数据进行校正。在另一个实施例中,自动代理(例如,专家系统)可以执行所识别(3030)的未对齐热点的分析以推荐对HD地图数据的修改或者自动对地理区域的HD地图数据进行修改。
在实施例中,未对齐热点检测模块1160基于闭环数据来检测未对齐。未对齐热点检测模块1160检测非平面交叉道路和长距离闭环边。对于两种情况,给定两个任意样本,未对齐热点检测模块1160计算它们的图距离(即,通过遍历位姿图确定的最短路径距离)与它们的测地线距离(即,两个点之间的直线距离)之间的比率。如果该比率高,则未对齐热点检测模块1160确定两个点云具有重叠部分但不具有闭环成对变换的可能性高。因而,未对齐热点检测模块1160将这些部分指示为未对齐热点。
在另一个实施例中,未对齐热点检测模块1160检测在地理区域的三维表示中的未对齐的地面。完美对齐的地面应当是单层节点,但是实践中由全局对齐模块400确定的对齐的地面节点具有非零值的厚度。未对齐热点检测模块1160确定厚层的地面节点指示差的对齐,而薄层指示良好的对齐。因而,未对齐热点检测模块1160将未对齐的可能性确定为与地理区域的一部分中的表示地面的层的厚度直接相关的值。
图31示出了根据实施例的用于检测在点云中表示的表面的未对齐的过程。图31所示的过程是图30所示的步骤3030的实施方式。未对齐热点检测模块1160识别地理区域的三维表示(例如,点云表示)中的表面(3100)。例如,表面可以表示地面或墙壁。未对齐热点检测模块1160确定识别出的表面的法线(3110)。未对齐热点检测模块1160沿着法线方向以及与法线相反的方向识别点云表示内的数据点(3120)。未对齐热点检测模块1160选择可能表示所识别的表面的点的点簇(3130),例如,未对齐热点检测模块1160可对所识别的数据点进行群类并且选择表示接近所识别表面的最邻近点的簇。
在实施例中,未对齐热点检测模块1160以最靠近所识别表面的所识别数据点开始。未对齐热点检测模块1160通过将数据点添加到集合来构建数据点的集合,如果它们在集合内的至少一个其他数据点的阈值距离内的话。当最近的数据点到所选的数据点集合大于阈值距离时,未对齐热点检测模块1160。
未对齐热点检测模块1160确定沿着被确定为表示表面的法线的所选择的数据点之间的最大距离(3140)。未对齐热点检测模块1160将沿着表面的特定数据点处的未对齐的度量确定为与沿着对应于表面上的该特定数据点的法线的所选择的数据点之间的所确定的最大距离(3140)直接相关或直接成比例的值(QX50)。
图32示出了根据实施例的在点云中表示的地面的未对齐的检测。在OMap构建过程中,HD地图系统将插值的地面点取到垂直列的临时存储装置中。当HD地图系统取所有地面点时,基于该垂直列中的所有z坐标值来计算平均高度值(沿着Z轴)。未对齐热点检测模块1160确定平均z值,并且将地面表示的厚度确定为垂直列内的z坐标的最大值(max_z)与z坐标的最小值(min_z)之间的差。未对齐热点检测模块1160使用沿着垂直列的地面的厚度的度量作为未对齐的指示符。因而,未对齐热点检测模块1160将表示未对齐的可能性的分数确定为与max_z值和min_z值之间的差直接成比例(或直接相关)的值。在一个实施例中,未对齐热点检测模块1160使用一个字节(0-255)来表示未对齐的可能性,其中0表示完全对齐的地面,并且255表示diff(max_z,min_z)>=50cm。例如,节点z值的列表可以是[12,13,14,16],节点z的平均值是14(13.75几乎等于14)并且diff(max_z,min_z)=4。每个节点约为5厘米,因此转换为公制值,diff为20厘米。未对齐热点检测模块1160将一个字节值确定为(255*20/50.0)=100(近似地)。
图33示出了根据实施例的用于检测在点云中表示的地表面的未对齐的过程。图31所示的过程是图30所示的步骤3030的实施例。未对齐热点检测模块1160识别区域的三维表示中的表示一部分地表面的节点(3300)。未对齐热点检测模块1160将对应于该节点的多个数据点映射至三维表示内的垂直列(3310)。假设地表面的法线在垂直方向(即,Z轴)上。垂直列包括通过改变z坐标值而具有相同x坐标值和y坐标值的数据点。未对齐热点检测模块1160确定多个数据点中的最大z坐标值和最小z坐标值(3320)。未对齐热点检测模块1160基于与最大z坐标值和最小z坐标值之间的差成比例的值来确定地面一部分的未对齐的度量(3330)。
图34示出了根据实施例的用于检测在点云中表示的垂直表面的未对齐的过程。图34中所示的过程是图30中所示的步骤3030的实施例。未对齐热点检测模块1160识别地理区域的三维表示中的非地面节点(3400)。未对齐热点检测模块1160识别表示垂直平面的数据点(3410)。在实施例中,未对齐热点检测模块1160使用平面分割技术来识别表示垂直平面的数据点(3410)。
未对齐热点检测模块1160针对垂直表面的每个节点或者针对垂直表面的节点的至少一个子集重复以下步骤3420、3430、3440和3450。未对齐热点检测模块1160识别垂直表面的法线(3420)。法线表示水平面中的向量。未对齐热点检测模块1160沿着法线方向和与法线相反的方向识别数据点。未对齐热点检测模块1160选择接近垂直表面的具有相同z坐标值的数据点的簇。未对齐热点检测模块1160将节点处的未对齐的度量确定为与簇内的最远点之间的距离成比例的值(3450)。
未对齐热点检测模块1160还确定每个垂直列的节点的平均未对齐度量。未对齐热点检测模块1160将结果转换成2D热图图像,因此每个图像像素表示一个垂直列的未对齐的平均概率。
图35示出了根据实施例的图示出点云中表示的垂直结构(诸如墙壁)的未对齐的检测的示例。类似于地面对齐,未对齐热点检测模块1160将墙壁视为薄的垂直平面层。然而,未对齐可能引起重复且厚的墙壁层。未对齐热点检测模块1160识别未对齐墙壁或任何垂直表面内未对齐的部分。HD地图系统通过将每个节点的中心视为点来将构建的OMap视为点云。未对齐热点检测模块1160获得非地面节点,因为它们表示垂直表面。未对齐热点检测模块1160使用平面分割算法来得到平坦表面,例如,基于子窗口的区域生长(SBRG)算法。由于点云是从OMap转换的,因此不包括一个或更多个(例如,所有)临时障碍点(例如,汽车)。未对齐热点检测模块1160将分割的点标记为墙壁或垂直表面。
根据实施例,未对齐热点检测模块1160执行以下步骤。在以下描述中,地理区域的三维表示中的点被称为节点。未对齐热点检测模块1160将所有墙壁节点标记为未知。
未对齐热点检测模块1160针对每个未知的墙壁节点执行以下步骤。未对齐热点检测模块1160得到节点的法线。沿着法线方向和反方向,未对齐热点检测模块1160在相同的z水平上找到最小x坐标(min_x)、最大x坐标(max_x)、最小y坐标(min_y)和最大y坐标(max_y)。所找到的节点的法线应当与正被处理的当前墙壁节点的法线匹配。目的不是选择墙壁节点的另一侧。在实施例中,未对齐热点检测模块1160构建所有墙壁节点的KD树。未对齐热点检测模块1160在针对正被处理的当前墙壁节点的阈值距离(例如,1米)内搜索所有墙壁节点。未对齐热点检测模块1160识别该墙壁节点的最邻近点。热点检测模块1160基于某些标准排除(或跳过)一些点。未对齐热点检测模块1160在节点z坐标不同的情况下排除该点。如果当前节点的法线与邻节点的法线之间的角度大于阈值,则未对齐热点检测模块1160排除该点。如果从邻节点到当前节点的向量方向不平行于当前节点的法线,则未对齐热点检测模块1160排除该点。如果认为需要,未对齐热点检测模块1160更新min_x值、max_x值、min_y值和max_y值。未对齐热点检测模块1160将最邻近节点标记为DONE。
未对齐热点检测模块1160使用min_x、max_x、min_y和max_y来计算距离以指示未对齐厚度。例如,min_x=2、max_x=5、min_y=10、max_y=20产生10.4的距离,该距离大致等于52(10.4*5cm)厘米。类似于地面未对齐概率值,在实施例中,HD地图系统使用一个字节来表示该值。HD地图系统将所有这些节点从未知标记为DONE,使得它们在一些情况下可能不需要再次计算。
在完成所有墙壁节点之后,未对齐热点检测模块1160针对每个垂直列确定该垂直列中的所有墙壁节点的平均未对齐概率,并且将该值分配给垂直列。为了确定未对齐概率的平均值,未对齐热点检测模块1160将同一垂直列中的所有墙壁节点未对齐概率值相加。未对齐热点检测模块1160将所得值除以该垂直列中的墙壁节点的总数以得到平均未对齐概率。
在实施例中,未对齐热点检测模块1160将垂直列概率或地面未对齐概率导出为作为热图的2D图像。例如,未对齐热点检测模块1160可将高概率的未对齐着色为红色,并且将良好对齐的x、y位置着色为绿色。HD地图系统向用户提供所生成的热图,以允许用户在视觉上检查OMap并关注在被识别为未对齐概率高的区域。
所生成的热图还可用于通过使用下面描述的方法来生成热点位置。该过程适用于地面未对齐概率热图和墙壁未对齐概率热图。当生成2D热图时,HD地图系统通过使用n X n移动窗口(例如,n=5)从其确定热点位置。如果存在多于50%(当n=5时,实际数量为13,25*0.5=12.5)像素值大于100(意味着未对齐约为20cm.255*20cm/50cm=102),热点的纬度/经度被导出到输出端。由此,最终结果是热点纬度/经度位置的列表,其被提供给审核工具以允许操作员审核那些位置的数据并手动地检查对齐。
根据另一个实施例,通过使用聚类算法对大于100的像素值进行聚类来识别热点,该聚类算法合并相邻簇同时保持聚类直径的约束大致为10m(即,与对齐采样的尺度类似的值)。HD地图系统为每个簇生成热点并且将其导出到审核工具。
基于边界图形的分布式执行
以下是在本文中关于位姿图使用的符号。
在一些实施例中,HD地图系统可通过融合来自自驾驶车辆车队的传感器数据来构建HD地图。作为HD地图生成的一部分,HD地图系统可以在任何给定时间戳估计车队的一个或更多个车辆中的每个车辆的全局位姿。在一些实施例中,HD地图系统可以在车辆的一个或更多个传感器正在获得相应的轨迹信息的时间估计车队中的所有车辆的全局位姿。
HD地图系统可经由位姿图优化来估计全局位姿,其中每个节点表示在特定时间戳相应车辆的6D位姿(使用利用x、y、z坐标表示的平移和利用侧倾、俯仰、偏摆表示的旋转来表示),并且每个边表示两个节点或具有某种已知特征的节点之间的成对变换关系,不确定性编码为6x6协方差矩阵。在实施例中,边在彼此的阈值距离内的节点对之间表示。
例如,给定位姿图G=(V,E),其中,每个节点ui∈V表示在特定时间戳车辆的位姿(xi),并且每个边e∈E表示节点u与其相邻者之一之间的成对变换其中是节点(ui,uj)之间的所估计的成对变换,并且Ωij是被称为信息矩阵的加权矩阵,其是成对估计的协方差矩阵的逆矩阵。
可使用以下等式来表示位姿图优化:
其中:
xi:车辆在特定时间戳的位姿。
xi :是添加到节点xi的全球GPS位姿先验
Ωii:是全局位姿先验的强度或置信度。
对于大规模映射,车辆位姿的数量可以非常大。因此,被优化的位姿图可以是极大的,例如,具有数十亿条边的数千万个节点。照此,一起优化非常大的位姿图可能是不切实际的或困难的。例如,在给定正被处理的节点的数量的情况下,使用单个处理器机器来优化大的位姿图可能需要大量时间。
因而,本公开的一个或更多个实施例可包括使用处理任意大的位姿图优化的分布式、可扩展的优化框架。位姿图优化的分布式本质可允许由多个处理器机器对位姿图的并行处理,这可允许针对优化大的位姿图提高效率和速度。系统还可以执行其他操作,例如识别未对齐和执行用于地图更新的过程。
分布式子图优化
分布式位姿图优化可以使用分治策略。给定原始位姿图(其可以是相对大的),HD地图系统将原始位姿图细分为子图的集合,并且相对于位姿子图迭代地执行优化操作(例如,使用上述的位姿图优化等式),直到达到原始位姿图的收敛。收敛可被确定为响应于在优化操作的迭代中对节点位姿做出的改变中的每一个小于阈值量而达到。在本公开中,提及“优化”或“优化”任何类型的位姿图(例如,全位姿图或位姿图的任何子图)可以指执行优化过程直到已经满足目标收敛水平。如此,提及“图的优化”、“优化图”、或“优化后的图”并不意味着图被尽可能地“优化”,而是更多地指阈值水平的优化,其可以基于收敛的阈值水平。进一步,提及“原始位姿图”仅意指在整个位姿图与整个位姿图的细分部分(例如,以下描述的子图)之间进行区分。因此,术语“原始”仅意思是指示总体位姿图,而不意味着位姿图未经历任何种类的操作,诸如细分操作。
在一些实施例中,原始位姿图可不作为数据结构被存储在永久存储装置上。例如,在一些实施例中,可以直接从车辆传感器数据而不是从已经存储的位姿图来构建子图。例如,与位姿图相对应的车辆的相对于彼此的地理位置可以用于确定相应子图中的相应节点的放置。
位姿子图
在一些实施例中,HD地图系统可将原始大尺度位姿图划分成位姿子图的集合。存在多种方式来将位姿图划分成更小的位姿子图,但是整个过程独立于细分方法。示例细分方法可以包括:通过地理空间边界框划分;通过图形切割划分,例如,沿着主要干道切割图形等。不同的图形细分方法可具有不同的收敛速率,但是由各种实施例使用的优化策略同样起作用。
根据实施例,HD地图系统通过局部区域边界框执行细分。局部区域(localsector)表示某一缩放级别的矩形纬度/经度框。HD地图系统使用每个节点的原始GPS坐标来确定它属于哪个位姿子图,这保证了子图划分的一致性。对于每个位姿子图,在其边界框内部的节点被称为内部节点。另外,由于内部节点具有到原始位姿图中内部节点组之外的其他节点的边,因此HD地图系统将具有连接到内部节点的边、但是不在位姿子图的内部节点的集合中的节点识别为边界节点。因此,在一些实施例中,选择使用哪种划分技术可以基于目标收敛速率和/或所述技术的简单性。例如,在其中目标收敛速率可具有比简单性低的优先级的实例中,可使用相对简单的技术,其可减少用于执行划分的处理的量。
图36根据实施例示出了示例位姿子图3600的节点的类型。矩形3610表示局部区域。在本示例中,位姿子图3600可以包括:(1)内部节点3620,其包括在对应的局部区域3610边界框内具有GPS坐标的节点;以及(2)边界节点3630,其可以是在局部区域3610边界框之外的具有GPS坐标的节点,但是在原始位姿图中具有连接到内部节点3620的边。
图37示出根据实施例的来自地理区域的示例位姿子图(例如,局部区域)。
边界图
除了位姿子图之外,HD地图系统还可以识别边界图。如下面进一步详细讨论的,边界图的识别和使用可以通过提高收敛速率来促进原始位姿图的整体优化。
边界图可以捕获和指示多个位姿子图的边界条件。例如,以多个子图的所有子图边界节点的并集作为SEED(种子),对应的边界图的内部节点可以是原始位姿图G中距离SEED小于边数的节点集合。边的数量可以被定义为被称为#buffer_edges的缓冲区参数。缓冲区边的数量可基于目标收敛速率和优化时间。例如,用于特定边界子图的优化时间和处理可以随着边的数量增加而增加,但是位姿图的总体收敛速率也可以增加。
图38示出了根据实施例的示例边界图3800的组成。使用#buffer_edge=2作为示例,在图38中,两个节点3820a和3820b(表示为较大的圆圈)可以是两个单独的位姿子图的边界节点并且可用作SEED。边界图3800的结果内部节点可以是原始位姿图中距SEED(例如,节点3820a和3820b)至多2#buffer_edges的节点。
在此进一步描述关于为何此#buffer_edges可能有用的进一步解释。类似于上述具有与边界节点和内部节点之间的关系相关的“边界条件”的子图,边界图也具有“边界条件”,其可以是具有到边界图内部节点的边但不在边界图内部节点的集合中的节点的并集。
总之,边界图可以包括:(1)内部节点:从作为SEED的所有子图边界节点的并集开始,距任何种子节点在#buffer_edge内的所有节点。(2)边界节点:原始位姿图中具有到内部节点的边但不在内部节点集合中的节点。
边界子图
在一些实施例中,边界图可以被划分成多个边界子图。边界子图可以被认为是原始位姿图的子图,从而使得人们可以将它们认为是“位姿子图。”然而,在本公开中,为了帮助促进在上面描述的子图和边界子图之间的解释和区分,对于如上所述的在“位姿子图”部分中作为划分原始位姿图的结果的子图使用术语“位姿子图”,并且对于可以是边界图的子图的子图使用术语“边界子图”。进一步地,对“子图”的一般引用可以包括位姿子图和/或边界子图。
对于细分位姿图的给定方法(例如,使用局部区域作为子图边界框),#buffer_edges可以是相对小的,从而使得相应的所构建的边界图可以具有可能不相交的边界子图。这可能是因为该过程可能会建立对实际道路网络的切割,并且道路不太可能长距离地跟随局部区域边界。
图39示出了根据实施例的边界子图。
边界图的此不相交性质可允许HD地图系统简单地通过使边界图的每一相连分量成为边界子图而将边界图划分为边界子图。在一些实施例中,可结合相对于其他子图执行的优化操作来相对于边界子图执行优化操作。
优化程序
在一些实施例中,位姿图的优化可包括如下的一个或更多个操作:
●将位姿图的所有节点位姿存储在向量中:all_node_poses。
●循环,直到收敛
○优化彼此平行的并且其边界节点固定的位姿子图内部节点位姿,
○优化彼此并行的并且其边界节点固定的边界子图内部节点
○检查收敛
■如果全部节点位姿变化小于阈值,则达到收敛。
针对图42的方法4200下面给出以上操作的进一步讨论。
优化过程可以很好地映射到分布式系统,例如,映射-缩减(map-reduce)框架。给定适当量的计算和存储资源,该优化框架可被用于优化任意大小的位姿图。
在一些实施例中,优化过程可以不基于或使用边界图(以及对应的边界子图)。例如,不基于边界图的过程可以包括以下的一个或更多个操作:
1.固定每个位姿子图的边界节点,并且各自地优化它们
2.更新所有节点位姿,并希望收敛
如上文所指示,边界图及其对应边界子图的使用可改进优化过程。例如,省略边界图(和对应子图)的使用的优化过程可能具有会阻止过程的收敛或导致收敛减速的问题。
例如,此过程的第一个问题可被称为位姿互锁。图40A示出了根据实施例的位姿互锁问题的示例。图40A包括位姿子图1和位姿子图2。另外,图40A包括第一节点4002和第二节点4004。第一节点4002可以是位姿子图1的内部节点并且可以是位姿子图2的边界节点。相反地,第二节点4004可以是位姿子图2的内部节点并且可以是位姿子图1的边界节点。
在位姿子图1的优化期间,第二节点4004的位姿可以是固定的,因为第二节点4004可以是位姿子图1的边界节点。然而,第二节点4004也可以是位姿子图2的内部节点。因此,第二节点4004的位姿的固定可能不允许改变位姿子图2的内部节点的位姿。假定第一节点4002可以是位姿子图2的边界节点而且还是位姿子图1的内部节点,则相同的场景可以相对于第一节点4002发生。结果,位姿互锁会阻止针对不同的位姿子图来说既可以是内部节点又可以是边界节点的任何节点的更新,这意味着位姿图优化可能不收敛或可能收敛慢。
边界子图的使用可以使得对于不同位姿子图来说可能既是内部节点又是边界节点的位姿子图的节点,对于不同边界子图来说可能不会两者都是。因此,一起执行边界子图和位姿子图的优化可帮助避免位姿互锁问题并引起原始位姿图的更快收敛。
根据实施例,HD地图系统可以添加#buffer_edges缓冲区边。在构造边界图时添加缓冲区边的益处可以是为加速整个优化到收敛。缓冲区边还可打破上文所描述的位姿互锁问题。例如,如图40B所示,缓冲区边可解耦位姿子图优化和边界图优化,并且允许边界节点朝向全局优化的位姿摆动。
不使用边界图的优化的另一问题是子图之间的受限通信,其可导致缓慢收敛。在一些实施例中,受限制的通信可能引起信息仅在直接相邻的子图之间流动的问题。
图41示出了根据实施例的导致缓慢收敛的受限通信的问题。图41包括位姿子图1、位姿子图2、位姿子图3和位姿子图4。图41还包括可以是位姿子图1的边界节点的节点4020a、4020b、4020c和可以是位姿子图1的内部节点的节点4030a、4030b和4030c。
如图41的示例中所示,由于系统在其边界节点固定的情况下优化每个子图,所以子图1的三个边界节点4020a、4020b、4020c可能相对于彼此不具有强通信。例如,在多个节点可能具有不一致性的实例中,可以一点一点地解决对应冲突,因为对于作为子图1的边界节点进行操作的节点4020a、4020b、4020c之间的关系的约束可以是固定的。这样,可能需要多次迭代以达到一致性,因为节点4020a、4020b和4020c之间的信息流可以通过子图1的节点4030a、4030b、4030c。这可能导致缓慢收敛,因为作为子图1的边界节点操作的三个节点4020a、4020b、4020c难以达到直接一致性。相反,基于边界图的实施例可将所有子图边界节点视为边界图内部节点,其可在边界图优化期间一起优化。结果,可以更快地达到收敛。例如,图41示出了示例边界子图4040,其节点4020a、4020b和4020c可以是内部节点。
图42示出了根据本公开中描述的至少一个实施例的在副本交换过程期间调整温度的示例性方法4200的流程图。方法4200可由任何合适的系统、装置或设备执行。例如,图1的HD地图系统100的一个或更多个元件可被配置为执行方法4200的一个或更多个操作。另外或替代地,图43的计算机系统4300可经配置以执行与方法4200相关联的一个或更多个操作。尽管用离散框图示出,但取决于特定实施例,与方法4200的一个或更多个框相关联的步骤和操作可分成额外框、组合成更少的框或消除。
方法4200可在框4202处开始,在框4202处可获得位姿图。位姿图可包括多个节点,其中,位姿图的每个节点表示多个车辆中的相应车辆的相应位姿。每个相应的位姿可以包括相应车辆的地理位置和相应车辆的方位。附加地或可替代地,每个相应的位姿可对应于相应车辆的一个或更多个传感器获得可被用于生成HD地图的相应地图信息的时间点。可使用任何合适的技术(诸如上文所描述的那些技术)来获得位姿图。
在框4204处,位姿图可被划分成多个位姿子图,诸如以上描述的。每个位姿子图可以包括一个或更多个相应的位姿子图内部节点并且可以包括一个或更多个相应的位姿子图边界节点。
在框4206处,可获得一个或更多个边界子图。在一些实施例中,可以基于位姿子图边界节点生成一个或更多个边界子图。例如,一个或更多个边界子图中的每一个可包含一个或更多个相应边界子图边界节点且可包含一个或更多个相应边界子图内部节点。在一些实施例中,相应边界子图的一个或更多个相应边界子图内部节点可以是相应位姿子图边界节点,诸如上文所描述的。
例如,获得一个或更多个边界子图中的相应边界子图可以包括:将多个位姿子图中的第一位姿子图的第一边界节点识别为相应边界子图的第一内部节点。获得相应边界子图可进一步包含将多个位姿子图中的第二位姿子图的第二边界节点识别为相应边界子图的第二内部节点。获得相应边界子图还可包含基于第一边界节点是远离相应边界子图的第一内部节点特定数目的边(例如,缓冲区边)而识别相应边界子图的第一边界节点。进一步,获得相应边界子图可包含基于第二边界节点是远离相应边界子图的第二内部节点特定数目的边来识别相应边界子图的第二边界节点。
在框4208处,可通过执行位姿图优化来获得经优化的位姿图。位姿图优化可以基于相对于位姿子图和边界子图执行的优化操作,并且可以包括框4210和框4212。
在框4210处,可对于位姿子图执行位姿子图优化。位姿子图优化可包括调整相应位姿子图内部节点的内部节点位姿,同时保持相应位姿子图边界节点的边界节点位姿固定。在一些实施例中,可以使用任何合适的位姿图优化技术(如以上所描述的那些)来执行位姿子图优化。附加地或可替代地,位姿子图优化可相对于多个位姿子图并行地执行。例如,可同时针对两个或更多个位姿子图来执行位姿子图优化。在一些实施例中,位姿子图优化的并行处理可以由多个计算机系统以分布式方式执行。
如上所述的将位姿图划分成子图可允许并行处理以分布式方式执行,这可允许优化对于单个计算机系统而言可能太大以至于不能优化的位姿图。进一步地,执行并行处理的能力可以允许处理在车辆级别和/或在云内执行。如上所指示的,位姿图可被用于生成HD地图,使得使用并行处理来优化大位姿图的能力还可允许创建与较大地理区域有关的HD地图。
在框4212处,可相对于边界子图执行边界子图优化。边界子图优化可包括调整相应边界子图内部节点的内部节点位姿,同时保持相应边界子图边界节点的边界节点位姿固定。在一些实施例中,可以使用任何合适的位姿图优化技术(如以上所描述的那些)来执行边界子图优化。另外或替代地,可相对于多个边界子图并行地执行边界子图优化。例如,可同时相对于两个或两个以上边界子图执行边界子图优化。在一些实施例中,边界子图优化的并行处理可以由多个计算机系统以分布式方式执行。
在一些实施例中,框4208的操作可被迭代地执行,直到已确定位姿图已收敛。在这些或其他实施例中,可响应于在框4210处对位姿子图的内部节点做出的所有调整以及在框4212处对边界子图内部节点做出的所有调整小于阈值量来确定位姿图已收敛。阈值量可基于任何合适的考虑,诸如相对于可基于经优化的位姿图生成的结果HD地图的目标收敛速率和目标精度水平。例如,对于更快的目标收敛速率,阈值改变量可比对于更慢的目标收敛速率的更大。相反,对于更高的目标精度水平,阈值改变量可以比对于更低的目标精度水平的更小。
在一些实施例中,可针对每次迭代顺序地执行位姿子图优化和边界子图优化。例如,可在执行边界子图优化之前执行位姿子图优化,或反之亦然。
可以对方法4200进行修改、添加或省略而不脱离本公开的范围。例如,方法4200的操作可以不同的顺序实现。另外或替代地,可同时执行两个或两个以上操作。此外,所概述的操作和动作仅作为示例来提供,并且这些操作和动作中的一些可以是可选的、组合成更少的操作和动作、或扩展成另外的操作和动作而不减损所公开的实施例的本质。
例如,在一些实施例中,方法4200可包括与基于优化的位姿图的HD地图的生成有关的一个或更多个操作。例如,在一些实施例中,方法4200可包括基于优化的位姿图对齐由多个车辆获得的各个地图信息,并且使用对齐的地图信息生成HD地图,如上所述。
计算机架构
图43是示出了能够从一个或更多个机器可读存储介质读取指令并在处理器(或控制器)中执行它们的示例机器的组件的框图。具体地,图43示出了计算机系统4300的示例形式的机器的图示表示,在该计算机系统4300内,可以执行用于使机器执行本文所讨论的任何一个或更多个方法的指令4324(例如,软件)。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力运行,或者作为对等(或分布式)网络环境中的对等机器运行。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能电话、网络设备、网络路由器、交换机或网桥、或能够(顺序地或以其他方式)执行指定要由该机器采取的动作的指令4324的任何机器。进一步地,虽然仅示出了单个机器,但术语“机器”还应被视为包括单独地或联合地执行指令4324以执行在此讨论的任何一个或更多个方法的机器的任何集合。
示例计算机系统4300包括被配置为经由总线4308彼此通信的处理器4302(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或更多个专用集成电路(ASIC)、一个或更多个射频集成电路(RFIC)或这些的任何组合)、主存储器4304和静态存储器4306。计算机系统4300可还包括图形显示单元4310(例如,等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或阴极射线管(CRT))。计算机系统4300还可以包括字母数字输入设备4312(例如,键盘)、光标控制设备4314(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指示仪器)、存储单元4316、信号生成设备4318(例如,扬声器)、以及网络接口设备4320,它们也被配置成经由总线4308通信。
存储单元4316包括机器可读介质4322,在机器可读介质4322上存储有体现本文所描述的方法或功能中的任何一个或更多个的指令4324(例如,软件)。在由计算机系统4300执行指令4324(例如,软件)期间,指令4324也可以完全或至少部分地驻留在主存储器4304内或处理器4302内(例如,在处理器的高速缓冲存储器内),主存储器4304和处理器4302也构成机器可读介质。指令4324(例如,软件)可以经由网络接口设备4320通过网络4326被发送或接收。
虽然机器可读介质4322在举例实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令(例如,指令4324)的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储用于由机器执行的指令(例如,指令4324)的任何介质,这些指令使机器执行在此公开的任何一个或更多个方法。术语“机器可读介质”包括但不限于固态存储器、光学介质和磁介质形式的数据储存库。
附加配置考虑
为了说明的目的,已经给出了本公开的实施例的上述描述;其并不旨在是详尽的或将本公开限于所公开的精确形式。相关领域技术人员可以理解,根据上述公开的内容,可以有多种修改和变型。
例如,虽然本文所描述的技术应用于自主车辆,但所述技术还可应用于其他应用,例如用于为具有驾驶员的车辆显示HD地图,用于在客户端装置(例如移动电话、膝上型计算机、平板计算机)或具有显示屏的任何计算装置的显示器上显示HD地图。此处所显示的技术还可被应用于出于计算机模拟的目的而显示地图,例如,在计算机游戏等中。
本说明书的一些部分根据对信息的操作的算法和符号表示来描述本公开的实施例。数据处理领域的技术人员通常使用这些算法描述和表示来将其工作的实质有效地传达给本领域的其他技术人员。虽然在功能上、计算上或逻辑上描述了这些操作,但是这些操作被理解为由计算机程序或等效电路、微代码等来实现。此外,在不失一般性的情况下,还证明有时便于将这些操作的布置称为模块。所描述的操作及其相关联的模块可以在软件、固件、硬件或其任意组合中实施。
本文描述的任何步骤、操作或过程可用一个或更多个硬件或软件模块单独或与其他装置组合来执行或实施。在一个实施例中,软件模块利用包括包含计算机程序代码的计算机可读介质的计算机程序产品来实现,该计算机程序代码可由计算机处理器执行以用于执行所描述的任何或所有步骤、操作或过程。
本公开的实施例还可涉及一种用于执行本文中的操作的装置。此装置可出于特定目的而专门构造,和/或其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算装置。这种计算机程序可存储在有形的计算机可读存储介质或适于存储电子指令的任何类型的介质中,并且耦接至计算机系统总线。此外,本说明书中提及的任何计算系统可以包括单个处理器或者可以是采用用于增加的计算能力的多个处理器设计的架构。
本公开的实施例还可涉及体现在载波中的计算机数据信号,其中,计算机数据信号包括计算机程序产品的任何实施方式或者本文中描述的其他数据组合。计算机数据信号是在有形介质或载波中呈现并在有形的载波中调制或以其他方式编码的产品,并根据任何合适的传输方法来传输计算机数据信号。
本说明书中使用的语言主要是出于可读性和指导性目的而选择的,并且其可以不被选择来描绘或限制本发明的主题。因此,意图是本发明的范围不受该详细描述的限制,而是受在基于其的应用上发布的任何权利要求的限制。
进一步地,在本公开中并且尤其是在所附权利要求书(例如,所附权利要求书的主体)中使用的术语总体上旨在作为“开放式”术语(例如,术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,术语“包括”应当被解释为“包括但不限于”等)。
此外,如果旨在具体数目的所引入的权利要求陈述,则这样的意图将在权利要求中明确陈述,并且在没有这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,以下所附权利要求书可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述。然而,此类短语的使用不应被解释为暗示通过不定冠词“一个”或“一种”对权利要求叙述的引入将包含此类所引入的权利要求叙述的任何具体权利要求限制为仅包含一个此类叙述的实施例,甚至当相同权利要求包括引入性短语“一个或更多个”或“至少一个”以及不定冠词如“一个”或“一种”(例如,“一个”和/或“一种”应被解释为意指“至少一个”或“一个或更多个”)时;这同样适用于使用定冠词来介绍权利要求陈述。
此外,即使明确陈述所引入的权利要求陈述的特定数目,但领域的技术人员也将认识到,此陈述应解释为意指至少所陈述的数目(例如,没有其他修饰语的“两个陈述”的裸陈述意指至少两个陈述,或两个或两个以上陈述)。此外,在使用类似于“A、B、和C等中的至少一个”、或“A、B、和C等中的一个或更多个”、或“A、B、或C等中的至少一个”、或“A、B、或C等中的一个或更多个”的惯例的情况下,通常,这种构造旨在包括单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、或A、B、和C一起等。此外,术语“和/或”的使用旨在以这种方式进行解释。
此外,无论是在说明书、权利要求还是附图中,呈现两个或更多个替代性术语的任何分离性词语或短语都应当被理解为考虑包括这些术语中的一个、这些术语中的任一个或这两个术语的可能性。例如,短语“A或B”应理解为包括“A”或“B”或“A和B”的可能性,即使术语“和/或”在别处使用。
此外,术语“第一”、“第二”、“第三”等的使用在本文中不一定用于表示元件的特定顺序或数目。通常,术语“第一”、“第二”、“第三”等用于区分作为通用标识符的不同元件。在没有显示术语“第一”、“第二”、“第三”等意味着特定顺序的情况下,这些术语不应该被理解为意味着特定顺序。此外,在没有显示术语第一”、“第二”、“第三”等意味着特定数量的元件的情况下,这些术语不应该被理解为意味着特定数量的元件。
本公开中叙述的所有示例和条件性语言意图用于教学对象,以帮助读者理解本公开和发明人为促进现有技术所贡献的概念,并且将被解释为不限于这些具体叙述的示例和条件。尽管已经详细描述了本公开的实施例,但是在不背离本公开的精神和范围的情况下,可以对其进行各种变化、替换和变更。
Claims (27)
1.一种方法,包括:
获得包括多个节点的位姿图,所述位姿图的每个节点表示多个车辆中的相应车辆的相应位姿,每个相应位姿包括所述相应车辆的地理位置和所述相应车辆的方位;
将所述位姿图划分成多个位姿子图,每个位姿子图包括一个或更多个相应位姿子图内部节点和一个或更多个相应位姿子图边界节点;
基于所述多个位姿子图获得一个或更多个边界子图,所述一个或更多个边界子图中的每个边界子图包括一个或更多个相应边界子图边界节点以及分别是相应位姿子图边界节点的一个或更多个相应边界子图内部节点;以及
通过执行位姿图优化来获得经优化的位姿图,所述位姿图优化包括:
执行所述多个位姿子图的位姿子图优化包括:调整所述相应位姿子图内部节点的内部节点位姿,同时保持所述相应位姿子图边界节点的边界节点位姿固定;以及
执行所述多个边界子图的边界子图优化包括:调整所述相应边界子图内部节点的内部节点位姿,同时保持所述相应边界子图边界节点的边界节点位姿固定。
2.根据权利要求1所述的方法,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到确定所述位姿图已经收敛。
3.根据权利要求1所述的方法,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到对所述位姿子图和所述边界子图的所述内部节点的所有调整小于阈值量。
4.根据权利要求1所述的方法,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,其中对于每次迭代,顺序地执行所述位姿子图优化和所述边界子图优化。
5.根据权利要求1所述的方法,其中,并行执行所述位姿子图优化,其中,同时相对于两个或更多个位姿子图执行优化操作。
6.根据权利要求5所述的方法,其中,所述位姿子图优化的并行执行由多个计算机系统以分布式方式执行,使得所述位姿图的优化是在所述位姿图太大以至于单个计算机系统无法执行优化的情况下执行的。
7.根据权利要求1所述的方法,其中,每个相应位姿对应于所述相应车辆的一个或更多个传感器获得相应地图信息的时间点。
8.根据权利要求1所述的方法,还包括:
基于所述经优化的位姿图对齐由所述多个车辆获得的相应地图信息;以及
使用所述对齐的地图信息生成高清晰度地图。
9.根据权利要求1所述的方法,其中,获得所述一个或更多个边界子图中的相应边界子图包括:
将所述多个位姿子图中的第一位姿子图的第一边界节点识别为所述相应边界子图的第一内部节点;
将所述多个位姿子图中的第二位姿子图的第二边界节点识别为所述相应边界子图的第二内部节点;
基于第一边界节点是远离所述相应边界子图的所述第一内部节点特定数目的边来识别所述相应边界子图的第一边界节点;以及
基于第二边界节点是远离所述相应边界子图的所述第二内部节点所述特定数目的边来识别所述相应边界子图的第二边界节点。
10.一种或更多种非暂态计算机可读存储介质,其存储指令,所述指令响应于由一个或更多个处理器执行而使系统执行操作,所述操作包括:
获得包括多个节点的位姿图,所述位姿图的每个节点表示多个车辆中的相应车辆的相应位姿,每个相应位姿包括所述相应车辆的地理位置和所述相应车辆的方位;
将所述位姿图划分成多个位姿子图,每个位姿子图包括一个或更多个相应位姿子图内部节点和一个或更多个相应位姿子图边界节点;
基于所述多个位姿子图生成一个或更多个边界子图,所述一个或更多个边界子图中的每个边界子图包括一个或更多个相应边界子图边界节点以及一个或更多个相应边界子图内部节点;以及
通过执行位姿图优化来获得经优化的位姿图,所述位姿图优化包括:
执行所述多个位姿子图的位姿子图优化包括:调整所述相应位姿子图内部节点的内部节点位姿,同时保持所述相应位姿子图边界节点的边界节点位姿固定;以及
执行所述多个边界子图的边界子图优化包括:调整所述相应边界子图内部节点的内部节点位姿,同时保持所述相应边界子图边界节点的边界节点位姿固定。
11.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到确定所述位姿图已经收敛。
12.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到对所述位姿子图和所述边界子图的所述内部节点的所有调整小于阈值量。
13.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,其中,对于每次迭代,顺序地执行所述位姿子图优化和所述边界子图优化。
14.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,并行执行所述位姿子图优化,其中同时相对于两个或更多个位姿子图执行优化操作。
15.根据权利要求14所述的一种或更多种非暂态计算机可读存储介质,其中,所述位姿子图优化的并行执行由多个计算机系统以分布式方式执行,使得所述位姿图的优化是在所述位姿图太大以至于单个计算机系统无法执行优化的情况下执行的。
16.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,每个相应位姿对应于所述相应车辆的一个或更多个传感器获得相应地图信息的时间点。
17.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,所述操作还包括:
基于所述经优化的位姿图对齐由所述多个车辆获得的相应地图信息;以及
使用所述对齐的地图信息生成高清晰度地图。
18.根据权利要求10所述的一种或更多种非暂态计算机可读存储介质,其中,生成所述一个或更多个边界子图中的相应边界子图包括:
将所述多个位姿子图中的第一位姿子图的第一边界节点识别为所述相应边界子图的第一内部节点;
将所述多个位姿子图中的第二位姿子图的第二边界节点识别为所述相应边界子图的第二内部节点;
基于第一边界节点是远离所述相应边界子图的所述第一内部节点特定数目的边来识别所述相应边界子图的第一边界节点;以及
基于第二边界节点是远离所述相应边界子图的所述第二内部节点所述特定数目的边来识别所述相应边界子图的第二边界节点。
19.一种系统,包括:
一个或更多个处理器;以及
一个或更多个非暂态计算机可读存储介质,其存储指令,所述指令响应于由所述一个或更多个处理器执行而使所述系统执行操作,所述操作包括:
获得包括多个节点的位姿图,所述位姿图的每个节点表示多个车辆中的相应车辆的相应位姿,每个相应位姿包括所述相应车辆的地理位置和所述相应车辆的方位;
将所述位姿图划分成多个位姿子图,每个位姿子图包括一个或更多个相应位姿子图内部节点和一个或更多个相应位姿子图边界节点;
基于所述多个位姿子图获得一个或更多个边界子图,所述一个或更多个边界子图中的每个边界子图包括一个或更多个相应边界子图边界节点以及分别是相应位姿子图边界节点的一个或更多个相应边界子图内部节点;以及
通过执行位姿图优化来获得经优化的位姿图,所述位姿图优化包括:
执行所述多个位姿子图的位姿子图优化包括:调整所述相应位姿子图内部节点的内部节点位姿,同时保持所述相应位姿子图边界节点的边界节点位姿固定;以及
执行所述多个边界子图的边界子图优化包括:调整所述相应边界子图内部节点的内部节点位姿,同时保持所述相应边界子图边界节点的边界节点位姿固定。
20.根据权利要求19所述的系统,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到确定所述位姿图已经收敛。
21.根据权利要求19所述的系统,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,直到对所述位姿子图和所述边界子图的所述内部节点的所有调整小于阈值量。
22.根据权利要求19所述的系统,其中,获得所述经优化的位姿图包括:迭代地执行所述位姿图优化,其中,对于每次迭代,顺序地执行所述位姿子图优化和所述边界子图优化。
23.根据权利要求19所述的系统,其中,并行执行所述位姿子图优化,其中,同时相对于两个或更多个位姿子图执行优化操作。
24.根据权利要求23所述的系统,其中,所述位姿子图优化的并行执行由多个计算机系统以分布式方式执行,使得所述位姿图的优化是在所述位姿图太大以至于单个计算机系统无法执行优化的情况下执行的。
25.根据权利要求19所述的系统,其中,每个相应位姿对应于所述相应车辆的一个或更多个传感器获得相应地图信息的时间点。
26.根据权利要求19所述的系统,还包括:
基于所述经优化的位姿图对齐由所述多个车辆获得的相应地图信息;以及
使用所述对齐的地图信息生成高清晰度地图。
27.根据权利要求19所述的系统,其中,获得所述一个或更多个边界子图中的相应边界子图包括:
将所述多个位姿子图中的第一位姿子图的第一边界节点识别为所述相应边界子图的第一内部节点;
将所述多个位姿子图中的第二位姿子图的第二边界节点识别为所述相应边界子图的第二内部节点;
基于第一边界节点是远离所述相应边界子图的所述第一内部节点特定数目的边来识别所述相应边界子图的第一边界节点;以及
基于第二边界节点是远离所述相应边界子图的所述第二内部节点所述特定数目的边来识别所述相应边界子图的第二边界节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962813842P | 2019-03-05 | 2019-03-05 | |
US62/813,842 | 2019-03-05 | ||
PCT/US2020/021293 WO2020181153A1 (en) | 2019-03-05 | 2020-03-05 | Distributed processing of pose graphs for generating high definition maps for navigating autonomous vehicles |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113906414A true CN113906414A (zh) | 2022-01-07 |
Family
ID=72335135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080033125.8A Pending CN113906414A (zh) | 2019-03-05 | 2020-03-05 | 用于生成导航自主车辆用的高清晰度地图的位姿图的分布式处理 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11512964B2 (zh) |
EP (1) | EP3935524A4 (zh) |
JP (1) | JP7371111B2 (zh) |
CN (1) | CN113906414A (zh) |
WO (1) | WO2020181153A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403816B2 (en) * | 2017-11-30 | 2022-08-02 | Mitsubishi Electric Corporation | Three-dimensional map generation system, three-dimensional map generation method, and computer readable medium |
KR102233260B1 (ko) * | 2018-10-02 | 2021-03-29 | 에스케이텔레콤 주식회사 | 정밀 지도 업데이트 장치 및 방법 |
US11781875B2 (en) * | 2019-08-21 | 2023-10-10 | Toyota Motor Engineering & Manufacturing North America, Inc. | Apparatus and method for forming and analyzing connected roads |
US11668798B2 (en) * | 2019-11-14 | 2023-06-06 | Nio Technology (Anhui) Co., Ltd. | Real-time ground surface segmentation algorithm for sparse point clouds |
RU2764708C1 (ru) * | 2020-01-20 | 2022-01-19 | Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" | Способы и системы для обработки данных лидарных датчиков |
US11860315B2 (en) | 2020-01-20 | 2024-01-02 | Direct Cursus Technology L.L.C | Methods and systems for processing LIDAR sensor data |
US20210373138A1 (en) * | 2020-05-29 | 2021-12-02 | GM Global Technology Operations LLC | Dynamic lidar alignment |
US20200326721A1 (en) * | 2020-06-26 | 2020-10-15 | Intel Corporation | Occupancy verification device and method |
CN112699700B (zh) * | 2020-12-15 | 2022-08-19 | 福建汉特云智能科技有限公司 | 一种基于射频技术的智能机器人定位系统及方法 |
US11238643B1 (en) * | 2020-12-16 | 2022-02-01 | Pony Ai Inc. | High-definition city mapping |
CN112559664A (zh) * | 2020-12-16 | 2021-03-26 | 北京嘀嘀无限科技发展有限公司 | 更新地图数据的方法、装置、设备和存储介质 |
CN112833876B (zh) * | 2020-12-30 | 2022-02-11 | 西南科技大学 | 一种融合里程计与uwb的多机器人协作定位方法 |
EP4290276A4 (en) * | 2021-02-07 | 2024-02-21 | Huawei Tech Co Ltd | METHOD AND APPARATUS FOR ROADSIDE RECOGNITION |
US20220250642A1 (en) * | 2021-02-11 | 2022-08-11 | GM Cruise Holdings, LLC | High definition map updates using assets generated by an autonomous vehicle fleet |
WO2021178980A1 (en) * | 2021-04-28 | 2021-09-10 | Innopeak Technology, Inc | Data synchronization and pose prediction in extended reality |
US20230016578A1 (en) * | 2021-07-19 | 2023-01-19 | Embark Trucks, Inc. | Dynamically modifiable map |
CN113776543B (zh) * | 2021-07-27 | 2023-11-28 | 武汉中海庭数据技术有限公司 | 一种车辆融合定位方法、系统、电子设备及存储介质 |
US20230071446A1 (en) * | 2021-08-27 | 2023-03-09 | Zillow, Inc. | Automated Mapping Information Generation From Analysis Of Building Photos |
US11915436B1 (en) * | 2021-08-30 | 2024-02-27 | Zoox, Inc. | System for aligning sensor data with maps comprising covariances |
US20230063960A1 (en) * | 2021-08-31 | 2023-03-02 | Toyota Motor Engineering & Manufacturing North America, Inc. | System and method for performing graph imputation |
CN114419187B (zh) * | 2021-12-23 | 2023-02-24 | 北京百度网讯科技有限公司 | 地图构建方法、装置、电子设备和可读存储介质 |
CN117207199B (zh) * | 2023-11-08 | 2024-03-22 | 北京星河动力装备科技有限公司 | 太空机械臂控制方法、装置、系统、电子设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4251545B2 (ja) | 2003-07-11 | 2009-04-08 | 独立行政法人科学技術振興機構 | 移動ロボット用経路計画システム |
US9734608B2 (en) * | 2015-07-30 | 2017-08-15 | Microsoft Technology Licensing, Llc | Incremental automatic layout of graph diagram for disjoint graphs |
DE102016211805A1 (de) * | 2015-10-09 | 2017-04-13 | Volkswagen Aktiengesellschaft | Fusion von Positionsdaten mittels Posen-Graph |
US10309778B2 (en) * | 2016-12-30 | 2019-06-04 | DeepMap Inc. | Visual odometry and pairwise alignment for determining a position of an autonomous vehicle |
WO2020139377A1 (en) * | 2018-12-28 | 2020-07-02 | Didi Research America, Llc | Interface for improved high definition map generation |
-
2020
- 2020-03-05 US US16/810,796 patent/US11512964B2/en active Active
- 2020-03-05 CN CN202080033125.8A patent/CN113906414A/zh active Pending
- 2020-03-05 WO PCT/US2020/021293 patent/WO2020181153A1/en unknown
- 2020-03-05 EP EP20766056.4A patent/EP3935524A4/en active Pending
- 2020-03-05 JP JP2021552969A patent/JP7371111B2/ja active Active
-
2022
- 2022-11-21 US US18/057,619 patent/US20230083343A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230083343A1 (en) | 2023-03-16 |
EP3935524A4 (en) | 2022-12-07 |
WO2020181153A1 (en) | 2020-09-10 |
EP3935524A1 (en) | 2022-01-12 |
US11512964B2 (en) | 2022-11-29 |
JP7371111B2 (ja) | 2023-10-30 |
US20200284590A1 (en) | 2020-09-10 |
JP2022524069A (ja) | 2022-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110832279B (zh) | 对准由自主车辆捕获的数据以生成高清晰度地图 | |
JP7371111B2 (ja) | 自律走行車のナビゲーション用高精度地図を生成するためのポーズグラフの分散処理 | |
US11353589B2 (en) | Iterative closest point process based on lidar with integrated motion estimation for high definition maps | |
US20240005167A1 (en) | Annotating high definition map data with semantic labels | |
US11598876B2 (en) | Segmenting ground points from non-ground points to assist with localization of autonomous vehicles | |
US11590989B2 (en) | Training data generation for dynamic objects using high definition map data | |
WO2021007117A1 (en) | Generating training data for deep learning models for building high definition maps | |
WO2020264222A1 (en) | Image-based keypoint generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |