深度学习模型预测控制用于在未知环境中的自动驾驶

摘要

本文提出了一种用于自动驾驶的动态避障模型预测控制(MPC)方法,该方法在未知环境中利用深度学习技术实现速度相关的碰撞避免。该方法的目标是在考虑操控能力、车辆动力学以及交通规则、道路边界和静态与动态未知障碍物存在的情况下,以安全的方式控制自动驾驶汽车完成不同的交通操作,同时为乘客提供最大舒适度,并在尽可能短的时间内完成任务。通过定义局部坐标和碰撞区域,将动态避碰问题转化为静态避碰问题,从而使该方法在动态环境中更易于且更快速地求解。为了保障安全性,采用深度神经网络集成来估计碰撞概率,并构建一种不确定性相关的碰撞代价,以在任务与安全之间进行优先权平衡。碰撞代价是碰撞概率与高碰撞风险方向上车辆速度的乘积。该动态避障优化方法在障碍锥内碰撞概率较高或处于陌生环境时降低速度,在集成预测值的概率及变化较小时提高速度。在学习过程中使用来自MPC的预测轨迹来分配标签,从而能够提前预测碰撞。仿真结果表明,所提出的方法对未知环境具有良好的适应性。

关键词 : 自动驾驶汽车, 深度学习, MPC, 神经网络, 优化

1. 引言与相关工作

自动驾驶汽车技术有可能从根本上改变交通系统,有望减少能源消耗、污染、事故和拥堵成本。在这一愿景成为现实之前,还有许多问题需要解决,其中之一就是安全的车辆行为与运动规划,这也是本文的主题。

自动驾驶汽车的运动规划与控制涉及多个任务,例如为整体运动计划做出高层决策,然后以舒适且安全的方式控制车辆执行该计划。经典控制技术在底层控制中表现出色,而新的基于学习的技术已在高层决策制定中被证明是成功的。本文的目标是提出一种方法,其中MPC控制器与基于激光雷达测量的深度神经网络(DNN)模型协同工作。该神经网络用于建模决策过程,判断车辆应专注于安全还是预定任务。

自动驾驶车辆的运动规划方法可以分为不同的主要类别。其中,优化方法已取得了令人瞩目的成果,也可用于实时操作(王等人,2017)。然而,纯优化方法通常会导致复杂且非凸约束,例如在动态未知环境中的机械限制和避障问题。这些特性使得模型预测控制成为规划和控制车辆运动的合适基础(孙和崔,2004)。本文所提出方法的一个关键特征是,该问题被表述为点稳定问题,从而使其能够在多种不同类型的交通场景中应用。问题的表述方式以及该方法的通用性是本文的贡献之一。

这项工作的进一步特点是,将DNN与MPC相结合,使得目标函数得以简化,从而降低了优化的计算负载。同时,MPC公式使得可以包含控制、状态限制和舒适性等准则。MPC中的损失函数是碰撞风险与在优化时间点处车辆和障碍物速度函数的组合。该公式使得该方法能够在存在静态和动态障碍物的未知环境中使用。

迄今为止,已有大量技术被应用于自动驾驶车辆控制,例如(董和法雷尔,2008;石等人,2012;斯蒂帕诺维奇等人,2004)。然而,这些技术要么未考虑物理约束(如避障、输入饱和等),要么仅隐式地考虑某些特定约束,例如(伦纳德和菲奥雷利,2001)通过势能函数对碰撞进行惩罚。状态和输入控制信号的限制需符合执行器限制,这是模型预测控制(MPC)的主要特点,使其成为复杂且受限环境中实时控制的合适方案(孙和崔,2004)。MPC具有显式处理物理约束和优化轨迹的优势,是自主系统控制中的首选方法,参见例如(丁等,2010)。关于滚动时域控制(RHC)的综述工作可参见(斯卡托利尼,2009)。在本研究中,MPC与深度学习技术结合用于未知环境中的避障。

动态环境中的碰撞风险和不确定性使决策成为一个复杂的领域。碰撞概率的估计基于来自多传感器的原始信息以及关于车辆位置和控制输入的知识。深度学习尤其是深度神经网络,能够学习复杂的相互作用和依赖关系,在不同交通场景下,车辆难以将特征之间的复杂交互转化为设计规则。神经网络能够学习特征间的复杂交互,这有利于动态环境中的自动驾驶;因此,采用神经网络集合进行碰撞风险估计。

