Press "Enter" to skip to content

神经网络动力学基于采样的非线性MPC用于自动驾驶运动规划

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

arXiv论文“Sampling-Based Nonlinear MPC of Neural Network Dynamics with Application to Autonomous Vehicle Motion Planning“,2022年5月9日由Kansas大学和华盛顿大学的学者所写。

 

机器学习模型的控制已经成为机器人技术广泛应用的一个重要范例。本文提出一种基于采样的非线性模型预测控制(NMPC)方法来控制神经网络动力学。其设计分为两部分:1)传统基于优化的NMPC描述为贝叶斯状态估计问题,2)使用粒子滤波/平滑实现估计。所提出的方法称为 constraint-aware particle filtering/smoothing NMPC (CAP-NMPC) 。通过基于按原则采样的实现,该方法在控制动作空间中进行有效搜索,实现最优控制,有助于克服神经网络动力学带来的挑战。NMPC方法应用于自动驾驶车的运动规划。具体问题考虑到:神经网络建模非线性未知车辆动力学,以及动态道路驾驶场景。在案例研究中,该方法在运动规划中的成功,显示出重要的有效性。

 

贝叶斯估计视角下,考虑非线性动态系统如下:

 

其中不等式约束:

 

那幺NMPC问题规定如下:

 

这里NMPC也可以被看成贝叶斯估计问题。即这样一个虚拟系统

 

其最大似然p()估计为

 

据此原始的NMPC问题可以转化为这样的问题:给定指定参考,估计最优控制动作以及状态。这一观点为通过估计对待NMPC开辟了一条新途径。

 

文中采用这个barrier函数法创建约束满足的虚拟测量:

 

这里barrier函数选择softplus函数:

 

虚拟系统(4)重写为:

 

基于此,原来的NMPC问题可以状态估计如下(前向滤波和后向平滑)

 

上面(9)中的分布采用基于采样的经验分布近似,从已知的分布q()即importance/proposal distribution,通过importance sampling得到,其中sample weight计算

 

这里p()被近似为

 

而(10)的weight变成递推形式

 

把q()简化,weight计算变为

 

这个实现叫做bootstrap particle filter 。 对于一次粒子滤波运行,在几个时间步之后,大多数粒子的权重可能为零或几乎为零。这就是所谓的粒子退化(degeneracy)问题,会降低粒子的整体质量,并降低估计性能。为了解决这个问题,可以使用重采样(resampling)将低权重粒子替换为高权重粒子。

 

有不同的平滑方法,采用reweighting particle smoother就足够。如下以递推后向方式加权样本

 

这个程序记作reweighted particle smoother 。 之后这个经验分布变成

 

最后最佳估计是

 

综上所述,CAP-NMPC方法可概括为如下算法1:

 

文中提出一种完全基于采样的NMPC实现方法,在神经网络动态控制中具有广阔的应用前景。还应注意的是,这种方法可以很好地接受粒子滤波/平滑的其他实现方式,取决于复杂度和估计精度的需求。

 

考虑一个自动驾驶车辆,其目标是从初始状态x0达到期望的目标状态xg,同时考虑其自身动力学(1)和周围环境施加的约束。规划的目标是在不违反约束的情况下找到最优轨迹。为此,NMPC问题可表述为:

 

在(3)中把目标状态作为参考。

 

运动规划的任务是使自动驾驶车在各种条件或情况下,其性能与人类相当甚至更好,关键是有能力的模型。尽管有这种实用性,基于物理的车辆模型仍有实际局限性,可能存在误差或偏差,或者只适合某些特定条件。与此同时,自动驾驶车获取的数据越来越丰富,构建精确、广泛适用的数据驱动模型成为可能。其中,神经网络在基于模型的车辆控制方面显示出了巨大的优势。因此,利用神经网络模型解决运动规划问题。此外,NMPC基于采样的实现比数值优化更适合神经网络的控制。最近的研究还表明,在处理大规模问题时,采样比数值优化更具竞争力。

 

采用前馈神经网络表示车辆动力学:

 

1) 车辆动力学参数化:用神经网络对车辆动力学进行参数化有不同的方法。一种简单的方法是将状态变量和控制变量反馈给神经网络,并使网络预测系统下一个状态。然而,由于采样时间短,学习这样的函数可能很困难、 这导致状态递推中非常相似,导致网络有效地学习一个identity transformation 。因此,重点放在状态转换函数的参数化,因为它显示了状态的增量变化。参数化由下式给出:

 

2) 数据收集和预处理:从考虑的车辆模型中生成和收集训练数据。这个实现是从均匀分布中采样一组状态,也从均匀分布中采样一个随机控制变量。这里状态变量和控制变量分别由不等式约束(3c)定义。然后,将这些应用于车型,并记录系统的下一个状态。这些构造了训练所需的转换变量。神经网络的输入是状态和控制对,相应的输出是增量状态变化。每个元素的输入和输出几乎都是归一化的,确保每个元素的输入和输出对控制的贡献也是相等的。获得的训练数据集包含100万个数据点。

 

3) 神经网络结构和训练:用一个密集的神经网络,四个隐层,大小分别为200,300,100,ReLU为激活函数。然后,通过最小化均方误差来训练神经网络

 

规划车辆或自车具有一个状态xk,包括其2D位置(xpk,ykp)、线速度νk和航向角ψk,作为单轨车辆模型。其控制输入uk包括加速度ak和转向角δk。仿真研究中考虑三个约束:道路边界、障碍物避撞和有限的控制动作。

 

考虑两个场景来检验CAP-NMPC方法在运动规划的性能。在场景1,自汽在安置静态障碍物的直道上行驶。在场景2,涉及三辆在弯道上行驶的车辆,需要自车超车。场景中的预测视界长度为H=10。CAP-NMPC中使用的粒子数量为N=300。所有车辆的长度和宽度分别为4米和2米。道路宽度为10米,采样周期为∆t=0.2秒。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。