基于轨迹的汽车跟随系统横向控制方法
基于轨迹的汽车跟随系统横向控制方法
在自动驾驶车辆的车队编队行驶中,如何实现精确的横向控制是一个关键问题。传统的车辆跟随方法往往会导致自动驾驶车辆偏离前导车辆的轨迹,特别是在转弯时。本文提出了一种基于轨迹的控制算法(CUT算法),通过利用前导车辆的时间历史数据和自车的运动参数,显著提高了车辆跟随系统的精度。
一、引言
近年来,大量自动驾驶车辆系统已经被提出(例如[3]、[5]、[10]、[13])。在这些介绍中,引导自车横向行驶的一种流行方法是车道跟随(例如[13])或车队编队(例如[4]、[2])。本文我们讨论车队编队。对于横向控制,存在一个严重的缺点:只有前导车辆当前位置信息可用时,就必须在两车之间插值轨迹。在以前的应用中尝试过直线(拖拉机模型)和恒定曲率的曲线(拱形)[2]。这些插值方法会导致自动驾驶车辆偏离前导车辆的轨迹。这种现象随着与前导车辆的距离而变化。在车队编队应用中,这种行为可能导致自动驾驶车辆撞击障碍物,例如在曲线中的路缘或停放的车辆。轨迹的偏差δ \deltaδ在图1中进行了说明。
图 1. 自动驾驶车辆的轨迹与前导车辆的轨迹相对比。自动驾驶车辆使用的控制器对应于拖拉机模型。
在车辆跟随中采取的一种不同方法是跟随前导车辆的路径,而不是前导车辆本身。这种方法已在一些应用中尝试过,其中通常可以使用车对车通信(例如[12])以及某些绝对定位系统(例如[8])。使用绝对定位方法控制车队的车队系统(例如使用磁性标记[6])被称为点跟随系统[11]。然而,本文将路径跟随应用于基于视觉的自动驾驶系统,不使用任何通信基础设施或绝对定位系统。
这篇论文是如何组织的?第2节介绍了一个新的算法,它解决了上述问题。第3节提供了算法的简短数学处理。第4节简要讨论了横向控制器设计问题。第5节包含了我们的研究车辆的模拟结果和实际结果。最后一节总结了结果并指出了未来的工作方向。
二、CUT算法简介
与以往的车辆跟随系统不同,该算法利用了与前导车辆相关联的时间历史。为了确定前导车辆的轨迹,只需存储前导车辆的位置坐标以及自车随时间变化的运动参数。为了将位置坐标转换到静止坐标系中,需要使用自车的速度和转向角来补偿自车的运动。在知道了自车在该坐标系中的位置后,可以选择距离自车前端最近的前导车辆的轨迹点作为横向控制的输入。
然而,真实的横向控制器有一定的延迟,以保证稳定性并补偿传感器数据的测量误差。为了允许期望的转向角对自我轨迹产生影响,下一个要通过的轨迹点必须与自我车辆保持一定距离。为了考虑这一点,我们的算法总是选择从自我车辆测量超出一定前视距离的轨迹点。这种机制在图2中进行了说明。以前的算法会在时间点t n t_ntn 选择轨迹点。
上述算法在后续章节中被称为CUT算法(CUT - 基于轨迹的控制)。
三、定量分析
在接下来的分析中,使用前图的坐标系。y轴从纸面延伸出来。需要前导车辆的(x; y; z)坐标、自车速度和转向角来重建两条轨迹。所有转换都假设道路是平坦的(y = 0)。首先,将自车坐标转换到静止坐标系中:
n 指的是当前时间步,n-1 指的是前一个时间步。r e g o r_{ego}rego 是自我车辆的曲率半径。带撇号的坐标指的是静止坐标系统中的坐标。
在第二步中,领导者车辆的坐标被转换到同一个坐标系统中。
上述转换对每个时间步进行迭代应用,允许将坐标转换到自动驾驶车辆经过的任何点和方向。
曲率半径r ego r_{\text{ego}}rego 是根据转向角ϕ \phiϕ使用阿克曼模型 [15] 推导出来的。
请参见图3以了解所用符号的解释。
阿克曼模型限于小速度和小侧向加速度的情况。其他模型[15],包括侧滑的模型,可以用来从转向角ϕ \phiϕ计算r ego r_{\text{ego}}rego ,以扩展变换方程1的有效性。
四、底层横向控制
在之前提出的横向控制算法[4]中,领导者车辆的当前 x 和 z 位置是横向控制的输入。现在,这些量被替换为由前视距离确定的更接近自我车辆的轨迹点的 x 和 z 位置。使用适当的控制律,计算出期望的转向角。对执行器的输出是过滤后的期望转向角。
对于插值策略来说,选择底层横向控制算法是不关键的,因为到目标轨迹点的距离很小。因此,不会产生显著的偏差。所有横向控制算法都调节 x 偏移至零。轨迹插值策略决定了控制律。
然而,为了跟踪任意轨迹,需要一个具有较小延迟和相对高动态响应的控制器和执行器。本文没有讨论这类控制器的设计问题。这些问题,包括稳定性分析,在[9]及其引用文献中进行了讨论。
对于模拟和研究车辆,横向控制算法插值一个拱形。
五、实验结果
对于模拟,使用了一种典型的欧洲街道轮廓,包括一个螺旋线(clothoid)后跟一个如图4所示的拱形。两辆车的速度大约恒定在10米/秒,它们之间的距离也大约恒定在25米。
所选的街道轮廓反映了在我们的应用中,车辆跟随的最坏情况,考虑到传感器的有限开角(30度)和城市地区有限的速度范围。
模拟的控制器假设为一个拱形,并在80毫秒内调节新的转向角。前视距离是从传感器开始的12米(从前轴开始是11米)。模拟结果可以在图5中看到。
负偏差是朝向曲线中心的偏差。虚线表示旧方法,实线标记使用CUT算法的偏差。通过进一步减少前视距离,可以实现更小的偏差,但这也会损害现实横向控制器的稳定性。
上述模拟没有考虑任何不确定性。对于一个简单的噪声模型,我们采用了一个噪声信号,占距离的3%均匀分布在z方向,以及0.5米均匀分布在x方向。这反映了3D传感器(范围图像、雷达扫描仪、立体相机)的位置测量误差与距离成比例的事实。x方向的噪声被假设与距离无关,因为引起噪声的其他效应(遮挡等)主导了误差。传感器数据没有进行过滤。图6显示了包括噪声在内的模拟结果。与完美传感器数据相比,没有发生显著变化。
上述模拟展示了CUT算法的主要机制。然而,在几个方面它并没有反映现实情况:
真实的3D传感器数据需要过滤。卡尔曼滤波器[7]被证明是过滤可以与动态模型关联的数据的好方法。它被用于我们自动驾驶车辆的轨迹测量。
横向控制器的控制特性比模拟控制器慢,并且有差异化的项。因此,比模拟中发生更多的延迟。这是为了提供驾驶舒适性和抑制振荡所必需的。
用于变换的运动参数有测量误差。此外,当阿克曼模型被违反时,例如当发生侧滑时,会出现系统性误差。这些误差是有界的,并且不会随时间累积。自动驾驶车辆的速度和转向角相当准确,因为在城市速度范围内,偏航等效应可以忽略不计。尽管对于小速度的转向角测量不准确,因此产生不准确的轨迹曲率,但由于变换方程中只出现了v ego ⋅ f ( δ ) v_{\text{ego}} \cdot f(\delta)vego ⋅f(δ)的乘积,它们对不确定性的贡献很小。同样,对于接近零的速度的不精确速度测量也不会对误差贡献太多,因为只有速度的积分对变换有贡献。对于更高的速度,阿克曼模型对于相对较小的转向角变得无效。必须使用更精细的模型。
3D成像设备有有限的开角。对于极其弯曲的轨迹,领导者车辆可能会超出传感器设备的范围。这在模拟中没有被考虑。
在模拟中使用的噪声模型不现实。像遮挡这样的效应没有被考虑,而且模拟成本很高。
我们的测试车辆是一辆配备有油门、刹车和方向盘执行器的梅赛德斯-奔驰E420。传感器系统由两个使用立体视觉的CCD摄像机组成。
如何适当地测量领导者车辆的中心?根据不同的传感器,有多种方法。对于卡车车队,领导者车辆可以配备一个固定模式来确定中心[4]。我们选择使用对称性检测器[14]进行精确的中心测量。该点的x和z坐标被发送到横向控制。
为了使领导者车辆具有相同的初始条件和相同的行为,我们选择在车辆中使用另一个模拟来创建一个虚拟的领导者车辆。我们为领导者车辆选择了与离线模拟相同的轮廓(它的第一部分)。与自我车辆的距离大约是25米。前视距离被设置为11米。
这里使用的控制器应用了一个控制律,它像在模拟中一样插值一个拱形。为了乘客的舒适性和补偿测量误差,控制器执行了广泛的低通滤波。由于滤波和执行器的延迟,期望的转向角从根据x和z坐标计算出来到实际转向角之间有大约400毫秒的延迟。为了滤波期望的转向角,使用了具有多个限制器的简单PD控制器。
图7显示了领导者车辆和自我车辆之间轨迹的偏差图。负偏差指的是朝向曲线内侧的偏差(切角)。正如预期的那样,车辆跟随的标准方法在通过螺旋线时会导致切角。由于控制器的延迟和相对不活跃的控制器行为,自我车辆的轨迹表现出轻微的超调。此外,轻微的振荡表明控制器参数尚未完全适应CUT算法。
此外,新的CUT算法已在真实交通条件下进行了测试。没有记录到任何不稳定或振荡现象。始终提供了舒适的乘坐体验。存储了几个有横向和纵向控制器激活的交通场景,并重建了轨迹,CUT算法从未产生超过0.4米的偏差。没有CUT算法,在非常相似的交通情况下观察到的偏差要大得多。这些数字有些不精确,因为领导者车辆的测量误差是未知的。另一方面,车载领导者车辆模拟提供了完美的传感器数据,以便进行适当的比较。
在单独的分析中评估了运动参数。速度测量显示,在2米/秒以上的速度时误差小于1%,较小速度的绝对误差也在0.2米/秒以内,这对轨迹重建的误差贡献不大。转向角惯性被证明是一个关键参数。通过比较通过顺时针和逆时针圆形轨迹重建的轨迹,可以补偿传感器的转向角偏移。在低侧向加速度和干燥天气条件下,轨迹重建中转向角传感器的误差被发现小于2%。通过测量交通场景中的静止对象(见下一节),可以补偿运动参数误差。
六、结论与未来工作
CUT算法在车辆跟随系统的横向控制中实现了显著的精度提升,而且计算成本非常低。为了考虑位置测量质量的变化,计划相应地调整前视距离。此外,可以根据自我车辆的速度成比例地调整前视距离,这将在所有通过的轨迹点之间产生领导者车辆和自我车辆之间的恒定时间差。这考虑了控制器的延迟。应该添加一个恒定的前视部分,以考虑传感器的测量误差。从控制理论的角度来看,包括来自[6]的见解,进行更一般的回顾是适当的。
此外,可以估计自我车辆当前偏离领导者车辆路径的程度。从这个量可以推导出控制回路的总不确定性,并相应地调整前视距离。
类似于横向控制,可以构建一个纵向控制算法:可以在每个轨迹点存储领导者车辆的加速度,并可以用来使自我车辆在相同位置获得相同的加速度。
通过测量场景中的静止对象,可以显著改进转换到静止坐标系以及运动参数的测量。这是机器人领域中常见的方法(例如,见[1])。
本文原文来自CSDN