用于车辆运动控制器的基于贝叶斯全局优化的参数调谐

文档序号:125336 发布日期:2021-10-22 浏览:27次 >En<

阅读说明:本技术 用于车辆运动控制器的基于贝叶斯全局优化的参数调谐 (Bayesian global optimization based parameter tuning for vehicle motion controllers ) 是由 王禹 罗琦 许嘉轩 周金运 姜舒 陶佳鸣 曹昱 林玮曼 许珂诚 缪景皓 胡江滔 于 2020-12-14 设计创作,主要内容包括:本公开提供用于车辆运动控制器的基于贝叶斯全局优化的参数调谐。在一个实施例中,一种用于优化自主驾驶车辆(ADV)的控制器的方法,包括:获得数个样本,每个样本具有参数集合,迭代地执行以下操作直到满足预定条件:根据控制器基于样本的参数集合的配置,为每个样本确定分数;将机器学习模型应用到样本和相应分数,以确定均值函数和方差函数,产生新样本作为关于参数集合的输入空间的均值函数和方差函数的函数的最小值,以及将新样本添加到几个样本中;以及输出新样本作为最佳样本,其中最佳样本的参数被用于配置控制器以自主地驾驶ADV。(The present disclosure provides a bayesian global optimization based parameter tuning for a vehicle motion controller. In one embodiment, a method for optimizing a controller of an Autonomously Driven Vehicle (ADV) includes: obtaining a number of samples, each sample having a set of parameters, iteratively performing the following until a predetermined condition is satisfied: determining a score for each sample according to a configuration of the controller based on a parameter set of the sample; applying a machine learning model to the samples and corresponding scores to determine a mean function and a variance function, generating a new sample as a minimum of a function of the mean function and the variance function of the input space with respect to the set of parameters, and adding the new sample to several samples; and outputting the new sample as an optimal sample, wherein parameters of the optimal sample are used to configure the controller to autonomously drive the ADV.)

用于车辆运动控制器的基于贝叶斯全局优化的参数调谐

技术领域

本公开的实施例一般涉及操作自主车辆。更特别地,本公开的实施例涉及用于车辆运动控制器的基于贝叶斯全局优化的参数调谐。

背景技术

以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当在自主模式下操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在没有任何乘客的一些情况下行驶。

自主车辆的车辆控制器可以生成控制命令以使车辆根据期望的路径或路线移动。例如,模型预测控制器(model predictive controller,MPC)可以生成在将来时间帧上待应用的命令序列,该命令序列将导致受控对象沿预测路径移动。可以根据一个或多个控制参数配置MPC,以优化命令序列,使得控制器能够控制自主驾驶车辆(ADV)以目标速度沿着目标路径跟踪。

调谐控制参数在控制器设计中起重要作用。常规地,控制器的参数可以由人类观察者(例如,由受控设置(诸如实验室)中的工程师)或使用网格搜索算法的穷举搜索调谐。第一种解决方案的一个问题是可能无法保证控制参数的优化,因为该解决方案高度依赖于人类的经验和直觉。对于第二种解决方案,这种穷举搜索具有低的效率,尤其是当配置空间变得相对高时,从而可能指数地增加计算成本。

发明内容

在第一方面中,提供一种用于优化自主驾驶车辆ADV的控制器的方法,包括:

获得多个样本,每个样本具有参数集合;

迭代地执行以下操作,直到满足预定条件:

根据控制器基于样本的参数集合的配置,为每个样本确定分数;

将机器学习模型应用到多个样本和相应分数,以确定均值函数和方差函数,

产生新样本作为关于参数集合的输入空间的均值函数和方差函数的函数的最小值,以及

将新样本添加到多个样本中;以及

输出新样本作为最佳样本,其中最佳样本的参数被用于配置控制器以自主地驾驶ADV。