深度学习作为机器学习的一个领域,在不同应用以及最优控制中均取得了显著成功。例如,在(Levine等人,2016)中,监督学习与强化学习被用于机器人控制问题中的策略搜索,如将瓶盖拧到瓶子上。基于这些观察,本文采用的方法是利用深度学习将交通状况中的不确定性表示为碰撞概率。在许多使用学习技术进行自动驾驶的研究中,训练模式下的目标标签是基于当前车辆位置分配的。本文中的DNN模型同样以监督方式进行训练,其训练标签由MPC控制器提供,从而使训练过程完全自主。这一特性使得提前预测碰撞成为可能,也是本工作的贡献之一。在(Kahn等,2017)中可以找到强化学习在避障中的应用,其中使用强化学习方法控制四旋翼飞行器,但未考虑车辆动力学,并且路径是通过随机射击法生成的。相比之下,本文提出的方法完全集成了非完整车辆模型,并结合激光雷达测量所检测到的障碍物,采用非线性模型预测控制器来寻找最优路径。通过使用该控制器,车辆在碰撞概率较高或陌生环境中会降低速度,在碰撞概率较低时则提高速度。

2. 方法概述

这里介绍了用于自动驾驶的模型预测控制(MPC)方法,该方法在未知环境中使用深度学习技术实现速度相关的碰撞避免。在每次优化迭代中,自动驾驶汽车通过激光雷达传感器采集的数据获取关键障碍物的位置、尺寸和速度信息。

然后,采用深度神经网络集成来估计碰撞概率,经典控制器利用该概率在高碰撞风险区域降低速度,并在碰撞概率较低时集中执行任务。碰撞代价是碰撞概率与高碰撞风险方向上车辆速度的乘积。这些方向通过自动驾驶汽车(AV)与障碍物之间的相对速度确定,针对每个关键障碍物形成碰撞锥。随后,根据车辆与最终目的地之间的最小距离、最大舒适度以及在高碰撞风险区域内的最小化速度,求解一个MPC问题,输出车辆的最优加速度和转向速率。

动态避障优化方法在碰撞概率较高或陌生环境中最小化障碍锥内的速度,而在集成的预测值的概率和变化较低时增加速度。结果表明,所提出的方法对未知动态环境具有良好的适应性。

2.1 车辆动力学

假设自动驾驶车辆的动力学由常微分方程描述,且状态和控制向量为
$$ z_a(t) = (x_a(t), y_a(t), v_a(t), \theta_a(t), \psi_a(t)) $$

$$ u_a(t) = (a_a(t), \omega_a(t)) $$
分别为车辆中心在全局笛卡尔坐标系中的位置 $ p_a(t) = (x_a(t), y_a(t)) $ 和方向角 $ \theta_a(t) $;$ v_a(t) $ 和 $ a_a(t) $ 表示速度和加速度;$ \psi_a(t) $ 表示前轮相对于车身的前轮转向角,$ \omega_a(t) $ 表示转向速率。参数 L 表示轴距长度,见图1。

车辆由运动学方程建模:
$$
\dot{z}_a(t) = f(z_a(t), u_a(t)) =
\begin{bmatrix}
v_a(t) \cos(\theta_a(t)) \
v_a(t) \sin(\theta_a(t)) \
a_a(t) \
\frac{1}{L} v_a(t)\tan(\psi_a(t)) \
\omega_a(t)
\end{bmatrix}
\tag{1}
$$

在本文的其余部分中,我们将处理非完整车辆模型 (1)。一个更完整的车辆运动学模型还可包括侧滑、载荷转移以及每个车轮的旋转角度作为广义坐标,以考虑车轮轴上执行器和传感器的存在,以及轮胎变形等典型的非理想因素。

自动驾驶汽车路径规划与稳定化问题包含由障碍物引起的状态限制以及涉及机械极限的输入限制。这些约束必须在实时条件下得到满足;因此,需要同时考虑输入和状态限制。此外,除了动力学方程(1)外,还考虑了控制变量和状态变量的约束,以反映物理和机械限制。状态和控制约束如下:
$$
\begin{cases}
|a_a(t)| \leq a_{\text{max}} \
v_{\text{min}} \leq v_a(t) \leq v_{\text{max}} \
|\psi_a(t)| \leq \psi_{\text{max}} \
|\omega_a(t)| \leq \omega_{\text{max}}
\end{cases}
\tag{2}
$$

