主要内容

基于状态流程图的智能车辆自动控制

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

开放式驾驶场景

要启动示例,请运行脚本sf_driver_demo.m.剧本展示了一条漫长的高速公路和几辆汽车的3d动画。视图聚焦于一辆车及其周围环境。当这辆车沿着高速公路行驶时,独立的状态流程图sf_driver显示决定其操作的决策逻辑。

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

类文件HighwayScenario定义了一个drivingScenario(自动驾驶工具箱)对象,表示包含高速公路和公路上车辆的3d环境。为了控制车辆的运动drivingScenarioobject创建一个状态流图对象数组。每个图表对象在模拟中控制不同的车辆。

执行车辆决策逻辑

状态流图sf_driver由两个顶级状态组成,LaneKeep而且LaneChange

LaneKeep状态为活动时,对应的车辆保持在其交通车道内。在这种状态下,有两种可能的次状态:

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

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

LaneChange状态为活动,对应车辆尝试变道。在这种状态下,有两种可能的次状态:

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

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

状态之间的转换LaneKeep而且LaneChange是由价值保护的isLaneChanging.在LaneKeep状态时,图表将此本地数据设置为真正的当副态遵循是主动的,并且车辆旁边有足够的空间来改变车道。在LaneChange状态时,图表将此本地数据设置为当车辆完成变道时。

另请参阅

(自动驾驶工具箱)

相关的话题

Baidu
map