在第二方面中,提供一种非暂时性机器可读介质,具有存储在其中的指令,指令在由处理器执行时使得处理器执行如第一方面所述的用于优化自主驾驶车辆(ADV)的控制器的方法。

在第三方面中,提供一种数据处理系统,包括

处理器;以及

存储器,耦接到处理器并存储指令,指令在由处理器执行时使得处理器执行如第一方面所述的用于优化自主驾驶车辆(ADV)的控制器的方法。

在第四方面中,提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的用于优化自主驾驶车辆的控制器的方法。

根据本公开,通过降低总成本优化控制器参数。

附图说明

在附图中的图中通过示例的方式而不是限制的方式图示各方面,在附图中相同的附图标记表示相似的元件。应当注意的是,对本公开的“一”或“一个”方面的引用不一定是相同的方面,并且它们意味着至少一个。此外,为了简洁和减少附图的总数,可以使用给定附图图示多于一个方面的特征,并且对于给定方面,并非图中的所有元件都是必需的。

图1是图示根据一个实施例的联网系统的框图。

图2是图示根据一个实施例的自主车辆的示例的框图。

图3是图示根据一个实施例的控制器参数调谐器的示例的框图。

图4是图示根据一个实施例的用于调谐控制器的参数的过程的流程图。

图5A-图5B是图示根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。

具体实施方式

现在参考附图说明本公开的数个实施例。每当未明确限定给定方面中描述的部件的形状、相对位置和其他方面时,这里本公开的范围不仅限于所示出的部件,其仅意在图示目的。此外尽管阐述了许多细节,但是应当理解可以在没有这些细节的情况下实践一些方面。在其他实例中,未详细示出公知的电路、结构和技术以免混淆对本说明书的理解。此外,除非含义明显相反,否则这里列出的所有范围均视为包含每个范围的端点。

说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特别特征、结构或特性可以包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。

本公开通过将贝叶斯全局优化和高斯过程回归(Gaussian Process Regression,GPR)应用于控制器(诸如由自主驾驶车辆(ADV)使用的运动控制器)的参数调谐,解决优化控制器参数的问题。特别地,本公开描述使用贝叶斯优化技术以通过使用GPR模型作为目标函数(例如,代理模型)(的近似)找到最佳控制器(参数)配置。例如,获得(例如,随机生成)待调谐的控制器参数的样本。通过模拟根据样本的一个或多个参数配置的控制器,为每个样本生成分数(或标签)。将样本集合和相应分数拟合到机器学习模型(诸如GPR模型)中,以得出均值预测函数和方差函数。使用得出的函数,确定下一个最有希望的采样点。将新样本添加到样本集合中并且重复该过程(例如,进行预定数量的迭代),以便定义对样本空间的足够探索。一旦过程已经被执行了足够的迭代数量,基于GPR模型的贝叶斯全局优化输出最佳样本。最佳样本的参数可以被用于配置控制器以自主地驾驶ADV。因此,本公开通过降低总成本(或负控制剖析分数)优化控制器参数。

根据一些实施例,一种用于优化ADV的控制器的计算机实现的方法包括:获得数个样本,每个样本具有参数集合;迭代地执行以下操作直到满足预定条件:根据控制器基于样本的参数集合的配置,为每个样本确定分数,将机器学习模型应用到数个样本和相应分数,以确定均值函数和方差函数,产生作为效用函数的最小值的新样本,该效用函数关于参数集合的输入空间组合均值函数和方差函数,以及将新样本添加到数个样本中;输出新样本作为最佳样本,其中最佳样本的参数被用于配置控制器以自主地驾驶ADV。

在一个实施例中,获得数个样本包括随机产生样本中的至少一些。在另一实施例中,机器学习模型是高斯过程回归(GPR)模型。在一些实施例中,机器学习模型是树形Parzen估计器(Tree Parzen Estimator,TPE)模型。在一个实施例中,确定分数包括:为每个样本,用样本的参数集合中的一个或多个参数配置控制器;以及模拟配置的控制器的性能,其中分数表示模拟的性能。在另一实施例中,参数集合中的每个参数是与成本函数的成本项相关联的权重,自主驾驶车辆(ADV)的运动控制器使用成本函数生成控制命令以自主地导航ADV。

