CN112540593B - 用于自动驾驶车辆的用于配准点云的方法和装置 - Google Patents

用于自动驾驶车辆的用于配准点云的方法和装置 Download PDF

Info

Publication number
CN112540593B
CN112540593B CN202011255393.2A CN202011255393A CN112540593B CN 112540593 B CN112540593 B CN 112540593B CN 202011255393 A CN202011255393 A CN 202011255393A CN 112540593 B CN112540593 B CN 112540593B
Authority
CN
China
Prior art keywords
clusters
point clouds
pose
module
point cloud
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.)
Active
Application number
CN202011255393.2A
Other languages
English (en)
Other versions
CN112540593A (zh
Inventor
何润欣
宋适宇
余丽
丁文东
袁鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu USA LLC filed Critical Baidu USA LLC
Publication of CN112540593A publication Critical patent/CN112540593A/zh
Application granted granted Critical
Publication of CN112540593B publication Critical patent/CN112540593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1652Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

本公开涉及一种用于自动驾驶车辆(ADV)的用于配准点云的方法、装置、数据处理系统及非暂时性机器可读介质。所述方法包括确定待建图区域的多个点云的多个位姿的一个或多个相关位姿对的框架对尺寸;响应于所述框架对尺寸大于阈值,将包含所述多个点云和对应位姿的区域分离为多个集群;将第一优化模型分离地应用于与所述多个集群对应的多个点云以配准所述点云;合并来自所述多个集群的经配准的点云,以感知所述ADV周围的区域的驾驶环境;以及重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛。

Description

用于自动驾驶车辆的用于配准点云的方法和装置
技术领域
本公开的实施例一般涉及操作自动驾驶车辆。更特别地,本公开的实施例涉及用于自动驾驶车辆(ADV)的用于配准点云的方法、装置、数据处理系统及非暂时性机器可读介质。
背景技术
以自动模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当以自动模式操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在一些情况下没有任何乘客的情况下行驶。
运动规划和控制是自动驾驶中的关键操作。运动规划和控制操作的准确性和效率取决于车辆的传感器和待导航区域的高清晰度(HD)二维(2D)或三维(3D)点云地图。诸如相机、光检测和测距(LIDAR)单元、雷达等的传感器被用于捕获车辆周围环境的视频和电磁图像。ADV可处理由传感器捕获的信息以及由HD 3D点云地图提供的交通元素,以感知ADV周围的驾驶环境用于规划ADV的运动。
诸如LIDAR传感器的传感器也被用于捕获待建图区域的数据点。所述数据点被称为点云,并且对应于LIDAR传感器在特定时间点的位姿(例如,位置和方向)。使用LIDAR传感器在多个位姿处捕获的点云,构建该区域的HD 3D点云地图。点云配准是指在数据捕获阶段期间估计LIDAR的GPS位置和位姿以对准待建图区域的点云的过程。点云数据的对准使得能够基于原始点云地图中的模糊区域构建准确的HD 3D点云地图。
然而,存在影响地图构建的性能和准确性两者的若干问题。首先,目前的点云配准算法高度依赖于用于车辆的同时定位的GPS信号,其可以具有米的量级的误差幅度。由于由高建筑物划分的城市街道或密集森林,GPS信号的多路径和其它劣化加剧了误差。或者GPS信号可能无法被完全接收到,例如在隧道或车库中。其次,点云的配准在计算上可能很复杂,例如,对于大的地图区域而言是有挑战性的并且耗时的。为了降低复杂度,可以将地图区域划分为子地图,并且可以使用区域迭代最近点(ICP)算法在对应的计算节点上实现用于子地图的点云配准。然而,子地图的尺寸可能受到对应的计算节点的存储大小的限制,这进而影响点云配准地图的准确度。期望具有一种不受计算节点的存储限制的用于将地图区域划分为子地图以进行点云配准的更灵活的方法。
发明内容
本公开旨在提供一种用于自动驾驶车辆(ADV)的用于配准点云的方法、装置、数据处理系统及非暂时性机器可读介质。该方法可降低地图的准确性对计算节点的存储资源的依赖性。
根据本公开的一个方面,提供了一种用于自动驾驶车辆(ADV)的用于配准点云的方法,所述方法包括:确定待建图区域的多个点云的多个位姿的一个或多个相关位姿对的框架对尺寸;响应于所述框架对尺寸大于阈值,将包含所述多个点云和对应位姿的区域分离为多个集群;将第一优化模型分离地应用于与所述多个集群对应的多个点云以配准所述点云;合并来自所述多个集群的经配准的点云,以感知所述ADV周围的区域的驾驶环境;以及重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛。
根据本公开的另一个方面,提供了一种用于自动驾驶车辆(ADV)的用于配准点云的计算机实现的装置包括:点云接收器模块,用于接收来自自动驾驶车辆的点云和对应位姿;划分模块,确定待建图区域的多个点云的多个位姿的一个或多个相关位姿对的框架对尺寸,并且响应于所述框架对尺寸大于阈值,将包含所述多个点云和对应位姿的区域分离为多个集群;优化求解器模块,用于将第一优化模型分离地应用于与所述多个集群对应的多个点云以配准所述点云;以及合并模块,用于合并来自所述多个集群的经配准的点云,以感知所述ADV周围的区域的驾驶环境。所述划分模块重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及所述优化求解器模块重复地将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛。
根据本公开的又一个方面,提供了一种数据处理系统,包括:处理器;以及存储器,耦接到所述处理器以存储指令,所述指令在由所述处理器执行时使得所述处理器执行如上文及下文所述的用于自动驾驶车辆(ADV)的用于配准点云的方法。
根据本公开的又一个方面,提供了一种具有存储在其中的指令的非暂时性机器可读介质,所述指令在由处理器执行时使得所述处理器执行如上文及下文所述的用于自动驾驶车辆(ADV)的用于配准点云的方法。
附图说明
本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。
图1是示出根据一个实施例的联网系统的框图。
图2是示出根据一个实施例的自动车辆的示例的框图。
图3A-3B是示出根据一个实施例的与自动车辆一起使用的感知和规划系统的示例的框图。
图4是示出根据一个实施例的自动驾驶系统的架构的框图。
图5是示出根据一个实施例的HD地图生成引擎的示例的框图。
图6是示出根据一个实施例的HD地图生成系统的示例的框图。
图7是示出根据一个实施例的用于HD地图生成系统的点云数据的处理的示例的框图。
图8是示出根据一个实施例的用于与框架对尺寸相关地将光束平差方程分离为K个群集的方法的示例的流程图。
图9是示出根据一个实施例的用于与框架对尺寸相关地将用于ICP的区域分离为K个集群的方法的示例的流程图。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。
说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。
本说明书中所提及的“HD”或“高清晰度”,诸如HD地图或HD位姿,指的是具有非常高精确度级别的地图或位姿。例如,HD地图可以具有厘米或数十厘米的精确度级别。可导航区域的2D或3D HD点云地图存储用于ADV的运动规划和控制的交通元素,诸如用于定位和感知的特征。
在HD点云地图的构建期间的点云配准可在数据捕获阶段期间估计LIDAR的GPS位置和位姿,以对准待建图区域的点云。在对准点云数据之后,可以基于原始点云地图构建HD2D或3D点云地图。为了降低点云配准的计算复杂度,可以将地图区域划分为更小的分区或子地图。可以使用区域迭代最近点(ICP)算法在计算集群的计算节点上并行地实现用于子地图的点云配准。该计算集群中的各计算节点可具有不同的存储资源,影响ICP算法的计算速度和所构建的HD点云地图的准确性。为了降低地图的准确性对计算节点的存储资源的依赖性,公开了一种用于区域的用于ICP算法的方法。
根据一个实施例,公开了一种在点云配准中为区域性ICP划分区域的方法。该方法确定决策变量的框架对尺寸,诸如待构建的HD地图的区域的相关LIDAR位姿对的框架对尺寸。在一个实施例中,框架对尺寸可以是该LIDA位姿对之间的几何距离。所述区域可以是HD地图的子地图或分区,或者可以是HD地图的整体。如果框架对尺寸大于阈值,则将区域进一步划分为多个集群。在一个实施例中,阈值可以是计算节点的存储大小的函数。该方法可以针对集群中的每一个执行ICP算法。在一个实施例中,通过求解光束平差方程实现ICP算法。将区域划分为多个集群可以意味着分离地对用于集群中的每一个的光束平差方程进行求解。在集群内部,ICP算法聚焦于决策变量的部分子集,并假定剩余的决策变量是固定的。例如,如果框架对中的一个LIDAR位姿在集群内部,而框架对的另一LIDAR位姿在集群外部,则该方法在实现ICP算法时将集群外部的LIDAR位姿作为常数处理。如果框架对尺寸不大于阈值,则不将区域划分为集群,并且该方法可以通过在区域上求解光束平差方程直接实现ICP算法。为了构建HD地图,该方法可以确定ICP问题的结果是否收敛,例如,用于集群的光束平差方程的解是否收敛。如果解收敛,则找到针对该区域的点云配准的解。否则,如果解不收敛,则该方法可以重新计算一个不同的LIDAR位姿对的框架对尺寸,使用不同的度量计算决策变量的框架对尺寸,或者改变阈值。
根据一个实施例,该方法可在点云配准中确定用于区域性ICP的区域的LIDAR位姿的框架对尺寸。该方法可以将框架对尺寸与阈值进行比较。如果框架对尺寸大于阈值,则该方法可以将区域分离为K个集群。该方法可以在区域的K个集群的每一个中分离地实现ICP算法。如果框架对不大于阈值,则该方法可以在整个区域中实现ICP算法。该方法可以使用位姿图算法,将来自K个集群的ICP算法的结果合并。
图1是示出根据本公开的一个实施例的自动车辆网络配置的框图。参考图1,网络配置100包括自动驾驶车辆101,自动驾驶车辆101可以通过网络102通信地耦接到一个或多个服务器103-104。尽管示出一个自动车辆,但是多个自动车辆可以通过网络102彼此耦接和/或耦接到服务器103-104。网络102可以是任何类型的网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、蜂窝网络、卫星网络、或其组合,有线或无线。服务器103-104可以是任何类型的服务器或服务器群集,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或位置服务器等。在一个实施例中,自动驾驶车辆101可以从服务器103或104下载HD地图用于运动规划和控制。
自动车辆指的是能够被配置为处于自动模式的车辆,在自动模式中,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自动车辆可包括具有一个或多个传感器的传感器系统,传感器被配置为检测关于车辆操作于其中的环境的信息。车辆及其相关联的控制器使用检测到的信息导航通过环境。自动驾驶车辆101可以以手动模式、全自动模式或部分自动模式操作。
在一个实施例中,自动驾驶车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户界面系统113和传感器系统115。自动驾驶车辆101还可包括在普通车辆中包括的某些常见组件,例如引擎、车轮、方向盘、变速器等,这些组件可以被车辆控制系统111和/或感知和规划系统110使用各种通信信号和/或命令(例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)控制。
组件110-115可以经由互连、总线、网络或其组合彼此通信地耦接。例如,组件110-115可以经由控制器局域网(CAN)总线彼此通信地耦接。CAN总线是一种车辆总线标准,其被设计为允许微控制器和设备在没有主机的应用中彼此通信。它是基于消息的协议,最初被设计用于汽车内的多路电气布线,但是也用于许多其它环境中。
现在参考图2,在一个实施例中,传感器系统115包括但不限于一个或多个相机211、全球定位系统(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光检测和测距(LIDAR)单元215。GPS单元212可包括可操作以提供关于自动车辆的位置的信息的收发器。IMU单元213可基于惯性加速度感测自动车辆的位置和方向变化。雷达单元214可以表示使用无线电信号感测自动车辆的局部环境内的对象的系统。在一些实施例中,除了感测对象之外,雷达单元214还可以额外地感测对象的速度和/或航向。LIDAR单元215可以使用激光感测自动车辆所处的环境中的对象。LIDAR单元215可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机211可包括一个或多个设备以捕获自动车辆周围的环境的图像。相机211可以是静态相机和/或摄影机。相机可以是机械可移动的,例如通过将相机安装在旋转和/或倾斜的平台上。
传感器系统115还可包括其它传感器,诸如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置为捕获来自自动车辆周围的环境的声音。转向传感器可以被配置为感测方向盘、车辆的车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感。
在一个实施例中,车辆控制系统111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201用于调节车辆的方向或航向。油门单元202用于控制发动机或引擎的速度,发动机或引擎的速度转而控制车辆的速度和加速度。制动单元203通过提供摩擦力以使车辆的车轮或轮胎变慢来使车辆减速。注意,图2所示的组件可以以硬件、软件或其组合实现。
返回参考图1,无线通信系统112允许在自动驾驶车辆101和外部系统,诸如设备、传感器、其他车辆等之间的通信。例如,无线通信系统112可以直接或经由通信网络与一个或多个设备(诸如在网络102上的服务器103-104)无线通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如使用WiFi与另一组件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等直接与设备(例如,乘客的移动设备、显示设备、自动驾驶车辆101内的扬声器)通信。用户界面系统113可以是在自动驾驶车辆101内实现的外围设备的一部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。
自动驾驶车辆101的一些或所有功能可以由感知和规划系统110控制或管理,尤其是当以自动驾驶模式操作时。感知和规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路由程序),以从传感器系统115、车辆控制系统111、无线通信系统112和/或用户界面系统113接收信息,处理接收的信息,规划从起点到目的地点的路线或路径,然后基于规划和控制信息驾驶自动驾驶车辆101。可替换地,感知和规划系统110可以与车辆控制系统111集成。
例如,作为乘客的用户可以例如经由用户界面指定行程的起始位置和目的地。感知和规划系统110获得行程相关数据。例如,感知和规划系统110可以从MPOI服务器获得位置和路线信息,MPOI服务器可以是服务器103-104的一部分。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI。可替换地,这种位置和MPOI信息可本地缓存在感知和规划系统110的持久性存储设备中。在一个实施例中,可以从自服务器103-104下载的HD地图中获得位置和MPOI信息。
当自动驾驶车辆101沿着路线移动时,感知和规划系统110还可以从交通信息系统或服务器(TIS)获得实时交通信息。注意,服务器103-104可以由第三方实体运营,诸如将起始位置和目的地位置下载到感知和规划系统110用于感知和规划系统110以规划路线的服务供应商。第三方还可以向感知和规划系统110发出命令以命令自动驾驶车辆101开始在规划的路线上行驶。可替换地,服务器103-104的功能可以与感知和规划系统110集成。基于实时交通信息、MPOI信息和位置信息,以及由传感器系统115检测或感测的实时局部环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可规划最佳路线,并例如经由车辆控制系统111根据规划路线驾驶自动驾驶车辆101,以安全且高效地到达指定目的地。
服务器103可以是用以执行用于各种客户端的数据分析服务的数据分析系统。在一个实施例中,服务器103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆(自动车辆或者是由人类驾驶员驾驶的常规车辆)收集驾驶统计123。驾驶统计123包括指示发出的驾驶命令(例如,油门、制动、转向命令)和由车辆的传感器在不同时间点捕获的车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计123还可包括描述不同时间点的驾驶环境的信息,诸如路线(包括起始位置和目的地位置)、MPOI、道路状况、天气状况等。驾驶统计123还可包括点云信息,诸如由安装在车辆上的LIDAR传感器捕获的驾驶环境的特征和对象的点云图像,以及由IMU和GPS传感器捕获的描述车辆的位置和方向的对应的位姿。
基于驾驶统计123,机器学习引擎122为了各种目的而生成或训练一组规则、算法和/或预测模型124。在一个实施例中,算法124可包括区域性ICP算法、光束平差算法、交替方向乘子法(ADMM)算法、图像分割算法(例如,边缘检测、运动检测等)、同时定位与建图(SLAM)算法、深度学习神经网络模型。
算法124可以实时上传到ADV上以在自动驾驶期间使用,或者可以由其他模块,诸如服务器103的HD地图生成引擎125使用。在一个实施例中,HD地图生成引擎125可对由ADV收集的点云进行配准,并基于经配准的点云生成HD地图。虽然HD地图生成引擎125被示为服务器103的部分,但在一些实施例中,引擎125可以是服务器104的部分。
图3A和3B是示出根据一个实施例的与自动车辆一起使用的感知和规划系统的示例的框图。系统300可以被实现为图1的自动驾驶车辆101的部分,包括但不限于感知和规划系统110、车辆控制系统111和传感器系统115。参考图3A-3B,感知和规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306、路由模块307和安全模块308。
模块301-308中的一些或全部可以以软件、硬件或其组合实现。例如,这些模块可被安装在持久性存储设备352中,加载到存储器351中,并由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地耦接到图2的车辆控制系统111的一些或全部模块或与之集成。模块301-308中的一些可以被集成在一起作为集成模块。例如,安全模块308可与感知模块302集成为集成模块。
定位模块301确定自动驾驶车辆101的当前位置(例如,利用GPS单元212)并管理与用户的行程或路线有关的任何数据。定位模块301(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。用户可以例如经由用户界面登录并指定行程的起始位置和目的地。定位模块301与自动驾驶车辆101的其他组件诸如地图和路线信息311交流,以获得与行程有关的数据。例如,定位模块301可以从位置服务器和地图与POI(MPOI)服务器获得位置和路线信息。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI,它们可作为地图和路线信息311的一部分被缓存。在一个实施例中,地图和路线信息311可以是基于点云配准从原始点云数据构建的HD地图,点云配准在原始点云数据的收集期间估计传感器的GPS位置和位姿。HD地图可从位置服务器和MPOI服务器下载。当自动驾驶车辆101沿着路线移动时,定位模块301还可以从交通信息系统或服务器获得实时交通信息。
基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,由感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员将感知到的驾驶员正在驾驶的车辆周围的情况。感知可包括车道配置、交通灯信号、例如以对象形式的另一车辆、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让步标志)等的相对位置。车道配置包括描述一个或多个车道的信息,诸如,例如车道的形状(例如,直的或弯曲的)、车道的宽度、道路中的车道数量、单向或双向车道、合并或分离车道、驶出车道等。
感知模块302可包括计算机视觉系统或计算机视觉系统的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自动车辆的环境中的对象和/或特征。对象可包括交通信号、车行道边界、其他车辆、行人和/或障碍物等。计算机视觉系统可使用对象识别算法、视频跟踪和其它计算机视觉技术。在一些实施例中,计算机视觉系统可以对环境建图、跟踪对象、以及估计对象的速度等。感知模块302还可基于由诸如雷达和/或LIDAR的其他传感器提供的其他传感器数据检测对象。
对于每个对象,预测模块303预测对象将在环境下作出什么行为。鉴于一组地图/路线信息311和交通规则312,基于对该时间点的驾驶环境进行感知的感知数据执行预测。例如,如果对象是在相反方向上的车辆并且当前驾驶环境包括十字路口,则预测模块303将预测车辆将可能直线向前移动还是转弯。如果感知数据指示十字路口没有交通灯,则预测模块303可以预测车辆在进入十字路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅左转弯车道或仅右转弯车道,则预测模块303可预测车辆将更可能分别进行左转弯或右转弯。
对于每个对象,决策模块304作出关于如何处理该对象的决策。例如,对于特定对象(例如,在交叉路线中的另一车辆)以及描述该对象的元数据(例如,速度、方向、转向角),决策模块304决定如何遇到该对象(例如,超车、让行、停止、经过)。决策模块304可根据一组规则,诸如交通规则312或驾驶规则作出这些决策,这组规则可存储于持久性存储设备352中。
路由模块307被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块307获得路线和地图信息311并且确定从起始位置用以到达目的地位置的所有可能的路线或路径。路由模块307可以为其确定的从起始位置用以到达目的地位置的每条路线生成地形图形式的参考线。参考线是指没有来自诸如其它车辆、障碍物或交通状况的其它者的任何干扰的理想路线或路径。也就是说,如果在道路上没有其它车辆、行人或障碍物,则ADV应该精确地或紧密地跟随参考线。然后,地形图被提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305检查所有可能的路线,以鉴于由其它模块提供的其它数据(诸如来自定位模块301的交通状况、由感知模块302感知的驾驶环境和由预测模块303预测的交通状况)选择和修改最佳路线中的一个。取决于该时间点的特定驾驶环境,用于控制ADV的实际路径或路线可以接近或不同于由路由模块307提供的参考线。
基于对于每个感知的对象的决策,规划模块305使用由路由模块307提供的参考线作为基础规划用于自动车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角)。也就是说,对于给定对象,决策模块304决策对该对象做什么,而规划模块305确定如何做。例如,对于给定对象,决策模块304可以决策经过对象,而规划模块305可以确定是在对象的左侧还是右侧经过。规划和控制数据由规划模块305生成,包括描述自动驾驶车辆101在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可指示自动驾驶车辆101以30英里每小时(mph)的速度移动10米,然后以25mph的速度改变到右车道。
基于规划和控制数据,控制模块306通过根据由规划和控制数据定义的路线或路径向车辆控制系统111发送适当的命令或信号,来控制和驾驶自动车辆。规划和控制数据包括足够的信息以沿着路径或路线在不同时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。
在一个实施例中,规划阶段在多个规划周期(也称为驾驶周期,诸如在100毫秒(ms)的每个时间间隔内)内执行。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块305规划下一个路线段或路径段,例如包括目标位置和ADV到达目标位置所需的时间。可替换地,规划模块305还可指定具体速度、方向和/或转向角等。在一个实施例中,规划模块305为下一预定的时间段,诸如5秒规划路线段或路径段。对于每个规划周期,规划模块305基于在先前周期中规划的目标位置规划用于当前周期(例如,下一个5秒)的目标位置。然后控制模块306基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。
注意,决策模块304和规划模块305可以集成为集成模块。决策模块304/规划模块305可包括导航系统或导航系统的功能,以确定用于自动车辆的驾驶路径。例如,导航系统可以确定一系列速度和方向航向,以影响自动车辆沿着基本上避开感知的障碍物的路径的移动,同时大体使自动车辆沿着通向最终目的地的基于车行道的路径前进。目的地可以根据经由用户界面系统113的用户输入而被设置。当自动车辆在操作时,导航系统可以动态地更新驾驶路径。导航系统可以并入来自GPS系统的数据和一个或多个地图,以便确定用于自动车辆的驾驶路径。
决策模块304/规划模块305还可包括防撞系统或防撞系统的功能,以识别、评估和避免或以其他方式通过自动车辆的环境中的潜在障碍物。例如,防撞系统可以通过操作车辆控制系统111中的一个或多个子系统以进行转向操纵、转弯操纵、制动操纵等实现自动车辆的导航的改变。防撞系统可以基于周围的交通模式、道路状况等自动地确定可行的避障操纵。防撞系统可被配置为使得当其他传感器系统检测到在与将转向进入的自动车辆相邻的区域中的车辆、施工障碍物等时不进行转向操纵。防撞系统可以自动地选择既可用又最大化自动车辆的乘坐者的安全的操纵。防撞系统可以选择被预测为在自动车辆的客舱中致使最小量的加速度的规避操纵。
在一个实施例中,安全模块308被配置为基于一组安全规则313检测网络攻击和欺骗攻击。安全模块308可以被实现为感知模块302的部分,或者可以与感知模块302或其他模块通信。安全模块308可以检测对自动车辆的目的地的改变或异常的重新路由活动以确定是否存在网络攻击。安全模块308还可以检测自动驾驶车辆的传感器系统115上的欺骗以阻止欺骗攻击。在一个实施例中,安全模块308可以将攻击通知给决策模块304,以便自动车辆可以被切换到故障安全操作。
注意,如上所示和所述的一些或所有组件可以用软件、硬件或其组合实现。例如,这些组件可以被实现为安装并存储在持久性存储设备中的软件,软件可以由处理器(未示出)加载并执行在存储器中以执行贯穿本申请所述的过程或操作。可替换地,这些组件可被实现为被编程或嵌入到专用硬件中的可执行代码,专用硬件诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),可执行代码可经由来自应用的对应驱动器和/或操作系统访问。此外,这些组件可以被实现为处理器或处理器内核中的特定硬件逻辑,作为经由一个或多个特定指令软件组件可访问的指令集的一部分。
图4是示出根据一个实施例的用于自动驾驶的系统架构的框图。系统架构400可以表示如图3A和3B所示的自动驾驶系统的系统架构。参考图4,系统架构400包括但不限于应用层401、规划和控制(PNC)层402、感知层403、驱动程序层404、固件层405和硬件层406。应用层401可包括与自动驾驶车辆的用户或乘客交互的用户界面或配置应用,诸如例如与用户界面系统113相关联的功能。PNC层402可包括至少规划模块305和控制模块306的功能。感知层403可包括至少感知模块302的功能。在一个实施例中,存在包括预测模块303和/或决策模块304的功能的额外的层。可替换地,这样的功能可以被包括在PNC层402和/或感知层403中。固件层405可以至少表示传感器系统115的功能,其可以以现场可编程门阵列(FPGA)的形式实现。硬件层406可以表示自动驾驶车辆的硬件,诸如车辆控制系统111。层401-403可以经由设备驱动程序层404与固件层405和硬件层406通信。
图5是示出根据一个实施例的HD地图生成引擎125的示例的框图。HD地图生成引擎可以配准点云,并且基于点云配准生成HD地图。参考图5,HD地图生成引擎125可包括多个模块,诸如点云接收器模块501、点云降采样模块503、环路信息确定器模块505、划分模块507、优化求解器模块509和合并模块511。注意,这些模块中的一些或全部可以被集成到更少的模块中或被划分到更多的模块中。
点云接收器模块501可以接收点云(例如,由ADV的LIDAR传感器捕获的LIDAR图像)和对应位姿(例如,位置和方向)。点云是指数据点的集合,在示例中,由LIDAR设备在特定时间点捕获。每个数据点都与数据点的位置信息(例如,x、y和z坐标)相关联。点云降采样模块503可以是可选的,其可以在空间上或时间上对点云进行降采样。环路信息确定器模块505可针对与形成地理环路的可导航区域对应的点云集合,确定是否存在环路闭合。划分模块507可基于闭合信息或块分区信息将一个或多个可导航区域划分为一个或多个分区。优化求解器模块509可以将优化算法(诸如基于区域性ICP的光束平差算法、ADMM算法、SLAM算法、图像分割算法等,作为图4的算法515或图1的算法124的部分)应用于与分区对应的点云和位姿,以生成用于点云配准的细化的HD LIDAR位姿。点云配准是指用于待建图区域的点云数据的对准。合并模块511可将多个分区合并在一起用于生成HD地图。
图6是示出根据一个实施例的HD地图生成系统的示例的框图。HD地图生成系统500可以是图1的HD地图生成引擎125的部分。参考图6,在一个实施例中,HD地图生成系统600包括点云配准子系统601和HD地图生成子系统602。点云配准子系统601可以接收IMU信号、GPS信号和LIDAR图像603(例如,分别从IMU 213、GPS单元212和LIDAR单元215)作为输入,以及基于接收到的输入生成HD位姿604(或对准用于LIDAR图像603的位姿)。然后,HD地图生成子系统602可以接收LIDAR图像603和HD位姿604作为输入,并基于这些输入生成HD地图605。
图7是示出根据一个实施例的用于HD地图生成系统的点云数据的处理的示例的框图。点云数据处理流程700可由诸如图6的系统600的HD地图生成系统或诸如图5的引擎125的HD地图生成引擎实现。参考图7,在一个实施例中,点云数据处理流程700包括但不限于降采样过程701、划分过程702、分布式计算(Hadoop)和消息传递接口(MPI)并行配准过程703、位姿图对准过程704和位姿调整过程705。这些操作701-705中的一些可以由不同的处理节点以串行、并行或流水线方式执行,这些操作可以由地图生成系统分配。不同的过程描述如下:
点云数据处理流程700的输入可以是从安装在一个或多个ADV上的LIDAR传感器的任务场景收集的原始点云和它们的位姿。通常,输入包括待优化和对准的数万或数十万个LIDAR位姿。为了最小化输入点的数量,降采样过程701可以以顺序方式在空间上和/或时间上对位姿进行降采样。
在一个实施例中,降采样过程701可以在空间上对点云进行降采样。例如,降采样过程701可以确定空间滑动窗口。滑动窗口可以是具有预定半径的圆形窗口。然后,降采样过程701为该空间窗口内部的所有点云标识一个LIDAR点云和对应的位姿,用于进一步处理。在一个实施例中,可以基于感兴趣的空间区域,例如滑动窗口的中心区域,来标识所述一个LIDAR点云。
在另一实施例中,降采样过程701可以在时间上对点云进行降采样。例如,降采样过程701可以确定时间滑动窗口,以跟踪用于每个空间滑动窗口的LIDAR点云的时间序列(例如,使用时间戳)。然后,降采样过程701可以基于每个时间序列标识一个LIDAR点云及它的对应的位姿,用于进一步处理。例如,如果存在两个时间序列,即两个时间集群,则降采样过程701可以降采样到用于两个时间序列的点云和对应的位姿。对点云进行时间降采样对于ADV在红色停止灯处空闲时的场景尤其有用。在这种情况下,空闲的ADV可以捕获基本上相同的LIDAR帧的时间序列,但是仅一个LIDAR点云是有用的。因此,降采样针对该时间序列标识一个LIDAR点云用于进一步处理,而不是标识对该红色停止灯的相似点云进行捕获的时间序列的多个LIDAR点云。因此,降采样将减少重复或相似的点云数据的数量,并优化用于点云处理的输入数据。然后,由过程702对经降采样的点云进行划分。
在一个实施例中,划分过程702基于诸如边缘检测和/或图像分割算法的一个或多个计算机视觉算法确定环路闭合信息。例如,划分过程702可以使用角点检测算法检测特征或图像边缘。诸如Harris角点检测器的角点检测算法可以从LIDAR图像(例如点云)中提取和推断特征。然后,划分过程702可以基于对应的位姿、检测到的特征和/或可以预测车辆位置的车辆时间和速度信息的集合的组合,检测和跟踪一个或多个环路。在另一实施例中,可以基于道路轮廓或道路轮廓的特征,识别道路环路闭合。然后,划分过程702基于环路闭合信息,将点云划分为一个或多个点云集合,使得一个点云集合对应于一个环路。
在一个实施例中,如果检测到的环路跨越大于预定的阈值的区域,则划分过程702可以对环路分区应用空间划分,并且还可以将环路分区划分为两个或多个块分区。这样,每个分区的计算负荷将不会超过预定阈值。在一个实施例中,将环路划分为预定空间区域的块。然后,可以通过分布式计算(Hadoop)和消息传递接口(MPI)过程703中的计算节点的节点集群,并行地对经划分的点云进行配准。
点云配准是指将各种点云与参考位姿或点云对准。对于每个环路或块分区,为了对准分区中的点云,将优化算法应用于与分区对应的点云以生成用于点云的HD LIDAR位姿。例如,过程703可以将迭代最近点(ICP)算法应用于点云集合。注意,ICP是一种用于最小化两个点云之间的差异的算法。ICP经常用于基于不同的扫描重建2D或3D表面。对于ICP,一个点云,例如参考点云,被保持固定,而其它点云被变换以最佳地匹配该参考点云。该算法迭代地修正最小化误差度量所需的变换(例如,平移和旋转),所述误差度量例如是相匹配的各对的坐标之间的平方差的和,或者是从其他点云到参考点云的距离。
例如,对于具有对应的LIDAR位姿的点云i,对应于变换矩阵(例如,其中ti是平移,以及Ri是旋转变换)的LIDAR位姿(x,y,z(偏航,俯仰,和滚转))可被用于将点云i从相对的坐标系(相对于车辆)投影到通用横轴墨卡托(UTM)坐标系。投影方程为:其中xk是来自点云i的集合的任一点,ti是平移,以及Ri是旋转变换。
对于每个分区,过程703可以基于点云的位姿标识相关点云对(或框架对),其中对/>代表点云i和点云j的对。然后,一对点云之间的点可以被定义为:其中xk是来自LIDAR点云索引i的点,xl是来自LIDAR点云索引j的点,其中/>表示来自点云对中的具有索引i和j的对的一对点。通过每个点云的输入位置,来测量该点对/>所述输入位置通常来自但不限于GPS信号。然后,基于上述内容的ICP算法的光束平差(BA)方程将被优化如下:
其中是在点xk处的范数向量。
上述方程式(P)可以通过诸如莱文贝格-马夸特(LM)算法的优化算法求解,然而,其复杂度约为O(m^3),其中m是框架对的数量。LM算法用于通过找到局部最小值,对非线性最小二乘曲线拟合问题求解。在一个实施例中,方程式(P)可以被细分为一个或多个子问题,并且将优化算法(诸如ADMM算法)分离地应用于这些子问题以对其求解。在一个实施例中,使用节点集群的计算节点,并行地求解这些子问题。例如,对于给定框架对用于第m个框架对的第i个点云的位姿变换矩阵是/>其中上角标表示框架对m的子集的索引,以及下角标表示点云集合Ρ中的点云i的索引。然后,基于并行流水线的光束平差方程将被优化如下:
其中以及/>
在本示例中,优化算法可以由节点集群的一个或多个节点处理,例如,每个节点处理一个框架对。在一个实施例中,可以基于与框架对对应的时间戳确定框架对是否相关,例如,具有连续的时间戳或在时间阈值内的框架对可以是相关的框架对。在另一实施例中,可以基于环路闭合信息确定相关的框架对。例如,具有分离的时间戳但与相同或相似的位置重合的两个框架可以是相关的框架(例如,环路闭合)。在这种情况下,用于两个框架的点云应该基本上相似或匹配。一旦为每个分区对准或配准了位姿,可通过过程704将这些分区合并在一起。
在一个实施例中,位姿图对准过程704可基于诸如同时定位与建图(SLAM)算法等位姿图对准算法,将单独的分区合并为更大的地图分区。在一个实施例中,用于并排分区的重叠的区域被耦接在一起,使得对于重叠的区域仅需要一个输出集合,例如,如果重叠的区域是两个区域共用的路线,则仅需要一个重叠路线集合。
在一个实施例中,位姿调整过程705可以将位姿进一步细化或调整到UTM坐标系。例如,先前,将一个位姿假定为参考位姿,用于对准其他位姿和点云。过程705可应用最终位姿调整,以减少用于建图到UTM坐标系的总误差。例如,过程705可通过比较在应用优化算法之前和之后的对应位姿,分析输入LIDAR位姿的GPS置信度级别。被识别为具有最大置信度的位姿(或多个位姿),例如所接收到的位姿和所计算的HD位姿之间的改变低于阈值的位姿(或多个位姿),被保留用于位姿调整。然后,基于所识别的位姿,对所有位姿应用刚体变换。刚体变换是一种保留待变换的对象的形状和尺寸的变换。这里,旋转或反射变换是刚体变换,而缩放不是刚体变换。最后,使用经调整的位姿的点云生成高清(HD)3D点云地图。在一个实施例中,3D点云地图可以被变换为具有自顶向下视图的2D定位地图。
如上所述,为了降低计算复杂度,可以将地图的框架对的点云配准划分为更小的分区或子地图。每个分区或子地图可包括较少数量的框架对。可以在节点集群的计算节点上并行运行区域性ICP算法,来实现用于分区或子地图的点云配准。为了减少区域性ICP算法对计算节点的存储资源的依赖性,诸如框架对的点云的对准的准确性以及所构建的地图的结果准确性,公开了一种用于区域性ICP算法的划分地图或子地图的方法。
图8是示出根据一个实施例的用于与框架对尺寸相关地将光束平差方程式分离为K个群集的方法的示例的流程图。方法800可以由处理逻辑执行,处理逻辑可包括软件、硬件或其组合。例如,方法800可以由自动车辆的地图生成引擎执行,诸如服务器103的HD地图生成引擎125。
在操作801处,方法800可确定决策变量的框架对尺寸,诸如待构建的HD地图的区域的一个或多个相关LIDAR位姿对的框架对尺寸。在一个实施例中,框架对尺寸可以是LIDAR位姿对之间的几何距离。包含框架对的区域可以是子地图或HD地图的分区,或者可以是HD地图的整体。
在操作803,方法800将框架对的框架对尺寸与阈值进行比较。在一个实施例中,阈值可以是计算节点的存储大小的函数。在一个实施例中,计算节点的存储大小可以小于128Gb。如果框架对的框架对尺寸小于阈值,则在操作805处,方法800通过使用LM算法求解区域的光束平差方程(诸如方程式1的光束平差方程(P)),来直接实现ICP算法。
如果框架对尺寸大于或等于阈值,则在操作807处,方法800将区域或框架对数量划分为K个集群。在一个实施例中,方法800可将方程式1的光束平差方程式(P)分离为K个子问题,在一个实施例中,在每个集群内部,框架对的框架对尺寸小于阈值。
在操作809处,方法800分离地求解针对K个集群的光束平差方程式,K个子问题,然后,针对K个集群优化的光束平差方程式是:
其中,Pi是K个集群中的一个,框架对子集被定义用于/>或者因此,/>的尺寸小于/>
在一个实施例中,在集群内部,ICP算法聚焦于决策变量的部分子集,并假定剩余的决策变量是固定的。例如,如果框架对的一个LIDAR位姿,比如/>是在集群内部,并且框架对/>的另一LIDAR位姿,比如/>是在集群外部,则当通过使用LM算法求解光束平差(Pi)方程式实现ICP算法时,该方法将集群外部的LIDAR位姿/>作为常数处理。方法800分离地求解针对每个集群的光束平差(Pi)方程式,并分离地更新针对每个集群的解。效果是解的收敛沿着解空间中的某一方向降低梯度,而不是允许在所有方向上降低。这种方法被称为坐标梯度法,它减少了每次计算梯度时的优化变量的数量,并减少了计算集群的计算节点的存储资源。结果是点云的密度的增加和3D HD地图的分辨率的增加。
在操作811,方法800确定针对这些集群的光束平差方程式的解是否收敛。如果解收敛,则找到了针对该区域的点云配准的解。否则,如果解不收敛,则方法800可以返回到操作801,以使用来自当前迭代的解,迭代地重新计算不同的LIDAR位姿对的框架对尺寸,使用不同的度量以计算决策变量的框架对尺寸,或者改变阈值。在一个实施例中,阈值可以是计算节点的存储资源与方法效率之间的折衷。例如,较小的阈值可以生成较大数量的集群,从而减少计算节点中的存储量,但是由于每个集群的解空间较小,在解的收敛期间可能存在拼接效应(stitching effect)和效率降低。
图9是示出根据一个实施例的坐标梯度方法的示例的流程图,该方法用于与框架对尺寸相关地将用于ICP的区域分离为K个集群,并分离地求解针对每个集群的ICP。方法900可以由处理逻辑执行,处理逻辑可包括软件、硬件或其组合。例如,方法900可以由自动驾驶车辆的地图生成引擎执行,诸如服务器103的HD地图生成引擎125。
在操作901处,方法900从ADV的LIDAR传感器接收区域的点云和对应位姿。该LIDAR位姿可以是当LIDAR传感器捕获到区域的对应点云时ADV的LIDAR传感器的位置和方向。
在操作902处,方法900确定用于点云配准的用于区域性ICP的区域的一个或多个相关LIDAR位姿对的框架对尺寸。在一个实施例中,框架对尺寸可以是一对LIDAR位姿之间的几何距离。
在操作903处,方法900将一个或多个框架对的框架对尺寸与阈值进行比较。在操作905处,如果框架对尺寸小于阈值,则方法900在区域中实施ICP算法。在一个实施例中,ICP算法使用LM算法求解区域的光束平差方程式,例如方程式1的光束平差方程式(P),以对区域中的点云进行配准。否则,如果框架对尺寸大于或等于阈值,则方法900在操作907处将区域分离为K个集群。在一个实施例中,在每个集群内部,框架对的框架对尺寸小于阈值。
在操作909处,方法900在区域的K个集群中的每一个中实施ICP算法。在一个实施例中,方法900使用LM算法分离地求解针对K个集群的光束平差方程,诸如方程式3的光束平差方程(Pi),以对K个集群中的点云进行配准。方法900分离地更新K个集群中的每一个中的ICP算法的解。
在操作911处,方法900将针对区域的K个集群的ICP算法的解合并。在一个实施例中,该方法可在操作913处检查经合并的解是否收敛。例如,如果点云在初始值与解之间的平移改变太大,则可以确定解不收敛。如果解不收敛,则可通过操作907,迭代地重新评估来自K个集群的解,以将所述解分离到不同的集群中,用于在操作909中在每个集群中运行ICP算法。在一个实施例中,操作907和909可以迭代地运行,直到超过迭代的最大数量或者直到解收敛。在一个实施例中,方法900使用位姿图算法以合并来自K个集群的结果。经合并的结果合并了用于感知ADV周围的驾驶环境的点云。
数据处理系统可以执行上述过程或方法中的任一个,诸如,例如网络攻击或欺骗检测方法。数据处理系统可包括许多不同的组件。这些组件可以被实现为集成电路(IC)、其部分、离散电子设备、或适用于诸如计算机系统的主板或内插式卡的电路板的其它模块、或被实现为以其它方式并入计算机系统的机箱内的组件。
数据处理系统可包括一个或多个处理器、一个或多个存储器以及经由总线连接的设备。处理器可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(CPU)等。更特别地,处理器可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理器还可以是一个或多个专用处理器,诸如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其它类型的逻辑。处理器可以被配置为执行存储在存储器中的指令,用于执行本文讨论的操作和步骤。
本文所述的处理模块/单元/逻辑、组件和其它特征可以被实现为离散硬件组件,或者被集成在诸如ASIC、FPGA、DSP或类似设备之类的硬件组件的功能中。另外,处理模块/单元/逻辑可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑可以以硬件设备和软件组件的任何组合实现。
已经关于对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的那些操作。
然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的类似地表示为物理量的其它数据。
本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非瞬态计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。
在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。
本公开的实施例不是参考任何特别编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本公开的实施例的教示。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

