Pure pursuit 跟踪模型

如何在车辆上实现Pure追求控制器进行路径跟踪。 我们将了解如何在Simulink中构建车辆路径跟踪模型,并在各种环境中可视化运动。 我们将介绍Pure Pursuit的其他一些基础知识,控制器,然后我们将有一个使用Simulink实现的部分,最后,我们将进入关键要点。

所以现在,让我们开始吧。 Pure Pursuit控制器是一种路径跟踪算法,我们在前方固定距离放置一个航点、一个参考点和路径,这也称为车辆的向前看距离,并计算在这一点上交叉的转向命令。 当车辆转向参考点时,该点继续向前移动,减少转向角度,并慢慢将车辆带到路径上。

向前看距离是控制器的主要调谐属性。 该图显示了向前看距离对运动中的车辆的影响。 对于较小的向前看距离,路径是振荡和准确的。 对于远距离的更大看,部分振荡性较小,但跟踪很差。

此外,这是一个计算车轮转向角度的公式,其中L是自行车长度,ld是向前看距离,alpha是目标方向角,图中也可以看到。 展望未来,以下是使用Simulink实现Pure Pursuit控制器所涉及的步骤。 作为第一步,我们生成航点或参考点,然后在Simulink中构建一个模型,最后,我们在2D、3D和鸟眼瞄准镜等各种环境中可视化车辆运动。

因此,现在让我们切换到MATLAB并详细查看这些步骤。 为了生成航点,我们使用驾驶场景设计器,在那里我们定义了路线,并添加了车辆以恒定速度移动的航点。 有关驾驶场景设计器其他各种功能的更多信息,请查看描述中提供的链接。

此外,场景被设置为包含参考点数据的.mat文件。 为了提取数据,我们创建了一个脚本,我们可以看到这些是定义参考点的命令。 此外,该脚本还包含用于定义参考提交时间、车辆参数和控制器初始调谐参数的数据。

一旦我们设置了这些参考点和初始参数,让我们看看我们如何在Simulink中构建模型。 在Simulink空白画布上,我们从车辆动力学块集中引入一个“车辆车身3DOF双轨”块,然后定义某些初始值来实现车辆车身模型。 接下来,我们定义x和y方向的参考点。 为了实现Pure Pursuit控制器,我们使用机器人系统工具箱中的Pure Pursuit块,在那里我们定义了向前看距离,并检查目标方向以输出目标角度。

由于航点板的输入以n-by-2阵列的形式接受信号,我们使用串联块转换不同的信号。 接下来,我们使用总线选择器从车辆3DOF双轨块中提取车辆电流姿势,并使用MUX信号将这些转换为姿势输入板接受的矢量。 此外,我们使用一些基本块来制定车轮转向角度,参考前面显示的公式。

在这里,alpha是Pure Pursuit块提供的目标方向角度,然后使用串联块将前一个车轮转向角度连接到车辆块来完成模型。 请注意,作为替代方案,我们还可以连接Pure Pursuit块的输出线性速度端口,以恒定速度移动车辆。 然而,由于在后来的模型中,我们将添加更多的动力学和纵向控制器,我们将坚持使用恒定块来定义速度。 要了解有关为差分驱动报告实现Pure Pursuit控制器的更多信息,只需查看描述中的链接。

简而言之,这是一个展示如何轻松连接块以在Simulink中构建模型的过程。 现在,我们重组了相同的模型,将车轮转向角度配方纳入子系统,并添加了一个遮罩来定义自行车长度和向前看距离。 此外,我们添加了一个2D可视化块,并使用一些子系统清理了模型。

因此,让我们运行模型并获得结果。 正如我们所看到的,通过正确选择前方距离,车辆能够成功跟踪参考点。 我们还可以可视化转向角度,这在乘用车的范围内。

现在,让我们看看改变前方距离的效果。 当我们减少向前看距离时,车辆确实跟踪路径,但路径是振荡的,而增加向前看距离会消除振荡运动,但以跟踪更差为代价。 因此,应正确选择前方距离,以在车辆的跟踪和稳定性之间保持平衡。

