龙空技术网

基于Matlab以编程方式为驾驶方案创建参与者和车辆轨迹

珞瑜之家学习干货基地 164

前言:

今天兄弟们对“smooth matlab算法”都比较关注,你们都想要学习一些“smooth matlab算法”的相关资讯。那么小编在网上收集了一些关于“smooth matlab算法””的相关知识,希望我们能喜欢,朋友们一起来学习一下吧!

一、前言

此示例演示如何使用自动驾驶工具箱™函数以编程方式为驾驶方案创建参与者和车辆轨迹。

二、演员和车辆

驾驶场景中的参与者被定义为具有特定长度、宽度和高度的长方体对象。Actor还具有雷达横截面(以dBsm为单位指定),您可以通过定义角坐标(方位角和仰角)来优化该横截面。长方体驾驶场景将演员的位置定义为其底脸的中心。驾驶场景使用此点作为参与者与地面的接触点。这个点也是演员的旋转中心。

车辆是一种在轮子上移动的特殊演员。车辆具有三个额外的属性,用于控制前桥和后轴的位置。

是前后轴之间的距离。是前轴与车辆前轴之间的距离。是后轴与车辆后部之间的距离。

与演员不同,车辆的位置位于后轴中心的地面上。该位置对应于车辆的自然旋转中心。

此代码绘制演员的位置、典型人的尺寸以及驾驶场景中的车辆。演员和载具分别位于位置 (0, 2) 和 (0, –2)。

默认情况下,方案图显示参与者的俯视图。要更改此视图,可以通过选择图的“视图”菜单中的“摄像机工具栏”以交互方式操作方案图。或者,您可以使用 、 、 和 等函数以编程方式操作绘图。这些函数使您能够比较演员的相对高度。

三、定义轨迹

指定演员和车辆以一组给定的速度沿着一组航点跟踪路径。指定航点时,该函数会将分段布条曲线拟合到航点之间的每个航段,从而保留点之间的曲率。布状曲线的曲率随行进距离线性变化,这为驾驶员在匀速行驶时创造了一个非常简单的轨迹。smoothTrajectory

默认情况下,参与者轨迹在端点处没有曲率。要完成循环,请指定相同的第一个和最后一个航点。要以恒定速度跟踪整个轨迹,请将速度指定为标量值。

车辆通过其旋转中心航点之间的曲线。因此,为了在仿真期间适应后轴前后车辆的长度,您可以偏移起点和终点航点。偏移这些航点可以使车辆完全适合其终点的道路。

如果车辆需要快速转弯以避开障碍物,请在预定行驶方向上将两个点靠近放置。此示例显示车辆在两个位置快速转弯,但在其他方面正常转向。

或者,您可以通过在每个航点显式设置车辆的偏航方向角,在此类转弯处使用较少的航点。偏航在逆时针方向上为正,其单位为度数。在上一个示例的这种变体中,轨迹受到约束,使得车辆在进入左侧车道后处于 –15 度角。通过将航点设置为 ,该函数默认将布条曲线拟合到通往该航点的航段。在这种情况下,该段是轨迹中的最后一个段。

四、十字路口转弯和制动

对于急转弯,要么在转弯的起点和终点定义靠近的航点,要么在每个航点明确设置车辆的偏航。这种设置忠实地呈现了转向的突然变化。

在此示例中,车辆使用显式设置的偏航值在交叉路口急转弯。在第一个航点和转弯前的航点,车辆的偏航为 0 度。在转弯后的航点和最终航点处,车辆有90度的偏航,这是车辆完成转弯后的方向。通过约束轨迹以使车辆实现这些偏航方向,车辆转弯比使用默认偏航方向时要锐利得多。

该功能生成平滑的、颠簸限制的轨迹,航点之间的加速度没有不连续性。当改变车速时,例如在转弯时减速,航路点之间的距离必须足够大,以使车辆达到所需的速度,同时在整个过程中保持平稳的加速。或者,在较短的距离上,速度的变化必须相对较小。在此示例中,车辆在进入转弯时从 6 m/s 的速度减速到 5 m/s。完成转弯后,车辆加速回原始速度。

五、移动车辆

定义所有道路、参与者和参与者轨迹后,可以通过在循环中使用驾驶场景上的函数来递增每个参与者的位置

六、反向移动车辆

要指定反向驱动运动,请指定具有负速度的轨迹。在正向和反向运动之间切换时,必须在这些运动之间指定速度为 .在这个航点,车辆减速直到完全停止,然后改变行驶方向。0

此示例在上一个示例的基础上进行了扩展。这一次,在完成左转后,车辆倒车并在十字路口倒车。然后,车辆再次改变方向并向前行驶,直到停在与起点相反的车道上。由于车辆以较慢的速度行驶,因此为了加快模拟速度,请在模拟更新之间指定较短的暂停时间。

七、程序

程序获取:【程序】基于Matlab以编程方式为驾驶方案创建参与者和车辆轨迹

程序大全:Matlab和Simulink仿真程序汇总(2022年汇总,持续更新中)

标签: #smooth matlab算法 #反向追踪算法matlab