用于运载工具的方法、运载工具和存储介质与流程

文档序号:31836639发布日期:2022-10-18 21:31阅读:72来源:国知局
用于运载工具的方法、运载工具和存储介质与流程
用于运载工具的方法、运载工具和存储介质
1.本技术是申请日为2020年1月31日、申请号为2020800051882、发明名称为合并来自多个lidar装置的数据的申请的分案申请。
2.相关申请的交叉引用
3.本技术要求2019年1月31日提交的美国临时专利申请62/799,391和2019年2月27日提交的丹麦专利申请pa201970131的优先权,这两个申请的全部内容通过引用而被包含于此。
技术领域
4.本说明书涉及合并来自多个lidar(光检测和测距)装置的数据。


技术实现要素:

5.描述了用于合并来自多个lidar装置的数据的技术等,这多个lidar装置具有不同的物理位置,并且可以具有不同的起始角和不同的频率。
6.在实施例中,一种系统包括:至少两个lidar装置,其被配置为检测从接近所述运载工具的对象所反射的光,并且基于所检测到的光来生成lidar点云信息,其中第一lidar装置在所述运载工具的第一位置并被配置成第一起始角和第一频率,并且第二lidar装置在所述运载工具的第二位置并被配置成第二起始角和第二频率;一个或多个计算机可读介质,用于存储计算机可执行指令;一个或多个处理器,其通信地耦接至所述至少两个lidar装置,并且被配置为执行所述计算机可执行指令,该执行进行包括以下的操作:接收来自所述第一lidar装置的第一lidar点云信息和来自所述第二lidar装置的第二lidar点云信息,接收与所述第一lidar点云信息相关联的第一时间戳信息和与所述第二lidar点云信息相关联的第二时间戳信息,以及根据所述第一lidar点云信息和所述第二lidar点云信息、所述第一时间戳信息和所述第二时间戳信息、所述第一起始角、所述第一频率、所述第二起始角和所述第二频率,生成将所述第一lidar点云信息和所述第二lidar点云信息合并的第三点云信息;以及控制电路,其通信地耦接至所述一个或多个处理器,其中所述控制电路被配置为基于所述第三lidar点云信息来操作所述运载工具。
7.在实施例中,一种方法包括:将第一lidar装置配置成从第一起始角以第一频率自旋;将第二lidar装置配置成从与所述第一起始角不同的第二起始角以第二频率自旋;从所述第一lidar装置接收表示第一检测光点的信息和表示照射第一点的时间的第一时间戳;从所述第二lidar装置接收表示第二检测光点的信息和表示照射第二点的时间的第二时间戳,其中所述第一时间戳的时间和所述第二时间戳的时间之间的差小于所述第一频率的倒数;确定为所述第一检测光点和所述第二检测光点对应于相对于运载工具的相同位置;以及根据确定为所述第一检测光点和所述第二检测光点对应于所述相同位置,生成包括相对于所述运载工具的固定原点的相同坐标处的所述第一检测光点和所述第二检测光点的lidar点云信息。
8.这些和其它方面、特征和实现可被表示为方法、设备、系统、组件、程序产品、用于
进行功能的方法或步骤以及其它方式。
9.从以下的包括权利要求书的说明书,这些和其它方面、特征和实现将变得明显。
10.这些以及其它方面、特征和实现具有以下优点中的一个或多个。时间戳信息可用于更准确地组合lidar点云。时间戳可用于在具有不同起始角和/或不同频率的两个或更多个lidar之间协调。如果lidar已有意将起始角错开,则信息将仍足够新以用在大多数情景中(例如,识别行人的移动)。如果一个lidar在特定时间点被遮挡,则可以使用来自另一lidar的信息。
附图说明
11.图1示出具有自主能力的自主运载工具的示例。
12.图2例示示例“云”计算环境。
13.图3例示计算机系统。
14.图4示出自主运载工具的示例架构。
15.图5示出感知模块可以使用的输入和输出的示例。
16.图6示出lidar系统的示例。
17.图7示出操作中的lidar系统。
18.图8示出lidar系统的操作的附加细节。
19.图9示出规划模块的输入和输出之间的关系的框图。
20.图10示出路径规划中所使用的有向图。
21.图11示出控制模块的输入和输出的框图。
22.图12示出控制器的输入、输出和组件的框图。
23.图13示出具有两个lidar装置的av。
24.图14-15更详细地示出lidar装置。
25.图16示出用于生成整合点云的系统的组件。
26.图17a和17b示出采用极体素(polar voxel)的集合的形式的整合点云的表示。
27.图18-19是表示用于基于点云信息来操作运载工具的处理的流程图。
具体实施方式
28.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,显而易见的是,本发明可以在没有这些具体细节的情况下实施。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
29.在附图中,为了便于描述,显示了示意要素的具体安排或次序,例如表示设备、模块、指令块和数据要素的那些要素。然而,本领域技术人员应当理解,附图中示意要素的具体排序或安排并不意味着要求特定的处理顺序或序列、或处理过程的分离。此外,在附图中包含示意性要素并不意味着在所有实施例中都需要这种要素,也不意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
30.此外,在附图中,连接要素、例如实线或虚线或箭头用于说明两个或两个以上其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中显示,以便不掩盖本发明。
此外,为了便于说明,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接元件代表信号、数据或指令的通信,本领域技术人员应理解,该元件代表影响通信可能需要的一个或多个信号路径(例如,总线)。
31.现在将详细参考实施例,其示例在附图中示出。在下面的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地掩盖实施例的方面。
32.下面描述的若干特征可以彼此独立地使用,也可以与其它特征的任何组合一起使用。但是,任何个别特征可能不能解决上述任何问题,或者只能解决上述问题之一。上文讨论的一些问题可能不能通过本文所述的任何一个特征得到充分解决。虽然提供了标题,但在本说明的其它地方也可以找到与某一标题有关但在该标题部分未找到的信息。本文根据以下概要描述实施例:
33.1.总体概述
34.2.系统概述
35.3.自主运载工具架构
36.4.自主运载工具输入
37.5.自主运载工具规划
38.6.自主运载工具控制
39.7.多个lidar装置
40.总体概述
41.如以下针对图13-19更详细地所述,运载工具(诸如自主运载工具等)可以具有安装在运载工具的不同位置的多个lidar装置。可以合并来自这些lidar装置的数据以利用该冗余。
42.系统概述
43.图1示出具有自主能力的自主运载工具100的示例。
44.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地运行,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。
45.如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。
46.如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
47.如本文所使用的,“轨迹”是指从第一时空地点导航av到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
48.如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件部件可包括感测部件(例如,图像传感器、生物测量传感器)、发送和/或接收部件(例如,激光或射频波发射器和接收器)、电子部件(例如,模数转换器)、数据存储装置(例如,ram和/或非易失性存储器)、软件或固件部件和数据处理部件(例如,asic(专用集成电路))、微处理器和/或微控制器。
49.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。
50.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村地区的污物通道等)。因为有些运载工具(如四轮驱动的小卡车、越野车(suv)等)能够穿越各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式界定为一条通道的物理区域。
51.如本文所使用的,“车道”是道路的可被运载工具穿越的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,av可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,av可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,av可以将与车道有关的信息通信至其它av,使得其它av可以使用相同的车道信息来协调av之间的路径规划。
52.术语“空中下载(ota)客户端”包括任何av,或者嵌入在av中、耦接至av或与av进行通信的任何电子装置(例如,计算机、控制器、iot装置、电子控制单元(ecu))。
53.术语“空中下载(ota)更新”意味着对使用专有和/或标准化的无线通信技术递送至ota客户端的软件、固件、数据或配置设置或者它们的任何组合的任何更新、改变、删除或添加,其中该专有和/或标准化的无线通信技术包括但不限于:蜂窝移动通信(例如,2g、3g、4g、5g)、无线电无线局域网络(例如,wifi)和/或卫星因特网。
54.术语“边缘节点”是指耦接至网络的一个或多个边缘装置,这些装置提供与av进行通信所用的门户并且可以与其它边缘节点和基于云的计算平台进行通信,以调度ota更新并将ota更新递送至ota客户端。
55.术语“边缘装置”是指实现边缘节点并提供向企业或服务提供商(如verizon、at&t)核心网的物理无线接入点(ap)的装置。边缘装置的示例包括但不限于:计算机、控制器、发送器、路由器、路由交换机、综合接入装置(iad)、多路复用器、城域网(man)和广域网(wan)接入装置。
[0056]“一个或多个”包括由一个要素执行的功能,由多个要素执行的功能、例如以分布式的方式,由一个要素执行的几个功能,由几个要素执行的几个功能,或上述的任意组合。
[0057]
还将理解的是,尽管在某些情况下,术语“第一”、“第二”等是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所述实施例的范围的情况下,第一触点可被称为第二触点,并且同样,第二触点可被称为第一触点。第一触点和第二触点都是触点,但这两者不是相同触点。
[0058]
此处描述的各种实施例的描述中使用的术语仅用于描述特定实施例,而不是意在限制。正如在所描述的各种实施例和所附权利要求书的描述中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还应理解,本文所用的"和/或"一词是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还应理解的是,在本说明中使用的术语“包括”、“包含”、“具备”和/或“具有”具体说明存在所述的特征、整数、步骤、操作、要素和/或组成部分,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组成部分、和/或上述的组。
[0059]
如本文所使用的,“如果”一词可选择地理解为在该情况下、在当时、或者响应于检测到、或响应于确定为,视上下文而定。同样,“如果已确定”或“如果[所述条件或事件]已被检测到”这一短语,视情境而定,可以理解为“在确定时”或“响应于确定为“或”在检测到[所述条件或事件]时”或“响应于检测到[所述条件或事件]”。
[0060]
如本文所使用的,av系统是指av以及实时生成的支持av操作的硬件、软件、存储的数据和实时生成的支持av运作的数据。在实施例中,av系统并入在av内。在实施例中,av系统跨多个地点分布。例如,av系统的一些软件是在类似于下面结合图3描述的云计算环境300的云计算环境中实现的。
[0061]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,分别如所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容纳入本说明,以了解运载工具自主权等级的更多详细信息)。本说明所述技术也适用于部分自主运载工具和驾驶员辅助运载工具,如所谓的2级和1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个1级、2级、3级、4级和5级运载工具系统可根据对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所述的技术可以使从完全自主运载工具到人类操作的运载工具的各级运载工具受益。
[0062]
参考图1,av系统120使av 100沿着轨迹198运行,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0063]
在实施例中,av系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
[0064]
在实施例中,av系统120包括用于测量或推断av 100的状态或条件的属性的传感器121,这些属性例如是av的位置、线速度和线加速度及角速度和角加速度、以及航向(例
如,av 100的前端的方向)。传感器121的示例是gps、以及测量运载工具线性加速度和角速率的惯性测量单元(imu)、用于测量或估计车轮滑移率的车轮速率传感器、车轮制动压力或制动扭矩传感器、引擎扭矩或车轮扭矩传感器以及转向角度和角速率传感器。
[0065]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122、lidar 123、radar、超声波传感器、飞行时间(tof)深度传感器、速率传感器、温度传感器、湿度传感器和降水传感器。
[0066]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146或由传感器121收集的数据相关的机器指令。在实施例中,数据存储单元142与以下结合图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据通过来自远程数据库134的通信通道传输到av100。
[0067]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度以及线性航向和角航向等)的测量到或推断的属性传送到av 100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者兼而有之进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声学介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。
[0068]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。在实施例中,远程数据库134嵌入云计算环境200中,如图2中所述。通信接口140将从传感器121收集的数据或与av 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av 100传输与远程操作有关的信息。在一些实施例中,av 100与其它远程(例如,“云”)服务器136通信。
[0069]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储道路和街道地点等的数据)。这些数据存储在av 100上的存储器144中,或者通过通信通道从远程数据库134传输到av 100。
[0070]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速率分布)。在一个实现中,这种数据可以存储在av 100上的存储器144中,或者通过通信通道从远程数据库134传输到av 100。
[0071]
位于av 100上的计算装置146基于实时传感器数据和先验信息以算法方式生成控制动作,使得av系统120能够执行其自主驾驶能力。
[0072]
在实施例中,av系统120包括连接到计算装置146的计算机外围设备132,用于向av 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。连
接是无线的或有线的。任意两个或更多的接口设备可以集成到单个设备中。
[0073]
图2例示示例“云”计算环境。云计算是一种服务交付模式,可以方便、按需地在网络上访问共享的可配置计算资源池(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)。在典型的云计算系统中,一个或多个大型云数据中心容纳用于递送云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。
[0074]
云计算环境200包括一个或多个云数据中心。通常,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,每行都包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器根据数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)分为若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0075]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路连接的网际网络的任意组合。通过网络交换的数据采用多种网络层协议(如internet协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(framerelay)等)进行传输。此外,在网络代表多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络代表一个或多个互连网际网络(例如公共互联网等)。
[0076]
计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(iot)设备、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。
[0077]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)等的被持久编程为进行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持设备、网络设备或包含硬线和/或程序逻辑以实现这些技术的任何其它设备。
[0078]
在实施例中,计算机系统300包括总线302或用于通信信息的其它通信机制、以及与总线302连接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,例如随机存取存储器(ram)或其它动态存储装置,连接到总线
302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0079]
在实施例中,计算机系统300还包括只读存储器(rom)308或连接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器等的存储装置310,并连接到总线302以存储信息和指令。
[0080]
在实施例中,计算机系统300通过总线302连接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器等的显示器312。包括字母数字键和其它键的输入装置314连接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,例如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴线上的两个自由度,第一轴线(例如,x轴)和第二轴线(例如,y轴),这两个轴线允许装置指定平面上的位置。
[0081]
根据一个实施例,这里的技术由计算机系统300执行,以响应处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列。这些指令从诸如存储装置310等的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304执行本文所述的处理步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0082]
此处使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式运行。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310等的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306等。存储介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、nv-ram、或任何其它存储芯片或存储盒。
[0083]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,如在无线电波和红外数据通信过程中产生的声波或光波。
[0084]
在实施例中,各种形式的介质涉及向处理器304携带一个或多个指令的一个或多个序列以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射机将数据转换为红外信号。红外检测器接收红外信号中携带的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以任选地在处理器304执行之前或之后存储在存储装置310上。
[0085]
计算机系统300还包括连接到总线302的通信接口318。通信接口318提供耦合到连接至本地网络322的网络链路320多双向数据通信。例如,通信接口318是综合业务数字网
(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载代表各种信息的数字数据流的电、电磁或光信号。
[0086]
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中通信接口318承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0087]
计算机系统300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0088]
自主运载工具架构
[0089]
图4示出用于自主运载工具(例如,图1所示的av 100)的示例架构400。架构400包括感知模块402(有时称为感知电路)、规划模块404(有时称为规划电路)、控制模块406(有时称为控制电路)、定位模块408(有时称为定位电路)和数据库模块410(有时称为数据库电路)。各模块在av 100的操作中发挥作用。共同地,模块402、404、406、408和410可以是图1所示的av系统120的一部分。在一些实施例中,模块402、404、406、408和410中的任何模块是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[asic]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。
[0090]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示av100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0091]
感知模块402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块404。
[0092]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。
[0093]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得av 100行驶轨迹414到达目的地412的方式来操作av的控制功能420a~420c(例如,转向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得av 100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0094]
自主运载工具输入
[0095]
图5示出感知模块402(图4)所使用的输入502a-502d(例如,图1中所示的传感器121)和输出504a-504d(例如,传感器数据)的示例。一个输入502a是lidar(光检测和测距)系统(例如,图1所示的lidar 123)。lidar是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是用于构造环境190的表现的3d或2d点(也称为点云)的集合。
[0096]
另一输入502b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统502b产生radar数据作为输出504b。例如,radar数据是用于构造环境190的表现的一个或多个射频电磁信号。
[0097]
另一输入502c是照相机系统。照相机系统使用一个或多个照相机(例如,使用诸如电荷耦合器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据的形式(例如,诸如raw、jpeg、png等的图像数据格式的数据)。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在使用中,照相机系统可被配置为“看见”远处的(例如,av前方的远至1公里以上的)对象。因此,照相机系统可以具有为了感知遥远的对象而优化的诸如传感器和透镜等的特征。
[0098]
另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出504d。tld数据经常采用图像数据的形式(例如,诸如raw、jpeg、png等的图像数据格式的数据)。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得av 100有权访问这些对象所提供的所有相关导航信息。例如,tld系统的视角可以为约120度以上。
[0099]
在一些实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至av 100的其它系统(例如,提供至如图4所示的规划模块404),或者采用相同类型(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的单个组合输出或多个组合输出的形式,可以将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:将输出组合,之后将一个或多个数据处理步骤应用到组合输出。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
[0100]
图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。
[0101]
图7示出操作中的lidar系统602。在该图所示的情境中,av 100接收采用图像702的形式的照相机系统输出504c和采用lidar数据点704的形式的lidar系统输出504a。在使用中,av 100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704中也识别出在图像702中识别出的物理对象706。这样,av 100基于数据点704的轮廓和密度来感知物理对象的边界。
[0102]
图8示出lidar系统602的操作的附加细节。如上所述,av 100基于lidar系统602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将以一致的方式反射从lidar系统602发射的光804a-804d。换句话说,由于lidar系统602使用一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到lidar系统602。在av 100在地面802上行驶时,在没有东西阻挡道路的情况下,lidar系统602将继续检测到由下一个有效地面点806反射的光。然而,如果对象808阻挡道路,则lidar系统602所发射的光804e-804f将以不符合预期一致方式的方式从点810a-810b反射。根据该信息,av 100可以确定为存在对象808。
[0103]
路径规划
[0104]
图9示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。通常,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目的地或最终地点)的路线902。路线902通常由一个或多个路段定义。例如,路段是指要行驶经过街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分的距离。在一些示例中,例如,如果av 100是诸如四轮驱动(4wd)或全轮驱动(awd)小汽车、suv或小型卡车等的越野运载工具,则路线902包括诸如未铺面道路或开阔田野等的“越野”路段。
[0105]
除路线902之外,规划模块还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来驶过这些路段。例如,如果路线902包括多车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中av 100可以使用该轨迹规划数据910以例如基于出口是否临近、多个车道中的一个以上的车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素,来从这多个车道中选择某车道。同样地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将av 100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。
[0106]
在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据914、当前地点数据916(例如,图4所示的av位置418)、目的地数据918(例如,用于图4所示的目的地412)和对象数据920(例如,如图4所示的感知模块402所感知的经分类的对象416)。在一些实施例中,数据库数据914包括规划时所使用的规则。规则是使用形式
语言(例如,使用布尔逻辑)指定的。在av 100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于av 100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
[0107]
图10示出在路径规划中(例如,由规划模块404(图4))使用的有向图1000。通常,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。
[0108]
在实施例中,有向图1000具有表示起点1002和终点1004之间的av 100可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括供该有向图中的表示av 100的视场中的物理地点的一部分用的一些高粒度信息。
[0109]
节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能驶过的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示av 100的视场中的物理对象,例如其它汽车、行人、或av 100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
[0110]
节点1006a-1006d通过边缘1010a-1010c连接。如果两个节点1006a-1006b通过边缘1010a连接,则av 100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(当提到av100在节点之间行驶时,意味着av 100在由相应节点表示的两个物理位置之间行驶。)边缘1010a-1010c通常是双向的,从某种意义上,av 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边缘1010a-1010c是单向的,从某种意义上,av 100可以从第一节点行驶到第二节点,然而av 100不能从第二节点行驶到第一节点。在边缘1010a-1010c表示例如单向街道、街道、道路或公路的单独车道、或者由于法律或物理约束因而仅能沿一个方向驶过的其它特征的情况下,边缘1010a-1010c是单向的。
[0111]
在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边缘组成的路径1012。
[0112]
边缘1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在av 100选择该边缘的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边缘1010a所表示的物理距离是另一边缘1010b所表示的物理距离的两倍,则第一边缘1010a的关联成本1014a可以是第二边缘1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边缘1010a-1010b可以表示
相同的物理距离,但例如由于道路条件、预期天气等,因此一个边缘1010a与另一边缘1010b相比需要更多的燃料。
[0113]
在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,在将边缘的各个成本相加到一起时具有最小总成本的路径。
[0114]
自主运载工具控制
[0115]
图11示出(例如,如图4所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而工作,该控制器1102例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、rom 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储器随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器1102的操作。
[0116]
在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4所示的)规划模块404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合av 100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合av100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如av的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出1104的角度。
[0117]
在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果av 100遇到诸如山丘等的干扰1110,则av 100的测量速率1112降至低于期望输出速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和av 100的传感器可测量的其它输出。
[0118]
在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果av 100的传感器检测到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著减速。
[0119]
图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器1202根据例如由控制器1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/制动器1206进行加速或进行减速。
[0120]
控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反馈,来指示方向盘控制器1210调整转向角致动器1212的位置。
[0121]
控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器1212的多个输入。规划模块404提供控制器1102例如选择av 100开始操作时的航向并确定在av 100到达十字交叉路口时驶过哪个道路路段所使用的信息。定位模块408例如将描述av 100的当
前地点的信息提供至控制器1102,使得控制器1102可以确定av 100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期所处的地点。在实施例中,控制器1102接收来自其它输入1214的信息,例如从数据库、计算机网络等接收到的信息。
[0122]
多个lidar装置
[0123]
图13示出具有两个lidar装置1302、1304的av 1300。av 1300是图1所示av 100的示例。lidar装置1302、1304是图5所示的lidar系统502a的示例。如以上针对图5-8更详细地所述,lidar装置发射如下的光(例如,紫外、红外或激光光谱中的电磁辐射、或者任何其它种类的电磁辐射),该光照射lidar装置附近的物理对象(例如,其它运载工具、行人、街道标志等)上的点,并被反射回到该lidar装置,从而检测(例如,观察)被照射点。(由于光传播的速度如此快,因此照射点的时间和检测到点的时间是无法区分的。)例如,如图13所示,各lidar装置1302、1304发射光1306、1308,这些光从附近运载工具1310(例如,在与av 1300相同的道路上的运载工具)被反射。尽管这里示出两个lidar装置1302、1304,但本文所述的技术也可应用于三个或更多个lidar装置的结构。
[0124]
两个lidar装置1302、1304各自位于av 1300上的不同位置。在实施例中,一个装置1302其中之一附接(例如,焊接、粘附或安装)于一个位置1312,并且另一装置1304附接于另一位置1314。尽管一些附接技术(例如,焊接)是半永久的、并且在av 1300的寿命期间不太可能改变,但其它附接技术(例如,磁附接)使得能够将lidar装置1302、1304移除(例如,以供维护或更换)或者在不同的时间移动到不同的位置。
[0125]
由于两个lidar装置1302、1304位于不同的位置,因此整合这两个装置所生成的数据以供av 1300使用。如以上针对图5所述,lidar数据采用已知为点云的3d或2d点的集合的形式。点云中的各点表示环境190中的对象(例如,附近运载工具1310)上的被照射点,并且具有定义其在该云中的位置的一组坐标。当检测到被照射点时,如以下针对图14更详细地所述,lidar装置将该点指派到点云中的一组坐标。此外,当同时使用多个lidar装置时,各lidar装置可以具有自己的坐标系。因而,为了使用来自这两个lidar装置的数据,整合坐标系。用以整合坐标系的一个技术包括使用共同参考点。例如,各点的坐标可以基于这些点相对于av 1300上的特定位置1320的位置来定义。这样,当一个lidar装置1302检测到点1316并且另一lidar装置1304检测到点1318时,两个点1316、1318将具有相对于av 1300上的相同位置1320定义的坐标。
[0126]
如果如图13所示、两个点1316、1318对应于相对于av 1300的大致相同位置,则两个点1316、1318将具有大致相同的坐标。换句话说,两个点1316、1318将位于点云中的相同位置,该相同位置例如包括相对于用作共同参考点的位置1320的相同距离1324。由于两个lidar装置1302和1304的相对空间位置的差异,因此两个点1316和1318从两个不同的有利点描述相同的位置。
[0127]
图13中作为共同参考点示出的示例性位置1320是后轴1322的中心的点,但是可以使用av 1300上的任何位置。如以下更详细地所述,执行坐标系的整合,以合并各lidar装置1302、1304所生成的点云。
[0128]
图14更详细地示出lidar装置1302、1304。如上所述,各lidar装置在av 1300上具有不同的物理位置1312、1314。在实施例中,一个lidar装置1302的起始角1402不同于另一lidar装置1304的起始角1404。在使用中,lidar装置快速自旋,以照射lidar装置的整个视
野中的对象(例如,360度视野中的所有对象)。如以上针对图6所述,lidar装置通常具有一个或多个发光器606。为了图14所示的示例的目的,lidar装置1302、1304将被描述为具有一个发光器,但这里所述的技术适用于具有多个发光器的lidar装置。
[0129]
基于lidar装置1302、1304的发光器1406、1408的位置来定义起始角1402、1404。在实施例中,第一lidar装置1302被配置成起始角1402为0度,即,当发光器1406位于0度时,lidar装置定义完整转动完成和新完整转动开始。第二lidar装置1304被配置成起始角1404为90度,即,当发光器1408位于90度时,lidar装置定义完整转动完成和新完整转动开始。在实施例中,当相应lidar装置1302、1304的电源接通时,发光器1406、1408返回各自的起始角1402、1404。
[0130]
在实施例中,一个lidar装置1302被配置成与另一lidar装置1304的频率1412不同的频率1410。lidar装置的频率与其转动速率相对应。例如,如果lidar装置的频率为10赫兹,则lidar装置的发光器每秒完成十次完整转动。换句话说,由于周期是频率的倒数,因此lidar装置的周期是1/10秒。
[0131]
由于lidar装置1302、1304可以具有不同的起始角1402、1404和/或不同的频率1410、1412,因此lidar装置1302、1304通常将在不同的时间照射任何特定点。例如,在第一lidar装置1302(例如,以其频率1410)转动时,第一lidar装置1302将在第一时间1416照射特定位置1414处的点,而在第二lidar装置1304(例如,以其频率1412)转动时,第二lidar装置1304将在第二时间1418照射该位置1414处的点。
[0132]
照射点的时间取决于起始角1402、1404和起始频率1410、1412。在实施例中,多个lidar装置已有意将起始角错开。在一个lidar装置检测到点之后,在该lidar装置的转动周期完成之前,(一个或多个)其它lidar装置将在相同位置检测到另一点。这样,可以以更好的时间精度观察对象的运动。
[0133]
在实施例中,如果起始频率1410、1412这两者都为10赫兹、一个起始角1402为0度、并且另一起始角1404为90度,则第一lidar装置1302将在第二lidar装置1304之前或之后的1/40秒照射特定位置1414处的点。这是因为第二lidar装置1304在从第一lidar装置1302开始的转动的四分之一(90除以360)处开始完整转动,并且一个转动持续1/10秒。换句话说,如果lidar装置1302、1304的频率相同,则通过将周期乘以以度为单位的角度差再除以360来计算差。还可以使用其它角度单位(例如,弧度)。
[0134]
在实施例中,如果第一lidar装置1302的频率1410是10赫兹、第二lidar装置1304的频率1412是20赫兹、并且起始角1402和1404这两者相同(例如,这两者都为0度),则由于第二lidar装置1304的频率1412是第一lidar装置1302的频率1410的两倍高,因此第二lidar装置1304将以相当于第一lidar装置1302的两倍的频率照射特定位置1414。换句话说,到第一lidar装置1302完成了完整转动并照射位置1414处的点时,第二lidar装置照射了该位置1414处的点两次。
[0135]
改变频率和/或起始角对av 1300感知其周围环境190的能力有益。例如,当使用多个起始角时,由于在转动的时间段期间、环境190中的某位置处的点将被照射多次,因此与使用仅一个lidar装置的情况相比,多个lidar装置更频繁地检测到该位置处的点。相比之下,如果使用相同的起始角和频率,则多个lidar装置将在大致相同的时间检测到相同位置的点。响应于环境190的快速变化(例如,高速、高密度交通或行人人群),更频繁地检测相同
位置处的点的能力使得av 1300能够更精确地感知环境190的变化(例如,对象的移动)。此外,由于使用不同位置处的多个lidar装置,因此如果一个lidar装置被遮挡(例如,通过中间对象遮挡另一关注对象),则其它lidar装置可能未被遮挡,并且可以检测该位置或关注对象处的点。例如,中间对象可以是另一运载工具,并且关注对象可以是在该另一运载工具的后方步行的行人;检测行人的移动对于确保av 1300将避开穿过行人的路径而言可能是重要的。
[0136]
如上所述,如果各lidar装置1302、1304生成自己的点云,则根据以下所述的技术整合两个点云1316和1318,例如以供由感知模块402(图4)使用。整合点云包括来自这两个点云1316和1318的点。在实施例中,lidar装置1302和1304各自一开始分别生成点云1316和1318,就将两个点云1316和1318整合或合并或联合或混合在一起。在实施例中,在lidar装置1302和1304分别完成生成点云1316和1318之后,合并两个点云1316和1318。用以整合点云的一个技术是将各个点的坐标归一化到共同参考点,例如av 1300上的特定位置1320。以这种方式,使用特定位置1320作为原点(例如,笛卡尔x-y-z轴上的坐标0,0,0、或者使用如以下更详细地所述的极坐标定义的原点)来定义整合点云(有时称为合并点云)。来自两个点云1316和1318的点通过将坐标归一化到共同原点而被转换为整合点云。换句话说,如果在环境190中的大致相同位置检测到来自一个云的一个点和来自另一云的另一点,则改变这些点的坐标,使得这些点具有大致相同的坐标,因而在整合点云中占据大致相同的位置。
[0137]
用以整合点云的一个技术涉及:将各点与时间戳(例如,检测到点的时间)相关联,并且使用这些时间戳来确定来自不同点云的点如何在空间上彼此相关。在实施例中,各lidar装置1302、1304在检测到各点时,向该点指派时间戳。通常,点的时间戳用于在具有不同的起始角和/或不同的频率的两个或更多个lidar之间协调。一个lidar可以在时间t=x观察与给定位置相对应的点,而第二lidar可以在时间t=y观察与相同位置相对应的点。可以基于与起始点和频率有关的信息来评价x和y之间的关系。
[0138]
如图15所示,在实施例中,lidar装置1302同时检测位于彼此附近的点的集合。同时检测到的位于彼此附近的点的集合被称为块1502。由于典型的lidar装置以脉冲形式发射光,因此块1502表示在lidar装置的发光器的特定脉冲上检测到的点。lidar装置的发光器发射光的时间用于确定要指派给块1502的点的时间戳。存在指派给特定块中的二极管的第一次发射的时间戳。可以基于固有的lidar性质(例如,方位角)来计算来自块中的其它二极管的后续发射。在实施例中,向块1502的各点指派偏移,例如以补偿块1502的点之间的位置差异。在实施例中,该偏移是由制造商在制造lidar期间预先确定的lidar的机械性质。各块1502的空间位置是基于在检测到块1502时的lidar装置1302的激光发光器的角度(有时称为方位角或水平面上的角度)已知的。
[0139]
在示例情景中,lidar装置1302其中之一在第一时间1512检测点块1502,并且另一lidar装置1304在第二时间1514检测点块1504。例如,如果lidar装置1302、1304具有相同的频率10赫兹、但起始角相差180
°
,则第一时间1512是t1=100ms并且第二时间1514是t2=150ms。在该示例情景中,两个块1502、1504表示在对象上的相同位置检测到的点。由于两个lidar装置1302、1304在av 1300上的不同位置,因此将以相对于相应的检测lidar装置1302、1304不同的角度(方位角)检测到两个块1502、1504。由于块1502、1504具有不同的检测时间和不同的方位角,因此使用附加处理来确定为块1502、1504中的点是相同位置。
[0140]
继续同一示例情景,感知模块402(图4)接收块1502、1504、(例如,基于第一时间1512和第二时间1514的)时间戳、频率和起始角,以生成整合点云信息1506(例如,包含来自两个块1502、1504的点)。整合点云信息1506中的所有点的坐标是相对于相同原点(例如,图13所示的位置1320)表示的。
[0141]
作为所进行的计算类型的示例,感知模块402使用第一lidar装置1302的起始角来确定由lidar装置检测到的第一点块(例如,在t=0检测到的点块)的位置。例如,如果第一lidar装置的起始角对应于发光器的位置(0度),则感知模块402可以确定为第一块点中的点在与0度相对应的位置,并且使用lidar装置1302的已知位置来计算相对于整合点云的原点的坐标。如果点具有指示该点是在t=50ms处检测到的时间戳、并且频率为10赫兹,则由于发光器需要50ms来完成转动的一半,因此感知模块402可以确定为该点是在发光器处于180度的角度(方位角)时检测到的。可以使用来自另一lidar装置1304的点来进行类似的计算。
[0142]
图16示出用于生成整合点云1600的系统的组件。各lidar装置1602、1612具有处理器1604、1614(例如,微处理器、微控制器),该处理器1604、1614各自是利用相应的起始角1606、1616和频率1608、1618配置成的。在使用中,lidar装置1602、1612生成处理器1626所接收到的点云1622、1624(例如,图4所示的感知模块402的实现或组件)。点云1622、1624的点与时间戳数据1628、1630相关联。处理器1626使用起始角1606、1616、频率1608、1618和时间戳数据1628、1630来生成整合点云1600。在实施例中,lidar装置1602、1612是同步的,例如根据共同时间基准而工作以及/或者具有同步时钟。在实施例中,处理器1604、1614共享共同时钟1632,使得这些处理器的时间戳是从共同参考点生成的。换句话说,由lidar装置其中之一生成的具有时间戳t=x的点将在与由另一同步的(一个或多个)lidar装置生成的具有时间戳t=x的点相同的时间被检测到。在实施例中,处理器1626配置起始角1606、1616和/或频率1608、1618。
[0143]
图17a和17b示出采用极体素1702a-d的集合的形式的整合点云1700的表示。在实施例中,由多个lidar装置检测到的点被建模为极体素,并且由lidar装置检测到的点被放置在极体素内的相应坐标处。体素(有时称为体元素)是表示三维空间的数据结构中的体的单位。与用于笛卡尔体素的笛卡尔坐标相比,极体素1702a内的点1704由极坐标定义。极坐标具有方位角(有时称为水平角)、高度(有时称为垂直角)和半径这三个值。图17a和17b所示的点504具有相对于如下原点所定义的方位角1706和高度1708,该原点(与上述示例一样)是av 1300的后轴中心处的位置1320。类似地,该点的半径1710是从位置1320起的距离。在实施例中,表示极体素1702a-d的数据结构由感知模块402(图4)维持,并且是图16所示的整合点云1600的实现。
[0144]
使用极体素使得感知模块402(或其它数据处理系统)能够分割整合点云,例如以提高处理效率。在实施例中,相对频繁地更新极体素1702a-b中的一些极体素(即,将来自lidar装置1302、1304的点并入极体素1702a-b中),而相对不频繁地更新其它极体素1702c-d中的一些极体素。在实施例中,更新极体素1702a-d涉及改变极体素a-d的分辨率、即改变针对各体素捕获到的3d空间的体积。这样,相对频繁地(例如,每次转动一次)更新表示关注区域(例如,其它运载工具、行人和其它关注对象有可能存在于的区域)的极体素,以确保极体素的数据是当前的,而相对不频繁地(例如,每五次转动一次)更新其它极体素,以节省数
据处理资源。可以基于运载工具的运动以及诸如天气、交通、行人等的环境条件来调整极体素的特定更新频率。在实施例中,更新极体素中的一些极体素的频率是基于历史数据在不同情景中对关注区域进行预先确定的分类。该分类可以基于经典或机器学习技术。例如,机器学习模型可以确定为行人交通拥挤的区域中的最重要的关注区域可能在运载工具的前方。因此,最频繁地更新用于量化运载工具前方的环境190的一部分的极体素。在实施例中,极体素1702a-d可以基于各种因素而具有不同的分辨率。例如,用于量化运载工具前方的环境190的一部分的极体素中的一些极体素可以具有最大分辨率(即,在极体素的大小与分辨率成反比时为最小大小),以确保运载工具前方的感知系统的高保真对象检测、分类和跟踪。
[0145]
在实施例中,极体素1702a-d各自的体积根据av 1300的环境而变化。例如,极体素可以相对较小,这对应于相对较高的分辨率并且需要更多的处理资源,或者相对较大,这对应于相对较低的分辨率并且需要较少的处理资源。这样,体素的大小(例如,分辨率)可以适应于av 1300的环境。例如,如果av 1300在密集环境(例如,城市街道)中,则体素的分辨率被配置得更高。相比之下,如果av 1300在稀疏环境(例如,州际公路)中,则体素的分辨率被配置得更低。
[0146]
在实施例中,极体素1702a-d是基于与各个极体素相关联的一个或多个度量来更新的。一个类型的度量是上次更新极体素的时间。在实施例中,极体素1702a-d是以错开方式更新的,在该错开方式中,这些体素中的一些体素是在与更新其它体素不同的时间更新的。更新特定极体素的时间可用于确定该极体素是否应该得到更新。另一度量是使用哪些lidar装置来更新极体素。在实施例中,使用来自两个lidar装置1302和1304的数据来更新极体素1702a-d中的一些极体素,而使用来自lidar装置1302和1304中的仅一个的数据来更新极体素1702a-d中的一些极体素。另一体素度量是极体素的点的密度。如果特定极体素的点具有高密度、这指示该体素有可能包含物理对象,则可能更频繁地更新该体素,以确保与该对象有关的当前信息。在实施例中,特定极体素的点的密度是(例如,由感知模块404)定期测量的。在本实施例中,如果密度不满足阈值,则对体素的更新频率降低。在实施例中,一些其它体素度量包括对特定极体素的上次更新的时间戳、正在更新特定给定极体素的lidar的数量、特定极体素中的点的扩散的协方差、以及附接至运载工具的车顶的lidar的数量与附接至运载工具的车身的lidar的数量之比。
[0147]
图18是表示用于基于点云信息来操作运载工具的处理1800的流程图。在实施例中,运载工具是图13所示的av 1300,并且处理1800由诸如图16所示的处理器1626等的处理器或者图4所示的感知模块402执行。
[0148]
处理器接收(1802)来自第一lidar装置的第一lidar点云信息和来自第二lidar装置的第二lidar点云信息。在实施例中,lidar装置是图13所示的lidar装置1302、1304,并且lidar点云信息是图16所示的点云1622、1624。第一lidar装置和第二lidar装置分别被配置为检测从接近运载工具的对象反射的光,并且基于所检测到的光来生成lidar点云信息。第一lidar装置处于运载工具的第一位置,且被配置成第一起始角和第一频率,并且第二lidar装置处于运载工具的第二位置,且被配置成第二起始角和第二频率。在实施例中,第一频率不同于第二频率。在实施例中,第一lidar装置被配置成与第二起始角不同的第一起始角。在实施例中,lidar装置是同步的,例如根据共同时间基准而工作以及/或者具有同步
时钟。
[0149]
处理器接收(1804)与第一lidar点云信息相关联的第一时间戳信息和与第二lidar点云信息相关联的第二时间戳信息。在实施例中,时间戳信息是图16所示的时间戳数据1628、1630。
[0150]
在实施例中,lidar所观察的各点均与时间戳相关联。第一时间戳信息表示第一时间,其中第一时间是检测到第一lidar点云信息的第一点的时间,并且第二时间戳信息表示第二时间,其中第二时间是检测到第二lidar点云信息的第二点的时间。例如,检测到第一点的时间是基于以特定于第一点的第一方位角和第一偏移值检测到的点块的激光发射时间。在实施例中,处理器还根据第一起始角、第一频率、第二起始角和第二频率来确定第一时间和第二时间之间的对应关系。
[0151]
处理器根据合并第一和第二lidar点云信息来生成(1806)第三点云信息。以上针对图13-15说明了用于合并点云信息的技术。第三点云信息的生成是根据第一和第二lidar点云信息、第一和第二时间戳信息、第一起始角、第一频率、第二起始角和第二频率进行的。在实施例中,第三点云信息的生成包括基于第一位置和第二位置来处理第一lidar点云信息和第二lidar点云信息。
[0152]
在实施例中,处理器确定为第一lidar点云信息的第一检测光点和第二lidar点云信息的第二检测光点对应于相对于运载工具的相同位置(例如,相对于运载工具的固定位置(诸如后轴中心等)的以相同方位角和高度的距离)。根据该确定,处理器生成包括第一和第二检测光点的组合lidar点云信息。
[0153]
在实施例中,处理器生成表示根据极坐标定向的体素的数据结构(例如,图17a-17b所示的整合点云1700),其中将第一lidar点云信息或第二lidar点云信息的各个点指派至数据结构的体素其中之一。在实施例中,这包括:根据预定分辨率来生成数据结构的一定量的体素。在实施例中,这还包括:接收多个体素度量,并且基于体素度量来合并第一点云信息和第二点云信息以生成第三点云信息。在实施例中,根据接近运载工具的对象的数量来生成数据结构的一定量的体素。
[0154]
图19是表示用于基于点云信息来操作运载工具的处理1900的流程图。在实施例中,运载工具是图13所示的av 1300,并且处理1900由诸如图16所示的处理器1626等的处理器或者图4所示的感知模块402执行。
[0155]
处理器将第一lidar装置配置(1902)成从第一起始角以第一频率自旋。在实现中,第一lidar装置是图13所示的lidar装置1302,第一频率是图14所示的频率1410,并且第一起始角是图14所示的起始角1402。
[0156]
处理器将第二lidar装置配置(1904)成从与第一起始角不同的第二起始角以第二频率自旋。在实现中,第二lidar装置是图13所示的lidar装置1304,第一频率是图14所示的频率1412,并且第一起始角是图14所示的起始角1404。
[0157]
处理器从第一lidar装置接收(1906)表示第一检测光点的信息和表示照射第一点的时间的第一时间戳。处理器从第二lidar装置接收(1908)表示第二检测光点的信息和表示照射第二点的时间的第二时间戳。第一时间戳的时间和第二时间戳的时间之间的差小于第一频率的倒数。换句话说,时间戳指示:在第一lidar装置自检测到第一检测光点起完成完整转动之前,检测到第二检测光点。
[0158]
处理器确定为(1910)第一检测光点和第二检测光点对应于相对于运载工具的相同位置。以上例如针对图15说明了用于进行该确定的技术。作为响应,处理器生成(1912)包括相对于运载工具的固定原点的相同坐标处的第一检测光点和第二检测光点的lidar点云信息。在实施例中,所生成的lidar点云信息是图16所示的整合点云信息1600的示例。然后,例如通过运载工具的控制模块与处理器1626或感知模块404进行通信,根据lidar点云信息来操作(1914)运载工具。
[0159]
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以授权权利要求的具体形式从本技术授权的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1