自动驾驶 12-1: 实践中的状态估计 State Estimation in Practice

Posted AI架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶 12-1: 实践中的状态估计 State Estimation in Practice相关的知识,希望对你有一定的参考价值。














现在,你已经学习了估计理论的基础知识, 3D 几何和一些常见的传感方式, 是时候将其付诸实践并思考我们如何使用所有这些工具了 一起构建一个我们可以在真正的自动驾驶汽车上使用的估计器。

真正的自动驾驶汽车,如自动驾驶 将配备许多不同类型的传感器。

例如,自动驾驶配备了五个摄像头、一个 3D 激光雷达、 一个 IMU,四个雷达单元, GPS 或 GNSS 接收器和车轮编码器。

所有这些传感器以不同的速率为我们提供不同类型的数据。

例如,IMU 可能会报告加速度 和每秒 200 次的角速度, 而激光雷达每秒仅完成 20 次全扫描。

所以,在这个模块中,我们将讨论如何结合 所有不同的信息,以获得对车辆状态的最佳估计。

这个过程称为传感器融合,它是其中之一 自动驾驶汽车最重要的技术。

但是为了做传感器融合, 我们还需要校准我们的传感器,以确保传感器模型是 准确,以便我们知道如何 所有传感器的参考系相互关联。

我们还将讨论一个或多个传感器时会发生什么 失败并给你一个概述 您将有机会实施的最终项目 使用 Carlo 模拟器中的传感器的完整车辆状态估计器。

在这第一个视频中, 我们将为您提供一些实际考虑的鸟瞰图 在设计自动驾驶汽车系统时应考虑到这一点。

什么样的考虑?

好吧,我们已经谈到了传感器融合和校准, 但我们还需要考虑速度和准确性要求以及 本地化失败以及如何应对 我们周围正在移动和变化的环境的一部分。

让我们从传感器融合开始。

如果我们有一辆配备了许多不同传感器的自动驾驶汽车, 我们想做的是弄清楚如何将所有 这些不同的信息以获得对车辆状态的最佳估计。

融合所有这些数据似乎是一项艰巨的任务, 但事实上,我们已经有了这样做的工具。

在本模块的第二课中, 我们将准确讨论如何使用 熟悉的工具,如扩展卡尔曼滤波器 将所有传感器数据组合成对车辆状态的单一一致估计。

但是为了做传感器融合, 我们首先需要了解一些关于 我们的传感器以及它们在车辆上的配置方式。

一方面,我们的传感器模型可能取决于参数 特定于汽车或传感器本身。

一个很好的例子是使用车轮编码器来测量汽车的前进速度。

车轮编码器测量轴的角速度。

但是如果我们想用它来获得车辆的前进速度, 我们还需要知道轮胎的半径。

关于车辆,我们需要了解的另一件事是姿势或位置,以及 每个传感器相对于车辆参考系的方向。

因为我们正在结合来自不同地方的传感器的信息, 我们需要知道如何转换所有的测量值 所以它们在一个共同的参考框架中表达。

最后,我们需要考虑一下我们的传感器测量结果有多好 同步,以便我们可以正确地融合它们。

直观地,您可能期望直接结合 您刚刚收到的激光雷达扫描以及您收到的 GPS 测量结果,例如, 五秒前,不会产生那么好的结果 就好像 LiDAR 扫描和 GPS 测量是同时进行的一样。

因此,您可以更准确地同步传感器, 您的状态估计会越好。

其中一部分涉及确定传感器之间的时间偏移 记录测量值以及估计器何时接收到它进行处理。

所有这些因素都是关键形式 我们将在第三课中更详细地讨论校准。

估算器需要多准确 自动驾驶汽车能在路上安全行驶吗?

好吧,这取决于汽车的大小, 车道的宽度, 和交通密度, 但为了得到一个大概的估计, 您可能会考虑可用于任务泄漏通道保持的误差范围。

一辆典型的汽车宽约1.8米, 一条普通的高速公路车道可能有大约三米宽,无论大小。

因此,我们的估算器需要足够好才能将汽车定位在 车道两侧各 60 厘米左右。

这是假设我们确切地知道车道在哪里并且没有交通。

为了比较,GPS 精度的乐观范围是 在一到五米之间,具体取决于具体的硬件, 可见的卫星数量和其他因素。

因此,很明显,即使是车道保持,仅 GPS 也是不够的。

这是我们需要 结合来自许多不同传感器的信息。

速度呢?我们需要多快更新车辆状态是否汽车可以对快速变化的环境或意外事件做出反应吗?

嗯,这一切都取决于汽车在什么样的环境中运行。

