CN115540888A - 导航最优路径的方法、存储介质和运载工具 - Google Patents

导航最优路径的方法、存储介质和运载工具 Download PDF

Info

Publication number
CN115540888A
CN115540888A CN202111370876.1A CN202111370876A CN115540888A CN 115540888 A CN115540888 A CN 115540888A CN 202111370876 A CN202111370876 A CN 202111370876A CN 115540888 A CN115540888 A CN 115540888A
Authority
CN
China
Prior art keywords
slice
vertex
interest
vehicle
super
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
Application number
CN202111370876.1A
Other languages
English (en)
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.)
Motional AD LLC
Original Assignee
Motional AD 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 Motional AD LLC filed Critical Motional AD LLC
Publication of CN115540888A publication Critical patent/CN115540888A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • 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/20Instruments for performing navigational calculations
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3415Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3632Guidance using simplified or iconic instructions, e.g. using arrows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/166Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes
    • 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/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • G06T2207/10044Radar image
    • 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
    • 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
    • G06T2207/30256Lane; Road marking
    • 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
    • G06T2207/30261Obstacle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Traffic Control Systems (AREA)
  • Operations Research (AREA)

Abstract

本发明涉及用于导航最优路径的方法、存储介质和运载工具。其中,描述了通过经由单元分解连接C片来生成无碰撞路径的技术。在运载工具的离散的航向处对环境进行采样,以生成具有一个或多个C片的配置空间(C空间)。将第一C片分解成一个或多个表示自由空间的单元。生成针对第一C片的C片邻接列表。导出将连接跨一个或多个C片的关注顶点的超级邻接列表,以形成超级邻接图。在实施例中,杜宾斯路径用于连接C片内和跨C片两者的关注顶点,以确保所有搜索的路径的运动学可行性。导航最优路径,其中最优路径是超级邻接图上从开始姿态到目标姿态的最短路径。

Description

