主要内容

横向控制教程

这个例子展示了如何控制车辆的转向角是计划路径后换车道时,使用横向控制器斯坦利块。

概述

车辆控制的最后一步是一个导航系统,一般是采用两个独立的控制器来实现的:

  • 横向控制器:调整转向角,这样车辆遵循的参考路径。控制器最小化当前车辆位置之间的距离和引用路径。

  • 纵向控制器:当参考路径后,维护所需的速度通过控制油门和刹车。控制器减少飞机的航向角的区别和参考路径的方向。

这个例子的上下文中侧重于横向控制路径在一个恒定的纵向速度的场景。在这个例子中,您将:

  1. 了解背后的算法横向控制器斯坦利块。

  2. 创建一个驾驶场景中使用驾驶场景设计师应用程序并生成车辆的参考路径。

  3. 测试场景中的横向控制器使用闭环仿真软件®模型。万博1manbetx

  4. 可视化的场景和相关仿真结果使用鸟瞰的范围

横向控制器

斯坦利横向控制器[1]使用非线性控制律来最小化航迹误差和航向角的前轮相对于参考路径。的横向控制器斯坦利块计算转向角命令调整车辆当前的体式与参考。

根据使用的车辆模型在推导控制律中,横向控制器斯坦利块有两个配置[1]:

  • 运动自行车模型:运动学模型假设忽略车辆的惯性。该配置主要适用于低速环境,惯性影响是最小的。指导命令计算基于参考姿势,当前的姿势,和车辆的速度。

  • 动态的自行车模型:动态模型包括惯性效应:轮胎滑移和操舵伺服驱动。这更复杂,但更准确,模型允许控制器来处理现实的动力。在这个配置中,控制器还需要路径曲率,当前汽车的偏航率,和当前的转向角计算指导命令。

您可以通过设置配置汽车模型参数块对话框。

场景创建

该场景是使用创建的驾驶场景设计师应用。这个场景包括一个三车道公路和自我。详细步骤添加道路,车道,车辆,明白了创建驾驶场景交互并生成合成传感器数据。在这种情况下,车辆:

  1. 开始在中间车道上。

  2. 切换到左边的车道后进入弯曲道路的一部分。

  3. 回到中间车道变化。

在整个模拟车辆运行在一个恒定的速度10 m / s。这个场景的出口应用MATLAB®函数使用出口>出口MATLAB函数按钮。导出的函数命名helperCreateDrivingScenario。从这个场景和演员的道路被保存到场景文件LateralControl.mat

模型设置

打开模型仿真软件教万博1manbetx程。

open_system (“LateralControlTutorial”)

该模型包括以下主要部件:

变量=“LateralControlTutorial /侧控制器”;set_param(变种“LabelModeActivechoice”,“运动”);
  • 一个HelperPathAnalyzer块,它提供了参考信号的横向控制器。鉴于目前造成的车辆,它决定了引用对车辆通过搜索最近点的参考路径。

  • 一个汽车与环境子系统,车辆使用的运动模型车辆身体3自由度(车辆动力学Blockset)块。该子系统还通过使用一个环境模型场景的读者块读LateralControl的道路和演员。垫场景文件。

打开模型还运行helperLateralControlTutorialSetup所使用的脚本,它初始化数据模型。脚本加载某些常数模型所需的模型,如车辆参数,控制器参数,道路场景中,和参考。万博1manbetx特别是,脚本调用前面导出的函数helperCreateDrivingScenario构建场景。所需的脚本还设置公共汽车通过调用模型helperCreateLaneSensorBuses

你可以画出道路和规划路径使用:

refPoses helperPlotRoadAndPath(场景)

模拟的场景

当模拟模型,您可以打开鸟瞰的范围分析仿真。打开范围后,单击找到信号设置信号。然后运行仿真显示该车辆,道路边界,车道标志。下图显示了这个示例的鸟瞰的范围在25秒。在这个瞬间,车辆转向了左边的车道。

您可以运行完整的模拟和探索结果使用以下命令:

sim卡(“LateralControlTutorial”);

您还可以使用仿真软件®万博1manbetx范围(万博1manbetx模型)汽车与环境子系统检查控制器的性能随着车辆遵循计划的路径。显示范围的最大偏离路径小于0.3米,最大转向角的大小是小于3度。

范围=“LateralControlTutorial /车辆和环境/范围”;open_system(范围)

减少横向偏差和振荡的控制命令,使用横向控制器斯坦利动态块和模拟模型:

set_param(变种“LabelModeActivechoice”,“动态”);sim卡(“LateralControlTutorial”);

结论

这个例子展示了如何模拟车辆的横向控制车道改变场景使用仿真软件。万博1manbetx与横向控制器斯坦利运动块相比,斯坦利横向控制器动态块提供了改进的性能与较小的横向偏离路径跟踪参考路径。

引用

[1]霍夫曼,加布里埃尔·M。,Claire J. Tomlin, Michael Montemerlo, and Sebastian Thrun. "Autonomous Automobile Trajectory Tracking for Off-Road Driving: Controller Design, Experimental Validation and Racing."美国控制会议。2007年,页2296 - 2301。

万博1manbetx支持功能

helperPlotRoadAndPath情节和参考路径的必经之路

函数refPoses helperPlotRoadAndPath(场景)% helperPlotRoadAndPath情节和参考路径的必经之路h =图(“颜色”,“白色”);ax₁=轴(h,“盒子”,“上”);
情节(场景中,“父”ax₁)举行情节(ax₁, refPoses (: 1), refPoses (:, 2),“b”)xlim ((150、300)) ylim ax₁(150 [0])。Title =文本(0.5,0.5,“道路和参考路径”);结束

另请参阅

应用程序

相关的话题