现在,让我们提高速度,看看车辆运动的效果。 因此,我们将速度提高到每秒15米,我们在转弯处看到效率较低的跟踪。 现在,改善跟踪的一种方法可能是降低转弯时的速度,并添加一个纵向控制器来跟踪差速。

所以让我们看看那个模型。 因此,如果我们继续下一个模型,与上一个模型相比,我们添加了更多的动力学和纵向控制器,在这个模型中,我们添加了一个简化的动力总成和传动系统块。 为此,我们参考了现场审讯差分应用程序。 要了解更多信息,请访问视频描述,我们提供了链接。

在控制器子系统中,我们添加了一个纵向驱动器来跟踪参考速度。 块桩在参考速度、纵向车辆速度中,并根据控制器类型和选定的双控制参数创建作为输入信号和输出加速和减速命令。 接下来,我们将速度划分为不同的区域。 例如,转弯低速和内置查找表,看起来像这样。 这个块根据x和y坐标计算该区域的速度。 除此之外,模型没有重大变化。

现在让我们运行模拟。 正如我们所看到的,由于纵向控制器,现在我们在转弯处有更好的跟踪。 在高速看到带有纵向和横向控制器的模型后,让我们把车辆送到城市场景。 到目前为止,我们使用驱动场景设计器来生成参考点。

然而,我们不是从头开始创建场景,而是使用预构建场景,在那里我们可以看到各种预构建场景。 在这里,我们选择一个美国城市街区场景。 当我们选择这个时,场景可以与各种演员一起在场景画布中可视化。

因此,在这个场景中,我们已经添加了车辆,并定义了在不与任何障碍物碰撞的情况下移动车辆的路点。 现在,我们参考了之前在修改时遵循的模型,构建了一个新模型。 航点子系统包含美国城市场景的数据。

然后,我们更改了速度的查找表,我们将速度分为五个区域。 我们从每秒12米开始,在转弯时,速度降低到每秒5米。 同样,我们在不同的区域有不同的速度。 最后,我们添加了一些额外的块进行可视化。

带有地面跟随块的模拟3D车辆在3D可视化环境中实现车辆,我们需要定义车辆参数。 此外,模拟3D场景配置块配置了3D模拟环境,我们可以在其中选择场景源和场景名称。 对于该模型,由于我们在驾驶场景设计器中从美国城市场景中提取了参考点,我们将选择相同的场景来可视化3D环境中的车辆运动。

配置了3D场景后,现在让我们运行模拟。 如您所见,车辆正在成功跟踪参考点,而不会与任何障碍物相撞。 现在,为了在鸟瞰范围内可视化路径,我们添加了一个子系统,其中MATLAB函数将Ego信息打包到单个egoActor总线中,并且驱动场景阅读器块读取场景文件。

要激活鸟眼瞄准镜,请单击此处的选项卡,该选项卡显示一个没有信号的空白瞄准镜画布。 要查看信号,请单击查找信号。 范围更新方框图并自动找到模型中的信号。 因此,当我们运行模拟时,我们可以在鸟瞰瞄准镜中可视化车辆运动,其中车辆成功跟踪参考点,而不会与任何演员碰撞。

因此,这是我们的最终模型,我们看到了如何使用Pure Pursuit和沿着纵向控制器驾驶车辆穿过预建场景。 如果您有兴趣了解其他控制器,如Stanley和MBC,请查看描述中的链接。

现在让我们继续前进,看看关键的要点。 正如我们所看到的,向前看距离是Pure Pursuit控制器的主要调谐属性。 也就是说,我们调整前方距离的方式将影响车辆的运动。 然后在更高的速度和不同的曲率下,结合横向和纵向控制器可以提供更好的部分跟踪结果。 最后,MATLAB和Simulink提供了各种算法和工具,用于生成航点,构建车辆和控制器模型,以及在各种环境中可视化车辆运动。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值