导航最优路径的方法、存储介质和运载工具
技术领域
本说明书涉及通过经由单元分解连接C片进行的无碰撞路径生成。
背景技术
运载工具从初始地点到最终目的地的导航通常需要运载工具的决策制定***选择从初始地点到所请求的最终目的地的路径。各种对象可以位于初始地点和最终目的地之间。用具有多个顶点和边的图表示可能的路径,并且运载工具的决策制定***根据任意数量的约束选择路径。对象影响可能路径的地点。无碰撞路径是避开跨对象的或对象附近的顶点和边的路径。在图包含大量的顶点和边的情况下,规划路径既耗时又耗费计算资源。
发明内容
用于导航最优路径的方法,包括:由感知电路对运载工具的离散航向处的环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且所述运载工具和所检测对象由凸多边形表示;由处理器将所述第一C片分解为表示自由空间的一个或多个单元;由所述处理器生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;由所述处理器导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及由规划电路导航最优路径,其中,所述最优路径是所述超级邻接图上从开始姿态到目标姿态的最短路径。
非暂时性计算机可读存储介质,包括用于由第一装置的至少一个处理器执行的至少一个程序,所述至少一个程序包括指令,所述指令在由所述至少一个处理器执行时进行包括以下的方法:对运载工具的离散航向处的环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且所述运载工具和所检测对象由凸多边形表示;将所述第一C片分解成表示自由空间的一个或多个单元;生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及导航最优路径,其中,所述最优路径是所述超级邻接图上从开始姿态到目标姿态的最短路径。
运载工具,包括:至少一个传感器,其被配置为检测环境中的对象的姿态和几何形状,其中,所述运载工具的开始姿态和结束姿态被指定;至少一个计算机可读介质,其存储有计算机可执行的指令;至少一个处理器,其通信地耦接到所述至少一个传感器并且被配置为执行所述计算机可执行的指令,所述执行进行包括以下的操作:在所述运载工具的离散航向处对所述环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且其中所述运载工具和所述对象由凸多边形表示;将所述第一C片分解成表示自由空间的一个或多个单元;生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及控制电路通信地耦接到所述至少一个处理器,其中,所述控制电路被配置为基于所述超级邻接图操作所述运载工具从所述开始姿态到所述结束姿态。
附图说明
图1示出了具有自主能力的自主运载工具(AV)的示例。
图2示出了示例“云”计算环境。
图3示出了计算机***。
图4示出了AV的示例架构。
图5示出了可由感知***使用的输入和输出示例。
图6示出了LiDAR***的示例。
图7示出了操作中的LiDAR***。
图8更详细地示出了LiDAR***的操作。
图9示出了规划***输入和输出之间的关系的框图。
图10示出了路径规划中使用的有向图。
图11示出了控制***输入和输出的框图。
图12示出了控制器的输入、输出和组件的框图。
图13A是运载工具在碰撞路径上的图示。
图13B是运载工具导航无碰撞路径的图示。
图14是使得能够实现快速无碰撞路径生成的处理的处理流程图。
图15是使得能够实现单元分解和顶点连接的处理的流程图。
图16是具有一组C片的C空间的图示。
图17A是通过梯形分解进行后处理的C片的图示。
图17B是具有自适应关注顶点***的C片的图示。
图18A是使用蛮力(brute force)连接策略的超级邻接图的图示。
图18B是使用球之外的蛮力连接策略的超级邻接图的图示。
图18C是使用相邻单元、蛮力相邻片连接策略的超级邻接图的图示。
图18D是使用相邻单元、蛮力片间连接策略的超级邻接图的图示。
图18E是使用网格状连接策略的超级邻接图的图示。
图19是通过经由单元分解连接C片来使得能够实现快速无碰撞路径生成的处理流程图。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、***、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要该要素,也不意在意味着由该要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
此外,在附图中,诸如实线或虚线或箭头等的连接要素用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任意这样的连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这样的要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。
现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任意组合一起使用。然而,任意个别特征可能不能应对以上所讨论的任意问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任意一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
1.概述
2.***概述
3.AV架构
4.AV输入
5.路径规划
6.AV控制
7.避障
8.C空间生成和单元分解
9.图生成和搜索
10.通过经由单元分解连接C片来生成无碰撞路径
一般概述
运载工具可以从开始姿态到结束姿态独立地导航而穿过环境。为了成功地导航穿过环境,环境被表示为具有任意数量的对象的配置空间(C空间),该对象由C空间内的C障碍物表示。C空间为三维空间,由纬度(例如,x)、经度(例如,y)和航向(例如,θ)参数化。运载工具和对象由C空间内的凸多边形表示。各个离散的航向(heading)与C空间的片(C片)相对应。在各个C片上进行单元分解,并且通过至少部分地基于C障碍物类型在自由单元边界处策略性地***顶点来生成关注顶点,以获得C片邻接列表。从一组C片邻接列表
导出超级邻接列表。根据转换检测技术和碰撞检测技术,通过连接C片邻接
列表内的关注顶点和跨C片的关注顶点,导出针对C空间的超级邻接图。
这些技术的一些优点包括在相对较短的计算时间内找到可行路径的高成功率。与在更高阶空间中的运载工具和对象表示相比,将航向离散化使得能够将运载工具和对象表示为凸多边形,这使得最终能够以降低的计算复杂度进行单元分解。此外,与其它算法相比,所导出的邻接列表需要更少的顶点来生成许多对象之间的无碰撞路径,并且经由本技术计算出的路径在曲率累积方面更平滑。
***概述
图1示出了具有自主能力的AV 100的示例。
如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全AV、高度AV和有条件AV。
如本文所使用的,自主运载工具(AV)是一种具有自主能力的运载工具。
如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车就是运载工具的示例。
如本文所使用的,“轨迹”是指将AV从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的路段)组成,各个路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可以包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如RAM和/或非易失性存储器),软件或固件组件和数据处理组件,诸如ASIC(专用集成电路)、微处理器和/或微控制器。
如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由AV运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由AV外部的源提供的一个或多个分类或标记的对象。
如本文所使用的,“道路”是可由运载工具穿越的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等),或者可对应于未命名的通道(例如,房屋或办公楼中的行车道、停车场的一段、空置停车场的一段、农村区域的污物路径等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(SUV)等)能够穿越各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任意市政当局或其它政府或行政机构没有正式定义为一个通道的物理区域。
如本文所使用的,“车道”是道路的可被运载工具穿越的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或可以仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能在标记之间容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿越车道标记的情况下超过另一运载工具,因此可被解释为车道比车道标记之间的空间窄,或在车道标记之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着通道的树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,AV可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,AV可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,AV可以将与车道有关的信息通信至其它AV,使得其它AV可以使用相同的车道信息来协调AV之间的路径规划。
术语“空中下载(OTA)客户端”包括任意AV,或者嵌入在AV中、耦接至AV或与AV通信的任意电子装置(例如,计算机、控制器、IoT装置、电子控制单元(ECU))。
术语“空中下载(OTA)更新”意味着对使用专有和/或标准化无线通信技术递送至OTA客户端的软件、固件、数据或配置设置或其任意组合的任意更新、改变、删除或添加,其中该专有和/或标准化的无线通信技术包括但不限于:蜂窝移动通信(例如,2G、3G、4G、5G)、无线局域网(例如,WiFi)和/或卫星因特网。
术语“边缘节点”意味着耦接到网络的一个或多个边缘装置,该装置提供与AV进行通信所用的门户,并可与其它边缘节点和基于云的计算平台进行通信,以调度OTA更新并将OTA更新递送至OTA客户端。
术语“边缘装置”意味着实现边缘节点并提供向企业或服务提供商(如VERIZON、AT&T)核心网的物理无线接入点(AP)的装置。边缘装置的示例包括但不限于:计算机、控制器、发送器、路由器、路由交换机、综合接入装置(IAD)、多路复用器、城域网(MAN)和广域网(WAN)接入装置。
“一个或多个”包括由一个要素进行的功能、由多个要素例如以分布式的方式进行的功能、由一个要素进行的若干功能、由若干要素进行的若干功能或上述任意组合。
还应理解,尽管在一些情况下,本文使用术语第一、第二等来描述各种要素,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素和另一要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可以称为第二触点,并且类似地,第二触点可以称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同的触点。
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任意和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
如本文所使用的,AV***是指AV以及支持AV操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,AV***并入在AV内。在实施例中,AV***跨若干地点分布。例如,AV***的一些软件是在类似于下面关于图2描述的云计算环境200的云计算环境中实现的。
一般而言,本文件描述了适用于任意具有一种或多种自主能力的运载工具的技术,包括完全AV、高度AV和有条件AV,诸如分别为所谓的第5级、第4级和第3级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶***相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分AV和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶***相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具***可基于对传感器输入的处理,在某些操作条件下自动进行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全AV到人类操作的运载工具范围内的任意级别的运载工具受益。
AV与需要人类驾驶员的运载工具相比存在优势。一个优势是安全性。例如,在2016年,美国经历了600万起汽车事故、240万人受伤、40000人死亡和1300万辆运载工具碰撞事故,估计社会成本为9100亿美元多。从1965年到2015年,每行驶1亿英里的美国交通事故死亡人数已从约6人减少到约1人,部分是由于运载工具中所部署的附加安全措施。例如,认为与将发生碰撞有关的额外半秒的警告减轻了60%的前后碰撞。然而,被动安全特征(例如,安全带、安全气囊)在改进该数字方面有可能已达到它们的极限。因而,诸如运载工具的自动控制等的主动安全措施是改进这些统计数据的可能的下一步。由于在95%的碰撞中认为人类驾驶员是造成严重碰撞前事件的原因,因此自动驾驶***例如通过以下操作,有可能实现更好的安全结果:比人类更好地可靠地识别和避免紧急情况;做出比人类更好的决策,比人类更好地遵守交通法规,并且比人类更好地预测将来事件;并且比人类更好地可靠地控制运载工具。
参考图1,AV***120使运载工具100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
在实施例中,AV***120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。使用术语“操作命令”来表示使得运载工具进行动作(例如,驾驶机动动作)的可执行指令(或指令集)。操作命令可以非限制性地包括用于使运载工具开始向前移动、停止向前移动、开始向后移动、停止向后移动、加速、减速、进行左转和进行右转的指令。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
在实施例中,AV***120包括用于测量或推断运载工具100的状态或条件的属性的传感器121,属性诸如是AV的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,运载工具100的前端的方位)。传感器121的示例是GPS、测量运载工具线加速度和角速率两者的惯性测量单元(IMU)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
在实施例中,传感器121还包括用于感测或测量AV的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,LiDAR 123,RADAR,超声波传感器,飞行时间(TOF)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
在实施例中,AV***120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图3描述的ROM 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到运载工具100。
在实施例中,AV***120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性通信到运载工具100。这些装置包括运载工具到运载工具(V2V)和运载工具到基础设施(V2I)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(V2V)、运载工具对基础设施(V2I)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(V2X)通信。V2X通信通常符合一个或多个通信标准,用于与AV进行的、在AV之间进行的和在AV之间进行的通信。
在实施例中,通信装置140包括通信接口。例如,有线、无线、WiMAX、Wi-Fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到AV***120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信装置140将从传感器121收集的数据或与运载工具100操作有关的其它数据传输到远程数据库134。在实施例中,通信装置140向运载工具100传输与遥操作有关的信息。在一些实施例中,运载工具100与其它远程(例如,“云”)服务器136通信。
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这样的数据存储在运载工具100上的存储器144中,或者经由通信信道从远程数据库134传输到运载工具100。
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在运载工具100上的存储器144中,或者经由通信信道从远程数据库134传输到运载工具100。
位于运载工具100上的计算机处理器146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许AV***120执行其自主驾驶能力。
在实施例中,AV***120包括耦接到计算机处理器146的计算机***设备132,用于向运载工具100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,***设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。
在实施例中,AV***120接收并强制进行例如由乘员指定的或者存储在与乘员相关联的简档中的乘员的隐私级别。乘员的隐私级别确定了如何许可使用存储在乘员简档中的以及/或者存储在云服务器136上且与乘员简档相关联的、与乘员相关联的特定信息(例如,乘员舒适度数据、生物测量数据等)。在实施例中,隐私级别指定了一旦搭乘完成则被删除的与乘员相关联的特定信息。在实施例中,隐私级别指定了与乘员相关联的特定信息,并且标识被授权访问该信息的一个或多个实体。被授权访问信息的所指定的实体的示例可以包括其它AV、第三方AV***、或者可以潜在地访问该信息的任意实体。
可以在一个或多个粒度级别指定乘员的隐私级别。在实施例中,隐私级别标识要存储或共享的特定信息。在实施例中,隐私级别适用于与乘员相关联的所有信息,使得乘员可以指定不存储或共享她的个人信息。被许可访问特定信息的实体的指定也可以在各种粒度级别指定。被许可访问特定信息的各种实体集例如可以包括其它AV、云服务器136、特定第三方AV***等。
在实施例中,AV***120或云服务器136确定AV 100或另一实体是否可访问与乘员相关联的某些信息。例如,试图访问与特定时空地点有关的乘员输入的第三方AV***必须例如从AV***120或云服务器136获得授权,以访问与乘员相关联的信息。例如,AV***120使用乘员的指定隐私级别来确定是否可以将与时空地点有关的乘员输入呈现给第三方AV***、AV 100或另一AV。这使得乘员的隐私级别能够指定允许哪些其它实体接收与乘员的动作有关的数据或与乘员相关联的其它数据。
图2示出示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池。在典型的云计算***中,一个或多个大型云数据中心容纳用于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机***206a、206b、206c、206d、206e和206f提供云计算服务。
云计算环境200包括一个或多个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,并且每行包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)被排列成若干组。在实施例中,服务器节点类似于图3中描述的计算机***。数据中心204a具有分布在许多机架上的许多计算***。
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算***206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通过网络交换的数据使用多种网络层协议(诸如,因特网协议(IP)、多协议标签交换(MPLS)、异步传输模式(ATM)、帧中继(Frame Relay)等)进行传输。此外,在网络表示多个子网络的组合的实施例中,在底层子网络中的各个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示一个或多个互连网际网络(诸如公共因特网等)。
计算***206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算***206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(IoT)装置、AV(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算***206a-f在其它***中实现或作为其它***的一部分实现。
图3示出计算机***300。在实现中,计算机***300是一种专用计算装置。专用计算装置被硬连线以进行该技术,或包括诸如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的被持久编程为进行该技术的数字电子装置,或可包括一个或多个通用硬件处理器,该硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令进行该技术。这种专用的计算装置还可以将定制的硬线逻辑、ASIC或FPGA与定制的编程相结合来完成该技术。在各种实施例中,专用计算装置是台式计算机***、便携式计算机***、手持装置、网络装置或包含硬线和/或程序逻辑以实现该技术的任意其它装置。
在实施例中,计算机***300包括总线302或用于通信信息的其它通信机制、以及与总线302耦接以处理信息的处理器304。处理器304是例如通用微处理器。计算机***300还包括主存储器306,诸如随机存取存储器(RAM)或其它动态存储装置,该主存储器306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这样的指令存储在处理器304可访问的非暂时性存储介质中时,使计算机***300变成一个专用机器,该机器被定制以进行指令中指定的操作。
在实施例中,计算机***300还包括只读存储器(ROM)308或耦接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
在实施例中,计算机***300经由总线302耦接到诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、发光二极管(LED)显示器或用于向计算机用户显示信息的有机发光二极管(OLED)显示器的显示器312。包括字母数字键和其它键的输入装置314耦接到总线302,用于向处理器304通信信息和命令选择。另一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择通信到处理器304,并用于控制光标在显示器312上的移动。该输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
根据一个实施例,本文的技术由计算机***300响应于处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列而进行。这样的指令从诸如存储装置310的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304进行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
如本文所使用的术语“存储介质”是指存储数据和/或指令的任意非暂时性介质,该数据和/或指令使机器以特定方式操作。这样的存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任意其它磁数据存储介质、CD-ROM、任意其它光数据存储介质、任意具有孔型的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NV-RAM、或任意其它存储芯片或存储盒。
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。
在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器304以供执行。例如,该指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机***300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
计算机***300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口318是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(LAN)卡,用于提供与兼容LAN的数据通信连接。在一些实现中,无线链路也被实现。在任意这种实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(ISP)326运营的云数据中心或设备的连接。ISP 326又通过现在通常称为“因特网”328的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中该信号承载了进出计算机***300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
计算机***300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机***300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
AV架构
图4示出用于AV(例如,图1所示的运载工具100)的示例架构400。架构400包括感知***402(有时称为感知电路)、规划***404(有时称为规划电路)、控制***406(有时称为控制电路)、定位***408(有时称为定位电路)和数据库***410(有时称为数据库电路)。各***在运载工具100的操作中发挥作用。共同地,***402、404、406、408和410可以是图1所示的AV***120的一部分。在一些实施例中,***402、404、406、408和410中的任意***是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[ASIC]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任意或所有的组合)的组合。***402、404、406、408和410中的各个***有时被称为处理电路(例如,计算机硬件、计算机软件、或者这两者的组合)。***402、404、406、408和410中的任意或全部的组合也是处理电路的示例。
在使用中,规划***404接收表示目的地412的数据,并且确定表示运载工具100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划***404确定表示轨迹414的数据,规划***404从感知***402、定位***408和数据库***410接收数据。
感知***402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划***404。
规划***404还从定位***408接收表示AV位置418的数据。定位***408通过使用来自传感器121的数据和来自数据库***410的数据(例如,地理数据)以计算位置来确定AV位置。例如,定位***408使用来自GNSS(全球导航卫星***)传感器的数据和地理数据来计算AV的经度和纬度。在实施例中,定位***408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。在实施例中,高精度地图是通过将数据经由自动或手动注释添加到低精度地图所构建的。
控制***406接收表示轨迹414的数据和表示AV位置418的数据,并且以将使得运载工具100行驶轨迹414到达目的地412的方式来操作AV的控制功能420a~420c(例如,转向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制***406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得运载工具100左转,并且油门和制动将使得运载工具100在进行转弯之前暂停并等待经过的行人或运载工具。
AV输入
图5示出感知***402(图4)所使用的输入502a-502d(例如,图1中所示的传感器121)和输出504a-504d(例如,传感器数据)的示例。一个输入502a是LiDAR(光检测和测距)***(例如,图1所示的LiDAR 123)。LiDAR是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。LiDAR***产生LiDAR数据作为输出504a。例如,LiDAR数据是用于构造环境190的表示的3D或2D点(也称为点云)的集合。
另一输入502b是RADAR(雷达)***。RADAR是使用无线电波来获得与附近的物理对象有关的数据的技术。RADAR可以获得与不在LiDAR***的视线内的对象有关的数据。RADAR***产生RADAR数据作为输出504b。例如,RADAR数据是用于构造环境190的表示的一个或多个射频电磁信号。
另一输入502c是照相机***。照相机***使用一个或多个照相机(例如,使用诸如电荷耦接器件[CCD]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机***产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如RAW、JPEG、PNG等的图像数据格式的数据)的形式。在一些示例中,照相机***具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机***能够感知深度。尽管照相机***所感知的对象在这里被描述为“附近”,但这是相对于AV而言的。在一些实施例中,照相机***被配置为“看见”远处的(例如,AV前方的远至1公里或更远的)对象。因此,在一些实施例中,照相机***具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
另一输入502d是交通灯检测(TLD)***。TLD***使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。TLD***产生TLD数据作为输出504d。TLD数据经常采用图像数据(例如,诸如RAW、JPEG、PNG等的图像数据格式的数据)的形式。TLD***与包含照相机的***的不同之处在于:TLD***使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得运载工具100能够访问这些对象所提供的所有相关导航信息。例如,TLD***的视角为约120度或更大。
在一些实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至运载工具100的其它***(例如,提供至如图4所示的规划***404),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它***。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
图6示出LiDAR***602的示例(例如,图5所示的输入502a)。LiDAR***602从发光器606(例如,激光发射器)发射光604a-604c。LiDAR***所发射的光通常不在可见光谱中;例如,经常使用红外光。所发射的光604b中的一些光遇到物理对象608(例如,运载工具)并且反射回到LiDAR***602。(从LiDAR***发射的光通常不会穿透物理对象,例如,实心形式的物理对象。)LiDAR***602还具有用于检测反射光的一个或多个光检测器610。在实施例中,与LiDAR***相关联的一个或多个数据处理***生成表示LiDAR***的视场614的图像612。图像612包括表示物理对象608的边界616的信息。这样,图像612用于确定AV附近的一个或多个物理对象的边界616。
图7示出操作中的LiDAR***602。在该图所示的情境中,运载工具100接收采用图像702的形式的照相机***输出504c和采用LiDAR数据点704的形式的LiDAR***输出504a两者。在使用中,运载工具100的数据处理***将图像702与数据点704进行比较。特别地,在数据点704中也识别在图像702中识别出的物理对象706。这样,运载工具100基于数据点704的轮廓和密度来感知物理对象的边界。
图8示出LiDAR***602的操作的附加细节。如上所述,运载工具100基于LiDAR***602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将以一致的方式反射从LiDAR***602发射的光804a-804d。换句话说,由于LiDAR***602使用一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到LiDAR***602。在运载工具100在地面802上行驶时,在没有东西阻挡道路的情况下,LiDAR***602将继续检测到由下一个有效地面点806反射的光。然而,如果对象808阻挡道路,则LiDAR***602所发射的光804e-804f将以与预期一致方式不一致的方式从点810a-810b反射。根据该信息,运载工具100可以确定存在对象808。
路径规划
图9示出(例如,如图4所示的)规划***404的输入和输出之间的关系的框图900。一般而言,规划***404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目的地或最终地点)的路线902。路线902通常由一个或多个路段定义。例如,路段是指要在街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果运载工具100是诸如四轮驱动(4WD)或全轮驱动(AWD)小汽车、SUV或小卡车等的能够越野的运载工具,则路线902包括诸如未铺面路径或开阔田野等的“越野”路段。
除路线902之外,规划***还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来穿越该路段。例如,如果路线902包括多车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中运载工具100可以使用该轨迹规划数据910以例如基于出口是否临近、多个车道中的一个或多个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将运载工具100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。
在实施例中,向规划***404的输入包括(例如,来自图4所示的数据库***410的)数据库数据914、当前地点数据916(例如,图4所示的AV位置418)、(例如,用于图4所示的目的地412的)目的地数据918和对象数据920(例如,如图4所示的感知***402所感知的经分类的对象416)。在一些实施例中,数据库数据914包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在运载工具100所遇到的任意给定情形中,该规则中的至少一些规则将适用于该情形。如果规则具有基于运载工具100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
图10示出在路径规划中(例如,由规划***404(图4))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任意起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。
在实施例中,有向图1000具有表示起点1002和终点1004之间的运载工具100可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,许多英里以外)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示运载工具100的视场中的物理地点的一部分的一些高粒度信息。
节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能穿越的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示运载工具100的视场中的物理对象,例如其它汽车、行人、或运载工具100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
节点1006a-1006d通过边1010a-1010c连接。如果两个节点1006a-1006b通过边1010a连接,则运载工具100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(当提到运载工具100在节点之间行驶时,意味着运载工具100在由相应节点表示的两个物理位置之间行驶。)边1010a-1010c通常是双向的,从某种意义上,运载工具100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边1010a-1010c是单向的,从某种意义上,运载工具100可以从第一节点行驶到第二节点,然而运载工具100不能从第二节点行驶到第一节点。在边1010a-1010c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿越的其它特征的情况下,边1010a-1010c是单向的。
在实施例中,规划***404使用有向图1000来识别由起点1002和终点1004之间的节点和边组成的路径1012。
边1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在运载工具100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是第二边1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边1010a-1010b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。
在规划***404识别起点1002和终点1004之间的路径1012时,规划***404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。
AV控制
图11示出(例如,如图4所示的)控制***406的输入和输出的框图1100。控制***根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、ROM 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,该指令在(例如,由一个或多个处理器)执行时执行控制器1102的操作。
在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4所示的)规划***404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合运载工具100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合运载工具100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如AV的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出1104的角度。
在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果运载工具100遇到诸如山丘等的干扰1110,则运载工具100的测量速率1112降至低于期望输出速率。在实施例中,任意测量输出1114均被提供至控制器1102,使得例如基于测量速率和期望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和运载工具100的传感器可测量的其它输出。在实施例中,提供当前转向角1124作为测量的输出。
在实施例中,例如通过诸如照相机或LiDAR传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈***1122。然后,预测性反馈***1122将控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果运载工具100的传感器检测到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著减速。
图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器1202根据例如由控制器1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/制动器1206进行加速或进行减速。
控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反馈,来指示方向盘控制器1210调整转向角致动器1212的位置。
控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器1212的若干输入。规划***404提供控制器1102例如选择运载工具100开始操作时的航向并确定在运载工具100到达十字交叉路口时穿越哪个道路路段所使用的信息。定位***408例如将描述运载工具100的当前地点的信息提供至控制器1102,使得控制器1102可以确定运载工具100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来自其它输入1214的信息,例如从数据库、计算机网络等接收到的信息。
避障
图13A是运载工具在碰撞路径1300A上的图示。运载工具1302(例如,图1的运载工具100)可以是自主运载工具,并且被示为沿着路径1304行驶。为了便于描述,路径沿交通车道的中心绘制。然而,该路径可以沿着运载工具可以穿越的任意物理区域出现,可以对应于已命名的通道(例如,城市街道、州际高速公路等),或者可以对应于未命名的通道(例如,房屋或办公楼中的行车道、停车场的一段、空置停车场的一段、农村区域的污物路径等)。因此,所示的交通车道仅供解释,不应视为限制。
在图13A的示例中,由于对象1306的地点,使得沿路径1304的连续路线不可行。对象1306(例如,图1中的自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)例如由如图4所示的感知电路402检测。由于对象1306的地点,使得路径1304是被阻挡的路径。还示出了无碰撞路径1308。在图13A的示例中,在运载工具1302继续沿着路径1304的场景中,运载工具1302将与对象1306碰撞。
图13B是运载工具导航无碰撞路径1300B的图示。运载工具1302被图示为通过从路径1304行驶到路径1308以避开对象1306而避免与对象1306的碰撞。一旦与对象1306碰撞的可能性过去,运载工具1302返回路径1304,该路径1304在对象1306之外是畅通的。运载工具也可以保持在路径1308上,该路径1308也是通畅的。
通常,路径1304和1308是从诸如图10的有向图1000等的图中导出的。在实施例中,在配置空间(C空间)内生成表示通过空间的无碰撞路径的图。C空间是由纬度(例如,x)、经度(例如,y)和航向(例如,θ)参数化的三维空间。连续的C空间可以分解为一系列的C片,其中离散的航向对应于C空间的片(C片)。因为航向值是独立的,并且具有预先确定的分辨率,所以相应地,分解为一组C片的C空间是离散的。在实施例中,各个通常由角度表示的离散的航向值表示运载工具指向的方向。例如,航向值为一个或多个传感器(诸如图1中的传感器121)视场内的角度值。对象(例如,图1中的自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)在各个C片上被表示为C障碍物。
C空间生成和单元分解
为了快速有效地确定一个或多个对象周围的无碰撞路径,本技术通过经由单元分解连接C片来使得能够实现无碰撞路径生成。在实施例中,进行单元分解以生成对象之间的无碰撞路径。特别地,梯形分解用于在与运载工具的多个预先确定的航向相对应的各个C片内生成许多无碰撞空间。
图14是使得能够实现快速无碰撞路径生成的处理1400的流程图。无碰撞路径是避免与检测对象的碰撞的路径。使用诸如雷达、LiDAR(例如,图1的LiDAR 123)或照相机(例如,图1的照相机122)等的一个或多个传感器(例如,图1的传感器121)检测对象。获得传感器数据(例如,图5的输出504a-504d)以计算在环境(例如,图1的环境190)中检测到的所有对象的姿态和几何形状。
在框1402处,生成C空间。为了生成C空间,运载工具和对象被表示为凸多边形。此外,由运载工具的当前姿态和目标姿态指定开始姿态和结束姿态。计算在运载工具和所有检测对象之间的闵可夫斯基(Minkowski)和。将运载工具和检测对象表示为凸多边形,使得能够实现如下所述的闵可夫斯基和计算。特别地,运载工具和所有检测对象之间的闵可夫斯基和得出运载工具的C空间。C空间由多个C片组成,各个C片对应于运载工具的航向。对象在各个C片中表示为C障碍物。
在框1404,针对各个C片进行单元分解。在单元分解期间,C障碍物顶点用于将各个C片分解为多个单元。C片的各个单元表示运载工具可以占用的自由空间。与更高阶空间中的运载工具和障碍物表示相比,将航向离散化以获得多个C片并将运载工具和对象表示为凸多边形使得最终能够以降低的计算复杂度进行单元分解。
在图14中,框1406表示顶点连接。通常,在框1402处的C空间生成期间,生成并连接顶点以定义C障碍物。在框1404处的单元分解期间,在各个C片的自由空间内的策略点处***关注顶点。在实施例中,根据C障碍物类型沿单元边界***关注顶点,以获得C片邻接列表。针对C空间中所有C片的C片邻接列表形成针对C空间的一组C片邻接列表。下面参照图15进一步描述单元分解和顶点连接。
在框1408处,进行图生成。在图生成期间,从一组C片邻接列表中导出超级邻接列表。通过根据碰撞检测技术连接跨C片邻接列表的关注顶点,导出超级邻接列表。在实施例中,C片邻接列表映射到连接各个C片内的关注顶点的C片邻接图。超级邻接列表映射到连接跨所有C片上的关注顶点的针对整个C空间的超级邻接图。与其它算法相比,所导出的邻接列表需要更少的顶点来生成许多障碍物之间的无碰撞路径,并且经由本技术计算的路径在曲率累积方面更平滑。在框1410处,进行图搜索。图搜索使得能够生成通过环境的无碰撞路径。
图14的处理流程图并非意在指示示例处理1400的框将以任何顺序执行、或者在每个情况下都要包括所有框。此外,根据具体实现的细节,示例处理1400中可以包括任意数量的未示出的附加框。在一些示例中,顶点连接可以包括自适应顶点连接,使得顶点的***地点取决于C障碍物的类型以及C障碍物相对于其它C障碍物的地点等。
图15是使得能够实现单元分解和顶点连接的处理1500的处理流程图。在框1502处,对运载工具的视场(例如,图6的视场614)内的一个或多个航向进行采样以生成C空间。在实施例中,对运载工具的航向进行均匀采样。航向表示为感知***的视场内的角度。例如,感知***402(图4)在多个航向处采样以捕获针对x-y域中各个航向的传感器数据。使用一个或多个传感器121(图1)处理传感器数据(例如,图5的输出504a、输出504b、输出504c和输出504d)以识别附近的物理对象。在实施例中,在欧几里德空间中识别对象。沿离散航向值采样可生成针对各个航向值的连续的x-y空间,并且使得能够将C空间创建为连续的三维(3D)模型。图16是具有多个C片的连续的3D模型的图示。
图16是具有一组C片1602的C空间1600的图示。如图所示,观察到的环境(例如,图1的环境190)映射到C片1602A、C片1602B、C片1602C、C片1602D、C片1602E和C片1602F中的各个C片。各个C片与运载工具的航向相对应。基于各个C片的航向处的检测对象的地点,针对各个C片1602计算一个或多个C障碍物1604。C空间1600是根据x、y、θ坐标1606所识别的在x-y平面上连续的三维空间。如下文所述,经由超级邻接列表跨C片生成无碰撞路径1608。
再次参考图15,在框1504处,开始针对C障碍物生成的迭代处理和针对各个C片的单元分解。在实施例中,将传感器的视场分割为预先确定数量的C片。在实施例中,C片在整个视场中均匀分布。例如,考虑全局参考系中的完整的360°视场。在图16的示例中,C片的数量为6个。因此,C片与六个航向值相对应,各个C片间隔30°以跨180°的整个视场对环境进行均匀采样。在具有大量检测对象的环境中,可能需要更精细的采样级别来准确检测对象并生成C障碍物。例如,将C片的数量增加到11个、各个C片间隔15°,这定义了具有更精细的分辨率的C空间。
在计算两个几何形状之间的闵可夫斯基和时的一般假设是方位是固定的,并且在C片生成的上下文中,这意味着自我运载工具(ego vehicle)和其它对象(例如,行动运载工具(actor vehicle))两者的航向都是固定的。当生成多个C片时,在行动运载工具的航向固定的情况下,自我运载工具的预先确定的航向的数量可以变化。在示例中,航向的分辨率为π/20,以获得AV的视场内的10个C片。为了便于描述,描述了特定视场内特定数量的预先确定的航向。然而,预先确定的航向的数量、C片的结果数量和运载工具的视场可能发生变化,并且不应视为限制性的。此外,在实施例中,可以在检测到大量对象的视场区域中以更高分辨率放置C片,而在存在相对少的对象或不存在对象的视场区域中以低分辨率放置C片。
在框1506处,针对当前C片,计算运载工具和检测对象之间的闵可夫斯基和。针对运载工具和所有检测对象计算闵可夫斯基和,这针对各个C片生成C障碍物。通常,闵可夫斯基和计算表示检测对象的多边形的边偏移一定距离的偏移量。特别地,闵可夫斯基和标识一个多边形与另一多边形重叠的一组坐标。通过假设多边形是凸的,计算闵可夫斯基和的计算复杂度降低。为了计算闵可夫斯基和,将计算包含运载工具的最小凸集和包含对象的最小凸集。在示例中,这是针对运载工具和检测对象中的各个运载工具和检测对象的相应的多边形。绘制针对凸多边形的边的法线(例如,从多边形的边延伸的理论线)。针对检测对象的法线向外绘制,针对运载工具的法线向内绘制。然后,法线将按照相对于其角度的递增顺序进行排序。将闵可夫斯基和中的第一点任意地选择为如下的点,在该点处,运载工具的质心位于障碍物和运载工具的其中一个顶点-顶点接触处。闵可夫斯基和是通过按法线指定的顺序添加各个边而生成的。一个重要的观察结果是,闵可夫斯基和多边形的每个边都是从检测对象凸多边形或运载工具凸多边形平移而来的边。针对各个检测对象计算闵可夫斯基和后,在相应的C片中将检测对象绘制为C障碍物。在实施例中,运载工具在各个C片中表示为在C空间中移动的点。通过在整个环境中将运载工具的航向固定为不同的值,生成多个C片,其中作为闵可夫斯基和运算的结果,相同对象在各个C片中被表示为具有不同形状的C障碍物。
在框1508处,针对C片进行单元分解。在单元分解期间,C障碍物顶点用于将C片分解为表示C空间内的自由空间的多个单元。如本文所使用的,自由空间是C片的未绘制C障碍物的部分。C片的自由空间与未检测到对象的环境区域相对应。单元分解基于C障碍物地点在C片内创建多个单元边界线。针对当前C片,进行梯形单元分解以将C空间的一个C片分解为若干梯形单元。图17A是具有多个单元的C片1700A的图示。
在C片1700A中,示出了C障碍物1702和C障碍物1704。C障碍物1702和1704是通过如上所述计算闵可夫斯基和导出的。为了生成C片的单元,从C障碍物的各个顶点到C片的边界绘制边界线1706。边界线包括边界线1706A1、1706A2、1706B、1706C、1706D1、1706D2、1706E1、1706E2、1706F、1706G、1706H1和1706H2。C片的边界是C片的数据的结束。C障碍物顶点是C障碍物凸多边形的两条边相交的点。C障碍物1702具有C障碍物顶点1702A、1702B、1702C和1702D。C障碍物1704具有C障碍物顶点1704A、1704B、1704C和1704D。
针对各个C片的单元分解确保单元内的任意路径都是无障碍物的。在实施例中,单元分解是精确的单元分解。在精确的单元分解中,在相应的C片上的C障碍物的各个顶点处,边界线从C障碍物的顶点延伸,直到到达C空间或另一C障碍物的边界。在图17A的示例中,使用从C障碍物1702和1704的各个顶点延伸的虚线来示出边界线1706。虚线创建了多个单元1708A、1708B、1708C、1708D、1708E、1708F、1708G、1708H、1708I、1708J和1708K。在实施例中,单元分解是近似的。在近似的单元分解中,从整个C片作为单元开始,递归地细分单元,直到该单元完全位于自由空间内或完全位于C障碍物内为止。当达到单元细分的预先确定的限制时,细分也可以结束。边界线1706创建多个梯形单元。通过从C障碍物的顶点延伸边界线1706,可确保导出的自由单元为凸梯形。
再次参考图15,在框1510处,在单元分解期间定义单元。为单元(例如,图17A的单元1708A-K)分配单元标识(ID)。还导出单元邻接列表。单元邻接列表经由成对单元ID列表标识相邻的单元。例如,当两个单元共享边界线1706时,两个单元相邻。例如,关于图17A,因为单元1708A和1708B共享边界线1706A1,所以单元1708A和1708B相邻。此外,因为单元1708A和1708C共享边界线1706A2,所以单元1708A和1708C相邻。
在框1512处,将关注顶点***到各个C片中。针对与运载工具的特定姿态相对应的各个C片,在各个边界线1706处***关注顶点。各个顶点由顶点ID和单元ID地点标识。再次参考图17A,在各个边界线1706的中点处***关注顶点1710,其中中点是从C障碍物顶点到C片的边界测量的。在实施例中,在相应边界线的中点处***关注顶点。图17A包括各自被示为边界线1706上的黑点的多个关注顶点1710。由于自由空间梯形单元是凸多边形,当单元相邻时,将沿一个边界线的关注顶点连接到另一个边界线(例如,边界线1706A1、1706D1、1706E1和1706H1)的关注顶点的直线是通过单元的无碰撞路径。
在框1512处,生成相邻关注顶点的列表。如果第一关注顶点位于具有共同单元的边界线1706上,则第一关注顶点与第二关注顶点相邻。例如,因为边界线1706A1和1706B中的各个边界线共享单元1708B,所以关注顶点1710A与顶点1710C相邻。因为边界线1706A1和1706A2中的各个边界线是共线的,并由C障碍物顶点1702A连接,所以关注顶点1710A与顶点1710B相邻。相邻关注顶点列表是顶点标识(ID)的成对列表。
在图17A中,如上所述,根据各个边界线1706的中点选择关注顶点。选择各个单元边界线的中点作为顶点通常足以覆盖C空间中的所有自由空间。针对关注顶点选择边界线的中点也会减少覆盖C空间的自由空间所需的顶点数量。消除与中点顶点大致覆盖相同空间的冗余顶点。
在实施例中,选择关注顶点的地点是基于最接近边界线的C障碍物类型而自适应的。例如,考虑C障碍物对应于行人的情景。与其选择从行人C障碍物生成的边界线的中点作为顶点***的地点,不如将关注顶点放置在离行人更远的位置。例如,关注顶点***到从C障碍物顶点到边界线末端距离的75%处。因此,本技术不是障碍物不可知的,并且可以在建立关注顶点时评估对象的类型。
图17B是关注顶点的自适应***的图示。在自适应***中,生成关注顶点以创建具有不同间隙策略的路径,这样路径可以更靠近一个类型的对象(诸如轿车),而远离另一个类型的对象(大型卡车、行人)。例如,C障碍物1722表示运载工具。在C障碍物是运载工具的情况下,可将关注顶点***到靠近C障碍物的位置。在图17B的示例中,C障碍物1724表示行人。针对行人,顶点***位于距C障碍物较远的位置,以便在规划行人附近的路径时提供更大量的空间。因此,与C障碍物1724附近的关注顶点1720G、1720H、1720I、1720J、1720K和1720L相比,关注顶点1720A、1720B、1720C、1720D、1720E和1720F更接近C障碍物1722。因此,***的顶点不需要间隔均匀。在实施例中,顶点的***是基于C障碍物所基于的检测对象的类型而自适应的。
再次参考图15,在框1514处,通过跨相邻单元的转换(transition)连接关注顶点,以形成针对各个C片的邻接图。如关于图18A-图18E所述的,考虑到连接策略识别相邻顶点列表中的有效杜宾斯(Dubins)路径可以将相邻顶点列表转换为针对C片的邻接图。邻接列表提供有关当前C片上哪些关注顶点与其它关注顶点相邻的信息。在实施例中,邻接列表是基于单元是否彼此连接(相邻)。通过判断两个相邻顶点是否可以通过有效杜宾斯路径连接而不发生碰撞,可以进一步修剪针对各个C片的邻接列表。杜宾斯路径是在二维欧几里德平面(X-Y平面)上连接两点的最短曲线。杜宾斯路径对路径的曲率以及指定的路径初始切线和终端切线具有约束。此外,假设沿路径行驶的运载工具仅向前行驶。为了进行碰撞检查,通过离散化杜宾斯路径来计算一组运载工具姿态,然后针对各个姿态使用传统的凸多边形相交算法来判断运载工具是否与任意C障碍物碰撞(相交)。通常,离散化杜宾斯路径会基于曲率约束的杜宾斯路径创建多边形路径。离散化的杜宾斯路径受转弯约束和长度约束。当根据如本文所述的连接策略连接关注顶点时,在框1514处,连接是检测到的有效杜宾斯路径。通过仅添加有效杜宾斯路径,本技术考虑经由顶点连接生成邻接图时的运载工具的运动学特性。注意,关于图15的框1514所描述的所有计算被应用于当前C片,并且针对各个C片的关注顶点独立于其它C片而生成。通过有效杜宾斯路径连接关注顶点,以形成针对各个C片的邻接图。
如果还有附加的C片用于分解和邻接图确定,则处理流程返回到框1504。如果所有C片已被分解并且生成C片邻接列表,则处理流程继续进行到框1516。在框1516处,跨所有C片连接关注顶点。例如,组合C片邻接列表以生成针对C片的超级邻接列表。如关于图18A-图18E所述的,考虑到连接策略识别超级邻接列表中的有效杜宾斯路径可以将超级邻接列表转换为针对C空间的超级邻接图。从超级邻接图中移除作为无效杜宾斯路径的跨C片的连接。
图15的处理流程图并非意在指示示例处理1500的框将以特定顺序执行或在每个情况下都要包括所有框。此外,根据具体实现的细节,未示出的任意数量的附加框可以包括在示例处理1500内。在一些示例中,顶点连接可以包括自适应顶点连接,使得针对顶点的***地点取决于C障碍物的类型以及C障碍物相对于其它C障碍物的地点等。
图16、17A和17B的框图不意在指示图16、17A和17B的C片包括图16、17A和17B中所示的所有组件。相反,C片可以包括图16、17A和17B中的更少组件或图16、17A和17B中未示出的附加组件(例如,附加的C片、C障碍物、关注顶点、边界线等)。C空间1600、C片1700A和C片1700B可包括未示出的任意数量的附加组件,这取决于具体实现的细节。此外,单元分解、邻接列表生成、单元ID生成、顶点ID生成、图生成以及其它描述的功能中的任意一个可以部分地或全部地在硬件和/或处理器中实现。例如,该功能可以利用专用集成电路、在处理器中实现的逻辑中、在专用图形处理单元中实现的逻辑中、或者在任意其它装置中来实现。
图生成和搜索
再次参考图17A和图17B,提供了C片1700A和1700B的图示。例如,C片1700A和1700B是来自图16的C片1602。如上所述,针对各个C片,由凸多边形表示C障碍物。针对各个C片,进行单元分解,并针对各个C片生成邻接列表。以类似的方式,生成跨C片的针对关注顶点的超级邻接列表。基于超级邻接列表片的超级邻接图的生成是根据关于图18A-图18E所描述的连接策略来进行的。连接策略至少部分地基于第一C片相对于C空间内的其它C片的地点。
在C片在针对C片的顺序航向值的列表中相邻的情况下,C片与另一C片相邻。例如,考虑每30°对环境进行采样的六个C片的C空间。第一C片在航向为0°处进行采样,第二C片在航向为30°处进行采样,第三C片在航向为60°处进行采样,第四C片在航向为90°处进行采样,第五C片在航向为120°处进行采样,第六C片在航向为150°处进行采样。在此示例中,第二C片与第一C片和第三C片相邻。连接策略会使关注顶点在各个C片内如何连接以及跨C片的关注顶点如何连接发生改变。跨C片的关注顶点的连接导出针对整个C空间的超级邻接图。如关于图15所述,各个C片内和跨C片的可用连接将是存在有效杜宾斯路径的那些连接。在实施例中,通过计算连接两个相邻姿态的各个边的成本来增扩所导出的针对C空间的邻接图。
图18A-图18E是连接策略的图示。图18A是使用蛮力连接策略的超级邻接图1800A的图示。在蛮力连接策略中,第一C片中的关注顶点连接到第一C片和其它C片中的所有关注顶点。用于使用蛮力连接策略生成超级邻接图1800A的计算复杂度为O(m2n2),其中m是C片的数量,n是各个C片内关注顶点的数量。蛮力连接策略创建了一个包括C空间中所有可能的路径的完整的超级邻接图1800A。因为所有可能的路径都可用,所以运载工具的规划***可以使用超级邻接图1800选择最佳、最方便的路径。
图18B是使用球之外的蛮力连接策略的超级邻接图1800B的图示。一般,在从顶点的某个半径(例如球)内使用杜宾斯路径的连接可能会违反运载工具的最小转弯半径,该半径可以在不尝试进行连接的情况下自动消除。因此,因为一些不可行的图边根本不会尝试连接,所以在图顶点周围的球区域之外强制连接会使图连接更快。
在球之外的蛮力连接策略中,第一C片中的关注顶点连接到第一C片和其它C片中的在距相应关注顶点预先确定距离内的所有关注顶点。例如,第一关注顶点仅连接到特定范围内的其它关注顶点,诸如C空间内预先确定半径内的那些关注顶点。半径用于滤除距离当前关注顶点太远的关注顶点。计算复杂度取决于球体的半径。随着半径的增加,用于使用球之外的蛮力连接策略生成超级邻接图1800B的计算复杂度接近O(m2n2)。
图18C是使用相邻单元蛮力相邻片连接策略的超级邻接图1800C的图示。回想一下,各个C片具有在单元分解期间生成的多个单元。在相邻单元中蛮力相邻片连接策略中,第一C片中的关注顶点连接到第一C片的相邻单元中的所有关注顶点。各个关注顶点都跨C片连接到相邻C片中所有关注顶点。针对相邻单元蛮力相邻片连接策略,计算复杂度为O(mn2)。通过将跨C片的连接策略限制为仅那些相邻的C片,减少了可用于连接的可能C片的数量。这使得降低计算复杂度。
图18D是使用相邻单元蛮力片间连接策略的超级邻接图1800D的图示。相邻单元蛮力片间连接策略将第一C片中的关注顶点与第一C片的相邻单元中的关注顶点连接。各个关注顶点都跨C片连接到所有其它C片中的所有关注顶点。针对相邻单元蛮力片间连接策略,计算复杂度为O(m2n2)。
图18E是使用网格状连接策略的超级邻接图1800E的图示。在网格状连接策略中,第一C片中的关注顶点连接到第一C片的相邻单元中的所有关注顶点。跨C片,各个关注顶点都连接到相邻C片中所有关注顶点。针对各个顶点,在相邻C片的相邻单元内的顶点之间进行连接(不尝试跨多个单元进行连接)。针对网格状邻接,计算时间为O(mn)。
图18A-图18E的框图不意在指示图18A-图18E的超级邻接图包括图18A-图18E所示的所有成分。相反,该图可以包括比图18A-图18E中更少的成分或图18A-图18E中未示出的附加成分(例如,附加的C片、不同分辨率的C片、自适应顶点***、关注顶点、边等)。超级邻接图可以包括未示出的任意数量的附加组件,这取决于具体实现的细节。此外,可以部分地或全部地在硬件和/或在处理器中实现任意连接策略。例如,该功能可以用专用集成电路、在处理器中实现的逻辑中、在专用图形处理单元中实现的逻辑中或在任意其它装置中实现。
关于图18A-图18E所描述的连接策略选择性地减少C片邻接图和C空间超级邻接图内的边的数量。该减少最终减少规划路径时由规划***(例如,图4的规划***404)进行的碰撞避免计算量。在实施例中,进行图搜索以使用超级邻接图识别路径。
在图搜索期间,执行k-最近邻算法,以获得超级邻接图中最接近运载工具开始姿态和结束姿态的一组开始顶点和一组结束顶点。在某些情况下,运载工具的实际开始姿态和结束姿态与生成的C空间的顶点不完全对齐。通过确定是否存在可以连接开始顶点和结束顶点的有效杜宾斯路径,滤除无效的开始顶点和结束顶点。给定所有有效开始顶点和结束顶点的组合,使用最短路径算法计算各个开始顶点和结束顶点对之间的最短路径。选择总成本最小的路径作为穿过空间的最优路径。在实施例中,执行Dijkstra算法以在图中针对各对开始顶点和结束顶点寻找最短路径。在实施例中,最短路径算法是A*算法。为了便于描述,路径被描述为根据最低成本而被选择。然而,可以基于时间、环境或任意其它因素选择最优路径。
通过经由单元分解连接C片来生成无碰撞路径
图19是处理1900的处理流程图,该处理1900通过经由单元分解连接C片来使得能够实现快速无碰撞路径生成。在图19的示例中,确定杜宾斯路径并将其用于连接C片之间的关键点。
在框1902处,对运载工具的离散航向处的环境(例如,环境190)进行采样,以生成具有一个或多个C片的配置空间(C空间),各个C片与运载工具的离散航向相对应。在实施例中,使用感知***(例如,图4的感知***402)对环境进行采样。离散的航向使得能够使用闵可夫斯基和来将运载工具和对象表示为凸多边形。
在框1904处,在一个或多个C片处进行单元分解。单元分解将各个C片分解为多个单元,这些单元表示环境中未检测到任何对象的区域。
在框1906处,生成C片邻接列表。C片邻接列表是针对各个C片以及与各个关注顶点相关联的邻接信息的关注顶点列表。共享边界线的两个单元相邻,并且沿边界线***关注顶点。在实施例中,在各个单元边界线的中点处***关注顶点。在实施例中,通过基于附近C障碍物的类型选择单元边界上的顶点地点来自适应地定位关注顶点。
在框1908处,针对C空间导出关注顶点的超级邻接列表。超级邻接列表和邻接列表用于将关注顶点与一个或多个边连接起来,以形成超级邻接图。用于跨一个或多个C片的关注顶点的连接的策略包括,例如,基于单元的蛮力(例如,图18A)、球之外的蛮力(例如,图18B)、基于单元的相邻单元和单元间蛮力连接(例如,图18C)、基于单元的相邻单元和针对相邻单元蛮力连接(例如,图18D)、或者基于单元的网格状(例如,图18E)。
在框1910处,通过经由超级邻接图确定从开始姿态到目标姿态的最短路径,来导航运载工具要穿越的最优路径。
在先前描述中,已经参考可因实现而不同的许多具体细节描述了本发明的实施例。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人所期望的是本发明范围的内容是以发布权利要求书的具体形式从本申请发布的一组权利要求的字面和等同范围,包括任意后续修正。本文中针对这样的权利要求中所包含的术语而明确阐述的的任意定义应当这样的术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或者先前所述的步骤或实体的子步骤/子实体。