Claims (16)

1.一种用于自动驾驶车辆ADV的用于配准点云的方法,所述方法包括:
确定待建图区域的多个点云的多个位姿的一个或多个相关位姿对的框架对尺寸;
响应于所述框架对尺寸大于阈值,将包含所述多个点云和对应位姿的区域分离为多个集群;
将第一优化模型分离地应用于与所述多个集群对应的多个点云以配准所述点云;
合并来自所述多个集群的经配准的点云,以感知所述ADV周围的区域的驾驶环境;以及
重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛。
2.如权利要求1所述的方法,还包括响应于所述框架对尺寸被确定为小于或等于所述阈值,将第二优化模型应用于所述区域的所述多个点云。
3.如权利要求1所述的方法,其中所述区域的所述多个位姿的相关对的所述框架对尺寸包括所述相关对之间的几何距离。
4.如权利要求1所述的方法,其中将第一优化模型分离地应用于与所述多个集群对应的所述多个点云包括,通过聚焦于所述多个集群中的一个集群中的多个决策变量的部分子集、并固定除了所述部分子集之外的决策变量,对所述一个集群的迭代最近点ICP模型的光束平差方程进行求解。
5. 如权利要求4所述的方法,其中通过聚焦于所述多个集群中的一个集群中的多个决策变量的部分子集、并固定除了所述部分子集之外的决策变量,对所述一个集群的ICP模型的光束平差方程进行求解包括:
确定所述一个集群中的所述多个位姿的一个位姿对中的一个位姿是否在所述一个集群之外;以及
响应于所述一个位姿对中的所述一个位姿被确定为在所述一个集群之外,当对所述一个集群的所述光束平差方程进行求解时,将所述一个位姿对中的所述一个位姿作为常数处理。
6. 如权利要求1所述的方法,其中重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛包括:
确定来自所述多个集群的所述经配准的点云是否收敛;以及
响应于来自所述多个集群的所述经配准的点云被确定为不收敛,迭代地将包含来自所述多个集群的所述经配准的点云的所述区域分离为第二多个集群,以及将所述第一优化模型分离地应用于与所述第二多个集群对应的所述多个点云以配准所述点云,直到来自所述第二多个集群的经配准的点云收敛。
7.如权利要求1所述的方法,其中合并来自所述多个集群的所述经配准的点云包括使用位姿图算法进行合并。
8.一种用于自动驾驶车辆ADV的用于配准点云的计算机实现的装置包括:
点云接收器模块,用于接收来自自动驾驶车辆的点云和对应位姿;
划分模块,确定待建图区域的多个点云的多个位姿的一个或多个相关位姿对的框架对尺寸,并且响应于所述框架对尺寸大于阈值,将包含所述多个点云和对应位姿的区域分离为多个集群;
优化求解器模块,用于将第一优化模型分离地应用于与所述多个集群对应的多个点云以配准所述点云;以及
合并模块,用于合并来自所述多个集群的经配准的点云,以感知所述ADV周围的区域的驾驶环境,
其中,所述划分模块重复地将来自所述多个集群的所述经配准的点云分离为额外的多个集群,以及所述优化求解器模块重复地将所述第一优化模型应用于与所述额外的多个集群对应的多个点云,直到所述经配准的点云收敛。
9.如权利要求8所述的装置,其中所述优化求解器模块还用于响应于所述框架对尺寸被确定为小于或等于所述阈值,将第二优化模型应用于所述区域的所述多个点云。
10.如权利要求8所述的装置,其中所述区域的所述多个位姿的相关对的所述框架对尺寸包括所述相关对之间的几何距离。
11.如权利要求8所述的装置,其中所述优化求解器模块还用于通过聚焦于所述多个集群中的一个集群中的多个决策变量的部分子集、并固定除了所述部分子集之外的决策变量,对所述一个集群的迭代最近点ICP模型的光束平差方程进行求解。
12. 如权利要求11所述的装置,其中所述优化求解器模块还用于:
确定所述一个集群中的所述多个位姿中的一个位姿对中的一个位姿是否在所述一个集群之外;以及
响应于所述一个位姿对中的所述一个位姿被确定为在所述一个集群之外,当对所述一个集群的所述光束平差方程进行求解时,将所述一个位姿对中的所述一个位姿作为常数处理。
13. 如权利要求8所述的装置,其中:
所述合并模块还用于确定来自所述多个集群的所述经配准的点云是否收敛;以及
所述划分模块还用于响应于来自所述多个集群的所述经配准的点云被确定为不收敛,迭代地将包括来自所述多个集群的所述经配准的点云的所述区域分离为第二多个集群;以及
所述优化求解器模块将所述第一优化模型分离地应用于与所述第二多个集群对应的所述多个点云以配准所述点云,直到来自所述第二多个集群的经配准的点云收敛。
14. 一种数据处理系统,包括:
处理器;以及
存储器,耦接到所述处理器以存储指令,所述指令在由所述处理器执行时使得所述处理器执行如权利要求1-7中任一项所述的用于自动驾驶车辆ADV的用于配准点云的方法。
15.一种具有存储在其中的指令的非暂时性机器可读介质,所述指令在由处理器执行时使得所述处理器执行如权利要求1-7中任一项所述的用于自动驾驶车辆ADV的用于配准点云的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的用于自动驾驶车辆ADV的用于配准点云的方法。
CN202011255393.2A 2019-11-22 2020-11-11 用于自动驾驶车辆的用于配准点云的方法和装置 Active CN112540593B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/692,960 US11688082B2 (en) 2019-11-22 2019-11-22 Coordinate gradient method for point cloud registration for autonomous vehicles
US16/692,960 2019-11-22