3. 问题描述与方法

自动驾驶车辆控制中的一个主要问题是避障。本文提出了一种基于深度学习技术的动态避障方法,其中车辆学习一个碰撞预测模型。该碰撞模型与速度相关的碰撞代价一起用于模型预测控制公式中,以在高碰撞风险区域降低速度,在低碰撞风险区域提高速度,从而专注于完成机动操作。

MPC问题基于状态 $ z_a $、控制输入 $ u_a $、车辆动力学模型(1)以及观测值 $ o(t) $(在本例中为激光雷达测量)进行构建。目标函数包含一个称为任务代价的与碰撞无关的项,以及一个速度相关的碰撞项,该碰撞项是碰撞预测模型和车辆速度的函数。

深度学习模型预测控制(DLMPC)的目标函数形式如下:
$$
H(z_a, u_a, o(t_k), h_p) = (1 - P_{\text{COLL}}(z_a(t_k), u_a(\tau; t_k), o(t_k)))H_{\text{TASK}}(z_a, u_a) + P_{\text{COLL}}(z_a(t_k), u_a(\tau; t_k), o(t_k))H_{\text{COLL}}(z_a, o(t_k))
\tag{3}
$$
其中,$ H_{\text{TASK}}(z_a, u_a) $ 是一个与障碍物无关的任务项,$ H_{\text{COLL}}(z_a, o(t_k)) $ 是一个与障碍物相关的碰撞成本。此外,$ \tau \in [t_k, t_k + h_p] $, $ t_k $ 为第 $ k $ 个采样时刻,$ h_p $ 和 $ h_c $ 分别为优化与更新时域。$ H_{\text{COLL}}(z_a, o(t_k)) $ 是车辆速度在高碰撞风险方向上的函数,其定义将在后文给出;$ P_{\text{COLL}}(\cdot) $ 是依赖于环境的函数,表示在 $ \tau \in [t_k, t_k + h_p] $ 中的碰撞概率。

该概率函数利用当前观测值 $ o(t_k) $、当前状态 $ z_a(t_k) $、车辆在未来 $ [t_k, t_k + h_p] $ 时间内计划执行的控制输入序列 $ u_a(\tau) $,并在缺乏对环境的先验知识的情况下估计碰撞概率。

为了估计 $ P_{\text{COLL}}(\cdot) $,使用了一个神经网络集成,其输出为介于0和1之间的值,对应碰撞概率。关于学习过程和神经网络模型的详细信息在第4节中描述。每个交通场景通过自动驾驶车辆的初始状态以及车辆希望到达的目标目的地点 $ p_f $ 来定义。随后,DLMPC问题被表述如下。

问题 1. 在给定的控制和优化时域 $ h_c \in (0,h_p) $、$ h_p $,以及权重标量 $ \gamma_z $、$ \gamma_u $、$ \gamma_c $ 和 $ \gamma_t $ 的条件下,在任意采样时刻 $ t_k $, $ k \in \mathbb{N} $ 对所有 $ \tau \in [t_k, t_k + h_p] $,求解 $ u^* = \arg\min_{u_a(\cdot)} H(t_k, z_a, u_a, o(t_k), h_p) $,其中 (3) 中定义的 $ H(t_k, z_a, u_a, o(t_k), h_p) $ 是
$$
H(t_k, z_a, u_a, o(t_k), h_p) =
\int_{t_k}^{t_k+h_p} (1 - P_{\text{COLL}}(z_a(t_k), u_a(\tau; t_k), o(t_k))) \cdot (\gamma_z |p_a(\tau; t_k) - p_f|^2 + \gamma_u (|u_a(\tau; t_k)|^2 + |\dot{u} a(\tau; t_k)|^2)) d\tau + (1 - P {\text{COLL}}(z_a(t_k), u_a(\tau; t_k), o(t_k)))\gamma_t |p_a(t_k + h_p; t_k) - p_f|^2 + \int_{t_k}^{t_k+h_p} \gamma_c P_{\text{COLL}}(z_a(t_k), u_a(\tau; t_k), o(t_k))H_{\text{COLL}}(z_a(t_k))d\tau
\tag{4}
$$
受限于
$$
\dot{z}_a(\tau; t_k) = f(z_a(\tau; t_k), u_a(\tau; t_k)) \quad z_a(\tau; t_k) \in Z \tag{5}
$$
$$
u_a(\tau; t_k) \in U \tag{6}
$$
其中,(4) 中的第一项用于执行变道操作,第二项和第三项用于最小化控制输入并提高乘客舒适性,第四项表示终端成本,最后一项为避障成本。

