文档帮助中心文档
一次步进的先进驾驶场景模拟
正在=进步(场景)
例子
正在=进步(场景)提出了一种单时间步的驾驶场景模拟。要指定步长时间,请使用SampleTime输入属性drivingScenario对象,场景.函数返回状态,正在,模拟的。
正在=进步(场景)
正在
场景
SampleTime
drivingScenario
全部折叠
创建一个驾驶场景。使用默认的0.01秒采样时间。
场景= drivingScenario;
在场景中添加一条30米长的直路。这条路有两条车道。
道路中心= [0 0;30 0];路(场景、roadCenters“道”lanespec (2));
增加一辆以每秒30米的恒定速度行驶在左车道的车辆。在运行模拟之前绘制场景。
v =车辆(场景中,“ClassID”1);路径点= [5 2;25 2];速度= 30;% m / ssmoothTrajectory (v,锚点、速度)情节(场景)
调用推进函数在一个循环中推进模拟一个时间一步一次。每0.01秒暂停一次,观察地图上车辆的运动。
推进
而推进(场景)暂停(0.01)结束
创建一个驱动场景,并显示目标大纲如何随着模拟的进展而变化。
创建一个由两条相交的直线道路组成的驾驶场景。第一段路长45米。第二条笔直的路长32米,两边都有护栏,与第一条路相交。在第一条道路上,以每秒12.0米的速度行驶的汽车以每秒2.0米的速度接近正在穿过十字路口的行人。
场景= drivingScenario (“SampleTime”, 0.1,“StopTime”1);道路1 =道路(场景,[-10 0 0;45 -20 0]);道路2 =道路(场景,[-10 -10 0;35 10 0]);障碍(场景,road1)屏障(场景、road1“RoadEdge”,“左”) ped =演员(场景,“ClassID”4“长度”, 0.4,“宽度”, 0.6,“高度”, 1.7);车=车辆(场景中,“ClassID”1);pedspeed = 2.0;carspeed = 12.0;smoothTrajectory (ped [15 3 0;15日3 0],pedspeed);smoothTrajectory(车,-10 -10 0;35 10 0], carspeed);
为车辆创建一个以自我为中心的追逐情节。
chasePlot(车,“中心线”,“上”)
创建一个空的鸟瞰图,并添加轮廓绘图仪和车道边界绘图仪。然后,运行模拟。在每个模拟步骤:
更新追踪图以显示道路边界和目标轮廓。
更新鸟瞰图以显示更新的道路边界和目标轮廓。情节视角总是与自我载体有关。
bepPlot = birdsEyePlot (“XLim”50 [-50],“YLim”, 40 [-40]);outlineplotter = outlineplotter (bepPlot);laneplotter = laneBoundaryPlotter (bepPlot);传奇(“关闭”)而advance(scenario) rb = roadBoundaries(汽车);(位置、偏航、长度、宽度、originOffset color] = targetOutlines(车);[bposition, byaw blength、bwidth boriginOffset, bcolor, barrierSegments] = targetOutlines(车,“障碍”);plotLaneBoundary (laneplotter, rb) plotOutline (outlineplotter、位置、偏航、长度、宽度、...“OriginOffset”originOffset,“颜色”(颜色)plotBarrierOutline outlineplotter、barrierSegments bposition, byaw, blength, bwidth,...“OriginOffset”boriginOffset,“颜色”bcolor)暂停(0.01)结束
模拟一辆车沿s曲线行驶的驾驶场景。创建和绘制车道边界。
创建一个有s形曲线的道路的驾驶场景。
场景= drivingScenario (“StopTime”3);道路中心= [-35 20 0;-20 -20 0;0 0 0;20个20 0;35 -20 0];
创建车道并将其添加到道路上。
lm = [laneMarking (“固体”,“颜色”,' w ');...laneMarking (“冲”,“颜色”,“y”);...laneMarking (“冲”,“颜色”,“y”);...laneMarking (“固体”,“颜色”,' w '));ls = lanespec (3“标记”、lm);路(场景、roadcenters“道”、ls);
添加一个自我飞行器,并从它的路径点指定它的轨迹。默认情况下,汽车以每秒30米的速度行驶。
车=车辆(场景中,...“ClassID”,1,...“位置”, 20 0 [-35]);路径点= [-35 20 0;-20 -20 0;0 0 0;20个20 0;35 -20 0];smoothTrajectory(车,路点);
绘制场景和相应的追逐情节。
情节(场景)
chasePlot(汽车)
运行模拟循环。
初始化鸟瞰图并创建轮廓绘图仪、左车道和右车道边界绘图仪以及道路边界绘图仪。
获得道路边界和矩形轮廓。
获取车辆左右两侧的车道边界。
改进模拟并更新绘图仪。
cep = birdsEyePlot (“XLim”, 40 [-40],“YLim”[-30] 30日);olPlotter = outlinePlotter (cep);lblPlotter = laneBoundaryPlotter (cep),“颜色”,“r”,“线型”,“- - -”);lbrPlotter = laneBoundaryPlotter (cep),“颜色”,‘g’,“线型”,“- - -”);rbsEdgePlotter = laneBoundaryPlotter (cep);传奇(“关闭”);而advance(scenario) rbs = roadBoundaries(car);(位置、偏航、长度、宽度、originOffset color] = targetOutlines(车);磅= laneBoundaries(车,“XDistance”0:5:30,“LocationType”,“中心”,...“AllBoundaries”、假);plotLaneBoundary(lblPlotter,{lb(1).Coordinates}) plotLaneBoundary(lbrPlotter,{lb(2).Coordinates})...“OriginOffset”originOffset,“颜色”、颜色)结束
驾驶场景,指定为drivingScenario对象。
1
0
模拟的运行状态,按逻辑返回1(真正的)或0(假).
真正的
假
如果正在是1,模拟正在运行。
如果正在是0时,模拟已停止运行。
模拟运行,直到满足以下条件中的至少一个:
模拟时间超过模拟停止时间。要指定停止时间,请使用StopTime的属性场景.
StopTime
任何行动者或车辆到达指定轨道的末端。指定的轨迹由最近一次对轨迹函数的调用来指定。
的推进函数只在参与者和车辆有指定轨迹时更新它们。要更新没有指定轨迹的参与者和车辆,您可以设置位置,速度,卷,球场,偏航,或AngularVelocity属性在模拟期间的任何时间。
位置
速度
卷
球场
偏航
AngularVelocity
chasePlot
情节
记录
重新启动
smoothTrajectory
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系