代客停车使用多级非线性模型预测控制
这个例子展示了如何使用车辆路径规划系统在仿真软件®为代客万博1manbetx停车使用多级非线性模型预测控制(NLMPC)。
停车场
包含一个自我在这个例子中,停车场车辆和八个静态障碍。障碍是由六个停放车辆,保留停车场,车库边境。自我的目标车辆停车目标姿势没有碰撞的障碍。自我的参照点姿势位于后桥的中心。
指定初始自我车辆构成。
%自我初始姿势:x (m), y (m)和偏航角(rad)egoInitialPose =[0] 4, 12日;
定义的目标构成自我。
%的自我目标构成:x (m), y (m)和偏航角(rad)egoTargetPose =(27.2, 4.7, -π/ 2);
的helperSLCreateCostmap
函数创建一个静态的停车场地图包含静止的障碍物信息,路标,停放的汽车。更多细节,请参阅自动停车员在仿真软件万博1manbetx(自动驾驶工具箱)的例子。
costmap = helperSLCreateCostmap ();helperSLCreateUtilityBus;costmapStruct = helperSLCreateUtilityStruct (costmap);
可视化的停车环境。使用一个样本的时间0.1
可视化工具。
电视= 0.1;helperSLVisualizeParkingValet (egoInitialPose 0 costmapStruct);
六个停车辆橙盒的顶部和底部图。中部地区代表保留停车场。的左边界的车库也建模为一个静态障碍。自我在蓝色的有两个轴和四个轮子。两个绿色框表示的目标停车点自我,与北面临的榜首。
车辆路径规划系统的配置块
定义参数的自我。
vdims = vehicleDimensions;egoWheelbase = vdims.Wheelbase;distToCenter = 0.5 * egoWheelbase;
定义参数的八个障碍。每一行的obsMat
与五种元素代表一个障碍:位置(x,y),航向角、长度和宽度
numObs = 8;obsMat = [23, 3.55, 0、2.9、4.8;…31.5,3.55,0、2.9、4.8;…40.5,3.55,0、2.9、4.8;…23岁,46岁,0、2.9、4.8;…27.3,46.5,0、2.6、4.8;…53.5、46 0、2.9、4.8;…0,0.5,0.25,25日50;…0 35.7,25日,48岁,13];
定义样本时间和预测地平线MPC控制器。
TsPlanner = 1;pPlanner = 20;
自我车辆的速度限制的范围[-6.5,6.5]m / s(大约15英里/小时)和自我车辆的转向角约束的范围-45,45度。
v_range = [-6.5, 6.5];steer_range =(-π/ 4,π/ 4);
定义米的安全距离。为了避免碰撞与障碍,所有障碍的最小距离必须大于一个安全的距离。
d_safe = 0.1;
一起构成自我的汽车和目标姿势,车辆路径规划系统的块可以生成一个参考路径从当前对目标造成构成自我的汽车。
跟踪参考轨迹仿真软件模型万博1manbetx
设计一个NLMPC控制器跟踪参考轨迹。
首先,设置仿真时间。
时间= 15;t = 0.1;Tsteps = / Ts持续时间;
然后,指定计划的开始和结束时间。
tmin = 5;%开始时间计划达峰时间= tmin + 0.5;%为计划结束时间
创建一个NLMPC控制器跟踪预测地平线(pTracking
)10
。
pTracking = 10;nlobjTracking = createMPCForTrackingVPP (pTracking);
打开仿真软件模型。万博1manbetx
mdl =“parkingValetVPP”;open_system (mdl)
运行仿真。在仿真过程中,车辆路径规划系统块计划目标构成的路径。然后,NLMPC跟踪控制器遵循计划的路径到停车位。
sim (mdl);
动画显示,自我汽车公园在目标造成碰撞成功没有任何障碍。您还可以查看自我车辆使用范围构成轨迹。
open_system (mdl +“/代客停车可视化工具/姿势”)
取消注释以下行运行模型从另一开始对目标造成。
% egoInitialPose = (4 35 0);% egoTargetPose =(36岁,45岁,π/ 2);% sim (mdl)
结论
这个例子展示了如何生成一个参考轨迹和跟踪轨迹的代客停车使用非线性模型预测控制。控制器自我导航车辆目标停车位没有碰撞与任何障碍。
mpcverbosity (“上”);bdclose (mdl) f = findobj (“名字”,“自动停车员”);关闭(f)