此外,$ h_p $ 和 $ h_c $ 分别为预测时域和控制时域,(5)和(6)分别为状态和控制变量的约束。根据(4),如果学习模型以高置信度预测无碰撞,则 $ P_{\text{COLL}} $ 较小,从而促使车辆最小化 $ H_{\text{TASK}} $ 并以更高的速度行驶。当学习模型不确定或预测会发生碰撞时,$ P_{\text{COLL}} $ 较大且为了最小化 $ H_{\text{COLL}} $,鼓励车辆以低速度行驶。

控制输入通过在每个采样时刻 $ t_k $ 求解有限时域最优控制问题获得。每次优化都会产生一个开环最优控制轨迹,并将该控制轨迹的第一部分应用于系统,直至下一个采样时刻 $ t_{k+1} = t_k + h_c $,然后重复此过程。每个MPC问题的最优解表示为 $ u_a^ (\tau; t_k) $,车辆的最优状态轨迹表示为 $ z_a^ (\tau; t_k) $,$ \tau \in [t_k, t_k + h_p] $。注意,车辆的最优控制,即 $ u_a^*(\tau; t_k) $,依赖于其初始状态 $ z_a(t_k) $ 以及在 $ t_k $ 处的车辆观测。

3.1 环境建模与避障

现在,为了定义 $ H_{\text{COLL}} $,引入障碍物和碰撞锥的模型。在图2中,AV表示自动驾驶车辆,Obs表示一个移动障碍物。自动驾驶车辆和障碍物 Obs 被扩展为具有半径 $ D_a $ 和 $ D_o^i $ 的圆形体,其中 $ i = 1,\dots,n $,且 $ n $ 为障碍物的数量。围绕车辆的圆称为主导区域,其半径为 $ D_a = \sqrt{(L_f/2)^2 + (L/2 + L_r)^2} $,其中 $ L_f $ 和 $ L_r $ 分别表示车辆的前部宽度和悬伸长度,见图1和图2。此外,在障碍物中心未知的情况下(这在未知环境中是常见情况),使用激光雷达射线与每个障碍物的交点来确定对应于每个障碍物的碰撞锥,其定义如下。

每个障碍物的外接圆在全局XY–笛卡尔坐标系中的位置及其在时刻 $ t_k $ 的速度矢量分别表示为 $ p_o^i(t_k) $ 和 $ v_o^i(t_k) $。同时假设所有障碍物在优化时间区间 $ h_p $ 内的速度保持不变。然后,通过将自动驾驶车辆当前的位置作为原点,并将其轴方向定义为与全局坐标系相同,建立一个相对的局部 $ X_L Y_L $ –笛卡尔坐标系,参见图2。

为了定义碰撞代价,引入了相对状态变量。首先,通过对所有障碍物的半径增加 $ D_a $ 并考虑自动驾驶车辆为一个质点来进行障碍物膨胀。因此,第 $ i $ 个障碍物在相对笛卡尔坐标系中的位置和半径分别定义为 $ p_{oa}^i(t_k) = p_o^i(t_k) - p_a(t_k) $ 和 $ D_{oa}^i = D_o^i + D_a $。

此外,对于每个障碍物,通过将自动驾驶车辆表示为以相对速度 $ v_{ao}^i(t_k) = v_a - v_o^i(t_k) $ 运动的质点,定义一个碰撞代价,而该 $ i $ 个移动障碍物在全局笛卡尔坐标系中可被视为局部坐标系中的静态障碍物。

车辆在时刻 $ t_k $ 的速度矢量为 $ v_a(t_k) = (v_a(t_k)\cos\theta_a(t_k), v_a(t_k)\sin\theta_a(t_k)) $。因此,原本自动驾驶车辆 $ AV(p_a(t_k), v_a(t_k)) $ 在避免与动态障碍物 $ Obs(p_o^i(t_k), v_o^i(t_k)) $ 发生碰撞的同时执行机动的问题被转化为一个新问题。在这个新问题中,自动驾驶车辆AV位于局部坐标系的原点,以速度 $ v_{ao}^i(t_k) $ 运动,同时避免与一个半径为 $ D_{oa}^i $ 且位于 $ p_{oa}^i $ 处的静态障碍物发生碰撞。因此,原本的动态避碰问题转化为一个静态避碰问题。

