用于运载工具的方法

文档序号:1844038 发布日期:2021-11-16 浏览:9次 >En<

阅读说明:本技术 用于运载工具的方法 (Method for a vehicle ) 是由 D·S·叶尔绍夫 M·萨普安 于 2021-05-12 设计创作,主要内容包括:本发明涉及用于运载工具的方法。用于在环境中操作运载工具的方法包括从运载工具的光检测和测距(LiDAR)接收光LiDAR数据。LiDAR数据表示位于环境中的对象。基于语义地图生成动态占用栅格(DOG)。DOG包括多个栅格单元。各栅格单元表示环境的一部分。针对各栅格单元,基于LiDAR数据生成概率密度函数。概率密度函数表示环境的由栅格单元表示的部分被对象占用的概率。基于概率密度函数确定为运载工具与对象的碰撞时间(TTC)小于阈值之间。响应于确定为TTC小于阈值时间,运载工具的控制电路操作运载工具以避免运载工具与对象碰撞。(The present invention relates to a method for a vehicle. A method for operating a vehicle in an environment includes receiving light detection and ranging (LiDAR) data from a light of the vehicle. LiDAR data represents objects located in an environment. A Dynamic Occupancy Grid (DOG) is generated based on the semantic map. The DOG includes a plurality of grid cells. Each grid cell represents a portion of the environment. For each grid cell, a probability density function is generated based on the LiDAR data. The probability density function represents the probability that the portion of the environment represented by the grid cell is occupied by the object. A Time To Collision (TTC) of the vehicle with the object is determined to be less than between threshold values based on the probability density function. In response to determining that the TTC is less than the threshold time, the control circuitry of the vehicle operates the vehicle to avoid a collision of the vehicle with the object.)

用于运载工具的方法

技术领域

本说明书通常涉及运载工具的操作,并且具体涉及使用动态占用栅格的运载工具操作。

背景技术

运载工具从初始地点到最终目的地的操作经常需要用户或运载工具的决策系统选择从初始地点到最终目的地的穿过路网的路线。该路线可能涉及满足诸如不超过最大驾驶时间等的目标。复杂的路线可能需要许多决定,这样使自主驾驶的传统算法变得不切实际。

发明内容

用于在环境中操作运载工具的方法包括使用运载工具的一个或多个处理器来从运载工具的一个或多个光检测和测距(LiDAR)接收LiDAR数据。LiDAR数据表示位于环境中的一个或多个对象。一个或多个处理器基于环境的语义地图来生成动态占用栅格(DOG)。DOG包括多个栅格单元。各栅格单元表示环境的一部分。对于各栅格单元,一个或多个处理器基于LiDAR数据来生成概率密度函数。概率密度函数表示环境的由栅格单元表示的部分被对象占用的第一概率。一个或多个处理器基于概率密度函数确定为运载工具和对象的碰撞时间(TTC)小于阈值时间。响应于确定为TTC小于阈值时间,运载工具的控制电路操作运载工具以避免运载工具和对象的碰撞。

在另一方面,运载工具的一个或多个处理器生成表示沿着运载工具的轨迹的可驾驶区域的动态占用图。动态占用图包括至少两个节点和连接这两个节点的边。这两个节点表示可驾驶区域的两个相邻时空地点。一个或多个处理器基于从运载工具的一个或多个LiDAR接收到的LiDAR数据来生成多个粒子的粒子分布函数。多个粒子表示可驾驶区域中的至少一个对象。动态占用图的边表示至少一个对象在可驾驶区域的两个相邻时空地点之间的运动。一个或多个处理器基于粒子分布函数来确定对象相对于运载工具的速度。一个或多个处理器基于粒子分布函数来确定运载工具和至少一个对象的TTC。响应于确定为TTC小于阈值时间,一个或多个处理器将碰撞警告发送至运载工具的控制电路,以避免运载工具和至少一个对象的碰撞。

在另一方面,运载工具的一个或多个处理器从运载工具的一个或多个传感器接收传感器数据。传感器数据具有时延(latency)。响应于确定为时延小于阈值时延,一个或多个处理器对传感器数据执行循环冗余校验。响应于确定为传感器数据通过了循环冗余校验,一个或多个处理器基于传感器数据使用一个或多个传感器的逆传感器模型来针对动态占用栅格的各栅格单元确定离散的二进制占用概率。占用概率表示运载工具正运行的环境的一部分是否被对象占用。一个或多个处理器使用运动学函数基于占用概率来确定粒子密度函数。响应于确定为粒子密度函数指示运载工具和对象之间的TTC小于阈值TTC,一个或多个处理器将减速请求发送至运载工具的控制电路。

在另一方面,在环境中运行的运载工具的一个或多个处理器基于从运载工具的LiDAR接收到的第一LiDAR数据来生成DOG。该一个或多个处理器所执行的粒子滤波器从DOG中提取波形。该波形包括LiDAR数据的强度随LiDAR的光的相位的变化。一个或多个处理器将该波形与在从一个或多个对象反射的历史LiDAR数据中提取的波形的库进行匹配,以识别为第一LiDAR数据是从一个或多个对象中的特定对象反射的。一个或多个处理器基于在接收到第一LiDAR数据之后从运载工具的LiDAR接收到的第二LiDAR数据来更新波形。一个或多个处理器基于更新后的波形来确定运载工具和特定对象的距离变化率。运载工具的控制电路基于运载工具和特定对象的距离变化率来操作运载工具以避免与特定对象发生碰撞。

一种用于运载工具的方法,包括:由在环境中运行的运载工具的一个或多个处理器从所述运载工具的一个或多个光检测和测距即LiDAR接收LiDAR数据,所述LiDAR数据表示位于所述环境中的一个或多个对象;由所述一个或多个处理器基于所述环境的语义地图来生成动态占用栅格即DOG,所述DOG包括多个栅格单元,所述多个栅格单元中的各栅格单元表示所述环境的一部分;针对所述多个栅格单元中的各栅格单元,由所述一个或多个处理器基于所述LiDAR数据生成概率密度函数,所述概率密度函数表示所述环境的由该栅格单元表示的部分被所述一个或多个对象中的对象占用的概率;由所述一个或多个处理器基于所述概率密度函数确定为所述运载工具和该对象的碰撞时间即TTC小于阈值时间;以及响应于确定为所述TTC小于阈值时间,由所述一个或多个处理器操作所述运载工具以避免该运载工具与该对象碰撞。

在上述方法中,所述LiDAR数据包括噪声,所述方法还包括:由所述一个或多个处理器确定为所述多个栅格单元中的特定栅格单元的概率大于零;以及由所述一个或多个处理器确定为所述特定栅格单元的相邻栅格单元的概率为零。

在上述方法中,所述LiDAR数据包括噪声,所述方法还包括由所述一个或多个处理器将所述特定栅格单元的第一概率调整为零。

在上述方法中,生成所述概率密度函数包括由所述一个或多个处理器使用傅立叶变换将所述LiDAR数据变换为所述环境的由所述栅格单元表示的所述部分被所述对象占用的概率,所述LiDAR数据是在时域中测量的,并且所述多个栅格单元是在空间域中生成的。

在上述方法中,生成所述概率密度函数包括由所述一个或多个处理器使用贝叶斯滤波器递归地将所述LiDAR数据与所述环境的由所述栅格单元表示的部分被对象占用的后验概率进行组合。

在上述方法中,生成所述动态占用栅格包括使用笛卡尔坐标将所述环境的语义地图分离为所述多个栅格单元。

在上述方法中,生成所述动态占用栅格包括基于柱坐标将所述环境的语义地图分离为所述多个栅格单元。

在上述方法中,基于所述环境的语义地图的规则采样来生成所述动态占用栅格。

在上述方法中,基于所述环境的语义地图的不规则采样来生成所述动态占用栅格。

一种用于运载工具的方法,包括:由运载工具的一个或多个处理器生成表示沿着所述运载工具的轨迹的可驾驶区域的动态占用图,所述动态占用图包括至少两个节点和连接所述两个节点的边,所述两个节点表示所述可驾驶区域的两个相邻时空地点;由所述一个或多个处理器基于从所述运载工具的一个或多个LiDAR接收的LiDAR数据来生成多个粒子的粒子分布函数,所述多个粒子表示所述可驾驶区域中的至少一个对象,所述动态占用图的边表示所述至少一个对象在所述可驾驶区域的两个相邻时空地点之间的运动;由所述一个或多个处理器基于所述粒子分布函数来生成所述对象相对于所述运载工具的速度;由所述一个或多个处理器基于所述粒子分布函数来确定所述运载工具与所述至少一个对象的碰撞时间;以及响应于确定为所述碰撞时间小于阈值时间,由所述一个或多个处理器向所述运载工具的控制电路发送碰撞警告以避免该运载工具与该至少一个对象碰撞。

在上述方法中,根据所述运载工具的坐标系来生成所述动态占用图。

在上述方法中,生成所述粒子分布函数包括由所述一个或多个处理器确定所述至少一个对象占用所述可驾驶区域的两个相邻时空地点其中至少之一的概率。

在上述方法中,生成所述粒子分布函数包括由所述一个或多个处理器确定所述可驾驶区域的两个相邻时空地点其中至少之一中的每单位体积的多个粒子的数量。

在上述方法中,所述一个或多个处理器经由所述运载工具的仲裁器电路向所述控制电路发送所述碰撞警告,所述方法还包括由所述一个或多个处理器周期性地向所述仲裁器电路发送心跳信号。

在上述方法中,还包括由所述一个或多个处理器对照使用所述运载工具的一个或多个雷达所接收的雷达数据来验证所述对象相对于所述运载工具的速度。

在上述方法中,还包括由所述一个或多个处理器基于所述粒子分布函数来确定所述运载工具与所述至少一个对象的最小碰撞时间即最小TTC和平均TTC。