Publications (2)

Publication Number Publication Date
CN112540593A CN112540593A (zh) 2021-03-23
CN112540593B true CN112540593B (zh) 2023-11-17

Family

ID=75015005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011255393.2A Active CN112540593B (zh) 2019-11-22 2020-11-11 用于自动驾驶车辆的用于配准点云的方法和装置

Country Status (2)

Country Link
US (1) US11688082B2 (zh)
CN (1) CN112540593B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200379966A1 (en) * 2019-05-29 2020-12-03 EMC IP Holding Company LLC Method and system for implementing a decentralized storage pool for autonomous vehicle navigation guidance information
SG10201913873QA (en) * 2019-12-30 2021-07-29 Singpilot Pte Ltd Sequential Mapping And Localization (SMAL) For Navigation
US11238643B1 (en) * 2020-12-16 2022-02-01 Pony Ai Inc. High-definition city mapping
CN117011447A (zh) * 2022-04-28 2023-11-07 北京初速度科技有限公司 一种点云数据的分层方法、装置、设备、介质及车辆
CN117456612B (zh) * 2023-12-26 2024-03-12 西安龙南铭科技有限公司 基于云计算的形体姿态自动评估方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140014596A (ko) * 2012-07-25 2014-02-06 연세대학교 산학협력단 지상 라이다에서 취득된 포인트 클라우드 기반의 실내공간 3차원 모델 추출 방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
CN107886529A (zh) * 2017-12-06 2018-04-06 重庆理工大学 一种用于三维重建的点云配准方法
CN108564605A (zh) * 2018-04-09 2018-09-21 大连理工大学 一种三维测量点云优化配准方法
CN108986149A (zh) * 2018-07-16 2018-12-11 武汉惟景三维科技有限公司 一种基于自适应阈值的点云精确配准方法
CN109993839A (zh) * 2019-04-09 2019-07-09 北京大学深圳研究生院 一种自适应的点云条带划分方法
CN110211129A (zh) * 2019-05-17 2019-09-06 西安财经学院 基于区域分割的低覆盖点云配准算法
CN110363849A (zh) * 2018-04-11 2019-10-22 株式会社日立制作所 一种室内三维建模方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160379366A1 (en) * 2015-06-25 2016-12-29 Microsoft Technology Licensing, Llc Aligning 3d point clouds using loop closures
US9612123B1 (en) * 2015-11-04 2017-04-04 Zoox, Inc. Adaptive mapping to navigate autonomous vehicles responsive to physical environment changes
US20170206434A1 (en) * 2016-01-14 2017-07-20 Ford Global Technologies, Llc Low- and high-fidelity classifiers applied to road-scene images
WO2018125938A1 (en) * 2016-12-30 2018-07-05 DeepMap Inc. Enrichment of point cloud data for high-definition maps for autonomous vehicles
WO2019099802A1 (en) * 2017-11-17 2019-05-23 DeepMap Inc. Iterative closest point process based on lidar with integrated motion estimation for high definitions maps
EP3807836A4 (en) * 2018-06-15 2022-01-26 Bayerische Motoren Werke Aktiengesellschaft INCREMENTAL POINT CLOUD SEGMENTATION

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140014596A (ko) * 2012-07-25 2014-02-06 연세대학교 산학협력단 지상 라이다에서 취득된 포인트 클라우드 기반의 실내공간 3차원 모델 추출 방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
CN107886529A (zh) * 2017-12-06 2018-04-06 重庆理工大学 一种用于三维重建的点云配准方法
CN108564605A (zh) * 2018-04-09 2018-09-21 大连理工大学 一种三维测量点云优化配准方法
CN110363849A (zh) * 2018-04-11 2019-10-22 株式会社日立制作所 一种室内三维建模方法及系统
CN108986149A (zh) * 2018-07-16 2018-12-11 武汉惟景三维科技有限公司 一种基于自适应阈值的点云精确配准方法
CN109993839A (zh) * 2019-04-09 2019-07-09 北京大学深圳研究生院 一种自适应的点云条带划分方法
CN110211129A (zh) * 2019-05-17 2019-09-06 西安财经学院 基于区域分割的低覆盖点云配准算法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A 3D Sequential LiDAR Data Registration Method for Unmanned Ground Vehicle;Chao Chen;Applied Mechanics and Materials;第365-371页 *
Evaluation of the Convergence Region of an Automated Registration Method for 3D Laser Scanner Point Clouds:web of science;Kwang-Ho Bae;sensors;第355-375页 *
Point setaugmentationthroughfittingforenhancedICPregistration of pointcloudsinmultisensorcoordinatemetrology;N. Senin;Robotics andComputer-IntegratedManufacturing;第39-52页 *
SLAM 激光点云整体精配准位姿图技术;闫利 等;测绘学报;第313-321页 *
基于特征的点云精确配准算法;许斌;李忠科;吕培军;孙玉春;王勇;;计算机应用与软件(11);第112-114、122页 *
基于粒子群算法的三维扫描点云数据在机配准;王永青;冀志超;侯博;赵亮;;组合机床与自动化加工技术(第12期);第23-26页 *