注意,如果对于任意 $ \tau \in [t_k; t_k + h_p] $,自动驾驶车辆 $ (\tau v_{ao}(\tau; t_k)) \cap Obs(p_{oa}^i, D_{oa}^i) = \emptyset $,即自动驾驶车辆的位置与第 $ i $ 个障碍物的边界或内部相交,则可能发生碰撞。为了避免这种情况,为每个障碍物定义了一个相对碰撞锥
$$
RCC^i = {v_{ao} \mid (\tau v_{ao}(\tau; t_k)) \cap Obs(p_{oa}^i, D_{oa}^i) = \emptyset} \tag{7}
$$
因此,为了避碰撞,在碰撞锥内的任何方向上车辆的速度
$$
CC^i = {v_a \mid \exists \tau \in [t_k, t_k + h_p], (v_a - v_o^i) \in RCC^i} \tag{8}
$$
应被最小化。为此,我们为每个障碍物使用三个关键点,并最小化自动驾驶车辆朝向中间关键点的速度方向。从右侧看,这三个点分别是起点 $ A_i $、终点 $ B_i $ 和中间角度点 $ C_i $,这些点通过激光雷达测量获得,如图2所示。因此,在局部直角坐标系中,速度分量 $ V_{\text{COLL},s}^i $,其中沿连接车辆中心与 $ C_i $ 的向量方向的相对速度 $ v_{ao}^i $ 表示为
$$
V_{\text{COLL},s}^i = v_a \cos(\theta_a - \phi_{ao}^i) - v_o^i \cos(\theta_o^i - \phi_{ao}^i) \tag{9}
$$
其中 $ \phi_{ao}^i, i = 1,\dots,n $ 是连接车辆中心到 $ C_i $ 的向量与局部坐标系中 $ X_L $ 轴之间的夹角。然后,碰撞代价表示为:
$$
H_{\text{COLL}} = \sum_{i=1}^{n} \alpha_i |V_{\text{COLL},s}^i|^2 \tag{10}
$$
其中 $ \alpha_i, i = 1,\dots,n $ 是用于优先考虑障碍物的权重。

4. 碰撞概率估计

仅使用监督学习来学习自动驾驶车辆导航问题的最优轨迹是一项困难的任务,通常无法实现良好性能。自动驾驶汽车运行的环境是动态的,如果从起始位置到目的地对车辆轨迹进行规划,学习模型在预测中的微小不准确性也可能导致车辆碰撞。然而,如果像在模型预测控制中那样,仅对短时域内的车辆运动进行预测,并将可能碰撞信息添加到控制器中,则可以实现更可靠且安全的车辆运动。

4.1 用于碰撞预测的深度学习模型

我们将可能发生的碰撞信息表示为第3节中提到的碰撞概率 $ P_{\text{COLL}} $。该概率由深度神经网络集成进行估计,参见例如(Goodfellow et al., 2016),并在模型预测控制每次规划新轨迹的每个时间点进行计算。对于我们的任务而言,每个单独的神经网络都是一个弱分类器,因为很难遍历车辆所有可能的状态,并对模型进行长时间范围的训练。采用集成方法可以缓解这一问题。

示意图0

示意图1

网络集成使我们能够提高预测器的性能。

在本例中,深度神经网络表示为一个全连接的多层神经网络,网络示意图如图3所示。输入层由激光雷达传感器测量值、车辆状态以及预测的最优轨迹中每个点的控制输入组成,该层的节点数量为151。输入到输入层的所有值均经过归一化处理,使其处于范围[-1, 1]内。每一层的输出 $ a^{[j]} $ 通过将非线性激活函数 $ g(\cdot) $ 应用于前一层输入的线性组合而得到
$$
a^{[j]} = g(W^{[j]} \cdot (a^{[j-1]})^T + b^{[j]}), \quad j = 1,\dots,m
$$
其中 $ m $ 是层数,所有 $ W^{[j]} $ 为连接第 $ (j-1) $ 层节点与 $ j $ 层节点的权重,$ b^{[j]} $ 为 $ j $ 层所有节点的偏置。以下神经网络架构用于碰撞概率估计 $ P_{\text{COLL}} $。前两个隐藏层各包含100个节点,接下来的两个连续隐藏层各包含50个节点。所有节点均采用RELU激活函数(Nair和Hinton,2010),该函数已成为隐藏全连接层中常用的激活函数(Goodfellow等,2016)。输出层由两个节点组成,每个节点均使用Sigmoid激活函数,其值范围为0到1之间,对应于碰撞概率的值 $ P_{\text{COLL}} $。为避免过拟合,在每一隐藏层中添加了比率0.2的Dropout(Srivastava等,2014)。