想象一下,你闭着眼睛开车, 你每秒钟睁开一次眼睛 看看你周围的情况并进行一些调整。

这对应于一赫兹的更新率。

为了在没有交通的街道上行驶, 也许你会觉得这样做比较安全。

但是如果你开车穿过一个繁忙的城市十字路口和其他几十辆车, 和公共汽车,和骑自行车的人, 和你周围的行人?

你可能会觉得每秒钟睁一次眼睛更不安全。

根据经验, 15 赫兹到 30 赫兹的更新速率是自动驾驶的合理目标。

但是,当然,这里需要考虑权衡。

自动驾驶汽车将只有 可用的板载计算能力如此之多,计算机将需要兼顾 许多不同的过程,如控制和 除了状态估计之外的路径规划和感知。

更重要的是,船上可用的计算能力总量可能会受到限制 通过限制计算机实际允许消耗多少功率。

使用固定计算资源产生状态估计, 在我们的算法可以达到的复杂程度之间进行权衡 be 和计算解决方案所允许的时间量。

作为自动驾驶汽车工程师,这取决于您 决定你的车在这个折衷曲线上的位置。

即使我们有一个快速准确的估计算法, 在某些情况下,我们的本地化可能会失败。

这怎么可能发生?

嗯,一方面, 我们可能有一个或多个传感器报告错误数据,甚至可能完全失败。

一个很好的例子是 GPS,它在隧道中根本不起作用, 可能很难应付 在高楼林立的城市反射信号。

我们也可能在状态估计算法本身中遇到错误。

例如,如果我们使用 具有高度非线性传感器模型的扩展通用滤波器, 我们可能会发现估计器中固有的线性化误差意味着我们可以 在我们的状态估计中失去准确性 即使估计器对其输出非常有信心。

或者,我们的估算者根本不是很自信。

回想一下卡尔曼滤波器方程, 你可能还记得我们州的不确定性 随着我们通过运动模型向前传播而增长,它 仅当我们结合来自 LiDAR 或 GPS 的外部观察时才会缩小。

如果我们的激光雷达坏了,我们在没有 GPS 的隧道中行驶, 我们可以依赖 IMU 和运动模型多久 我们的房地产不确定性变得太大,驾驶不再安全?

我们将讨论检测和应对的策略 在第四课中出现了类似的本地化失败。

最后,我们需要考虑汽车生活的世界。

在大多数情况下,我们已经为传感器开发了我们的模型,例如 LiDAR 假设世界是静态的和不变的。

但当然,在现实中, 世界总是在变化和变化。

比如其他车, 行人和骑自行车的人可能正在移动。

一天中的灯光变化和 甚至世界的几何形状也会随着季节而改变。

自动驾驶汽车面临的一大挑战是 寻找方法来解释这些变化, 无论是通过建模还是通过寻找方法 识别和忽略违反我们假设的对象。

事实上,这仍然是一个非常活跃的研究领域。

所以,总结这个视频, 实践中的状态估计通常依赖于传感器融合 结合来自许多不同类型传感器的信息, 像 IMU、激光雷达、相机、 和 GPS 或 GNSS 接收器。

为了使传感器融合按预期工作, 我们需要通过确定传感器模型的参数来校准传感器。

所有的相对位置和方向 传感器和轮询时间的任何差异。

我们还需要考虑速度和准确性之间的权衡 我们的算法可能不同 取决于您正在研究的自动驾驶汽车的类型。

问问自己,我需要知道的准确程度 车辆状态以及我需要多久为我的特定用例更新一次?

最后,我们需要考虑如何安全地应对本地化失败和 不符合我们假设的世界的各个方面,例如移动的物体。

在接下来的三个视频中,我们将深入探讨其中的一些主题 更多细节从下一个视频中的多感官融合开始。

参考

https://www.coursera.org/learn/state-estimation-localization-self-driving-cars/lecture/VihNN/lesson-1-state-estimation-in-practice

以上是关于自动驾驶 12-1: 实践中的状态估计 State Estimation in Practice的主要内容,如果未能解决你的问题,请参考以下文章

自动驾驶 11-4: 优化状态估计 Optimizing State Estimation

自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter

自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter

自动驾驶 9-3: 走向非线性 - 扩展卡尔曼滤波器 Going Nonlinear - The Extended Kalman Filter

自动驾驶 9-3: 走向非线性 - 扩展卡尔曼滤波器 Going Nonlinear - The Extended Kalman Filter

自动驾驶 11-3: 根据 LIDAR 数据进行位姿估计 Pose Estimation from LIDAR Data