自动驾驶7-3 最终项目解决方案
Posted AI架构师易筋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶7-3 最终项目解决方案相关的知识,希望对你有一定的参考价值。
既然您已经有机会进行一些控制器设计并进行仿真 与 Carla 一起,我们将向您展示我们对最终课程评估的解决方案。 回想一下,我们的参考信号由速度和位置组成。 所以我们需要纵向和横向控制。
对于纵向控制,我们实现了一个 PID 控制器 这在纵向控制模块中进行了描述。
该 PID 控制器将以所需速度为参考,并 输出油门和砖块。 由于所需的速度相当低并且 稳定,我们完全绕过低级控制器。
请记住,PID 控制器由三个组件组成。 首先,缩放车辆加速度的纯增益 Kp 基于速度误差。 这样可以确保车辆在正确的方向上加速 大小与误差成正比。
第二个积分项 KI 根据累积的过去误差设置输出。 这可确保消除斜坡参考的稳态误差。
最后,微分项 KD 抑制过冲 由积分项引起。
要完成纵向控制,我们必须转换加速度 PID 控制器的输出为油门和刹车指令。 为简单起见,正输出将是油门和 负输出将对应于中断。
对于横向控制, 我们实现了您在横向控制中学到的 Stanley 控制器。
由于给出的参考信号是航点位置, 我们需要将它们转换为交叉轨道误差和航向误差。
我们使用当前的航点和过去的航点来生成轨迹线。 然后,使用这条线的方程, 我们确定与前轴的垂直距离。 这是我们的交叉跟踪错误。
我们现在可以将交叉轨道误差转换为转向输入的一部分 通过乘以增益 k。 除以当前速度并取反正切。
为了计算航向误差,我们从 轨迹线角度。 可以通过取反正切来计算轨迹线角度 它的斜率。
加上从横向轨迹误差导出的转向和 航向误差为我们提供了总转向输入。 这就完成了我们的横向控制器。 结合纵向和 横向控制器为我们提供以下速度曲线和轨迹。 如您所见,控制器很好地跟踪参考速度,并且 遵循几乎没有错误的路径。 当然还有其他控制器可以实现 也解决这个项目。 如纯追击、双脚前移控制、模型预测控制等。 如果您已经实现了这些控制器,请告诉我们它们是如何执行的。 恭喜您现在已经完成了本课程的最终项目。 这是您成为工程师的旅程中的一个重要里程碑 自动驾驶汽车。 您将能够使用新的模拟和 整个自动驾驶领域的控制算法设计技巧。 所以继续努力吧。 我们希望将您在本课程中学到的知识应用到现实世界中 编程场景一直是一种愉快的学习体验。 你将学到更多关于编程的知识 本专业后续课程中的自动驾驶汽车。
参考
https://www.coursera.org/learn/intro-self-driving-cars/lecture/cAZ3F/final-project-solution
以上是关于自动驾驶7-3 最终项目解决方案的主要内容,如果未能解决你的问题,请参考以下文章
自动驾驶7-2 最终项目概述 Final Project Overview