在上述方法中,还包括:由所述一个或多个处理器从所述控制电路接收控制数据,所述控制数据包括所述运载工具的方向盘的角度;以及由所述一个或多个处理器确定所述运载工具在所述可驾驶区域内的时空地点。

在上述方法中,所述控制数据还包括所述方向盘的角速度。

在上述方法中,生成所述动态占用图是基于所述运载工具在所述可驾驶区域内的时空地点。

在上述方法中,还包括:由所述一个或多个处理器基于所述LiDAR数据来确定所述至少两个节点中的节点的观测矢量,所述观测矢量包括所述可驾驶区域的两个相邻时空地点中的相应时空地点中的粒子的密度。

在上述方法中,所述观测矢量还包括相应时空地点中的粒子的速度分量和所述粒子分布函数的协方差。

在上述方法中,还包括由所述一个或多个处理器基于所述LiDAR数据来监视所述多个粒子通过所述动态占用图的流。

在上述方法中,还包括由所述一个或多个处理器基于所述粒子分布函数来确定所述动态占用图的各节点的状态。

在上述方法中,生成所述粒子分布函数包括由所述一个或多个处理器确定由所述粒子分布函数的参数定义的微分方程的解。

在上述方法中,由所述一个或多个处理器基于所述一个或多个LiDAR的模型来更新所述粒子分布函数。

在上述方法中,生成所述动态占用图包括由所述一个或多个处理器将所述LiDAR数据的一部分分配给所述至少两个节点,所述LiDAR数据的所述部分与所述对象相对应。

在上述方法中,生成所述粒子分布函数包括由所述一个或多个处理器将所述可驾驶区域的一部分被所述对象占用的概率调整为大于零。

在上述方法中,还包括由所述一个或多个处理器使用对所述LiDAR数据的递归贝叶斯分析来更新所述动态占用图。

一种用于运载工具的方法,包括:由运载工具的一个或多个处理器从运载工具的一个或多个传感器接收传感器数据,所述传感器数据具有时延;响应于确定为所述时延小于阈值时延,由所述一个或多个处理器对所述传感器数据执行循环冗余校验;响应于确定为所述传感器数据通过了所述循环冗余校验,由所述一个或多个处理器基于所述传感器数据使用所述一个或多个传感器的逆传感器模型来确定针对动态占用栅格(DOG)的各栅格单元的离散二进制占用概率,所述占用概率表示所述运载工具正运行的环境的一部分是否被对象占用;由所述一个或多个处理器使用运动学函数基于所述占用概率来确定粒子密度函数;以及响应于确定为所述粒子密度函数指示所述运载工具与所述对象之间的碰撞时间(TTC)小于阈值TTC,由所述一个或多个处理器向所述运载工具的控制电路发送减速请求。

在上述方法中,还包括由所述一个或多个处理器确定与所述动态占用栅格的各栅格单元的占用概率相对应的占用置信度。

在上述方法中,基于所述传感器数据的成熟度、闪烁、LiDAR回波强度和融合度量其中至少之一来确定所述占用置信度。

在上述方法中,还响应于所述占用置信度大于阈值占用置信度发送所述减速请求。

在上述方法中,所述减速请求的减速随着所述TTC减小而增大。

在上述方法中,所述减速请求的减速随着所述运载工具的速率增加而增加。

在上述方法中,所述减速请求的减速随着所述运载工具的速率增加而增加。

在上述方法中,所述DOG包括多个粒子,各粒子具有状态。

在上述方法中,所述状态包括各粒子在X方向上的第一速度、各粒子在Y方向上的第二速度以及各粒子在Z方向上的第三速度。

在上述方法中,所述状态还包括与所述第一速度、所述第二速度和所述第三速度相关联的协方差。

在上述方法中,所述状态还包括作用在所述粒子上的力。

在上述方法中,所述力表示所述运载工具沿着弯曲道路的运动。

在上述方法中,所述力表示所述运载工具的加速度。

在上述方法中,在多维相空间上确定所述粒子密度函数。

在上述方法中,在时空速度坐标系中确定所述粒子密度函数。

在上述方法中,还包括:响应于确定各栅格单元的占用概率,基于所述占用概率的变化来确定对象的运动。(如果立方体被占用,则将具有与立方体相关联的许多信号。如果立方体没有被占用,则将具有较少信号、仅噪声)。

在上述方法中,各栅格单元是二维多边形和三维多面体之一。

在上述方法中,还包括由所述一个或多个处理器使用对所述传感器数据的递归贝叶斯分析来更新所述动态占用栅格。

一种用于运载工具的方法,包括:由在环境中运行的运载工具的一个或多个处理器基于从运载工具的LIDAR接收的第一LIDAR数据,生成动态占用栅格(DOG);通过由所述一个或多个处理器执行的粒子滤波器从所述DOG提取波形,所述波形包括所述LiDAR数据的强度随所述LiDAR的光的相位的变化;由所述一个或多个处理器将所述波形与从一个或多个对象所反射的历史LiDAR数据提取的波形库进行匹配,以识别为所述第一LiDAR数据是从所述一个或多个对象中的特定对象反射的;由所述一个或多个处理器基于在接收到第一LiDAR数据之后从所述运载工具的LiDAR接收的第二LiDAR数据来更新波形;由所述一个或多个处理器基于所述波形来确定所述运载工具与所述特定对象的距离变化率;以及由所述运载工具的控制电路基于所述运载工具与所述特定对象的距离变化率来操作所述运载工具以避免与所述特定对象碰撞。

在上述方法中,生成所述DOG包括由所述一个或多个处理器使用贝叶斯滤波将从所述运载工具的传感器接收的传感器数据与第一LIDAR数据进行融合,以跨所述动态占用栅格的多个立方体表示所述特定对象。

在上述方法中,所述DOG的多个立方体中的各立方体包括所述特定对象的概率占用估计和速度估计。

在上述方法中,所述DOG表示所述环境的边界内的区域,并且所述多个立方体中的各立方体具有宽度。

在上述方法中,还包括由所述一个或多个处理器以所述宽度调整所述DOG内的所述环境的边界的表示,使得所述特定对象的表示位于所述动态占用栅格内。

在上述方法中,还包括由所述一个或多个处理器确定所述DOG上的概率占用分布和速度分布,而不考虑所述多个立方体之间的LIDAR数据的交互。

在上述方法中,所述LiDAR包括相控阵列,并且所述第一LiDAR数据包括时间、频率和相位信息。

在上述方法中,还包括由所述一个或多个处理器确定所述LiDAR数据的相移,其中,所述LiDAR数据是相位调制信号。

在上述方法中,还包括由所述粒子滤波器从所述DOG提取第二波形,所述第二波形包括所述LiDAR数据的强度随所述特定对象距所述运载工具的距离的变化。

在上述方法中,还包括由所述粒子滤波器从所述DOG提取第二波形,所述第二波形包括所述概率占用估计随所述特定对象距所述运载工具的距离的变化。

在上述方法中,还包括由所述粒子滤波器从所述DOG提取第二波形,所述第二波形包括所述概率占用估计随所述LiDAR的光的相位的变化。

在上述方法中,所述波形表示与第二对象交互的特定对象。

在上述方法中,将所述波形与所述波形库进行匹配包括:由所述一个或多个处理器从所述波形提取特征矢量;以及由所述一个或多个处理器使用机器学习模型从所述一个或多个对象识别所述特定对象。

在上述方法中,还包括由所述一个或多个处理器基于从所述历史LiDAR数据提取的特征矢量来训练机器学习模型。

在上述方法中,还包括:由所述一个或多个处理器确定在所述环境的由所述动态占用栅格的多个立方体中的特定立方体表示的部分被所述特定对象占用的情况下与所述特定立方体相对应的特定LiDAR数据的强度大于阈值强度的第一条件概率。

在上述方法中,还包括:由所述一个或多个处理器确定在所述环境的由所述DOG的多个立方体中的特定立方体表示的部分不具有所述特定对象的情况下与所述特定立方体相对应的特定LiDAR数据的强度大于阈值强度的第二条件概率。

在上述方法中,还包括:由所述一个或多个处理器基于所述第一条件概率和所述第二条件概率确定为所述环境的由所述特定立方体表示的部分被所述特定对象占用。

在上述方法中,所述DOG还基于所述环境的语义地图的不规则采样来生成。

一种自动运载工具,包括:一个或多个计算机处理器;以及一个或多个非暂时性存储介质,其存储在由所述一个或多个计算机处理器执行时使得进行上述方面中的任一方面的方法的指令。

一个或多个非暂时性存储介质,其存储在由一个或多个计算装置执行时使得进行上述方面中的任一方面的方法的指令。

一种用于运载工具的方法,包括进行涉及指令的机器执行的操作,所述指令在由一个或多个计算装置执行时使得进行上述方面中的任一方面的方法,其中,所述机器执行的操作是发送所述指令、接收所述指令、存储所述指令、以及执行所述指令其中至少之一。

这些和其它方面、特征和实现可被表示为方法、设备、系统、组件、程序产品、用于进行功能的方法或步骤以及其它方式。

从以下的包括权利要求书的说明书,这些和其它方面、特征和实现将变得明显。

附图说明

图1是例示根据一个或多个实施例的具有自主能力的自主运载工具(AV)的示例的框图。

图2是例示根据一个或多个实施例的示例“云”计算环境的框图。

图3是例示根据一个或多个实施例的计算机系统的框图。

图4是例示根据一个或多个实施例的AV的示例架构的框图。

图5是例示根据一个或多个实施例的感知模块可以使用的输入和输出的示例的框图。

图6是例示根据一个或多个实施例的LiDAR系统的示例的框图。

图7是例示根据一个或多个实施例的操作中的LiDAR系统例的框图。

图8是例示根据一个或多个实施例的LiDAR系统的操作的附加细节的框图。

图9是例示根据一个或多个实施例的规划模块的输入和输出之间的关系的框图。

图10例示根据一个或多个实施例的路径规划中所使用的有向图。

图11是例示根据一个或多个实施例的控制模块的输入和输出的框图。