考虑到在我们的应用中训练数据量不如经典监督学习问题那样大,并且网络无法进行足够多的训练轮次以实现误差曲线收敛,因此通过上述架构的神经网络集成来估计碰撞概率 $ P_{\text{COLL}} $。通常,当使用集成模型时,每个模型预测结果的平均值即为输出。然而,(Kahn等,2017)的作者建议将集成预测中的不确定性引入车辆行为中。当集成中的不同模型在其预测上存在分歧,即方差较大时,表明车辆处于不熟悉的环境中,应谨慎行事。因此,不是将神经网络集成的平均值 $ E[a^{[5]}] $ 作为碰撞概率,而是利用神经网络输出层中激活前值 $ s^{[5]} = W^{[5]} \cdot (a^{[4]})^T + b^{[5]} $ 的均值和方差来估计碰撞概率。当求得激活前值的均值 $ E[s^{[5]}] $ 和标准差 $ \text{Std}[s^{[5]}] $ 后,碰撞概率定义为
$$
P_{\text{COLL}} = \text{sigmoid}(E[s^{[5]}] + \lambda_{\text{std}} \cdot \text{std}[s^{[5]}])
$$
其中 $ \lambda_{\text{std}} $ 表示概率估计中的保守程度。

示意图2

深度学习模型预测控制用于在未知环境中的自动驾驶

4.2 训练碰撞预测模型

监督学习的一个显著特征是每个训练样本都有标签或目标值。这意味着对于神经网络中的每个输入 $\xi_i$,都存在一个碰撞的 $\zeta_i$ 目标标签。在我们的情况下,目标标签仅为0值和1值,其中0值表示无碰撞发生的情况,1值表示发生碰撞的情况。

使用以下过程来分配训练目标标签。每当模型预测控制(MPC)规划轨迹时,车辆会读取激光雷达传感器测量值。激光雷达传感器可以检测属于障碍物的点,这些点在图4中表示为蓝色点。以检测到的障碍物点为中心、半径为 $R$ 构建圆 $\text{Circ}_k$(其中 $k = 1,\dots,K$ 且 $K$ 为检测到的点的数量),并在图4中表示为虚线圆。然后,如果规划的最优轨迹中的任意一点(图4中的红色曲线)至少属于一个已形成的圆 $\text{Circ}_k$,则为该数据样本 $\xi_i$ 分配目标标签1,表示在 $h_p$ 秒的预测范围内会发生碰撞;否则目标标签为0。

每当车辆到达空间中的一个新位置时,就会读取传感器测量值,并按照上述方法分配目标标签。因此,形成一对 $(\xi_i, \zeta_i)$ 并添加到包含先前保存的训练样本对的数据库中。然后,使用批量大小为1的随机梯度下降(SGD)(Bottou,2010)优化器,对神经网络集成进行5个训练轮次的训练,以最小化二元交叉熵损失函数(Goodfellow等,2016)。需要注意的是,神经网络集成在车辆的每个新位置都会从头开始重新训练,这意味着该集成逐步逼近能够实现避障的分布。

示意图3

5. 仿真结果与讨论

本节的目标是说明在车辆对障碍物没有先验知识的未知环境中,所提出的方法如何应用于不同类型的场景。

为了执行两种不同的操作,即变道场景和在障碍物密集环境中行驶,针对自动驾驶汽车对DLMPC方法进行了研究。

仿真结果用于说明所提出方法的性能和通用性,以及如何利用碰撞估计概率仅通过传感器原始输入、车辆状态变量和控制输入来实现避障。

对于两种场景,均假设车辆由动力学模型(1)描述。仿真中使用的参数和值如表1所示。结果表明,在整个仿真时间内,车辆的加速度未超过范围 $[-a_{\text{max}}, a_{\text{max}}]$,角速度未超过 $[-\omega_{\text{max}}, \omega_{\text{max}}]$,这意味着在操作过程中输入约束得到满足。为求解优化问题,采用了MATLAB中的Casadi框架。

