主要内容

使用状态流程图自动控制智能车辆

这个示例展示了如何使用由相同决策逻辑控制的智能车辆对高速公路场景进行建模。每辆车都根据独立的statflow®图表定义的逻辑来决定何时加速、减速或变道。由于不同车辆的行驶条件(包括附近车辆的相对位置和速度)不同,MATLAB®中单独的图表对象控制公路上的单个车辆。

开放式驾驶场景

要开始该示例,请运行脚本sf\u驱动程序\u demo.m。该脚本显示一条长公路和多辆车辆的三维动画。视图聚焦于一辆车辆及其周围环境。当该车辆沿公路移动时,独立状态流程图sf_驱动器显示决定其操作的决策逻辑。

从随机位置开始,每辆车都试图以目标速度行驶。由于目标速度是随机选择的,因此车辆可能会相互阻碍。在这种情况下,车辆将尝试改变车道并恢复其目标速度。

类文件公路场景定义一个drivingScenario(自动驾驶工具箱)对象,该对象表示包含公路及其上车辆的三维环境。要控制车辆的运动drivingScenario对象创建状态流程图对象的数组。每个图表对象控制模拟中的不同车辆。

执行车辆的决策逻辑

国家流程图sf_驱动器由两个顶级状态组成,拉内基普拉尼切.

拉内基普状态为活动时,相应的车辆保持在其车道上。在这种状态下,有两种可能的子状态:

  • 巡航当车辆正前方的区域为空且车辆可以以其目标速度行驶时,激活。

  • 跟随当车辆正前方的区域被占用且其目标速度快于前方车辆的速度时,该区域变为激活状态。在这种情况下,车辆被迫减速并试图改变车道。

拉尼切状态为激活,相应的车辆尝试改变车道。在此状态下,有两个可能的子状态:

  • 继续当车辆旁边的区域为空且车辆可以安全换道时,激活。

  • 中止当车辆旁边的区域被占用时变为激活状态。在这种情况下,车辆将被迫保持在其车道上。

状态之间的转换拉内基普拉尼切是由价值观守护的孤岛悬挂.在拉内基普状态下,图表将此本地数据设置为真的当子状态跟随处于激活状态,且车辆旁边有足够的空间改变车道。在拉尼切状态下,图表将此本地数据设置为当车辆完成变道时。

另见

(自动驾驶工具箱)

相关的话题