图12是例示根据一个或多个实施例的控制器的输入、输出和组件的框图。

图13是例示根据一个或多个实施例的自主运载工具的环境的离散化表示的框图,其中粒子(particle)表示特殊单元中的对象或空闲空间。

图14A例示根据一个或多个实施例的可驾驶区域。

图14B是例示根据一个或多个实施例的动态占用图(dynamic occupancy graph)的框图。

图15例示根据一个或多个实施例的表示行人的动态占用栅格(DOG)波形。

图16例示根据一个或多个实施例的表示运载工具的DOG波形。

图17是例示根据一个或多个实施例的运载工具的操作的处理的流程图。

图18是例示根据一个或多个实施例的运载工具的操作的处理的流程图。

图19是例示根据一个或多个实施例的运载工具的操作的处理的流程图。

图20是例示根据一个或多个实施例的运载工具的操作的处理的流程图。

具体实施方式

在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。

在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在实施例中或不能在实施例中与其它要素结合。

此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。

现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。

下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:

1.总体概述

2.系统概述

3.自主运载工具架构

4.自主运载工具输入

5.自主运载工具规划

6.自主运载工具控制

7.使用动态占用栅格(DOG)的自主运载工具操作

8.使用DOG的自主运载工具操作的处理

总体概述

本文呈现了用于使用动态占用栅格(DOG)来操作自主运载工具(AV)的方法、系统和设备。DOG是AV的环境中的对象和空闲空间的特性的表示。AV的环境被表示为被称为DOG的栅格(grid)或网格(mesh)。DOG是被划分成一系列连续的栅格单元或栅格立方体的二维(2D)表面或三维(3D)体积。各栅格单元或栅格立方体被指派唯一标识符,并用于AV的环境的空间索引。空间索引是指在表示在几何空间(例如,AV的环境)中定义的对象的数据结构中存储和查询数据。与如何在基于场论的流体动力学中对流体建模类似,AV的环境中的一个或多个对象和空闲空间被建模为DOG中的粒子的集合。粒子被实例化为对象和空闲空间的表示。通过跨DOG更新时变粒子密度函数来跟踪粒子,并且更新后的粒子密度函数用于确定栅格单元或栅格立方体的占用概率。根据栅格单元或栅格立方体的占用概率来操作AV。例如,AV可以确定相对于在DOG中建模的对象的碰撞时间(TTC)并进行机动动作以避免碰撞。

与跟踪个体栅格单元的传统方法相比,使用所描述的实施例跟踪对象和空闲空间的优点和益处包括在计算复杂度降低的情况下以更高的分辨率跟踪对象。例如,由于无需考虑DOG的给定栅格单元内的个体粒子,因此可以在计算负担降低的情况下进行所描述的跟踪时变粒子密度函数。由于可以针对空闲空间定义和跟踪粒子,因此所公开的实施例允许空闲空间的跟踪,这提高了AV的导航能力。此外,通过选择描述对象的速度和力的参数,可以通过分析相应的粒子密度函数来跟踪被遮挡或部分可见的对象。

系统概述

图1是例示根据一个或多个实施例的具有自主能力的自主运载工具100的示例的框图。

如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。

如本文所使用的,自主运载工具(AV)是一种具有自主能力的运载工具。

如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。

如本文所使用的,“轨迹”是指将AV从第一时空地点操作到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。

如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,RAM和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。

如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由AV运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由AV外部的源提供的一个或多个分类或标记的对象。

如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(SUV)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为一条通道的物理区域。

如本文所使用的,“车道”是道路的可被运载工具穿过的部分,并且可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的一些空间(例如,小于50%)。例如,具有相距远的车道标记的道路可能在标记之间容纳两个或更多个运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,并且因此可被解释为具有比车道标记之间的空间窄的车道,或具有车道之间的两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如乡村区域沿着通道的岩石和树木)来定义车道。

“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。

还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。

在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。

如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

如本文所使用的,AV系统是指AV以及支持AV操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,AV系统并入在AV内。在实施例中,AV系统跨若干地点分布。例如,AV系统的一些软件是在类似于下面关于图2描述的云计算环境200的云计算环境中实现的。

一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的第5级、第4级和第3级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操作的运载工具范围内的任何级别的运载工具受益。

参考图1,AV系统120使AV 100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。

在实施例中,AV系统120包括被装备以从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304类似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。

在实施例中,AV系统120包括用于测量或推断AV 100的状态或条件的属性的传感器121,这些属性诸如是AV的位置、线速度和线加速度、角速度和角加速度、以及航向(例如,AV 100的前端的方向)。传感器121的示例是GNSS、测量运载工具线加速度和角速率两者的惯性测量单元(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通过通信信道传输到AV100。

在实施例中,AV系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到AV 100。这些装置包括运载工具到运载工具(V2V)和运载工具到基础设施(V2I)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(V2V)、运载工具对基础设施(V2I)通信(以及在实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(V2X)通信。V2X通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。

在实施例中,通信装置140包括通信接口。例如,有线、无线、WiMAX、Wi-Fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到AV系统120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信接口140将从传感器121收集的数据或与AV 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向AV 100传输与遥操作有关的信息。在实施例中,AV 100与其它远程(例如,“云”)服务器136通信。

在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在AV 100上的存储器144中,或者通过通信信道从远程数据库134传输到AV 100。

在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在AV 100上的存储器144中,或者通过通信信道从远程数据库134传输到AV100。

位于AV 100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许AV系统120执行其自主驾驶能力。

在实施例中,AV系统120包括耦接到计算装置146的计算机外围设备132,用于向AV100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。

示例云计算环境

图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)装置、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统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中,或存储在其它非易失性存储装置中以便以后执行。

自主运载工具架构

图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]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。

