主要内容

Simulink中的自动泊车服务

本例展示了如何在Simulink®中使用自动驾驶工具箱™构建一个自动代客泊车系统。它紧跟着自动停车员MATLAB®的例子。

简介

自动把停在停车场前面的汽车停好是一个具有挑战性的问题。车辆的自动系统预计将接管并驾驶车辆到一个可用的停车位。本例着重于规划通过环境的可行路径,从该路径生成轨迹,并使用可行控制器执行轨迹。这个例子不包括地图创建和动态障碍物回避。

在仿真之前,helperSLCreateCostmap函数中调用PreLoadFcn模型的回调函数。有关使用回调函数的详细信息,请参见模型的回调(模型).的helperSLCreateCostmap函数创建停车场的静态地图,其中包含关于固定障碍、道路标记和停放的汽车的信息。该地图表示为vehicleCostmap对象。

使用vehicleCostmap对象在Simulink®中的helperSLCreateUtilityStruct函数转换vehicleCostmap块掩码初始化中的struct数组。有关更多细节,请参见初始化的面具(模型)

全局路线规划被描述为经过一系列车道段到达一个停车位。在仿真之前,PreLoadFcn模型的回调函数加载一个路由计划,该计划被存储为一个表。该表指定了段的开始和结束姿势,以及段的属性,如速度限制。

routePlan = 5×3表StartPose EndPose属性________________ ____________________ __________ 4 12 0 56 11 0 1×1 struct 56 11 0 70 19 90 1×1 struct 70 19 90 70 32 90 1×1 struct 70 32 90 52 38 180 1×1 struct 53 38 180 36.3 44 90 1×1 struct

本例中许多块的输入和输出是Simulink总线(仿真软件。公共汽车(模型)类)。在PreLoadFcn模型的回调函数helperSLCreateUtilityBus函数创建这些总线。

规划是一个分层的过程,每个连续的层负责一个更细粒度的任务。行为层[1]位于堆栈的顶部。的行为计划块根据全局路由计划触发一系列导航任务运动规划而且轨迹生成块。每个路径段使用以下步骤导航:

  1. 运动规划:使用最优快速探索随机树(RRT*)算法(pathPlannerRRT).

  2. 轨迹生成:平滑参考路径通过拟合样条[2]到它使用路径平滑样条块。方法生成速度剖面,然后将平滑的路径转换为轨迹速度分析器块。

  3. 车辆控制:HelperPathAnalyzer为控制车辆转向和速度的车辆控制器子系统提供参考信号。

  4. 目标检测:检查车辆是否已达到所使用路段的最终姿态helperGoalChecker

探索子系统

车辆控制器子系统包含一个横向控制器斯坦利块和一个纵向控制器斯坦利块分别调节车辆的姿态和速度。要处理真实的车辆动力学[3],汽车模型参数在横向控制器斯坦利块中设置为动态的自行车模型.在这种配置下,需要额外的输入,如路径曲率、车辆的当前偏航速率和当前转向角度,以计算转向命令。纵向控制器斯坦利块使用切换比例积分控制器来计算加速和减速命令,以驱动车辆的刹车和油门。

为了演示性能,将车辆控制器应用到车辆模型块,其中包含一个简化的转向系统[3],它被建模为一个一阶系统和一个车辆身体3自由度(车辆动力学Blockset)自动驾驶工具箱™和车辆动力学块集™之间共享的块。与采用的运动学自行车模型相比自动停车员MATLAB®示例,该车辆模型块更准确,因为它考虑了惯性效应,如轮胎滑移和转向伺服驱动。

仿真结果

可视化块显示车辆如何跟踪参考路径。它还在一个范围内显示车辆速度和转向命令。下面的图像是这个例子的模拟结果:

模拟在大约45秒时停止,也就是车辆到达目的地的时候。

结论

这个例子展示了如何在Simulink中实现一个自动代泊车员。

参考文献

[1]比勒,马丁,卡尔·伊阿涅姆玛和桑吉夫·辛格。DARPA城市挑战赛:城市交通中的自动驾驶车辆(第1版)。施普林格出版公司,2009年。

[2] Lepetic, Marko, Gregor Klancar, Igor Skrjanc, Drago Matko, Bostjan Potocnik,“考虑加速限制的时间最优路径规划”。机器人与自主系统2003年,第45卷,第3-4期,199-210页。

[3]霍夫曼,加布里埃尔M,克莱尔J.汤姆林,迈克尔蒙特默洛,塞巴斯蒂安特龙。越野驾驶自动驾驶汽车轨迹跟踪:控制器设计、实验验证和赛车。美国控制会议, 2007, pp. 2296-2301。

另请参阅

对象

相关的话题

Baidu
map