Claims (21)

1.一种用于导航最优路径的方法,包括:
由感知电路对运载工具的离散航向处的环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且所述运载工具和所检测对象由凸多边形表示;
由处理器将所述第一C片分解为表示自由空间的一个或多个单元;
由所述处理器生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;
由所述处理器导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及
由规划电路导航最优路径,其中,所述最优路径是所述超级邻接图上从开始姿态到目标姿态的最短路径。
2.根据权利要求1所述的方法,其中,所述离散航向是预先确定的。
3.根据权利要求1或2所述的方法,其中,将所述第一C片分解为多个单元包括:
计算所述运载工具的凸多边形和所述所检测对象的凸多边形之间的闵可夫斯基和,以获得C障碍物顶点,其中,所检测对象与C障碍物相对应;以及
***具有在C障碍物顶点处的第一点的边界线,并且将所述边界线延伸至第二点,其中,所述第二点位于另一C障碍物、所述第一C片的边界或其任意组合处。
4.根据权利要求1-3所述的方法,其中,在相应边界线的中点处***关注顶点。
5.根据权利要求1-4所述的方法,其中,至少部分地基于C障碍物类型自适应地***所述关注顶点。
6.根据权利要求1-5所述的方法,其中,通过将所述第一C片中的所述关注顶点与所述一个或多个C片的其它C片中的所有其余关注顶点连接,来导出所述超级邻接图。
7.根据权利要求1-6所述的方法,其中,针对所述第一C片中的各个关注顶点,通过将所述第一C片的相应关注顶点和其它C片中的距该相应关注顶点在预先确定距离内的关注顶点相连接,来导出所述超级邻接图。
8.根据权利要求1-7所述的方法,其中,针对所述第一C片中的各个关注顶点,通过将所述第一C片中的所述关注顶点连接到所述第一C片的相邻单元中的所述关注顶点,并且将所述第一C片中的所述关注顶点连接到相邻C片中的所述关注顶点,来导出所述超级邻接图。
9.根据权利要求1-8所述的方法,其中,通过将所述第一C片中的所述关注顶点与所述第一C片的相邻单元中的所述关注顶点连接,并且将所述第一C片中的所述关注顶点连接到所述一个或多个C片中的所述关注顶点,来导出所述超级邻接图。
10.根据权利要求1-9所述的方法,其中,针对所述第一C片中的各个关注顶点,通过将相应关注顶点连接到其它C片中的其它关注顶点以形成网格,来导出所述超级邻接图。
11.一种非暂时性计算机可读存储介质,包括用于由第一装置的至少一个处理器执行的至少一个程序,所述至少一个程序包括指令,所述指令在由所述至少一个处理器执行时进行包括以下的方法:
对运载工具的离散航向处的环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且所述运载工具和所检测对象由凸多边形表示;
将所述第一C片分解成表示自由空间的一个或多个单元;
生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;
导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及
导航最优路径,其中,所述最优路径是所述超级邻接图上从开始姿态到目标姿态的最短路径。
12.根据权利要求11所述的计算机可读存储介质,其中,将所述第一C片分解为多个单元包括:
计算所述运载工具的凸多边形和所述所检测对象的凸多边形之间的闵可夫斯基和,以获得C障碍物顶点,其中,所检测对象与C障碍物相对应;以及
***具有在C障碍物顶点处的第一点的边界线,并且将所述边界线延伸至第二点,其中,所述第二点位于另一C障碍物、所述第一C片的边界或其任意组合处。
13.一种运载工具,包括:
至少一个传感器,其被配置为检测环境中的对象的姿态和几何形状,其中,所述运载工具的开始姿态和结束姿态被指定;
至少一个计算机可读介质,其存储有计算机可执行的指令;
至少一个处理器,其通信地耦接到所述至少一个传感器并且被配置为执行所述计算机可执行的指令,所述执行进行包括以下的操作:
在所述运载工具的离散航向处对所述环境进行采样,以生成具有一个或多个C片的配置空间即C空间,其中,第一C片与所述运载工具的离散航向相对应,并且其中所述运载工具和所述对象由凸多边形表示;
将所述第一C片分解成表示自由空间的一个或多个单元;
生成针对所述第一C片的C片邻接列表,其中,共享边界线的两个单元是相邻的,并且沿边界线***关注顶点;
导出针对所述C空间的超级邻接列表,其中,所述超级邻接列表连接跨所述一个或多个C片的关注顶点,以形成至少部分地基于杜宾斯路径的超级邻接图;以及
控制电路通信地耦接到所述至少一个处理器,其中,所述控制电路被配置为基于所述超级邻接图操作所述运载工具从所述开始姿态到所述结束姿态。
14.根据权利要求13所述的运载工具,其中,所述操作包括:
计算所述运载工具的凸多边形和所述对象的凸多边形之间的闵可夫斯基和,以获得C障碍物顶点,其中,对象与C障碍物相对应;以及
***具有在C障碍物顶点处的第一点的边界线,并且将所述边界线延伸至第二点,其中,所述第二点位于另一C障碍物、所述第一C片的边界或其任意组合处。
15.根据权利要求13或14所述的运载工具,其中,所述操作包括在相应边界线的中点处***关注顶点。
16.根据权利要求13-15所述的运载工具,其中,所述操作包括至少部分地基于C障碍物类型而自适应地***所述关注顶点。
17.根据权利要求13-16所述的运载工具,其中,所述操作包括:通过将所述第一C片中的关注顶点与所述一个或多个C片的其它C片中的所有其余关注顶点连接,来导出所述超级邻接图。
18.根据权利要求13-17所述的运载工具,其中,所述操作包括:针对所述第一C片的各个关注顶点,通过将所述第一C片的相应关注顶点和其它C片中的距所述相应关注顶点在预先确定距离内的关注顶点相连接,来导出所述超级邻接图。
19.根据权利要求13-18所述的运载工具,其中,所述操作包括:针对所述第一C片中的各个关注顶点,通过将所述第一C片中的所述关注顶点连接到所述第一C片的相邻单元中的所述关注顶点,并且将所述第一C片中的各个关注顶点连接到相邻C片中的所述关注顶点,来导出所述超级邻接图。
20.根据权利要求13-19所述的运载工具,其中,所述操作包括:针对所述第一C片中的各个关注顶点,通过将所述第一C片中的关注顶点与所述第一C片的相邻单元中的所述关注顶点连接,并且将所述第一C片中的关注顶点连接到所述一个或多个C片中的各个C片的所述关注顶点,来导出所述超级邻接图。
21.根据权利要求13-20所述的运载工具,其中,所述操作包括:针对所述第一C片中的各个关注顶点,通过将相应关注顶点连接到其它C片中的其它关注顶点以形成网格,来导出所述超级邻接图。
CN202111370876.1A 2021-06-30 2021-11-18 导航最优路径的方法、存储介质和运载工具 Pending CN115540888A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/363,226 2021-06-30
US17/363,226 US20230003533A1 (en) 2021-06-30 2021-06-30 Fast collision free path generation by connecting c-slices through cell decomposition