Also Published As

Publication number Publication date
CN112540593A (zh) 2021-03-23
US20210158547A1 (en) 2021-05-27
US11688082B2 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
CN112539755B (zh) 用于自主车辆的基于admm算法的更新点云配准管线
CN113128326B (zh) 具有语义地图和lstm的车辆轨迹预测模型
CN112540593B (zh) 用于自动驾驶车辆的用于配准点云的方法和装置
CN112149487B (zh) 一种用于自动驾驶的用于训练神经网络对象检测模型的用于确定锚框的方法
CN111771206A (zh) 用于自动驾驶车辆的地图分区系统
CN114026463B (zh) 基于部分点云的行人速度估计方法
US11485360B2 (en) Dynamic speed limit adjustment system based on perception results
US11815891B2 (en) End dynamics and constraints relaxation algorithm on optimizing an open space trajectory
US11567506B2 (en) Speed planning guidance line for mild slow down
CN113496189B (zh) 基于静态障碍物地图的感知方法及系统
EP3825958B1 (en) A new way to generate tight 2d bounding boxes for autonomous driving labeling
CN113821022B (zh) 基于相对速度的缓冲区的速度规划
CN113525406A (zh) 用于车辆运动控制器的基于贝叶斯全局优化的参数调谐
CN113753070B (zh) 自动车辆的锁定行人检测与预测
EP4141482A1 (en) Systems and methods for validating camera calibration in real-time
CN113075924B (zh) 自动驾驶车辆停放场景设计
CN113064143A (zh) 用于具有多LiDAR传感器的自动驾驶车辆的再校准确定系统
US12123984B2 (en) Point clouds based lidar recalibration system for autonomous vehicles
CN112837209B (zh) 对鱼眼镜头生成具有畸变的图像的新方法
CN112601869B (zh) 操作自主驾驶车辆的方法、机器可读介质及数据处理系统
WO2024036618A1 (en) Dynamic signal transfer configuration for driverless vehicle remote monitoring
US20240025442A1 (en) Trajectory planning in autonomous driving vehicles for unforeseen scenarios

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
GR01 Patent grant
GR01 Patent grant