在一个实施例中,基于被添加到数个样本中的先前产生的新样本产生每个新样本。在另一实施例中,预定条件是预定数量的将产生的新样本。

在本公开的另一实施例中,非暂时性机器可读介质和数据处理系统执行本文描述的过程中的至少一些。

图1是图示根据本公开的一个实施例的自主车辆网络配置的框图。参考图1,网络配置100包括自主驾驶车辆(ADV)101,其可以通过网络102通信地耦接到一个或多个服务器103-104。尽管示出一个自主车辆,但是多个自主车辆可以通过网络102彼此耦接和/或耦接到服务器103-104。网络102可以是任何类型的有线或无线网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、蜂窝网络、卫星网络、或其组合。(一个或多个)服务器103-104可以是任何类型的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和感兴趣点(MPOI)服务器或位置服务器等。

自主车辆指的是能够被配置为处于自主模式,在自主模式中车辆在很少或没有驾驶员输入的情况下导航通过环境。这种自主车辆可以包括具有一个或多个传感器的传感器系统,一个或多个传感器被配置为检测关于车辆在其中操作的环境的信息。车辆及其相关的(一个或多个)控制器使用检测的信息以导航通过环境。自主车辆101可以以手动模式、全自主模式或部分自主模式操作。

在一个实施例中,自主车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统115。自主车辆101还可以包括在普通车辆中包括的某些常见组件,诸如引擎、车轮、转向盘、变速器等,这些组件可以被车辆控制系统111和/或感知和规划系统110使用各种通信信号和/或命令(例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)控制。

组件110-115可以经由互连、总线、网络或其组合彼此通信地耦接。例如,组件110-115可以经由控制器局域网(CAN)总线彼此通信地耦接。CAN总线是一种车辆总线标准,其被设计为允许微控制器和设备在没有主机的应用中彼此通信。它是基于消息的协议,最初被设计用于车辆内的多路复用电气布线,但是也用于许多其他环境中。