Publications (1)

Publication Number Publication Date
CN115540888A true CN115540888A (zh) 2022-12-30

Family

ID=78463542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111370876.1A Pending CN115540888A (zh) 2021-06-30 2021-11-18 导航最优路径的方法、存储介质和运载工具

Country Status (4)

Country Link
US (1) US20230003533A1 (zh)
CN (1) CN115540888A (zh)
DE (1) DE102021133342A1 (zh)
GB (2) GB202312809D0 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230242250A1 (en) * 2022-01-31 2023-08-03 Skydio, Inc. Aerial Vehicle Path Determination

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101203897B1 (ko) * 2011-02-25 2012-11-23 동국대학교 산학협력단 이동체(mobile body)를 위한 셀?기반 경로 계획 장치 및 방법
US11873004B2 (en) * 2020-10-31 2024-01-16 Huawei Technologies Co., Ltd. Method and system for motion planning for an autonmous vehicle

Also Published As

Publication number Publication date
GB2608468A (en) 2023-01-04
DE102021133342A1 (de) 2023-01-05
GB2608468A8 (en) 2023-01-25
GB2608468B (en) 2023-10-18
GB202312809D0 (en) 2023-10-04
KR20230004215A (ko) 2023-01-06
US20230003533A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
CN111915917B (zh) 计算机实现的方法、存储介质和运载工具
CN112783151A (zh) 从预先计算的或动态生成的轨迹库的轨迹预测
CN112634633B (zh) 利用自主运载工具对多路停车交叉口进行导航
CN115328110A (zh) 用于自主运载工具的***和方法以及存储介质
US11731653B2 (en) Conditional motion predictions
CN117083575A (zh) 轨迹检查器
CN115079687A (zh) 用于自主运载工具的***、方法和存储介质
CN114387322A (zh) 用于运载工具的方法、运载工具和存储介质
CN114625118A (zh) 运载工具、用于运载工具的方法以及存储介质
KR20220083533A (ko) LiDAR 정보와 카메라 정보의 병합
CN114252066A (zh) 运载工具、用于运载工具的方法以及存储介质
CN114089375A (zh) 运载工具、用于运载工具的方法和存储介质
US20220340139A1 (en) Vehicle Route Modification to Improve Vehicle Location Information
CN114812586A (zh) 用于运载工具的***、方法和存储介质
US20220185272A1 (en) Lane connectors as a constraint
CN113196356A (zh) 交通灯估计
CN115540888A (zh) 导航最优路径的方法、存储介质和运载工具
KR102532179B1 (ko) 주변 차량에 기초한 로컬화
US11740360B2 (en) Light detection and ranging (LiDaR) scan smoothing
CN115220439A (zh) 用于运载工具的***和方法以及存储介质
CN115077543A (zh) 运载工具及其方法和存储介质
CN114938674A (zh) 基于活动来对感知对象进行分类
KR102685453B1 (ko) 셀 분해를 통해 c-슬라이스들을 연결시키는 것에 의한 빠른 충돌 없는 경로 생성
US11926342B2 (en) Autonomous vehicle post-action explanation system
CN115861402A (zh) 用于运载工具的方法和存储介质

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