在使用中,规划模块404接收表示目的地412的数据,并且确定表示AV100为了到达(例如,抵达)目的地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的数据,并且以将使得AV100行驶轨迹414到达目的地412的方式来操作AV的控制功能420a~420c(例如,转向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得AV 100左转,并且油门和制动将使得AV 100在进行转弯之前暂停并等待经过的行人或运载工具。

自主运载工具输入

图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系统502b产生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系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉操作信息的物理对象有关的信息,使得AV 100能够访问这些对象所提供的所有相关操作信息。例如,TLD系统的视角可以为约120度或更大。

在实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至AV 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的框图。在该图所示的情境中,AV 100接收采用图像702的形式的照相机系统输出504c和采用LiDAR数据点704的形式的LiDAR系统输出504a两者。在使用中,AV100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704中也识别在图像702中识别出的物理对象706。这样,AV100基于数据点704的轮廓和密度来感知物理对象的边界。

图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。

路径规划

图9是例示根据一个或多个实施例的(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。一般而言,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目的地或最终地点)的路线902。路线902通常由一个或多个路段定义。例如,路段是指要在街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果AV 100是诸如四轮驱动(4WD)或全轮驱动(AWD)小汽车、SUV或小卡车等的能够越野的运载工具,则路线902包括诸如未铺面路径或开阔田野等的“越野”路段。

除路线902之外,规划模块还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来驶过这些路段。例如,如果路线902包括多车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中AV 100可以使用该轨迹规划数据910以例如基于出口是否临近、多个车道中的一个或多个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将AV 100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。

在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据914、当前地点数据916(例如,图4所示的AV位置418)、(例如,用于图4所示的目的地412的)目的地数据918和对象数据920(例如,如图4所示的感知模块402所感知的经分类的对象416)。在实施例中,数据库数据914包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在AV 100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于AV 100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。

图10例示根据一个或多个实施例的在路径规划中(例如,由规划模块404(图4))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。

在实施例中,有向图1000具有表示起点1002和终点1004之间的AV 100可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示AV 100的视场中的物理地点的一部分的一些高粒度信息。

节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示AV 100的视场中的物理对象,例如其它汽车、行人、或AV 100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。

节点1006a-1006d通过边1010a-1010c连接。如果两个节点1006a-1006b通过边1010a连接,则AV 100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(当提到AV 100在节点之间行驶时,意味着AV 100在由相应节点表示的两个物理位置之间行驶。)边1010a-1010c通常是双向的,从某种意义上,AV 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边1010a-1010c是单向的,从某种意义上,AV 100可以从第一节点行驶到第二节点,然而AV100不能从第二节点行驶到第一节点。在边1010a-1010c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其它特征的情况下,边1010a-1010c是单向的。

在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边组成的路径1012。

边1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在AV100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是第二边1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边1010a-1010b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。

在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。

自主运载工具控制

图11是例示根据一个或多个实施例的(例如,如图4所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、ROM 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器1102的操作。

在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4所示的)规划模块404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合AV 100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合AV100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如AV的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出1104的角度。

在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果AV 100遇到诸如山丘等的干扰1110,则AV 100的测量速率1112降至低于期望输出速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和AV 100的传感器可测量的其它输出。

在实施例中,例如通过诸如照相机或LiDAR传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果AV 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例如选择AV 100开始操作时的航向并确定在AV 100到达十字交叉路口时穿过哪个道路路段所使用的信息。定位模块408例如将描述AV 100的当前地点的信息提供至控制器1102,使得控制器1102可以确定AV 100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来自其它输入1214的信息,例如从数据库、计算机网络等接收到的信息。

动态占用栅格系统

图13是例示AV 100的环境190的离散化表示1300的框图。参考图1更详细地例示和描述了环境190和AV 100。离散化表示1300被称为动态占用栅格(DOG)1300。在DOG 1300中,一个或多个粒子表示特定栅格单元或栅格立方体1310中的对象608或空闲空间。参考图6更详细地例示和描述了对象608。例如,栅格单元或栅格立方体1305可以表示(未被对象占用的)空闲空间。

DOG 1300包括具有多个个体栅格单元1305、1310(在DOG 1300是三维(3D)栅格时也称为栅格立方体)的栅格地图。各栅格单元1305、1310(栅格立方体)表示环境190的单位面积(或体积)。DOG 1300由AV 100的DOG电路生成、更新和处理。在实施例中,DOG电路是参考图4更详细地例示和描述的感知模块402的一部分。在另一实施例中,DOG电路是独立于AV栈(AV stack)的安全系统(有时称为RADAR和照相机系统)的一部分。AV栈是指包括感知模块402和规划模块404的导航系统。在该实施例中,DOG电路独立于导航系统来进行碰撞预测。DOG电路是使用参考图3更详细地例示和描述的组件来构建的。

在实施例中,DOG电路被配置为更新这样的个体栅格单元1305、1310的占用概率。占用概率表示在个体栅格单元1305、1310中存在一个或多个经分类的对象608的可能性。对象608可以是自然障碍物191、运载工具193、行人192或另一对象。参考图1更详细地例示和描述了自然障碍物191、运载工具193和行人192。可以例如使用贝叶斯滤波器来计算DOG1300中的各栅格单元1305的占用状态,以递归地将新传感器测量结果与相应栅格单元1305的后验概率的当前估计进行组合。参考图1更详细地例示和描述了示例传感器121、122、123。DOG 1300由此随时间的经过动态地更新。该方法假定环境190正动态地改变,并且环境190的动力学由牛顿运动模型来描述。因此,该方法不仅估计占用,而且还估计动态模型的参数(例如,速度或力等)。

DOG 1300将AV 100的环境190划分成个体栅格单元1305、1310的集合,并且计算个体栅格单元1305、1310的占用概率P1。在一些实现中,单元1305、1310是通过基于笛卡尔栅格、极坐标系、结构化网格、块结构化网格或非结构化网格划分语义地图(或驾驶环境)来生成的。在一些实现中,单元1305、1310是通过例如利用非结构化网格规则地或不规则地对语义地图(或驾驶环境)进行采样来生成的,其中在非结构化网格中,栅格单元1305、1310可以是三角形、四边形、五边形、六边形、或者任何其它多边形或用于2D网格的各种多边形的组合。类似地,单元1305可以是不规则四面体、六面体、或者任何其它多面体或用于3维网格的多面体的组合。

在非结构化网格中,栅格单元1305、1310之间的关系由单元1305、1310可以共享的公共顶点来确定。例如,被定义为两组顶点索引[a,b,c]和[b,c,e]的两个三角形共享被定义为顶点b和c之间的线段的公共边。在一些实现中,单元1305、1310可以由动态占用图来描述,其中在该动态占用图上,各单元1305对应于节点,并且两个相邻单元由边来表征。参考图14B来更详细地例示和描述示例动态占用图1400。边可以被指派表示所链接的两个节点/单元之间的(以下所述的)动态交互的值。各栅格单元1305可被认为处于两个状态其中之一(已占用或空闲)。

参考图13,给定单元1310为空的概率被表示为p(□)。基于传感器观测结果来更新栅格单元1305、1310的状态。这可以例如使用逆传感器模型来进行,该逆传感器模型基于时间t+1的测量结果zt+1来向各栅格单元指派离散二进制占用概率类似于如何在基于场论的流体动力学中对流体建模,栅格单元1305、1310的动态状态可以例如通过将诸如运载工具193或行人192等的对象608建模为粒子的集合来解决。如本文所使用的,术语粒子不是指物质的物理单位。相反,粒子表示一组交互的软件组件,使得这些软件组件一起形成AV 100的环境190中的对象608(例如,运载工具193、行人192等)和空闲空间的虚拟表示。在一些实现中,各软件组件是表示概念对象的单位的实例化的数据。

再次参考图13,栅格单元1310的放大小图例示表示栅格单元1110的内容的多个粒子1315。各个粒子1315可以与表示相应粒子1315的状态的一个或多个参数相关联。例如,粒子1315的状态可以由以下中的一个或多个表示:速度(沿着X方向、Y方向、Z方向中的一个或多个的速度)、与多个速度相关联的协方差、以及作用于粒子1315的力。这些参数可以考虑粒子1315的各种动态特性。例如,力参数允许考虑沿着弯曲道路的动力学或加速运载工具的动力学。

在这样的基于场论的建模中,特定栅格单元1310中的粒子1315的数量或特定栅格单元1310中的粒子权重的总和可以表示相应栅格单元1310的占用概率的度量。本文所描述的技术通过跟踪粒子密度函数的统计来计算单元1305、1310的占用概率。换句话说,该方法中的栅格单元1305、1310的状态取决于粒子在它们穿过栅格单元时的联合分布的一个或多个参数。可以使用欧拉解算器或拉格朗日解算器来通过计算在使用一个或多个传感器121、122、123获得的一个或多个粒子动力学参数上所定义的微分方程的解,来确定时变联合分布。将如此得到的更新后的粒子密度函数与同相应传感器121、122、123相关联的前向传感器模型结合使用,以生成对各种栅格单元的占用概率的预测。

如上所述,给定单元1310为空的概率被表示为p(□)。另外,本文所述的技术假定:对于两个不相交的体积□1和□2,这些体积各自的占用概率(或这些体积为空的概率)是不相关的。这可以表示为:

p(□1∪□2)=p(□1)p(□2) (1)。

根据这些假设,-log(p(□))被定义为状态空间上的加性度量,并且密度函数f(x)可被如下定义为与该度量相关联:

p(□)=exp(-∫Vf(x)dx) (2)。

这可被解释为状态空间的体积内的相同分布且独立的粒子的∫V f(x)dx数量的概率密度函数(有时称为粒子密度函数)。值得注意的是,由于粒子被认为是相同的,因此本文所述的技术的另一个固有假设是传感器测量结果不能用于区分粒子。相反,传感器测量结果被定义为假定粒子位于x处的观测概率γ。该测量结果可被称为前向传感器模型,并被表示为p(γ|x)。此外,由于传感器数据不能区分粒子并且测量结果可能仅从一个粒子取得,因此假定DOG 1300中的给定单元的整个体积V被占用的观测概率γ(为了视觉辅助的目的,表示为■的情形)可被表示为:

p(γ|■)=∫V p(γ|x)dx (3)。

对于自主运载工具应用,粒子表示对象608、空闲空间等,并且被认为跨DOG 1300的栅格单元1305、1310是动态的。这是因为,AV 100的环境190连续地改变,并且粒子相对于AV 100的地点随时间的经过而变化。为了考虑粒子动力学,可以在多维相空间上定义粒子密度函数。例如,在一些实现中,粒子密度函数可被定义为时间-空间-速度坐标系中的函数f(t,x,v)。该函数可以表示在时间t、在地点x处发现粒子并以速度v移动的概率密度(有时被称为粒子密度)。在一些实现中,概率密度是从传感器数据根据经验推断出的。在一些实现中,概率密度被建模为已知概率分布(例如,指数族)或两个以上已知概率分布的混合。在一些实现中,概率密度可以不被建模为已知分布,而是纯粹由传感器数据来表征。

在一些实现中,诸如作用于粒子的力、沿着一个或多个附加方向的速度、或者多个速度的协方差等的其它粒子动态参数可以用在时变粒子密度函数中。由于粒子不是静止的,因此粒子密度函数随时间的经过而演变,并且可以通过确定在构成粒子密度函数的参数上定义的一组微分方程的解来计算粒子密度函数的时变性。在一些实现中,可以使用诸如用于概率密度函数(有时称为粒子密度函数)的玻尔兹曼(Boltzmann)方程等的运动学方程来对粒子密度函数的随着时间的演变进行建模。例如,根据粒子数守恒的基本原理,可以定义以下的微分方程:

通过估计位置和速度的时间导数,可以如下导出玻尔兹曼偏微分方程:

在上述方程中描述的动力学基于笛卡尔坐标系,但该动力学可以推广到任何坐标系上。在一些实现中,在通过图描述单元及其交互时,图上的梯度算子可用于捕获玻尔兹曼方程。为了降低实时AV应用的计算复杂度,本文所述的技术使用欧拉解算器,该欧拉解算器使用数值近似来计算微分方程的解。欧拉解算器通过利用一组参数的已知初始值将微分方程近似为常微分方程(ODE)来运算,并且使用正向欧拉方法来预测将来时间点处的参数的值。

在实施例中,DOG电路确定特定时间点tn处的粒子密度函数。这可以例如使用从一个或多个传感器121、122、123接收到的传感器数据来进行。在一些实现中,传感器数据可以包括具有关于与粒子有关的一个或多个参数的信息的RADAR和/或LiDAR数据504a。参考图5更详细地例示和描述了LiDAR数据504a。例如,这些参数可以包括粒子1315沿着如根据管理环境190的离散化表示的坐标系所定义的特定方向的速度、作用于粒子1315的力、以及粒子1315的地点中的一个或多个。在一些实现中,DOG电路基于从传感器121、122、123接收到的信息来确定一个或多个附加参数。例如,如果从传感器121、122、123接收到与沿着多个方向(例如,如根据笛卡尔坐标系定义的,X方向和Y方向、以及可能还有Z方向)的速度有关的信息,则DOG电路确定这些速度的协方差。

在一些实现中,在所接收到的传感器信息包括沿着X方向和Y方向的速度信息时,DOG电路生成包括与粒子动力学相关联的以下参数的观测矢量γ:栅格单元中的粒子密度ρ、分别沿着x方向和y方向的速度分量vx和vy、以及相应的协方差σxx、σxy和σyy。协方差项用于考虑速度项中的不确定性。出于标记目的,粒子密度函数如上所述在本文中被表示为f(t,x,v)、f(t,x(t)、v(t))、或者用于二维DOG的f(t,x,y,v)。在实施例中,可以使用极坐标系,并且密度分布的记法变为f(t,r,v),其中r是地点(x,y)的半径。

然后,可以将该观测结果提供至欧拉解算器或拉格朗日解算器,以确定在一个或多个参数上定义的微分方程的解。欧拉解算器可以包括被编程为使用前向欧拉方法计算微分方程的数值解的一个或多个处理装置。这可以包括对于将来时间点tn+1预测不同参数的变化。欧拉解算器方法与传统的处理相比降低了计算复杂度,并且生成具有更高质量(例如,分辨率)和动态范围的图像。

欧拉解算器针对时间点tn+1预测粒子的各种参数的演变并将这样的预测值提供至DOG电路。DOG电路计算粒子密度函数的预测分布,并且生成粒子密度函数f(t,x,y,v)的更新版本。然而,为了标记方便,粒子密度函数在本文中也可以表示为f(t,x,v)。DOG电路所计算的粒子密度函数可以经由反馈回路提供至DOG电路以更新先验分布。

考虑到当前观测矢量γ(也称为观测概率γ),DOG电路还确定粒子地点在将来时间点tn+1被占用的可能性。这被计算为:

这里,项表示前向传感器模型,并且表示假定点(x,y)被具有速度v的对象占用的观测概率γ。用于各种传感器模态(例如,LiDAR、RADAR、视觉和其它传感器模态)的前向传感器模型可以根据带注释的地面真值数据来计算。地面真值数据可以例如通过收集均被认为是独立随机样本的观测结果的统计以及占用信息来收集。这样的前向传感器模型可以由DOG电路使用以调节参数相对于占用的联合分布。在一些实现中,从基本上连续的分布中提取测量结果和占用信息。通过将观测样本放置到适当间隔的小区间中来记录直方图、并且将解析密度函数拟合到离散直方图,可以近似这样的连续分布。

在一些实现中,前向传感器模型还可被配置为检测传感器121、122、123中的故障状况。例如,从这样的模型获得的地面真值数据可以用于确定所接收到的传感器数据是否比该特定传感器的预期值的范围超出阈值量、以及/或者所接收到的数据是否与针对其它传感器接收到的数据不一致。如果来自特定传感器的传感器数据被确定为比该范围超出阈值量,则可以针对该传感器确定/标记故障状况,并且可以忽略相应的传感器输入,直到故障状况得到解决为止。

因此,DOG电路所生成的输出是粒子密度函数f(t,x,y,v)的贝叶斯估计。在该函数中,表示时间,(x,y)表示二维空间W中的地点,并且是(x,y)处的速度矢量。可以以各种方式在DOG 1300上查询该输出。例如,查询的形式是计算相空间加时间的区域中的粒子的预期数量:

在一些实现中,这可以被计算为:

在粒子相同且独立地分布并且粒子的数量非常大的假设下,这得到相空间加时间的区域为空的概率由以下给出:

因此,本文所述的技术不仅可以用于跟踪对象608,而且可以用于跟踪空闲空间。AV 100的规划模块404使用该信息来确定AV 100可以驶向何处。参考图4更详细地例示和描述了规划模块404,在一些实现中,该信息可能与关于AV 100必须远离的对象608的信息相结合,例如可以通过提供多个可能性提高对AV 100的控制。

在一些实现中,可以定义一个或多个附加量以从粒子密度函数获得更多信息。例如,对于点集闭合多边形可被定义为世界W中的点的集合,使得源自任何这样的点的射线与奇数个线段相交:

该多边形可被表示为P。在一些实现中,多边形可以表示AV环境190的离散化表示的栅格单元。然而,值得注意的是,由于多边形的定义不依赖于任何特定栅格,因此本文所述的技术可以以栅格不可知的方式来实现。此外,在一些情况下,定义表示特定时间点处的粒子密度函数的条件分布f(t0,x,v)、与速度无关地表示空间和时间上的粒子密度函数的无条件分布 以及这两者的组合可能是有用的。这些量可用于确定AV 100的操作的各种感兴趣的量。例如,多边形P在特定时间t0被占用的概率可被计算为:

1-exp(-∫Pρ(t0,x)dx). (11)。

当考虑多个速度(例如,沿着不同方向的速度)时,这可以通过在速度的矢量空间中定义另一多边形Pv来扩展。在该扩展下,对象608占用多边形Px并且从Pv起以某速度行进的概率由以下给出:

在另一示例中,可以使用上述的粒子密度函数来计算各种其它概率,诸如空间在某时间间隔期间被占用的概率等。这样的概率连同粒子上的标记一起可用于识别包括无生命的对象、人和空闲空间的各种经分类的对象608、以及这些经分类的对象608如何随时间的经过移动通过AV环境190的离散化表示。

在DOG 1300上跟踪粒子密度函数之前,DOG电路可以定义和标记粒子(行人192、运载工具193或空闲空间),并将初始概率指派至个体栅格单元。在一些实现中,各单元(例如,经由高占用概率的指派)最初被假定为被占用,并且稍后基于传感器数据被更新。在一些实现中,可以基于粒子表示对象608(具有附加的颜色编码以区分运载工具193或行人192)还是空闲空间来向粒子指派不同的颜色。在一些实现中,粒子可被定义、标记和更新为诸如在以下文献中所述等的交互软件组件:Nuss等人的“A Random Finite Set Approach forDynamic Occupancy Grid Maps with Real-Time Application,”International Journalof Robotics Research,Volume:37issue:8,page(s):841-866(其内容通过引用而被包含于此)。

在实施例中,DOG电路从AV 100的一个或多个LiDAR 502a接收LiDAR数据504a。参考图5更详细地例示和描述了LiDAR数据504a和LiDAR 502a。LiDAR数据504a表示位于环境190中的一个或多个对象608。DOG电路基于环境190的语义地图来生成DOG 1300。DOG 1300包括多个栅格单元1305、1310。各栅格单元1310表示环境190的一部分。在实施例中,各栅格单元1310是二维多边形和三维多面体其中之一。在实施例中,栅格单元1310的各边的长度在1cm到1m的范围内。以厘米到米的级别跟踪各2D栅格单元或3D栅格立方体,使得不超过计算复杂度。

在实施例中,生成DOG 1300包括:基于笛卡尔坐标系将环境190的语义地图分成栅格单元1305、1310。例如,通过基于笛卡尔坐标系或极坐标系划分地图(或驾驶环境)来生成3D栅格立方体。在实施例中,生成DOG 1300包括:基于极坐标系将环境190的语义地图分成栅格单元1305、1310。在实施例中,DOG 1300是基于环境190的语义地图的规则采样所生成的。例如,通过规则地或不规则地对地图或驾驶环境进行采样来生成3D栅格立方体。在实施例中,DOG 1300是基于环境190的语义地图的不规则采样所生成的。

如由感知模块402感知的经分类的对象608位于DOG 1300上。DOG 1300可以包括具有多个个体立方体的栅格地图,这多个个体立方体各自表示环境190的单位体积。在实施例中,生成DOG 1300包括:将LiDAR数据504a的一部分分配至多于一个的栅格单元1310。LiDAR数据504a的一部分对应于特定对象,例如运载工具193。各对象通常大于单个栅格立方体,并且分布在多于一个栅格立方体上。

对于各栅格单元1310,DOG电路基于LiDAR数据504a来生成概率密度函数(有时被称为粒子密度函数)。概率密度函数表示环境190的由栅格单元1310表示的部分被特定对象(运载工具193)占用的概率P1。LiDAR点云数据504a如此被接收并且分布在栅格单元1305、1310上。当所接收到的LiDAR数据504a随时间的经过在栅格单元1305、1310之间移动时,(以概率密度函数的形式)跟踪运载工具193。概率密度函数可以进一步表示栅格单元1310无运载工具193的概率P0。

在实施例中,DOG电路随时间的经过使用对LiDAR数据504a的递归贝叶斯分析来更新DOG 1300。DOG电路由此基于LiDAR回波针对各3D栅格立方体1310(或2D栅格单元)连续地或周期性地更新占用概率P0和P1。如参考图15和16更详细地例示和所述,可以存储使用历史LiDAR数据所生成的预先计算的模板波形,并且将这些模板波形与所观测到的DOG波形进行比较,以确定AV 100正在导航的环境190的特性。

在实施例中,生成概率密度函数包括:响应于确定为与运载工具193相对应的LiDAR数据504a的一部分的强度(LiDAR信号强度)大于阈值强度,识别表示环境190的该部分的栅格单元1310。在实施例中,生成概率密度函数还包括:将环境190的该部分被运载工具193占用的概率P1调整为大于零。当接收到具有高于阈值强度的强度的单个LiDAR回波时,识别相应的栅格立方体1310并设置为值“已占用”。可以以诸如瓦特或焦耳等的功率或光功率为单位来测量LiDAR信号强度。在实施例中,LiDAR信号强度由时间(例如,每秒)或由空间(例如,每cm2)来标准化。在另一实施例中,不使用单位,因为DOG电路分析相对于(对应于空白空间的)噪声的相对LiDAR信号水平,或者将LiDAR强度分布标准化为概率密度函数。

在实施例中,假定环境190的由栅格单元(例如,栅格单元1305)表示的部分被运载工具193占用,概率密度函数进一步表示环境190的由栅格单元1305表示的该部分将保持被运载工具193占用的条件概率B2。在实施例中,假定环境190的由栅格单元1305表示的部分无运载工具193,概率密度函数进一步表示环境190的由栅格单元1305表示的该部分将保持无运载工具193的条件概率B1。因而,如果栅格立方体1305无对象,则栅格立方体1305将保持空闲的概率是B1。栅格立方体1305将被占用的概率是1-B1。类似地,如果栅格立方体1305被占用,则栅格立方体1305将保持被占用的概率是B2。

在实施例中,环境190的由栅格单元1310表示的部分被运载工具193占用的概率由P1表示。DOG电路基于LiDAR数据504a来生成第二概率密度函数。第二概率密度函数表示环境190的由栅格单元1310表示的部分被行人192占用的第二概率p2。一个或多个对象608包括行人192。因此,各栅格单元1310可以针对行人192、运载工具193或其它对象具有不同的概率分布。在实施例中,LiDAR数据504a包括噪声。DOG电路确定为特定栅格单元1310的概率P1大于零。DOG电路确定为特定栅格单元1310的相邻栅格单元的概率P1为零。LiDAR数据504a由此可以包括形成DOG 1300的一部分的噪声。因而,一个单元1310可以被占用,而该单元周围的其它单元是空闲的。如果周围的立方体中什么也没有,则将被占用的立方体设置为空闲以滤除噪声。在实施例中,LiDAR数据504a包括噪声。DOG电路将特定栅格单元1310的概率P1调整为零。

在实施例中,生成概率密度函数包括使用傅立叶变换将LiDAR数据504a变换为环境190的由栅格单元1310表示的部分被运载工具193占用的概率P1。在时域中测量LiDAR数据504a,并且在空间域中生成栅格单元1305、1310。傅立叶变换用于将时域LiDAR数据504a转换为空间域(DOG 1300)。在实施例中,生成概率密度函数包括使用贝叶斯滤波器将LiDAR数据504a与环境190的由栅格单元1310表示的部分被运载工具193占用的后验概率递归地进行组合。使用贝叶斯滤波器来计算各栅格单元1310的占用状态,以递归地将新的LiDAR测量结果和栅格单元1310的后验概率的当前估计进行组合。

DOG电路基于概率密度函数确定为AV 100和运载工具193的碰撞时间(TTC)小于阈值时间。响应于确定为TTC小于阈值时间,控制模块406操作AV100以避免AV 100与运载工具193碰撞。参考图4更详细地示出和描述控制模块406。

在实施例中,DOG电路从AV 100的一个或多个传感器121、122、123接收传感器数据。随着传感器数据(可选地通过感知模块402)从传感器121、122、123发送到DOG电路,传感器数据具有相对于捕获时间的关联时延(可以被编码成数据)。响应于确定为时延小于阈值时延,DOG电路对传感器数据执行循环冗余校验。例如,DOG电路检查传感器数据信号(诸如路径数据的定时(例如,时延)或路径数据的协议等)的质量。路径数据是指描述AV 100正在穿过的物理路径的传感器数据。如果DOG电路确定为传感器数据质量差,则DOG电路可以向安全系统的仲裁器模块或AV栈(AV导航系统)发送“故障传感器数据”信号。

在实施例中,DOG 1300包括多个粒子。各粒子具有状态。在实施例中,状态包括粒子在X方向上的第一速度、粒子在Y方向上的第二速度以及粒子在Z方向上的第三速度。例如,DOG 1300中的各粒子与表示相应粒子的状态的参数相关联。粒子的状态可以由沿着X方向、Y方向和Z方向中的一个或多个方向的速度中的一个或多个速度来表示。在实施例中,状态还包括与第一速度、第二速度和第三速度相关联的协方差。在实施例中,状态还包括作用在粒子上的力。这样的参数可以考虑粒子的各种动态特性。在实施例中,该力表示AV 100沿着弯曲道路的运动。例如,力参数允许考虑沿着弯曲道路或加速AV 100的动力学。在实施例中,该力表示AV 100的加速度。

响应于确定为传感器数据通过了循环冗余校验,DOG电路基于传感器数据使用一个或多个传感器121、122、123的逆传感器模型来确定各栅格单元1305、1310的离散二进制(0或1)占用概率。二进制占用概率表示AV 100正运行的环境190中的一部分是否被对象608占用。逆传感器模型基于在时间t处的测量结果将离散二进制占用概率指派给各栅格单元1305、1310。在实施例中,响应于确定了各栅格单元1305、1310的占用概率,DOG电路基于占用概率的变化来确定对象608的运动。例如,如果栅格单元1305、1310表示环境190的占用部分,则其将具有与栅格单元1305、1310相关联的较强的LiDAR信号。如果栅格单元1305、1310(环境190的一部分)未被占用,则其将具有主要是噪声的较弱的LiDAR信号。因此,DOG电路不仅确定栅格单元1305、1310是否被占用,而且还推断占用对象608的移动。首先,DOG电路确定环境190的一部分是否被占用,然后推断运动。

DOG电路确定占用单元率(0或1)和置信度。在实施例中,DOG电路确定与DOG 1300的各栅格单元1305、1310的占用概率相对应的占用置信度。在实施例中,基于传感器数据的成熟度、闪烁、LiDAR回波强度或融合度量其中至少之一来确定占用置信度。例如,基于高于(可校准的)阈值的置信度来触发碰撞警告或制动减速,该阈值包括诸如成熟度、闪烁、回波强度和其它融合度量等的因素。在实施例中,响应于占用置信度大于阈值占用置信度,发送减速请求。

DOG电路使用运动学函数基于占用概率来确定粒子密度函数。例如,DOG电路确定立方体(cube)占用累积分布函数。粒子密度函数随时间的演变可以使用诸如概率密度函数的Boltzmann方程等的运动学方程来建模。在实施例中,在多维相空间上确定粒子密度函数。在实施例中,在时空速度坐标系中确定粒子密度函数。该函数可以表示在时间t、地点l发现粒子并以速度v移动的概率密度。

响应于确定为粒子密度函数指示AV 100和对象608之间的TTC小于阈值TTC,DOG电路向AV 100的控制电路406发送减速请求。例如,DOG电路使用恒定速度模型来计算相关TTC分布。DOG电路在阈值置信度级别上计算平均TTC和最小TTC。DOG电路基于TTC确定是否给出碰撞警告和制动减速的命令。一旦检测到碰撞威胁,DOG电路基于单元占用概率发送减速请求,例如基于大于(可校准的)阈值概率的概率来触发。在实施例中,减速请求的减速随着TTC的减小而增加。例如,对于较短的TTC,减速请求较大。在实施例中,减速请求的减速随着AV 100的速率的增加而增加。例如,对于更大的AV 100呃速率,减速请求将更大。

图14A示出根据一个或多个实施例的可驾驶区域1424。可驾驶区域1424包括AV100可其运行的道路1428。参考图1更详细地示出和描述AV 100。在图14A中的道路1428上示出两个相邻的时空地点1420、1416。例如,AV 100可以从时空地点1420驾驶到时空地点1416。轨迹198将时空地点1420连接到相邻的时空地点1416。参考图1更详细地示出和描述轨迹198。

图14B是示出根据一个或多个实施例的动态占用图1400的框图。DOG电路生成动态占用图1400(代替DOG 1300),该动态占用图1400表示沿着AV 100的轨迹198的可驾驶区域1424。参考图13更详细地示出和描述DOG 1300。参考图1更详细地示出和描述轨迹198和AV100。参考图14A更详细地示出和描述可驾驶区域1424。动态占用图1400包括至少两个节点1404、1408和连接两个节点1404、1408的边1412。两个节点1404、1408表示包括道路1428的可驾驶区域1424的两个相邻的时空地点1420、1416。参考图14A更详细地示出和描述两个相邻的时空地点1420、1416和道路1428。

在实施例中,生成动态占用图1400包括将LiDAR数据504a的一部分分配给至少两个节点1404、1408。LiDAR数据504a的该部分与对象608相对应。对象通常大于单个节点,并且分布在多于一个的节点上。动态占用图1400是DOG(例如DOG 1300)的图形表示。各栅格单元1305、1310与图形表示1400的节点1404、1408相对应。参考图13更详细地示出和描述栅格单元1305、1310。因此,DOG 1300立方体可以由动态占用图1400描述,其中各立方体与节点相对应,并且两个相邻的立方体由动态占用图1400上的边1412表征。边1412可以被指派表示节点1404、1408之间的动态交互的值。

在实施例中,DOG电路使用对LiDAR数据504a的递归贝叶斯分析来更新动态占用图1400。DOG电路基于LiDAR回波504a连续地或周期性地更新各节点1404、1408的占用概率。可以存储使用历史LiDAR生成的预先计算的模板波形,并将其与观测的动态占用图1400的波形进行比较,以确定AV 100正导航的环境190的特性。

DOG电路基于从AV 100的一个或多个LiDAR 502接收的LiDAR数据504a来生成多个粒子的粒子分布函数。参考图5更详细地示出和描述LiDAR数据504a和LiDAR 502a。多个粒子表示可驾驶区域1424中的至少一个对象608。动态占用图1400的边1412表示可驾驶区域的两个相邻时空地点1420、1416之间的至少一个对象608的运动。节点1404、1408的动态状态例如可以通过将对象608(诸如运载工具193或行人192等)建模为粒子集合来解决。DOG电路基于粒子分布函数来生成对象608相对于AV 100的速度。该建模类似于基于场论的流体动力学中的流体如何建模。如这里所使用的术语“粒子”并不是指物质的物理单位。相反,粒子表示一组交互的变量,从而形成AV 100的环境190中的对象608(例如运载工具193、行人192或空闲空间)的虚拟表示。

在实施例中,生成粒子分布函数包括:将可驾驶区域1424的一部分被对象608占用的概率调整为大于零。在实施例中,DOG电路基于一个或多个LiDAR 123的模型来更新粒子分布函数。例如,更新后的粒子分布函数与同相应传感器123相关联的前向传感器模型结合使用,以生成与各个节点1404、1408的占用概率有关的预测。

在实施例中,DOG电路对照使用AV 100的一个或多个RADAR502b接收的RADAR数据504b验证对象608相对于AV 100的速度。参考图5更详细地示出和描述RADAR数据504b和RADAR 502b。粒子分布函数可以是七个变量的函数f(x,y,z,vx,vy,vz,t)。这里,x表示X轴上的位置,y表示Y轴上的位置,z表示Z轴上的位置,vx表示X轴上的速度,vy表示Y轴上的速度,vz表示Z轴上的速度,以及t表示时间。因此,粒子分布函数是在时间t在位置r=(x,y,z)处具有速度(vx,vy,vz)的每单位体积的粒子的数量。在实施例中,DOG电路基于LiDAR数据504a监视粒子通过动态占用图1400的流。代替跟踪个体粒子以确定节点1404、1408的占用,DOG电路通过跟踪粒子分布函数的统计来确定节点1404、1408的占用概率,从而监视粒子通过动态占用图1400的流。

在实施例中,DOG电路基于粒子分布函数确定动态占用图1400的各节点(例如,节点1404)的状态。节点1404、1408的状态取决于粒子穿过节点1404、1408时的粒子的联合分布的参数。在实施例中,生成粒子分布函数包括确定由粒子分布函数的参数定义的微分方程的解。例如,欧拉解算器用于通过计算在使用一个或多个传感器121、122、123获得的一个或多个粒子动力学参数上定义的微分方程的解来确定时变联合分布。

在实施例中,生成粒子分布函数包括确定至少一个对象608占用可驾驶区域1424的两个相邻时空地点1420、1416其中至少之一的概率。在DOG电路“感知”沿着轨迹198(边1412)的目标(对象608)的情况下,DOG电路以关联概率将边1412“填充”为“占用”。在实施例中,生成粒子分布函数包括确定可驾驶区域1424的两个相邻时空地点1416、1420其中至少之一中的每单位体积的粒子的数量。各节点1404、1408是单粒子相空间。各节点1404可以包含占用概率、置信度或距离变化率(对象608以多快接近AV 100)。

在实施例中,DOG电路基于LiDAR数据504a确定至少两个节点1404、1408中的节点1404的观测矢量。观测矢量包括可驾驶区域1424的两个相邻时空地点1416、1420的相应时空地点(例如,时空地点1416)中的粒子密度。粒子分布函数指定落在特定值范围内的随机变量的概率。该概率由变量的粒子分布函数在该范围内的积分给出。也就是说,概率被确定为在粒子分布函数下方但在水平轴上方且在范围的最小值和最大值之间的区域。粒子分布函数处处非负,并且其在整个空间上的积分等于1。在实施例中,观测矢量还包括相应时空地点1416中的粒子的速度分量以及粒子分布函数的协方差。LiDAR数据504a包括沿着X和Y方向的速度信息。DOG电路生成观测矢量,该观测矢量包括节点1404中的粒子的密度、沿着X和Y方向的速度分量以及协方差。

DOG电路基于粒子分布函数确定AV 100和至少一个对象608的TTC。例如,动态占用图1400表示沿着AV 100的正向预期路径(轨迹198)的一维视图。响应于确定为TTC小于阈值时间,DOG电路向AV 100的控制电路406发送碰撞警告,以避免AV 100和至少一个对象608碰撞。参考图4更详细地示出和描述控制电路406。在实施例中,DOG电路基于粒子分布函数来确定AV 100和至少一个对象608的最小TTC和平均TTC。DOG电路1300使用恒定加速度模型来确定最小和平均TTC。

在实施例中,DOG电路从控制电路406接收控制数据。控制数据包括AV100的转向控制器102或转向输入1108的角度。参考图1更详细地示出和描述转向控制器102。参考图11更详细地示出和描述转向输入1108。DOG电路确定AV 100在可驾驶区域内的时空地点(例如,时空地点1416)。在实施例中,控制数据包括转向控制器102的角速度。例如,DOG电路从控制模块406请求方向盘角度和方向盘角速度。DOG电路使用方向盘参数来确定100所处的地点。

在实施例中,DOG电路独立于AV栈单独地操作以供冗余。在实施例中,DOG电路经由AV 100的仲裁器电路向控制电路406发送碰撞警告。DOG电路还周期性地向仲裁器电路发送心跳信号。心跳信号的目的是用于通信DOG电路正在按预期运行或处理,并且未处于挂起、崩溃或延迟状态。心跳信号可以以不同的方式实现。一种方式是以预期频率交替的高和低信号。

在实施例中,根据AV 100的坐标系生成动态占用图1400。例如,DOG电路在自我运载工具(AV 100)的局部坐标系内操作。在实施例中,生成动态占用图1400是基于AV 100在可驾驶区域内的时空地点(例如,时空地点1416)。例如,AV 100正在沿着道路驾驶。DOG电路从规划模块404接收轨迹198。参考图4更详细地示出和描述规划模块404。DOG电路检查轨迹198内的AV 100的宽度,并且没有感测到对象608、远离的对象608或离开轨迹198的对象608。DOG电路生成具有节点1404、1408的动态占用图1400,节点1404、1408具有较低的占用概率和较大的平均TTC。DOG电路向仲裁器电路发送心跳消息,并且不向控制模块406发送制动预充或减速请求。

根据一个或多个实施例,图15示出表示行人192的动态占用栅格(DOG)波形1500。参考图1更详细地示出和描述行人192。从DOG(例如,参考图13更详细地示出和描述的DOG1300)提取波形1500。DOG 1300包括多个3D栅格立方体(或2D栅格单元)1305、1310。根据一个或多个实施例,图16示出表示运载工具193的DOG波形1600。参考图1更详细地示出和描述运载工具193。从DOG(例如,参考图13更详细地示出和描述的DOG 1300)提取波形1600。

DOG电路基于从AV 100的LIDAR 502a接收的第一LIDAR数据504a生成DOG(例如,DOG 1300)。在实施例中,LiDAR 502a包括相控阵列,并且第一LiDAR数据504a包括时间、频率和相位信息。LiDAR 502a使用相控阵,因此回波包括光的时间、频率和相位1508的信息。参考图5更详细地示出和描述第一LIDAR数据504a和LIDAR 502a。在实施例中,生成DOG1300包括使用贝叶斯滤波将从AV 100的传感器121、122接收的传感器数据与第一LIDAR数据504a融合,以表示跨DOG 1300的多个栅格单元1305、1310的行人192。参考图1更详细地示出和描述传感器121、122。参考图13更详细地示出和描述栅格单元1305、1310。DOG电路使用贝叶斯滤波来融合各种传感器121、122、123并表示跨多个栅格单元1305、1310的对象608。在实施例中,基于环境190的语义地图的不规则采样来生成DOG 1300。

在实施例中,DOG 1300的多个栅格立方体1305、1310中的各栅格立方体1305包括行人192的概率占用估计和速度估计。在实施例中,DOG 1300表示环境190的边界内的区域,并且多个栅格立方体1305、1310中的各栅格立方体1305具有宽度。栅格立方体1305、1310具有静态位置和宽度。环境190的边界以该宽度偏移以使移动的AV 100保持在DOG 1300的中心内。在实施例中,DOG电路以该宽度调整DOG 1300内的环境190的边界的表示,使得行人192的表示位于DOG 1300内。

在实施例中,DOG电路确定第一LiDAR数据504a的相移。第一LiDAR数据504a是相位调制(变化)信号。DOG电路可以测量相位调制信号中的相移。DOG电路包括粒子滤波器,该粒子滤波器由DOG电路的一个或多个处理器执行以根据DOG 1300生成波形1500。DOG 1300的与环境190中的对象相对应的部分被提取并作为经标记的波形存储在AV 100中的嵌入式库中。参考图1更详细地示出和描述环境190。波形1500包括LiDAR数据504a的强度1504随着LiDAR 502a的光的相位1508的变化。在实施例中,波形1500表示行人192与第二对象(例如,运载工具193)交互。AV 100中的嵌入式系统存储许多可能的信号波形。DOG电路从观测波形1500、1600中提取信息,并将该信息与所存储的波形进行比较以找到匹配(例如,行人192、运载工具193等)。该比较可以检测具有多个道路用户(例如行人192、自行车和机动运载工具彼此交互)的复杂场景。

DOG电路将波形1500与从一个或多个对象608所反射的历史LiDAR数据中提取的波形库进行匹配,以识别为第一LiDAR数据504a是从一个或多个对象608中的特定对象(行人192)反射的。参考图6更详细地示出和描述一个或多个对象608。DOG电路基于在接收到第一LiDAR数据504a之后从AV 100的LiDAR 502a接收的第二LiDAR数据(第一LiDAR数据504a的更新版本)来更新波形1500。DOG电路基于更新后的波形1500确定AV 100和行人192的距离变化率。AV 100的控制电路406基于AV 100和行人192的距离变化率来操作AV 100以避免与行人192碰撞。

在实施例中,将波形1500与波形库匹配包括从波形1500提取特征矢量。DOG电路使用机器学习模型从一个或多个对象608识别行人192。存储过去的预先计算的模板波形,并将其与来自LiDAR数据504a的观测DOG波形1500进行比较来以计算方面高效的方式确定AV100正导航的环境190的特性。在实施例中,DOG电路基于从历史LiDAR数据提取的特征矢量来训练机器学习模型。机器学习模型可以从观测波形1500提取特征以与所存储的波形进行比较。机器学习模型可以根据标记的、存储的波形进行训练。

在实施例中,DOG电路确定DOG 1300上的概率占用分布和速度分布,而不考虑多个栅格立方体1305、1310之间的历史LIDAR数据的交互。库生成包括多个步骤。LiDAR回波被转换为DOG 1300。粒子滤波器估计空间占用和速度分布。独立地更新各栅格立方体1305,并且不对多个栅格立方体1305、1310之间的交互进行建模。

在实施例中,粒子滤波器从DOG 1300提取波形1600。波形1600包括LiDAR数据504a的强度1504随特定对象(例如,运载工具193)距AV 100的距离1604的变化。如果栅格立方体1305被占用,则LiDAR数据504a信号将具有指示该占用的特定分布。如果栅格立方体1305未被占用,则栅格立方体1305将包含与分布不匹配的噪声。在波形1600中,较高峰1608与较高的反射点密度相对应。Y轴(LiDAR数据504a的强度1504)与占用概率相对应。因此,波形1600的聚集了LiDAR数据504a的点的峰指示运载工具193存在的概率较高。

在实施例中,粒子滤波器从DOG 1300提取包括概率占用估计随运载工具193距AV100的距离1604的变化的波形。波形包括距AV 100的特定距离的栅格立方体(例如,栅格立方体1305)的占用。波形包括对照对象608距AV 100的距离1604绘制的占用的概率密度的变化。在实施例中,粒子滤波器从DOG1300提取包括概率占用估计随LiDAR数据504a的光的相位1508的变化的波形。

在实施例中,与DOG 1300的多个栅格立方体1305、1310的特定栅格立方体1305相对应的特定LiDAR数据504a的强度由α表示。在环境190的由DOG1300的多个栅格立方体1305、1310中的特定栅格立方体1305表示的部分被特定对象(例如,运载工具193)占用时与特定栅格立方体1305相对应的特定LiDAR数据504a的强度大于阈值强度的第一条件概率由P(α/占用)表示。DOG电路从DOG 1300确定P(α/占用)的值。DOG电路还确定在环境190的由DOG1300的多个栅格立方体1305、1310中的特定栅格立方体1305表示的部分未被运载工具193占用时与特定栅格立方体1305相对应的特定LiDAR数据504a的强度大于阈值强度的第二条件概率P(α/空闲)。DOG电路基于第一条件概率P(α|占用)和第二条件概率P(α|空闲)确定为环境190的由特定栅格立方体1305表示的部分被运载工具193实际占用。因此,DOG电路通过比较两个互斥模型来确定栅格立方体是否被对象608占用。条件概率P(α|占用)和P(α|空闲)是比较之下的两个互斥模型。

图17是示出根据一个或多个实施例的用于AV 100的操作的处理的流程图。在实施例中,图17的处理由参考图13更详细地描述的DOG电路进行。在其它实施例中,其它实体(例如感知模块402或规划模块404)进行处理的一些或全部步骤。同样地,实施例可以包括不同的和/或附加的步骤,或者以不同的顺序进行步骤。参考图4更详细地示出和描述感测模块402和规划模块404。

DOG电路从AV 100的一个或多个LiDAR 502a接收(1704)LiDAR数据504a。参考图5更详细地示出和描述LiDAR数据504a和LiDAR 502a。LiDAR数据504a表示位于环境190中的一个或多个对象608。参考图1更详细地示出和描述环境190。参考图6更详细地示出和描述一个或多个对象608。

DOG电路基于环境190的语义地图生成(1708)DOG 1300。参考图13更详细地示出和描述DOG 1300。DOG 1300包括多个栅格单元1305、1310。参考图13更详细地示出和描述栅格单元1305、1310。多个栅格单元1305、1310中的各栅格单元1305表示环境190的一部分。

针对多个栅格单元1305、1310中的各栅格单元1305,DOG电路基于LiDAR数据504生成(1712)概率密度函数。概率密度函数表示环境190的由栅格单元1305表示的部分被一个或多个对象608中的对象(例如,运载工具193)占用的概率。参考图1更详细地示出和描述运载工具193。

DOG电路基于概率密度函数确定(1716)为运载工具100与运载工具193的碰撞时间小于阈值时间。概率密度函数(有时称为粒子密度函数)描述在状态空间的体积内的多个相同分布且独立的粒子。由于粒子被认为是相同的,因此这里描述的技术的固有假设是传感器测量结果不用于在粒子之间区分。而是,传感器测量结果被定义为给定粒子位于x处的观测概率γ。该测量结果可以被称为前向传感器模型,并且被表示为p(γ|x)。

响应于确定为TTC小于阈值时间,控制电路406操作AV 100以避免AV100与运载工具193碰撞。参考图4更详细地示出和描述控制电路406。

图18是示出根据一个或多个实施例的用于AV 100的操作的处理的流程图。参考图1更详细地示出和描述AV 100。在实施例中,图18的处理由参考图13更详细地描述的DOG电路进行。在其它实施例中,其它实体(例如感知模块402或规划模块404)进行处理的一些或全部步骤。同样地,实施例可以包括不同的和/或附加的步骤,或者以不同的顺序进行步骤。参考图4更详细地示出和描述感测模块402和规划模块404。

DOG电路生成(1804)表示沿着AV 100的轨迹198的可驾驶区域1424的动态占用图1400。参考图14B更详细地示出和描述动态占用图1400。参考图14A更详细地示出和描述可驾驶区域1424。参考图1更详细地示出和描述轨迹198。动态占用图1400包括至少两个节点1404、1408和连接两个节点1404、1408的边1412。参考图14B更详细地示出和描述节点1404、1408。参考图14B更详细地示出和描述边1412。两个节点1404、1408表示可驾驶区域1424的两个相邻时空地点1416、1420。参考图14A更详细地示出和描述两个相邻的时空地点1416、1420。

DOG电路基于从AV 100的一个或多个LiDAR 502a接收的LiDAR数据504a生成(1808)多个粒子的粒子分布函数。参考图5更详细地示出和描述LiDAR数据504a和LiDAR502a。多个粒子表示可驾驶区域1424中的至少一个对象608。参考图6更详细地示出和描述对象608。动态占用图1400的边1412表示至少一个对象608在可驾驶区域1424的两个相邻时空地点1416、1420之间的运动。

DOG电路基于粒子分布函数生成(1812)对象608相对于AV 100的速度。建模类似于基于场论的流体动力学中如何对流体建模。如这里所使用的术语“粒子”并不是指物质的物理单位。而是,粒子表示形成AV 100的环境190中的对象608(例如运载工具193、行人192或空闲空间)的虚拟表示的一组交互的变量。

DOG电路基于粒子分布函数确定(1816)AV 100与至少一个对象608的碰撞时间。在实施例中,生成粒子分布函数包括将可驾驶区域1424的一部分被对象608占用的概率调整为大于零。在实施例中,DOG电路基于一个或多个LiDAR 123的模型来更新粒子分布函数。例如,更新后的粒子分布函数与同相应传感器123相关联的前向传感器模型结合使用,以生成与各个节点1404、1408的占用概率有关的预测。

响应于确定为TTC小于阈值时间,DOG电路向AV 100的控制电路406发送碰撞警告,以避免AV 100与至少一个对象608碰撞。参考图6更详细地示出和描述控制电路406。

图19是示出根据一个或多个实施例的用于AV 100的操作的处理的流程图。参考图1更详细地示出和描述AV 100。在实施例中,图19的处理由参考图13更详细地描述的DOG电路进行。在其它实施例中,其它实体(例如感知模块402或规划模块404)进行处理的一些或全部步骤。同样地,实施例可以包括不同的和/或附加的步骤,或者以不同的顺序进行步骤。参考图4更详细地示出和描述感测模块402和规划模块404。

DOG电路从AV 100的一个或多个传感器121、122、123接收(1904)传感器数据。参考图1更详细地示出和描述一个或多个传感器121、122、123。随着传感器数据从传感器121、122、123(可选地通过感知模块402)发送到DOG电路,传感器数据具有相对于捕获时间起的关联时延(可以被编码成数据)。

响应于确定为时延小于阈值时延,DOG电路对传感器数据执行(1908)循环冗余校验。例如,DOG电路检查传感器数据信号的诸如路径数据的定时(例如,时延)或路径数据的协议等的质量。路径数据是指描述AV 100正在穿过的物理路径的传感器数据。如果DOG电路确定为传感器数据质量差,则DOG电路可以向安全系统的仲裁器模块或AV栈(AV导航系统)发送“故障传感器数据”信号。

响应于确定为传感器数据通过了循环冗余校验,DOG电路基于传感器数据使用一个或多个传感器121、122、123的逆传感器模型来确定针对DOG1300的各栅格单元1305的离散二进制占用概率。参考图13更详细地示出和描述栅格单元1305和DOG 1300。占用概率表示AV 100正操作的环境190中的一部分是否被对象608占用。参考图1更详细地示出和描述环境190。参考图6更详细地示出和描述对象608。

DOG电路使用运动学函数基于占用概率来确定(1916)粒子密度函数。例如,DOG电路确定立方体占用累积分布函数。粒子密度函数随时间的演变可以使用诸如概率密度函数的Boltzmann方程等的运动学方程来建模。

响应于确定为粒子密度函数指示AV 100与对象608之间的碰撞时间小于阈值TTC,DOG电路向AV 100的控制电路406发送减速请求。

图20是示出根据一个或多个实施例的用于AV 100的操作的处理的流程图。参考图1更详细地示出和描述AV 100。在实施例中,图20的处理由参考图13更详细地描述的DOG电路进行。在其它实施例中,其它实体(例如感知模块402或规划模块404)进行处理的一些或全部步骤。同样地,实施例可以包括不同的和/或附加的步骤,或者以不同的顺序进行步骤。参考图4更详细地示出和描述感测模块402和规划模块404。

DOG电路基于从AV 100的LIDAR 502a接收的第一LIDAR 504a生成(2004)DOG1300。参考图13更详细地示出和描述DOG 1300。参考图5更详细地示出和描述LIDAR数据504a和LIDAR 502a。

由DOG电路的一个或多个处理器执行的粒子滤波器从DOG 1300提取(2008)波形1500。参考图15更详细地示出和描述波形1500。波形1500包括LiDAR数据504a的强度1504随LiDAR 502a的光的相位1508的变化。参考图15更详细地示出和描述LiDAR数据504a的强度1504和光的相位1508。

DOG电路将波形1500与从一个或多个对象608所反射的历史LiDAR数据中提取的波形库进行匹配(2012),以识别为第一LiDAR数据504a是从一个或多个对象608中的特定对象(例如,行人192)反射的。参考图6更详细地示出和描述一个或多个对象608。参考图1更详细地示出和描述行人192。

DOG电路基于在接收到第一LiDAR数据504a之后从AV 100的LiDAR502a接收的第二LiDAR数据(第一LiDAR数据504a的更新版本)来更新(2016)波形1500。

DOG电路基于更新后的波形1500确定(2020)AV 100和行人192的距离变化率。AV100和行人192的距离变化率指示AV 100正在多快地接近行人192。

AV 100的控制电路406基于AV 100和行人192的距离变化率来操作(2024)AV 100以避免与行人192碰撞。参考图4更详细地示出和描述控制电路406。

在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式从本申请发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。

56页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于信息熵的多领航AUV协同导航方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!