此外,神经网络在Python中实现,并借助Keras库完成,Keras是一个高层神经网络API,可使用不同的后端(例如TensorFlow)来加速神经网络的开发与实验。结果表明,该方法能够

符号 描述
$L$ 车辆轴距长度 $[m]$ 2.5 $[m]$
$L_f$ 前部宽度 $[m]$ $L$ $[m]$
$L_r$ 悬伸长度 $[m]$ $L/4$ $[m]$
$\psi_{\text{max}}$ 最大转向角 $\pi/4$ $[rad]$
$v_{\text{min}}$ 最小速度 1 $[m/s]$
$v_{\text{max}}$ 最大速度 25 $[m/s]$
$\omega_{\text{max}}$ 最大转向速率 $\pi/8$ $[rad/s^2]$
$a_{\text{max}}$ 最大加速度 3 $[m/s^2]$
$h_p$ 预测周期 3 $[s]$
$h_c$ 更新周期 0.5 $[s]$

表1:车辆模型参数

速度和航向角 $\theta$ 的值在上述操作过程中会发生变化,以避免碰撞,同时这些值保持在规定的限制范围内,参见图5(b)-(c)和图6(b)-(c)。

5.1 变道场景

在此场景中,车辆在道路的左车道行驶,并计划变道至右侧车道,参见图5。该场景是自动驾驶车辆难以正确执行的场景之一。对于人类驾驶汽车而言,在高速公路等繁忙区域进行变道时总是存在困难,事故可能发生在从一条车道变换到另一条车道的过程中。由于人类一次只能朝一个方向观察,加之人类感知局限以及盲区的存在,容易导致异常行为甚至碰撞。近年来,在美国每年报告的变道碰撞事故超过20万起,至少造成6万起伤害(Fitch等,2009)。因此,使用自动驾驶车辆来处理变道场景具有重要意义。

在图5(a)中,车辆的初始位置和目的地分别用蓝色和红色矩形表示。目标是从初始位置行驶到目的地,同时避免与障碍物发生碰撞,在此场景中为简化问题,障碍物为静态的,如黑色物体所示。图5显示自动驾驶车辆成功完成了该机动。

示意图4 显示了车辆从初始位置到目的地的轨迹。图(b)显示了航向角θ,图(c)展示了机动过程中车辆的速度。)

5.2 在障碍物密集环境中驾驶

该场景定义了在存在多种不同尺寸障碍物的环境中进行自动驾驶的情况。从图6(a)可以看出,车辆前方有一个宽大障碍物,同时有一组圆形障碍物分散在该区域中。该宽大障碍物的宽度为36 $[m]$,而自动驾驶车辆的主导区域半径为2.25 $[m]$,远小于该宽大障碍物。每个圆形障碍物的直径为12 $[m]$。图6(c)显示车辆的初始速度为10 $[m/s]$,这使得自动驾驶车辆难以避免与占据车辆前方道路大部分区域的第一个障碍物发生碰撞。然而,如图6(a)所示,通过使用神经网络集成估计的碰撞概率,自动驾驶车辆成功地在此场景中避免了碰撞。

示意图5 显示了车辆从初始位置到目的地的轨迹。图(b)显示了航向角$\theta$,图(c)展示了车辆在机动过程中的速度。)

6. 结论

一种用于未知环境中自动驾驶的非线性最优控制方法被提出,该方法结合了非线性模型预测控制和一种用于动态速度相关碰撞避免的深度学习技术。碰撞被定义为模型预测控制目标函数中的一项,其值为碰撞概率与高碰撞风险方向上的车辆速度的乘积。该方法在碰撞概率较高或处于陌生环境中的障碍锥内最小化速度,并在集成的预测值的碰撞概率和变化较小时提高速度。所使用的深度学习技术采用了深度神经网络,并基于传感器输入和动作序列对碰撞概率进行预测。此外,通过定义局部坐标和碰撞区域,将动态避碰问题转化为静态避障问题,从而使该问题在动态环境中更易于计算,且能实时快速求解。该方法已在不同仿真环境中的多种场景下进行了测试,结果表明该方法具有良好的性能和安全性。

更多推荐