神经网络控制器与基于模型的控制器相组合的车辆控制的制作方法

文档序号:30613423发布日期:2022-07-02 00:17阅读:136来源:国知局
神经网络控制器与基于模型的控制器相组合的车辆控制的制作方法

1.本主题公开涉及汽车的自动控制,尤其涉及组合基于状态观测器的控制器将神经网络用于这样的自动控制。


背景技术:

2.现代车辆通常组合有各种各样的传感器和控制器,其中的许多传感器和控制器(例如制动踏板车辆控制系统致动器和加速器踏板致动器)可以被实现为电子“电传操纵(fly-by-wire)”系统而不是机械控制系统。这些组件由控制器连续监控,以方便车辆控制。
3.期望提供通过将常规控制与神经网络相组合来改善车辆轨迹跟踪的改进的车辆控制。


技术实现要素:

4.在一个示例性实施例中,一种用于自动驾驶员辅助的车辆控制系统包括基于模型的控制器,该基于模型的控制器基于车辆的参考轨迹以及车辆和致动器的当前状态生成第一控制信号,以改变车辆的多个致动器的操作。车辆控制系统还包括神经网络控制器,该神经网络控制器基于车辆的参考轨迹以及车辆和致动器的当前状态生成第二控制信号,以改变车辆的致动器的操作。车辆控制系统还包括组合模块,该组合模块组合第一控制信号和第二控制信号,以基于组合信号来操作致动器。
5.在一个或多个实施例中,第一控制信号是基于来自与车辆和致动器相关联的一组传感器的一个或多个测量值而生成的。
6.在一个或多个实施例中,神经网络控制器被预训练以使用一个或多个调整参数来生成第二控制信号。
7.在一个或多个实施例中,可以通过改变一个或多个调整参数来调节基于模型的控制器。调整参数可以由神经网络控制器读取作为附加观测值。
8.在一个或多个实施例中,车辆的致动器操作车辆的转向、动力系和制动器中的至少一个。
9.在一个或多个实施例中,神经网络控制器进一步基于由基于模型的控制器输出的预测状态来生成第二控制信号。
10.在另一个示例性实施例中,一种用于通过车辆控制系统进行自动驾驶员辅助的计算机实现的方法包括由基于模型的控制器基于车辆的参考轨迹以及车辆和致动器的当前状态生成第一控制信号,以改变车辆的多个致动器的操作。该方法还包括由神经网络控制器基于车辆的参考轨迹以及车辆和致动器的当前状态生成第二控制信号,以改变车辆的致动器的操作。该方法还包括由组合模块组合第一控制信号和第二控制信号,以基于组合信号来操作致动器。
11.在又一示例性实施例中,一种车辆包括用于控制车辆操作的多个致动器。该车辆还包括用于自动驾驶员辅助的车辆控制系统,该车辆控制系统被动态调整以控制车辆的操
作。该车辆控制系统包括基于模型的控制器,该基于模型的控制器基于车辆的参考轨迹以及车辆和致动器的当前状态生成第一控制信号,以改变车辆的一组致动器的操作。车辆控制系统还包括神经网络控制器,该神经网络控制器基于车辆的参考轨迹和致动器的当前状态生成第二控制信号,以改变车辆的该一组致动器的操作。车辆控制系统还包括组合模块,该组合模块组合第一控制信号和第二控制信号,以基于组合信号操作致动器。
12.当组合附图时,根据以下详细描述,本公开的上述特征和优点以及其他特征和优点将变得显而易见。
附图说明
13.其他特征、优点和细节仅作为示例出现在以下详细描述中,详细描述参考附图,在附图中:
14.图1是典型车辆控制系统的框图;
15.图2是根据一个或多个实施例的使用基于模型的控制器和神经网络控制器的组合的车辆控制系统;
16.图3是根据一个或多个实施例的使用基于模型的控制器和神经网络控制器的组合来自主执行车辆的一个或多个操作的方法的流程图;
17.图4是根据一个或多个实施例的车辆控制系统的框图;和
18.图5是根据一实施例的计算机系统的框图。
具体实施方式
19.以下描述本质上仅仅是示例性的,并不旨在限制本公开、其应用或用途。应当理解,在所有附图中,相应的附图标记表示相似或相应的部件和特征。如本文所使用的,术语“模块”指的是处理电路,其可以包括专用集成电路、电子电路、处理器(共享的、专用的或成组的)和执行一个或多个软件或固件程序的存储器、组合逻辑电路和/或提供所述功能的其他合适的组件。
20.根据示例性实施例,描述了一种用于车辆控制的方法,该方法通过将来自车辆轨迹控制器的信号与神经网络控制器相组合来控制车辆的操作/轨迹,从而改善车辆轨迹跟踪。现有轨迹控制器的技术挑战包括对未建模的车辆动力学(的敏感性,以及关于建模的参数和非线性的变化或不确定性。本文描述的实施例通过使用神经网络控制器组合轨迹控制器来解决这些技术挑战。
21.然而,在车辆中使用神经网络控制器具有技术挑战。例如,神经网络控制器缺乏在线调整(tuning),并且训练神经网络控制器需要大量样本,此外,这样的训练在现实世界中的车辆操作期间是不期望的。
22.本文描述的实施例也解决了神经网络控制器的这种技术挑战。通过组合常规的轨迹控制器和神经网络控制器,本文描述的实施例便于利用轨迹控制器的基于模型的方法,例如在线调整,以及神经网络控制器的数据驱动方法,例如优越的非线性控制。因此,这种组合解决了两种方法的缺点。
23.现在参考图1,描绘了典型的车辆控制系统的框图。车辆100包括用于控制一个或多个车辆致动器102的模块。车辆致动器102物理地改变车辆100的操作。除了车辆100的其
他部件之外,车辆致动器102可以引起转向122、动力系124、制动器126的操作的改变。车辆致动器102基于来自车辆控制器110特别是作为车辆控制器110的一部分的轨迹控制器112的控制信号(u
ff
)来改变这些部件的操作。轨迹控制器112基于车辆100的一个或多个估计状态(x)产生控制信号(u
ff
)。控制信号(u
ff
)可以包括诸如将转向转动y度、将制动踏板推y%的命令,或者物理上改变车辆100的操作的任何其他这样的命令。
24.车辆100的状态(x)由状态估计器106基于来自与车辆100相关联的一个或多个传感器104的测量来估计。状态估计器106可以使用已知的状态估计技术,例如卡尔曼滤波或任何其他技术。车辆100的状态(x)可以包括燃料节气门的位置、制动踏板的位置、转向的位置以及车辆100的其他这样的操作状态。传感器104测量物理量并生成电信号形式的考虑周到的输出,该输出可以提供便于估计车辆100的这种状态(x)的测量。例如,传感器104可以提供测量值,例如速度、加速度、角速度以及与车辆致动器102和/或车辆100的其他部件相关联的其他这样的物理量。
25.车辆100的估计状态(x)被提供给路径规划模块108。路径规划模块108可以是高级驾驶员辅助系统(未示出)的一部分,其确定作为整体路线规划/导航操作或车辆控制操作的一部分的车辆100要走的路径(p)。路径规划模块108使用已知或将会已知的技术来生成路径(p),并且其操作不影响本文描述的技术解决方案的特征的操作。
26.轨迹控制器112接收车辆100的路径(p)和估计状态(x)。轨迹控制器112可以是基于模型的控制器,例如比例-积分-微分(pid)控制器、模型预测控制器(mpc)、基于线性二次调节器(lqr)的控制器或任何其他这样的预编程控制器。轨迹控制器112使用编程模型,基于接收到的输入p和x生成控制信号(u
ff
)。如早前所述,控制信号(u
ff
)改变一个或多个车辆致动器102的状态。
27.重复执行上述操作,使得车辆100自主移动。这种现有设置的技术挑战是,使用基于模型的轨迹控制器112的这种车辆控制受到未建模的车辆动力学、参数变化以及输入和操作因素的非线性的影响。因为这些因素不能在基于模型的控制器中预测和/或预编程,所以当车辆100正在操作时遇到这些因素时,车辆100的操作可能是不可预料的。
28.图2描绘了根据一个或多个实施例的使用基于模型的控制器和神经网络控制器的组合的车辆控制系统200。根据一个或多个实施例,在车辆控制系统200中,除了轨迹控制器112之外,控制器210还包括神经网络控制器212。神经网络控制器212包括实现人工神经网络(ann)的一个或多个处理器,例如递归神经网络(rnn)、卷积神经网络(cnn)、深度神经网络(dnn)、或任何其他类型的ann或其组合。在一个或多个示例中,神经网络实现完全连接的ann。
29.神经网络控制器212接收来自状态估计器106的估计状态(x)和来自轨迹控制器112的控制信号(u
ff
)作为输入。此外,神经网络控制器212从状态估计器106接收附加的估计状态(xh),并从轨迹控制器112接收输入状态(xd)。估计状态xb和xd是轨迹控制器112用来生成控制信号u
ff
的估计状态x之外的状态。神经网络控制器212可以使用与轨迹控制器112不同的一组观察值。例如,神经网络控制器212可以使用传感器104,例如摄像机,这对于轨迹控制器112来说是具有挑战性的。因此,状态xb可以不同于由轨迹控制器112使用的状态x。
30.另外,轨迹控制器112可以提供由轨迹控制器112的内部模型生成的参考轨迹状态xd。在一个或多个实施例中,神经网络控制器212可以使用这样的状态xd来修改车辆100的行
为以模拟内部模型。
31.此外,神经网络控制器212从轨迹控制器112接收调整参数(θ
t
),例如超参数。基于输入状态(x,xb,xd)、调整参数(θ
t)
和作为训练阶段的结果的一个或多个加权,神经网络控制器212生成第二组控制信号(u
nn
)。
32.来自轨迹控制器112的第一组控制信号(u
ff
)和来自神经网络控制器212的第二组控制信号(u
nn
)被组合(214)并被发送到各种模块,包括转向122、动力系124和制动器126。这种组合控制信号用于控制车辆致动器102,车辆致动器102又改变状态(x,xb,xd)。这个过程是连续进行的。组合模块214通过执行控制信号的加法、减法或加权总和(或差)来组合控制信号。
33.神经网络控制器212以离线方式预先训练。此外,在车辆控制系统200的实时操作期间,基于遇到的各种输入进一步调节神经网络控制器212的一个或多个操作参数。实时调节的操作参数可以包括调整参数(θ
t
)。
34.神经网络控制器212可以用初始训练成本函数编程。在一个或多个示例中,成本函数可以基于参考轨迹状态(xd)。因此,在稍后的时间,调整轨迹控制器112也可以改变神经网络控制器212的输出控制信号(u
nn
)。此外,可以选择成本函数,使得可以限制单独使用轨迹控制器112与使用轨迹控制器112和神经网络控制器212的组合之间的差异(例如,通过惩罚神经网络控制器输出超过预定阈值)。此外,成本函数可以通过增加对那些特定区域的操作惩罚来促进禁止车辆100的特定操作区域受到神经网络控制器的影响。本文,“区域”代表车辆100的操作区域(模式)。例如,如果神经网络控制器212不在特定速度或任何其他这样的阈值条件之上操作,当车辆100在训练过程中达到阈值条件(例如特定速度)时,可以在神经网络控制器212的输出上配置操作惩罚值。
35.示例成本函数是:
[0036][0037]
本文,n是优化水平长度,wi表示神经网络控制器212的各种操作成分(performance component)的加权值,y和y
p
是期望的和实际的车辆轨迹,x和xd是期望的和实际的车辆状态,u
ff-u
nn
是网络控制器212和基于模型的控制器112的输出之间的差值。应当注意,尽管在上述方程式中示出了三个加权w1、w2和w3,但是在其他示例中,在其他实施例中可以使用不同数量的加权。
[0038]
图3描绘了根据一个或多个实施例的使用基于模型的控制器和神经网络控制器的组合来自主执行车辆的一个或多个操作的方法的流程图。组合图4的框图描述了所描述的方法300,图4描述了根据一个或多个实施例的车辆控制系统200。
[0039]
方法300包括在框302处,由轨迹控制器112基于车辆100的车辆模型402生成第一控制信号。轨迹控制器112接收来自传感器104的测量值,和/或基于这些测量值的估计状态(x)。例如,传感器测量值可以包括车辆100相对于从路径规划器108接收的参考轨迹(y
p
)的位移(d),以及这种位移(d
·
)的速度。测量值还可以包括车辆相对于轨迹y
p
中的参考的偏
航角差(ψ)和车辆100的偏航角速度基于车辆模型402生成第一控制信号(u
ff
),以使车辆致动器102改变车辆100的操作,使得测量值与参考轨迹y
p
匹配。
[0040]
此外,在框304处,轨迹控制器112基于车辆模型402输出车辆100的预测状态(xd)。预测状态(xd)被输入到神经网络控制器212中。预测状态(xd)表示在施加第一控制信号(u
ff
)时车辆100的操作的估计状态。
[0041]
此外,在框306处,轨迹控制器112基于神经网络控制器212的先前输出和轨迹控制器112的输出来计算成本函数(例如,参见上面的方程式)。
[0042]
在框308处,方法300还包括使用神经网络控制器212以基于几个输入(x,xh,xd)生成第二控制信号(u
nn
)。神经网络控制器212基于分配的一个或多个加权值生成第二控制信号(u
nn
)。加权值最初可以使用离线训练来分配。可以使用一种或多种已知的神经网络训练技术(例如监督训练)以及任何其他已知或将要已知的训练技术来执行训练。在一个或多个示例中,神经网络控制器212使用强化学习算法来训练,例如深度确定性策略梯度(ddpg)、近端策略优化(ppo)、软演员-评论家算法(soft actor-critic,sac)或任何其他这样的算法。
[0043]
使用包括神经网络控制器212和轨迹控制器112的组合的控制系统200来执行训练。这样,使用来自轨迹控制器112的观察信号以及传感器测量值和基于测量值的估计状态来训练神经网络控制器212。在一个或多个示例中,执行训练以使用随机策略提供探索。此外,在训练期间使用调整参数(θ
t
)的各种组合来为在该组合中操作的神经网络控制器212确定最优的一组调整参数。
[0044]
方法300还包括在框310处,组合第一控制信号和第二控制信号以生成第三控制信号。组合可以包括第一控制信号(u
ff
)和第二控制信号(u
nn
)的相加(或相减)。替代地,在其他实施例中,该组合可以是第一控制信号(u
ff
)和第二控制信号(u
nn
)的加权和(或差)。在其他实施例中,第一控制信号(u
ff
)和第二控制信号(u
nn
)的任何其他组合都是可能的。在框312处,第三控制信号被发送到车辆致动器102,以改变车辆100的操作。
[0045]
此外,在框314处,通过调节轨迹控制器112的一个或多个参数来重新调整控制系统200。重新调整是基于由轨迹控制器112的优化器模块404计算的成本函数。神经网络控制器212接收代表参考轨迹(y
p
)和轨迹控制器112的输出之间的差值的成本函数值,以及估计的状态(x,xb,xd)。在一个或多个实施例中,除了由轨迹控制器112接收的输入之外,神经网络控制器212可以使用额外的测量值,例如纵向速度(v
x
)、纵向加速度(a
x
)、横向加速度(ay)等等。在一个或多个实施例中,这样的测量值可以用于生成估计的状态xb。
[0046]
因此,神经网络控制器212可以在车辆100的操作期间被实时重新训练,以改善车辆控制系统200的操作。
[0047]
通过将基于模型的轨迹控制器112与神经网络控制器212组合使用,车辆控制系统200为神经网络控制器212提供了稳定且安全的学习环境。车辆控制系统200便于使用在车辆100以安全方式操作期间遇到的数据来训练神经网络控制器212。与没有与基于模型的轨迹控制器112相组合所需的样本相比,训练神经网络控制器212需要更少的样本。
[0048]
在一个或多个实施例中,在神经网络控制器212已经被训练之后,轨迹控制器112可以用于通过改变神经网络控制器212的一个或多个参数来调整神经网络控制器212,而无需额外的训练。
[0049]
各种实验场景已经表明,如本文所述,使用基于模型的轨迹控制器和神经网络控制器的组合的车辆控制系统改善了车辆操作,例如通过在自动驾驶辅助期间改善横向偏差和转向控制。这种改进已经在各种类型的道路路线上看到,例如城市/郊区道路以及偏远/农村道路。
[0050]
本文描述的技术方案的实施例改进了用于自主执行车辆的一个或多个操作的车辆控制系统,并提供了这样做的实际应用。所提供的改进包括但不限于避免对车辆的精确动态和非线性模型的需要。创建和管理像车辆这样复杂的系统的这种动态和非线性模型是一项技术挑战,并且本文描述的技术解决方案可以有助于在没有这种模型的情况下执行自主操作。此外,与仅使用基于模型的控制器的现有系统相比,本文描述的实施例改善了车辆控制系统的性能,其中,如前所述,模型不能包含系统的复杂性。另外,本文描述的实施例不需要改变车辆控制系统的现有控制设计,因为神经网络控制器与基于模型的轨迹控制器的组合以模块化方式替代了现有的轨迹控制器。
[0051]
现在转到图5,根据一实施例总体示出了计算机系统500。计算机系统500可以用作本文描述的任何设备和/或装置,例如车辆100中配备的设备和/或装置。在一个或多个实施例中,计算机系统500实现本文描述的一个或多个方法。如本文所述,计算机系统500可以是包括和/或使用利用各种通信技术的任意数量和组合的计算设备和网络的电子计算机框架。计算机系统500可以是容易升级的、可扩展的和模块化的,具有独立于其他服务改变到不同服务或重新配置一些特征的能力。计算机系统500可以是例如服务器、台式计算机、膝上型计算机、平板计算机或智能手机。在一些示例中,计算机系统500可以是云计算节点。计算机系统500可以在由计算机系统执行的诸如程序模块的计算机系统可执行指令的一般上下文中描述。通常,程序模块可以包括例程、程序、对象、组件、逻辑、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。计算机系统500可以在分布式云计算环境中实施,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
[0052]
如图5所示,计算机系统500具有一个或多个中央处理单元(cpu)501a、501b、501c等(总称或统称为处理器501)。处理器501可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。处理器501,也称为处理电路,经由系统总线502耦合到系统存储器503和各种其他组件。系统存储器503可以包括只读存储器(rom)504和随机存取存储器(ram)505。rom504耦合到系统总线502,并且可以包括基本输入/输出系统(bios),其控制计算机系统500的某些基本功能。ram是耦合到系统总线502以供处理器501使用的读写存储器。系统存储器503在操作期间为所述指令的操作提供临时存储空间。系统存储器503可以包括随机存取存储器(ram)、只读存储器、闪存或任何其他合适的存储系统。
[0053]
计算机系统500包括耦合到系统总线502的输入/输出(i/o)适配器506和通信适配器507。i/o适配器506可以是与硬盘508和/或任何其他类似组件通信的小型计算机系统接口(scsi)适配器。i/o适配器506和硬盘508在本文统称为大容量存储器510。
[0054]
用于在计算机系统500上执行的软件511可以存储在大容量存储器510中。大容量存储器510是处理器501可读的有形存储介质的示例,其中软件511被存储为由处理器501执行的指令,以使计算机系统500操作,如本文参考各种附图所描述的。本文更详细地讨论了计算机程序产品和这种指令的执行的示例。通信适配器507将系统总线502与网络512互连,
网络512可以是外部网络,使得计算机系统500能够与其他这样的系统通信。在一个实施例中,系统存储器503的一部分和大容量存储器510共同存储操作系统,该操作系统可以是任何合适的操作系统,以协调图5所示的各种组件的功能。
[0055]
附加的输入/输出设备被示为经由显示适配器515和接口适配器516连接到系统总线502。在一个实施例中,适配器506、507、515和516可以连接到一个或多个i/o总线,这些总线经由中间总线桥(未示出)连接到系统总线502。显示器519(例如,屏幕或显示监视器)通过显示适配器515连接到系统总线502,显示适配器515可以包括用于提高图形密集型应用的性能的图形控制器,以及视频控制器。扬声器523、诸如触摸屏、按钮等输入设备以及其他此类人机交互设备(未示出)等可以经由接口适配器516互连到系统总线502,接口适配器516可以包括例如将多个设备适配器集成到单个集成电路中的超级i/o芯片。用于连接外围设备(如硬盘控制器、网络适配器和图形适配器)的合适的i/o总线通常包括通用协议,如外围组件互连(pci)。因此,如图5中所配置的,计算机系统500包括处理器501形式的处理能力、包括系统存储器503和大容量存储器510的存储能力、诸如人机交互设备(未示出)的输入装置、以及包括扬声器523和显示器519的输出能力。
[0056]
在一些实施例中,通信适配器507可以使用任何合适的接口或协议,例如因特网小型计算机系统接口等,来传输数据。网络512可以是蜂窝网络、无线电网络、广域网(wan)、局域网(lan)或因特网等。外部计算设备可以通过网络512连接到计算机系统500。在一些示例中,外部计算设备可以是外部网络服务器或云计算节点。
[0057]
应当理解,图5的框图并不旨在指示计算机系统500将包括图5所示的所有组件。相反,计算机系统500可以包括图5中未示出的任何适当的更少或额外的组件(例如,额外的存储器组件、嵌入式控制器、模块、额外的网络接口等)。此外,本文中关于计算机系统500描述的实施例可以用任何适当的逻辑来实现,其中,在各种实施例中,本文所指的逻辑可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用程序等)、固件或硬件、软件和固件的任何适当组合。
[0058]
除非明确描述为“直接的”,否则当第一和第二元件之间的关系在上述公开中描述时,该关系可以是在第一和第二元件之间不存在其他介入元件的直接关系,但是也可以是在第一和第二元件之间存在(在空间上或功能上)一个或多个介入元件的间接关系。
[0059]
应该理解,方法或过程中的一个或多个步骤可以以不同的顺序(或同时)执行,而不改变本公开的原理。此外,尽管每个实施例在上面被描述为具有某些特征,但是关于本公开的任何实施例描述的那些特征中的任何一个或多个可以在任何其他实施例中实现和/或与任何其他实施例的特征相组合,即使该组合没有被明确描述。换句话说,所描述的实施例不是相互排斥的,并且一个或多个实施例彼此的置换仍在本公开的范围内。
[0060]
虽然已经参考示例性实施例描述了上述公开,但是本领域技术人员将理解,在不脱离本发明的范围的情况下,可以进行各种改变,并且等同物可以替代其元件。此外,在不脱离本公开的基本范围的情况下,可以进行许多修改以使特定情况或材料适应本公开的教导。因此,意图是本公开不限于所公开的特定实施例,而是将包括落入其范围内的所有实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1