现在参考图2,在一个实施例中,传感器系统115包括但不限于一个或多个相机211、全球定位系统(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光检测和范围(LIDAR)单元215。GPS系统212可以包括可操作以提供关于自主车辆的位置的信息的收发器。IMU单元213可以基于惯性加速度感测自主车辆的位置和方位变化。雷达单元214可以表示使用无线电信号感测自主车辆的局部环境内的对象的系统。在一些实施例中,除了感测对象之外,雷达单元214还可以额外地感测对象的速度和/或航向。LIDAR单元215可以使用激光感测自主车辆所处的环境中的对象。LIDAR单元215可以包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机211可以包括一个或多个设备以捕获自主车辆周围的环境的图像。相机211可以是静态相机和/或摄像机。相机可以是机械可移动的,例如通过将相机安装在旋转和/或倾斜的平台上。

传感器系统115还可以包括其他传感器,诸如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置为捕获来自自主车辆周围的环境的声音。转向传感器可以被配置为感测车辆的转向盘、车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感器。

在一个实施例中,车辆控制系统111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201用于调节车辆的方向或航向。油门单元202用于控制马达或引擎的速度,马达或引擎的速度转而控制车辆的速度和加速度。制动单元203通过提供摩擦以使车辆的车轮或轮胎变慢来使车辆减速。注意,图2所示的组件可以用硬件、软件或其组合来实现。

返回参考图1,无线通信系统112允许在自主车辆101和外部系统,诸如设备、传感器、其他车辆等之间的通信。例如,无线通信系统112可以直接或经由通信网络与一个或多个设备(诸如在网络102上的服务器103-104)无线通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如使用WiFi与另一组件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等直接与设备(例如,乘客的移动设备、显示设备、车辆101内的扬声器)通信。用户接口系统113可以是在车辆101内实现的外围设备的一部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。

自主车辆101的功能中的一些或所有可以由感知和规划系统110控制或管理,尤其是当以自主驾驶模式操作时。感知和规划系统110包括必要的硬件(例如,(一个或多个)处理器、存储器、存储设备)和软件(例如,操作系统、规划和路线程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息、处理接收的信息、规划从起点到目的地点的路线或路径、然后基于规划和控制信息驾驶车辆101。可替换地,感知和规划系统110可以与车辆控制系统111集成。

例如,作为乘客的用户可以例如经由用户接口指定行程的起始位置和目的地。感知和规划系统110获得与行程有关的数据。例如,感知和规划系统110可以从MPOI服务器获得位置和路线信息,MPOI服务器可以是服务器103-104的一部分。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI。可替换地,这种位置和MPOI信息可以本地缓存在感知和规划系统110的永久存储设备中。

当自主车辆101沿着路线移动时,感知和规划系统110还可以从交通信息系统或服务器(TIS)获得实时交通信息。注意,服务器103-104可以由第三方实体操作。可替换地,服务器103-104的功能可以与感知和规划系统110集成。基于实时交通信息、MPOI信息和位置信息,以及由传感器系统115检测或感测的实时局部环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可以规划最佳路线,并且例如经由控制系统111根据规划的路线驾驶车辆101,以安全且高效地到达指定目的地。

服务器103可以是用以执行用于各种客户端的数据分析服务的数据分析系统。在一个实施例中,数据分析系统103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆(自主车辆或者是由人类驾驶员驾驶的常规车辆)收集驾驶统计123。驾驶统计123包括指示发出的驾驶命令(例如,油门、制动、转向命令)和由车辆的传感器在不同时间点捕获的车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计123还可以包括描述不同时间点的驾驶环境的信息,诸如路线(包括起始位置和目的地位置)、MPOI、道路状况、天气状况等。

基于驾驶统计123,机器学习引擎122出于各种目的而生成或训练一组规则、算法和/或预测模型124。在一个实施例中,预测模型124可以包括参数和/或非参数模型。例如,模型可以包括高斯过程回归(GPR)模型和/或树形Parsen估计器(TPE)模型,它们中的每个可以用于如本文描述的参数调谐。

如所示,机器学习引擎122包括控制器参数调谐器125,控制器参数调谐器125被配置为如本文描述的执行基于贝叶斯全局优化的参数调谐。在一个实施例中,调谐器125可以被配置为调谐任何类型的控制器(例如运动控制器)的一个或多个参数。例如,调谐器可以被配置为调谐比例积分微分(proportional-integral-derivative,PID)控制器、线性二次型调节器(linear quadratic regulator,LQR)控制器或模型预测控制(model predictivecontrol,MPC)控制器的参数。

在一个实施例中,控制器参数(或参数)可以是控制器的任何类型的参数(或设置)。例如,PID控制器可以具有至少三个参数,一个参数用于比例增益、一个参数用于积分增益以及一个参数用于微分增益。作为另一示例,参数可以是与成本函数的成本项相关联并被应用于成本函数的成本项的权重,ADV的运动控制器(例如,MPC控制器)使用成本函数生成控制命令以便自主地导航ADV。本文描述有关运动控制器的更多信息。

然后可以将算法124上载到ADV上,以在自主驾驶中实时使用。在一个实施例中,如本文描述的,被最佳地调谐的一个或多个控制器参数可以被上载到ADV上,以由在其中操作的运动控制器实时地使用。

图3是图示根据一个实施例的控制器参数调谐器的示例的框图。如本文描述的,控制器参数调谐器125可以由服务器103(例如,服务器的一个或多个处理器)执行,以便最佳地调谐可以由ADV的运动控制器使用的一个或多个控制器参数。调谐器包括配置生成器305、配置剖析器310、建模器315和决策逻辑320。生成器被配置为生成控制器参数的一个或多个(初始)样本。例如,生成器可以生成xm个样本,其中每个x样本包括调谐器将最佳地调谐所针对的d个参数。因此,生成器生成包括d维向量xm∈Rd的数据集合,其中每个训练点表示控制参数设置。例如,对于PID控制器,m=3。在一个实施例中,生成器可以随机地生成样本xm中的至少一些。在另一实施例中,生成器可以从库或从用户输入获得一个或多个样本。

配置剖析器310被配置为获得样本池(例如,来自配置生成器305的初始样本),并且被配置为根据控制器基于样本的参数的配置为每个样本确定分数(或标签)y。具体地,剖析器用样本的一个或多个参数配置控制器(例如,与d个参数相关联)。然后,剖析器评估配置的剖析响应。具体地,剖析器模拟配置的控制器的性能,并且产生指示模拟的性能的分数。因此,剖析器为每个样本产生分数,从而产生ym∈R,它表示负控制剖析分数。在一个实施例中,低分数(例如,低于阈值)指示控制器的低(或不太令人满意)的性能,而高分数(例如,高于阈值)指示控制器的高(或更可取的)性能。

建模器315被配置为获得xm和ym,并且被配置为将应用到所获得的样本和分数(或训练诸如GPR模型的机器学习模型,例如,获得的样本和分数作为训练数据)。一旦应用,可以更新高斯过程以为输入样本x*预测分数y*。在一个实施例中,输入样本是在第一遍通过高斯过程期间的测试输入样本。在另一实施例中,输入样本可以是如本文描述的由贝叶斯全局优化的先前迭代产生的新样本。GPR过程的输出是均值函数h(x*)和方差函数v(x*),这将预测高斯过程定义为

其中X是整个输入空间,x*是输入样本,是噪声的方差,I是单位矩阵,y是一个或多个分数,以及K是核函数。

建模器315被配置为产生新样本X*,如

其中选择加权因子k以权衡探索具有高不确定性(例如,具有高方差)的更多潜在良好点要付出多少,或利用到目前为止发现的有关当前最佳点(具有最佳配置)的知识要付出多少。函数称为效用函数。

因此,新样本X*是效用函数的最小值,该效用函数关于输入样本的参数集合的输入空间X组合均值函数和方差函数。如本文描述的,使用本文描述的高斯模型确定新样本。在一个实施例中,可以使用任何类型的模型(例如TPE模型)确定样本,以便从均值函数和方差函数得出新样本。

决策逻辑320被配置为从建模器获得新样本X*,并且确定调谐器是否已经执行了足够量的探索。在一个实施例中,决策逻辑320可以确定是否满足预定(结束)条件。例如,预定条件可以是预定数量的迭代或将产生的新样本(例如,100个新样本)。在另一实施例中,确定可以基于新样本之间的误差阈值。例如,如果新样本中的至少一些之间的误差(或差异)低于阈值(例如0.1%),则可以确定存在足够量的探索,并且最新样本是最佳的。

如果不是,则将新样本添加到当前样本池中(例如,对于第二遍,该池现在为xm+1),从而增加样本池以继续进行探索。特别地,只要不满足结束条件,调谐器就会迭代地执行配置剖析器310和/或建模器315的操作中的至少一些以便产生新样本,其中基于被添加到样本池中的先前产生的新样本产生每个新样本。在一个实施例中,为了执行下一迭代,产生的最新样本(例如,在先前的迭代中)可以是当前迭代的输入样本。因此,调谐器将继续该循环,直到决策逻辑320确定已经执行了足够的探索(例如,在新样本xm+n处)。此时,决策逻辑320输出最佳样本。在一个实施例中,最佳样本是待产生的最新样本(例如,xm+n)。在另一实施例中,基于某标准(例如,低于和/或高于阈值)选择输出为最佳样本的样本。在一个实施例中,输出最佳样本可以包括将最佳样本作为控制器配置发送(例如,经由无线网络)到一个或多个ADV,以利用最佳样本配置控制器以自主地驾驶ADV。

图4是根据一个实施例的用于调谐控制器的参数的过程400的流程图。具体地,过程400确定用于配置控制器(诸如ADV的运动控制器)的一个或多个控制器参数的最佳样本。本文描述的操作中的至少一些可以由如图3所示的服务器103的控制器参数调谐器125执行。

过程400获得数个样本(作为样本池),每个样本具有参数集合(在框401处)。例如,配置生成器305可以随机地生成样本,每个样本具有待被最佳地调谐的参数。过程400根据控制器基于样本的参数集合的配置,为每个样本确定分数(在框402处)。例如,配置剖析器310根据基于每个样本的配置模拟控制器的性能,以产生相应分数。过程400将机器学习模型(例如,GPR模型)应用到样本和相应分数以确定均值函数和方差函数(在框403处)。例如,建模器315训练模型并确定相对于输入样本的函数。在一个实施例中,输入样本可以是随机测试样本。在另一实施例中,可以根据获取函数(诸如期望的改进)确定输入样本。在一些实施例中,输入样本可以是如本文描述的先前迭代的新产生的样本。

过程400产生作为函数的最小值的新样本,该函数是关于参数集合的输入空间的均值函数和方差函数的函数(在框404处)。过程400将新样本添加到样本池中(在框405处)。过程400确定是否应该产生更多的新样本(在决策框406处)。如本文描述的,决策逻辑320可以确定是否满足结束条件。如果是,则过程400返回到框402以重复GPR模型的贝叶斯全局优化。但是,如果没有新样本待生成,则过程400将(例如,最近生成的)新样本作为最佳样本输出,其中最佳样本的参数可以用于配置控制器以自主地驾驶ADV(在框407处)。

一些实施例执行过程400的变型。例如,过程的特定操作可以不按照所示和描述的确切顺序执行。可以以一个连续系列操作来执行特定操作,可以省略一些操作,并且可以在不同的实施例中执行不同的特定操作。

图5A和图5B是图示根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。系统500可以被实现为图1的自主车辆101的一部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参考图5A-图5B,感知和规划系统110包括但不限于定位模块501、感知模块502、预测模块503、决策模块504、规划模块505、控制模块506、路由模块507和一个或多个运动控制器508。

模块501-508中的一些或全部可以以软件、硬件或其组合实现。例如,这些模块可以被安装在永久存储设备552中,加载到存储器551中,并由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地耦接到图2的车辆控制系统111的一些或全部模块或与图2的车辆控制系统111的一些或全部模块集成。模块501-508中的一些可以被集成在一起作为集成模块。

定位模块501确定自主车辆500的当前位置(例如,利用GPS单元212)并且管理与用户的行程或路线有关的任何数据。定位模块501(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。用户可以例如经由用户接口登录并指定行程的起始位置和目的地。定位模块501与自主车辆500的其他组件(诸如地图和路线信息511)通信,以获得与行程有关的数据。例如,定位模块501可以从位置服务器和地图与POI(MPOI)服务器获得位置和路线信息。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI,它们可以作为地图和路线信息511的一部分被缓存。当自主车辆500沿着路线移动时,定位模块501还可以从交通信息系统或服务器获得实时交通信息。

基于由传感器系统115提供的传感器数据和由定位模块501获得的定位信息,由感知模块502确定对周围环境的感知。感知信息可以表示普通驾驶员将感知到的驾驶员正在驾驶的车辆周围的情况。感知可以包括车道配置、交通灯信号、例如以对象形式的另一车辆、行人、建筑物、人行横道或其他交通相关标志(例如,停止标志、让步标志)等的相对位置。车道配置包括描述一个或多个车道的信息,诸如,例如车道的形状(例如,直的或弯曲的)、车道的宽度、道路中的车道数量、单向或双向车道、合并或分离车道、驶离车道等。

感知模块502可以包括计算机视觉系统或计算机视觉系统的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自主车辆的环境中的对象和/或特征。对象可以包括交通信号、车行道边界、其他车辆、行人和/或障碍物等。计算机视觉系统可以使用对象识别算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统可以映射环境、跟踪对象、并估计对象的速度等。感知模块502还可以基于由诸如雷达和/或LIDAR的其他传感器提供的其他传感器数据检测对象。

对于对象中的每个,预测模块503预测对象将在环境下表现什么行为。根据一组地图/路线信息511和交通规则512,基于在该时间点的驾驶环境感知的感知数据,执行预测。例如,如果对象是在相反方向上的车辆并且当前驾驶环境包括交叉路口,则预测模块503将预测车辆将可能直线向前移动还是转弯。如果感知数据指示交叉路口没有交通灯,则预测模块503可以预测车辆在进入交叉路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅向左转弯车道或仅向右转弯车道,则预测模块503可以预测车辆将更可能分别左转弯或右转弯。

对于对象中的每个,决策模块504做出关于如何处理该对象的决策。例如,对于特定对象(例如,在交叉路线中的另一车辆)及其描述对象的元数据(例如,速度、方向、转角),决策模块504决定如何遇到对象(例如,超车、让行、停止、通过)。决策模块504可根据一组规则(诸如交通规则或驾驶规则512)做出这些决策,这组规则可以存储于永久存储设备552中。

路由模块507被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块507获得路线和地图信息511并且确定从起始位置到达目的地位置的所有可能的路线或路径。路由模块507可以为从起始位置到达目的地位置确定的每条路线生成地形图形式的参考线。参考线是指没有来自诸如其他车辆、障碍物或交通状况的其他任何干扰的理想路线或路径。也就是说,如果在道路上没有其他车辆、行人或障碍物,则ADV应该精确地或紧密地遵循参考线。然后,地形图被提供给决策模块504和/或规划模块505。决策模块504和/或规划模块505检查所有可能的路线,以根据由其他模块提供的其他数据(诸如来自定位模块501的交通状况、由感知模块502感知的驾驶环境和由预测模块503预测的交通状况)选择和修改最佳路线中的一个。取决于在时间点的特定驾驶环境,用于控制ADV的实际路径或路线可以接近或不同于由路由模块507提供的参考线。

基于针对感知对象中的每个的决策,规划模块505使用由路由模块507提供的参考线作为基础规划自主车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转角)。也就是说,对于给定对象,决策模块504决策对该对象做什么,而规划模块505确定如何做。例如,对于给定对象,决策模块504可以决策经过对象,而规划模块505可以确定是在对象的左侧还是右侧经过。规划和控制数据由规划模块505生成,包括描述车辆500在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆500以每小时30英里(mph)的速度移动10米,然后以25mph的速度改变到右车行道。

基于规划和控制数据,控制模块506通过根据由规划和控制数据限定的路线或路径向车辆控制系统111发送适当的命令或信号,控制和驾驶自主车辆。规划和控制数据包括足够的信息以沿着路径或路线在不同时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。

在一个实施例中,在多个规划周期中执行规划阶段,规划周期也称为驾驶周期,诸如在100毫秒(ms)的每个时间间隔中。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块505规划下一个路线段或路径段,例如包括目标位置和ADV到达目标位置所需的时间。可替换地,规划模块505还可以指定具体速度、方向和/或转向角等。在一个实施例中,规划模块505为下一个预定时间段(诸如5秒)规划路线段或路径段。对于每个规划周期,规划模块505基于在先前周期中规划的目标位置规划用于当前周期(例如,下一个5秒)的目标位置。然后控制模块506基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门控制命令、制动控制命令、转向控制命令)。

注意,决策模块504和规划模块505可以集成为集成模块。决策模块504/规划模块505可以包括导航系统或导航系统的功能,以确定用于自主车辆的驾驶路径。例如,导航系统可以确定一系列速度和方向航向,以影响自主车辆沿着基本上避开感知的障碍物的路径的移动,同时大体上使自主车辆沿着通向最终目的地的基于车行道的路径前进。目的地可以根据经由用户接口系统113的用户输入而被设置。当自主车辆在操作时,导航系统可以动态地更新驾驶路径。导航系统可以合并来自GPS系统的数据和一个或多个地图,以便确定用于自主车辆的驾驶路径。

运动控制器508具有优化器和车辆模型。优化器可以使用成本函数和车辆模型生成一系列控制命令(例如,油门、转向和/或制动命令),这些控制命令跟踪沿着目标车辆轨迹的车辆路径。这些命令是在针对不同的成本项(例如,横向轨迹误差、驾驶方向误差、速度、转向、加速度、转向变化率和/或加速度变化率)进行优化时生成的。可以在成本函数中表示成本项中的每个以惩罚不希望的行为。控制器参数513(或权重)可以与每个项相关联并应用于每个项(例如,乘法)以修改每个项对总体计算成本的影响。在一个实施例中,控制器参数513是由控制器参数调谐器125为运动控制器508调谐的优化参数。

MPC控制器的成本函数的一般示例如下所示,其中J是总计算成本,wx是对应于项x(x=1,2,…)的权重以及N是沿着ADV的目标轨迹的点。

可以通过最小化计算成本J而优化这些项。这些项可以包括以下中的至少一个:横向轨迹误差(惩罚ADV距目标轨迹的距离)、驾驶方向误差(惩罚ADV驾驶方向和某点处的目标轨迹方向之间的误差)、速度成本(惩罚速度的变化)、转向成本(惩罚转向的变化)、加速度成本(惩罚加速度的变化)、转向变化率(惩罚转向变化有多快)、制动成本(惩罚制动)和加速度变化率(惩罚加速度变化有多快)。在一些实施例中,成本函数包括以上项中的至少两个。在其他实施例中,成本函数包括以上项中的所有。在考虑以上项的同时,可以生成顺序控制命令(油门、转向、制动)以最佳地跟踪目标轨迹。

注意,如上所示和所述的组件中的一些或所有可以以软件、硬件或其组合实现。例如,这些组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)在存储器中加载并执行以执行贯穿本申请所述的过程或操作。可替换地,这些组件可被实现为被编程或嵌入到专用硬件中的可执行代码,专用硬件诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),其可经由来自应用的对应的驱动器和/或操作系统访问。此外,这些组件可以被实现为处理器或中的特定硬件逻辑或处理器内核,作为经由一个或多个特定指令软件组件可访问的指令集的部分。

已经关于对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将其工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操作的那些操作。

然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非另有特别声明,从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,该计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内的类似表示为物理量的其他数据。

本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。

在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上关于一些顺序操作描述了过程或方法,应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。

本公开的实施例不是参考任何特定编程语言描述的。将了解的是,可使用各种编程语言实施如本文描述的本公开的实施例的教示。

在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

在一些实施例中,本公开可以包括语言,例如,“[元件A]和[元件B]中的至少一个”。该语言可以指一个或多个元件。例如,“A和B中的至少一个”可以指“A”、“B”或“A和B”。具体地,“A和B中的至少一个”可以指“A中的至少一个和B中的至少一个”或“A或B中的至少一个”。在一些实施例中,本公开可以包括语言,例如“[元件A]、[元件B]和/或[元件C]”。该语言可以指元件中的任何一个或其任何组合。例如,“A、B和/或C”可以指“A”、“B”、“C”、“A和B”、“A和C”、“B和C”或“A、B和C。”

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:车辆控制装置、车辆控制方法及存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!