从系列:改进赛车开发
德维尔Alakshendra,MathWorks公司
了解如何在自主车辆上实施纯粹的追求控制器,以跟踪计划的路径。VEER介绍了纯追踪控制器的基础知识,并显示了使用使用的车辆的步骤自动驾驶的工具箱™那车辆动态模块库™那机器人系统工具箱™和导航工具箱™.他实现了纵向和横向控制器,以高速跟踪路径,并提取路径点,以驾驶车辆通过一个美国城市场景。他还演示了模型可视化的车辆运动在3D环境和鸟瞰视图。
你可以找到在这个视频中使用的模型示例MATLAB中央文件交换.
欲了解更多信息,可以访问以下资源:
您好,欢迎到MATLAB和Simulink车队休息室。金宝app在这段视频中,我们将介绍如何实现对路径跟踪车辆的单纯追求控制器。我们会看到你如何建立在Simulink车辆路径跟踪模型和可视化在各种环境下的运动。金宝app我们将通过纯追踪,控制的其他一些基础知识,然后我们就会有利用Simulink的实现的部分,最后,我们会去的关键外卖。金宝app
所以,现在,让我们开始吧。单纯追求控制器的路径跟踪算法,我们将航点,基准点和路径在未来一个固定的距离,这也被称为车辆的前视距离,在这一点上计算转向指令相交。由于对基准点上车辆转弯时,点继续前进,减小转向角,并在道路上慢慢地使车辆。
前瞻距离是控制器的主要调整财产。该图显示了前瞻距离对运动中的车辆的影响。对于较小的前瞻距离,路径是振荡的,准确的。而对于在距离较大的样子,一部分是较少的振荡,但跟踪差。
此外,这是用于计算车轮转向角,其中L是长度自行车和ld是前瞻距离的公式,α是目标方向的角度,并且同样也可以看到在该图中。展望未来,这里有参与实施利用Simulink纯追踪控制器的步骤。金宝app作为第一步,我们生成的航点或参考点,那么我们在Simulink建立一个模型,最后,我们想象在各种环境中诸如2D,3D和鸟瞰范围的车辆运动。金宝app
现在让我们切换到MATLAB,并检查了详细说明这些步骤。要生成航点,我们使用一个驱动方案设计师,在那里我们已经定义了路由,以恒定的速度增加了对车辆移动的航点。有关驾驶场景设计的各种其他功能的更多信息,请查看说明书中提供的链接。
此外,场景被设置为包含参考点数据的.mat文件。为了提取数据,我们创建了一个脚本,其中可以看到定义参考点的命令。此外,该脚本还包含用于定义引用提交时间、车辆参数和控制器初始调优参数的数据。
一旦我们拥有这些参考点和初始参数集,让我们看看我们如何在Simulink中建立模型。金宝app对于Simul金宝appink空白画布,我们从车辆动力学块集中引入“车身3D轨道”块,然后定义某些初始值以实现车身模型。接下来,我们在x和y方向上定义参考点。要实现纯追踪控制器,我们使用纯粹的追踪块从机器人系统工具箱,我们定义了向前距离并检查目标方向以输出目标角度。
随着航点板的输入以n×2阵列的形式接受信号,我们使用连接块转换不同的信号。接下来,我们使用总线选择器从车辆3D块中提取车辆电流姿势,并使用MUX信号将其转换为由姿势输入板接受的向量中。此外,我们使用一些基本块来装配车轮转向角,参考前面所示的公式。
这里alpha是Pure Pursuit block提供的目标方向角,然后用一个连接块将前车轮转向角与车辆block连接,完成模型。请注意,作为替代,我们也可以连接Pure Pursuit block的输出线速度端口,以恒定速度移动车辆。然而,由于在后面的模型中我们将添加更多的动态和纵向控制器,我们将坚持使用一个常量块来定义速度。要了解关于实现纯追求控制器差速驱动报告的更多信息,只需检查描述中的链接。
简而言之,这是一个演示如何在Simulink中轻松连接块来构建模型的过程。金宝app现在,我们已经重新构建了相同的模型,我们已经在一个子系统中包含了方向盘转向角度的制定,并添加了一个遮罩来定义自行车的长度和向前看的距离。此外,我们还添加了一个2D可视化块,并使用一些子系统清理模型。
所以让我们运行模型并获取结果。正如我们所看到的,通过正确选择前瞻性距离,车辆成功地跟踪了参考点。我们还可以可视化转向角,这在乘用车的限度范围内。
现在,让我们看看改变向前看距离的效果。当我们减少前视距离时,车辆确实跟踪了路径,但路径是振荡的,然而,增加前视距离消除了振荡运动,但以较差的跟踪为代价。因此,应适当选择前瞻距离,以保持跟踪和车辆稳定性之间的平衡。
现在,让我们增加速度,看看运动中的飞行器的效果。所以我们把速度增加到15m / s我们看到在转弯处的有效跟踪更低。现在改善跟踪的一种方法是降低转弯时的速度,并添加一个纵向控制器来跟踪速度差。
我们来看看这个模型。因此,如果我们继续我们的下一个模型,我们添加了更多的动态和纵向控制器,与上一个模型相比,在这个模型中,我们添加了一个简化的动力系统和动力系统块。为此,我们参考了现场讯问差分应用。想要了解更多,请浏览视频描述,我们在那里提供了链接。
在控制器子系统中,我们添加了纵向驱动器来跟踪参考速度。基于控制器的类型和选择的双控制参数,在参考速度,纵向车速,纵向速度,纵向车辆速度,并创建作为输入信号并输出加速度和减速命令。接下来,我们将速度划分为不同的区域。例如,匝数的低速度和内置查找表,它们看起来像这样。并且该块基于X和Y坐标计算该区域中的速度。除此之外,模型没有重大变化。
现在让我们运行模拟。正如我们所看到的,因为纵向控制器,我们在转弯时更好地跟踪。在高速度下看过纵向和横向控制器的模型,让我们将车辆送到城市场景。到目前为止,我们使用驾驶场景设计师生成参考点。
然而,而不是从头开始创建现场,我们使用预编译的场景,在这里我们可以看到各种预置的场景。在这里,我们选择一个美国城市街区景象。当我们选择这里,现场可与各种行为者的情况帆布可视化。
所以在这个场景中,我们已经添加了车辆,并定义了移动车辆的路径点,而不会与任何障碍发生碰撞。现在,我们参照之前修改的模型建立了一个新的模型。路点子系统包含美国城市场景的数据。
然后,我们已经改变了查找表,我们划分了速度为五个区域的速度。我们开始以每秒12米,并在转弯时,速度降低到每秒5米。同样,我们在不同的地区不同的速度。最后,我们添加了可视化的一些附加块。
具有地面的模拟3D车辆在3D可视化环境中实现了一种车辆,我们需要定义车辆参数。此外,仿真3D场景配置块配置3D仿真环境,我们可以选择场景源和场景名称。对于此模型,正如我们在驾驶场景中提取了来自驾驶场景的参考点,我们将选择相同的场景以可视化3D环境中的车辆运动。
具有配置的3D场景,现在让我们来运行模拟。正如你所看到的,车辆被成功跟踪基准点上,而不与任何障碍物发生碰撞。现在,可视化鸟瞰范围内的道路上,我们增加了一个子系统,其中的MATLAB功能包颐高信息到一个单一的egoActor总线,以及驱动方案读者块读取场景文件。
要激活Bird'e-Eye范围,请单击此处的选项卡,该选项卡显示,显示空白范围画布,没有信号。要查看信号,请单击“查找信号”。范围更新框图并自动查找模型中的信号。因此,当我们运行模拟时,我们可以在鸟眼范围内可视化车辆运动,其中车辆成功跟踪参考点而不与任何演员碰撞。
因此,这是我们的最终模型,其中我们看到了我们如何能够通过使用纯追踪一个预置的场景,并沿纵向控制器驱动车辆。如果你有兴趣了解其他的控制器,如斯坦利和MBC,请检查描述中的链接。
现在让我们前进并查看关键的外卖。正如我们所看到的那样,前瞻距离是纯追踪控制器的主要调谐特性。也就是说,我们调整前瞻距离的方式将影响车辆运动中的车辆。然后在较高的速度和变化的曲率下,组合横向和纵向控制器提供更好的部件跟踪结果。最后,Matlab和Simulink提供了用于生金宝app成航点,建筑车辆和控制器模型的各种算法和工具,以及在各种环境中可视化车辆运动。
和往常一样,这些是赛车休息室资源。如果您有任何疑问,请访问racinglounge@mathworks.com,我们也鼓励您加入我们的Facebook组,查看最新的更新,也查看我们的学生教程和Racing Lounge博客。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。