路
添加道路驾驶场景或道路
语法
描述
增加道路驾驶场景
路(
添加一个道路驾驶的情况下,场景
,roadcenters
)场景
。您指定的道路形状和方向的道路在二维平面上通过使用一组路中心,roadcenters
在离散点。当你指定道路的车道,车道屈指可数的路中心。有关更多信息,请参见画的方向道路和通道的编号。
路(
与指定的宽度,增加了道路场景
,roadcenters
,roadwidth
)roadwidth
。
路(
添加一个与指定的道路宽度和银行的角度,场景
,roadcenters
,roadwidth
,bankingangle
)bankingangle
。
路(
添加一个道路与指定的通道,场景
,roadcenters
“道”,lspec
)lspec
。
路(
添加一个道路与指定银行角度和车道。场景
,roadcenters
,bankingangle
“道”,lspec
)
路(___“标题”,
添加一个道路与指定的航向角roadheadings
)roadheadings
,使用任何输入参数组合从以前的语法。
路(___“名称”,
指定的名称。的名字
)
返回一个理查德·道金斯
=路(___)路
对象存储的属性创建道路。
增加道路路组
路(
添加一个道路段路组,rg
,roadcenters
)rg
。使用道路组创建一个交叉路口或十字路口。您指定的形状和道路段在二维平面上的方向通过使用一组路中心,roadcenters
在离散点。当你指定数量的车道公路段上,马路车道编号对中心。有关更多信息,请参见画的方向道路和通道的编号。
路(
添加一个道路段指定的宽度,rg
,roadcenters
,roadwidth
)roadwidth
路组。
路(
添加一个道路段指定的宽度和银行的角度,rg
,roadcenters
,roadwidth
,bankingangle
)bankingangle
路组。
路(
添加一个道路段指定的通道,rg
,roadcenters
“道”,lspec
)lspec
路组。
路(
添加一个道路段与指定银行角度和车道组的必经之路。rg
,roadcenters
,bankingangle
“道”,lspec
)
路(___“标题”,
添加一个道路段指定的航向角roadheadings
)roadheadings
路集团,从以前的语法使用任何输入参数组合。
例子
创建与多个演员和道路驾驶场景
创建一个驾驶场景包含一个弯曲的路,两个笔直的道路,和两个演员:一辆汽车和一辆自行车。两个角色都沿着路60秒钟。
创建驾驶场景对象。
场景= drivingScenario (“SampleTime”0.1”,“StopTime”、60);
使用道路中心创建弯曲的路点弧后800米半径的一个圆。弧始于0°,结束于90°,采样在5°的增量。
ang = [0:5:90] ';R = 800;roadcenters = R * [cosd (ang)信德(ang) 0(大小(ang))];roadwidth = 10;cr =路(场景、roadcenters roadwidth);
添加两个笔直的道路使用默认宽度,使用道路中心分两端。第一个直路道路边缘增加障碍。
roadcenters = [700 0 0;100 0 0];sr1 =路(场景,roadcenters);障碍(场景,sr1)屏障(场景,sr1,“RoadEdge”,“左”)roadcenters = (400 400 0;0 0 0];路(场景,roadcenters);
道路边界。
rbdry = roadBoundaries(场景);
一辆汽车和一辆自行车添加到场景。位置汽车的开头第一个直路。
车=车辆(场景中,“ClassID”,1“位置”(700 0 0),…“长度”3,“宽度”2,“高度”,1.6);
自行车位置更远。
自行车=演员(场景中,“ClassID”3,“位置”,(706 376 0)',…“长度”2,“宽度”,0.45,“高度”,1.5);
画出场景。
情节(场景中,“中心线”,“上”,“RoadCenters”,“上”);标题(“场景”);
显示演员的姿态和概要文件。
allActorPoses = actorPoses(场景)
allActorPoses =242×1结构体数组字段:辊距偏航AngularVelocity ActorID位置速度
allActorProfiles = actorProfiles(场景)
allActorProfiles =242×1结构体数组字段:ActorID ClassID长度宽度高度OriginOffset MeshVertices MeshFaces RCSPattern RCSAzimuthAngles RCSElevationAngles
因为有障碍在这个场景中,每个障碍部分被认为是一个演员,actorPoses
和actorProfiles
函数返回所有平稳和非平稳的演员的姿势。只获得非平稳的姿态和概要演员如汽车和自行车,首先获得相应的演员IDs使用scenario.Actors.ActorID
财产。
movableActorIDs = [scenario.Actors.ActorID];
然后,使用这些id只过滤非平稳演员的姿态和概要文件。
movableActorPoseIndices = ismember ([allActorPoses.ActorID], movableActorIDs);movableActorPoses = allActorPoses (movableActorPoseIndices)
movableActorPoses =2×1结构体数组字段:辊距偏航AngularVelocity ActorID位置速度
movableActorProfiles = allActorProfiles (movableActorPoseIndices)
movableActorProfiles =2×1结构体数组字段:ActorID ClassID长度宽度高度OriginOffset MeshVertices MeshFaces RCSPattern RCSAzimuthAngles RCSElevationAngles
创建和显示道路边界
创建一个驾驶场景包含一个以道路在世界坐标系中指定的场景。场景的世界坐标转换为自我的坐标系统。
创建一个空的驾驶场景。
场景= drivingScenario;
添加一个以道路场景。显示的场景。
roadCenters = [0 0 1 -20 1 20 20 1 -20 -20 -20 20 1 0 0 1);roadWidth = 3;bankAngle = [0 15 15 -15 -15 0];路(场景、roadCenters roadWidth bankAngle);情节(场景)
添加一个自我车辆的场景。在世界坐标位置的车辆(-20)和东方的偏航角是-15度。
自我=演员(场景中,“ClassID”,1“位置”(-20 0),“偏航”,-15);
获得自我的道路边界车辆使用的坐标roadBoundaries
函数。指定自我车辆作为输入参数。
rbEgo1 = roadBoundaries(自我);
显示结果上鸟瞰的阴谋。
cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“路”);rbEgo1 plotLaneBoundary (lbp)
获得在世界坐标通过道路边界roadBoundaries
函数。指定的场景作为输入参数。
rbScenario = roadBoundaries(场景);
获得自我的道路边界车辆使用的坐标driving.scenario.roadBoundariesToEgo
函数。
rbEgo2 = driving.scenario.roadBoundariesToEgo (rbScenario、自我);
显示道路边界上鸟瞰的阴谋。
cep = birdsEyePlot;枸杞多糖= laneBoundaryPlotter (cep),“DisplayName的”,“道路边界”);plotLaneBoundary(枸杞多糖,{rbEgo2})
路面标志显示在汽车和行人的场景
创建一个驾驶场景包含汽车和行人直路。然后,创建和显示道路的路面标志上鸟瞰的阴谋。
创建一个空的驾驶场景。
场景= drivingScenario;
创建一个直,25米道路段在一个方向上有两个旅游航线。
lm = [laneMarking (“固体”)laneMarking (“冲”,“长度”2,“空间”4)laneMarking (“固体”));l = lanespec (2“标记”、lm);路(场景中,[0 0 0;25日0 0],“道”l);
添加到驾驶场景行人过马路以每秒1米和一辆车以每秒10米。
ped =演员(场景中,“ClassID”4“长度”,0.2,“宽度”,0.4,“高度”,1.7);车=车辆(场景中,“ClassID”1);smoothTrajectory (ped [15 3 0;15日3 0],1);smoothTrajectory(汽车,汽车。RearOverhang 0 0;25-car.Length +车。RearOverhang 0 0], 10);
显示相对应的场景和追逐情节。
情节(场景)
chasePlot(汽车)
运行仿真。
创建一个鸟瞰的阴谋。
创建一个轮廓绘图仪、车道边界绘图仪和车道标记绘图仪的鸟瞰的阴谋。
获得的道路边界和目标轮廓。
获取车道标记顶点和面孔。
显示车道边界和车道标记。
运行仿真循环。
cep = birdsEyePlot (“XLim”25 [-25],“YLim”,-10年[10]);olPlotter = outlinePlotter (cep);lbPlotter = laneBoundaryPlotter (cep);lmPlotter = laneMarkingPlotter (cep),“DisplayName的”,“道”);传奇(“关闭”);而推进(场景)rb = roadBoundaries(车);(位置、偏航、长度、宽度、originOffset color] = targetOutlines(车);(lmv, lmf) = laneMarkingVertices(车);plotLaneBoundary (lbPlotter, rb);plotLaneMarking (lmPlotter lmv lmf);plotOutline (olPlotter、位置、偏航、长度、宽度、…“OriginOffset”originOffset,“颜色”、颜色);结束
连接两个道路使用航向角
创建一个驾驶场景包含两个弯曲的道路连接。指定每个路中心的航向角进行微调的道路连接区域的形状。
创建一个空的驾驶场景。
场景= drivingScenario;
添加两个道路驾驶场景通过定义道路中心和道路航向角。
%添加第一个路roadCenters = [7 20;0 0;30 0;30 -20;10 -30];roadHeadings = [-90;0;南;南;-90); laneMark = laneMarking(“固体”);laneSpecification = lanespec (2, = laneMark);路(场景、roadCenters“道”laneSpecification,…“标题”roadHeadings,“名字”,“路1”);%添加第二个路roadCenters = [10 -30;30 -40;30 -60;0 -60;7 -80];roadHeadings = [-90;南;南;180;-90); laneMark = laneMarking(“冲”);laneSpecification = lanespec (2, = laneMark);路(场景、roadCenters“道”laneSpecification,…“标题”roadHeadings,“名字”,《路2》);
画出场景。
情节(场景中,“RoadCenters”,“上”)
创建三叉路口的道路网络
三叉路口是一个三通接头,两个相邻道路相交第三路在钝角,如这个图所示。连接三个道路,您将创建一个三通接头通过添加三个路段。
添加三个道路驾驶场景
创建一个空的驾驶场景。
场景= drivingScenario;
指定通道的数量和每个车道的宽度的道路。
ls = lanespec (2“宽度”5);
定义道路中心三个道路驾驶并将它们添加到场景中。面向第一个路是斜的画布上左边的场景,第二条路对角面向右边的场景画布,垂直面向第三条路。
%添加第一个路roadCenters = [-20 0;6 0];路(场景、roadCenters“名字”,“路1”,“道”、ls);%添加第二个路roadCenters =[23日7;50 33];路(场景、roadCenters“名字”,《路2》,“道”、ls);%添加第三路roadCenters =[23日7;50 -33];路(场景、roadCenters“名字”,“路3”,“道”、ls);
画出场景。
图绘制(场景)
创建三通接头连接的道路
创建一个RoadGroup
对象。指定每个道路段的宽度,形成了三通接头。
rg = driving.scenario.RoadGroup (“名字”,三通接头的);roadWidth = 10;
指定道路中心路三段,并添加这些路段RoadGroup
通过使用对象路
函数。这些道路段彼此相交。
%添加第一个公路段roadCenters =[23日7;14 1;6 0];路(rg roadCenters roadWidth,“名字”,“段1”);%添加第二公路段roadCenters =[23日7;14 1;6 0];路(rg roadCenters roadWidth,“名字”,“分段2”);%添加第三公路段roadCenters =[23日7;21 4;21 4;23日7];路(rg roadCenters roadWidth,“名字”,“段3”);
添加三通接头驾驶场景
添加部分存储在的道路RoadGroup
通过使用对象驱动场景roadGroup
函数。道路段形成一个三通接头连接三个道路驾驶场景。
roadGroup(场景,rg);
使用标题创建一个交叉路口角度
创建一个驾驶场景与三个道路,并使用一个三叉路连接,如这个图所示。
添加三个道路驾驶场景
创建一个空的驾驶场景。
场景= drivingScenario;
指定通道的数量和每个车道的宽度的道路。
ls = lanespec (2“宽度”5);
定义道路中心三个道路驾驶并将它们添加到场景中。第一次和第二次面向道路是垂直的,左边和场景的中心分别画布。第三路是横向的,右边的两个垂直道路和他们之间。
%添加第一个路roadCenters = [70 30;30 30);路(场景、roadCenters“名字”,“路1”,“道”、ls);%添加第二个路roadCenters = [0 0;-40 0];路(场景、roadCenters“名字”,《路2》,“道”、ls);%添加第三路roadCenters = [15 -20;15 -60];路(场景、roadCenters“名字”,“路3”,“道”、ls);
画出场景。
情节(场景)
创建一个连接来连接道路
创建一个RoadGroup
对象。指定每个道路段的宽度,形成了连接。
rg = driving.scenario.RoadGroup (“名字”,“结”);roadWidth = 10;
指定路中心两路部分,并指定航向角第一段。添加这些路段RoadGroup
通过使用对象路
函数。这些道路段相交。
%添加第一个公路段,并指定其航向角roadCenters = [31 30;15 20;15 -21];roadHeadings = [180;-90;-90);路(rg roadCenters roadWidth,…“名字”,“段1”,“标题”,roadHeadings);%添加第二公路段roadCenters = [15 0;1 0];路(rg roadCenters roadWidth,…“名字”,“分段2”);
添加结驾驶场景
添加部分存储在的道路RoadGroup
通过使用对象驱动场景roadGroup
函数。道路段形成一个结连接三个道路驾驶场景。
roadGroup(场景,rg);
输入参数
场景
- - - - - -驾驶场景
drivingScenario
对象
驾驶的情况下,指定为一个drivingScenario
对象。
rg
- - - - - -路集团
RoadGroup
对象
路组定义了一个交叉路口或交叉,指定为一个RoadGroup
对象。
roadcenters
- - - - - -路中心用于定义路
实值N2矩阵|实值N3矩阵
路中心用于定义一条道路,指定为一个实值N2或N3矩阵。路中心确定道路的中心线在离散点。
如果
roadcenters
是一个N2矩阵,然后每个矩阵行代表(x,y路中心的坐标。的z每路中心的坐标是零。如果
roadcenters
是一个N3矩阵,然后每个矩阵行代表(x,y,z路中心的坐标。
如果矩阵的第一行和最后一行是一样的,这条路是一个循环。单位是米。
数据类型:双
roadwidth
- - - - - -宽的路
6.0
(默认)|积极的真正的标量|[]
指定宽度的道路,是一个积极的真正的标量。沿着整个道路宽度是不变的。单位是米。
指定bankingangle
输入但不roadwidth
,指定roadwidth
作为一个空参数,[]
。
如果您指定roadwidth
,那么你不能指定lspec
输入。
数据类型:双
bankingangle
- - - - - -银行角路
0
(默认)|实值N1的向量
银行角度的道路,指定为一个实值N1的向量。N路中心的数量。的银行角度横摇角的道路以及道路的方向。单位是在度。
lspec
- - - - - -莱恩规范
lanespec
对象|compositeLaneSpec
对象
莱恩规范,指定为一个lanespec
或compositeLaneSpec
对象。使用一个lanespec
对象创建一个路一巷规范。您可以指定通道的数量,每个车道的宽度,路面标志使用的类型lanespec
对象。指定内车道标记lanespec
,可以使用laneMarking
函数。
使用一个compositeLaneSpec
对象创建一个有不同的道路与多个路段车道规范。更多细节,请参阅compositeLaneSpec
。
如果您指定lspec
,那么你不能指定roadwidth
输入。
例子:“道”,lanespec (3)
指定与默认三车道公路车道宽度和车道标记。
的名字
- - - - - -路的名字
”“
(默认)|特征向量|字符串标量
路的名称,指定为一个特征向量或字符串标量。
例子:“名称”、“Road1”
例子:“名称”、“Road1”
数据类型:字符
|字符串
roadheadings
- - - - - -航向角的道路
实值N1的向量
道路航向角,指定为一个实值N1矢量角的范围(-180、180)。N路中心的数量。单位是在度。
标题角度约束相关的道路中心。为了避免约束道路中心点,您必须指定相应的元素roadheadings
作为南
。的路
为无约束函数自动确定航向角路中心。有关更多信息,请参见航向角。
输出参数
理查德·道金斯
——输出道路
路
对象
输出,作为一个返回路
这个表中描述的对象的属性。除了RoadID
scenario-generated属性,属性名对应于输入参数用于创建。所有属性是只读的。
财产 | 价值 |
---|---|
的名字 |
道路名称,指定为字符串标量 的 |
RoadID |
标识符的道路,指定为一个正整数 的 |
RoadCenters |
路中心用于定义一条道路,指定为一个实值N2或N3矩阵,N路中心的数量吗 的 |
RoadWidth |
指定宽度的道路,是一个积极的真正的标量 的 |
BankAngle |
银行角度的道路,作为一个指定N1实值向量,N路中心的数量在路上吗 的 |
标题 |
航向角的道路,作为一个指定N1实值向量,N路中心的数量在路上吗 的 |
更多关于
画的方向道路和通道的编号
通过创建一个道路路
函数,指定道路中心作为一个矩阵输入。的函数创建一个有向线横穿马路中心,从坐标矩阵的第一行,结束在最后一行的坐标矩阵。矩阵的坐标的两行指定画的方向的道路。这些坐标对应于第一个连续两路中心。画方向的方向道路场景的渲染情节。
通过创建一个道路驾驶场景设计师应用程序,您可以指定道路中心参数或交互式地画场景帆布。一个详细的例子,看到创建一个驾驶场景。在这种情况下,画方向的方向道路呈现的场景帆布。
自上而下的道路方向,之间的差别x坐标的第一个连续两路中心是正的。
与自下而上画方向,道路之间的差别x坐标的第一个连续两路中心是负的。
|
|
道路与方向从左到右画,之间的差别y坐标的第一个连续两路中心是正的。
为从右到左的方向画一条道路,之间的差别y坐标的第一个连续两路中心是负的。
|
|
从左到右车道必须编号,路的左边缘定义相对于路的方向。单向道路,默认情况下,左边缘的道路是一个坚实的黄色标记表明路的尽头在横向方向(方向垂直于画方向)。双向的,默认情况下,边缘都标有坚实的白线。
例如,这些图显示通道编号在单向和双向道路上画方向。
编号车道单向道路 | 编号车道双向道路 |
指定数量的车道为单向道路一个正整数。如果你设置整数值 1,2,3表示第一、第二和第三车道的路上,分别。 |
双元素向量指定数量的车道作为一个正整数的双向道路。如果你设置向量( 1 l表示只有左车道的道路。1 r和2 r表示第一和第二车道的路上,分别。 |
巷规范适用的顺序车道已经屈指可数了。
航向角
路的航向角指的是角在给定道路中心点朝着下一个路中心,测量逆时针的x设在范围(-180、180)度。
指定航向角作为道路中心点的约束使精确控制的形状和方向道路。
例如,创建一个路通过指定其路中心。情节的道路
场景= drivingScenario;roadCenters = [0 35;0 18;15 10;32 3;32 -12);roadHeadings =[南;南;0;南; NaN]; road(scenario,roadCenters,“标题”,roadHeadings);情节(场景中,“中心线”,“上”,“RoadCenters”,“上”)
这图显示了路与一个约束路航向角和各自的道路中心在这个例子中指定。其他道路中心无约束和航向角的自动确定路
函数。
现在指定道路中心点的航向角为每一个在路上。情节的新道路。
场景= drivingScenario;roadCenters = [0 35;0 18;15 10;32 3;32 -12);roadHeadings = [-90;-90;0;-90; -90]; road(scenario,roadCenters,“标题”,roadHeadings);情节(场景中,“中心线”,“上”,“RoadCenters”,“上”)
这图显示了道路与道路航向角和各自的道路中心指定的例子。
算法
的路
函数创建一个道路驾驶场景中为一个演员。您指定使用的道路N二维或三维的锚点。每一个N- 1段路径点之间定义了一个曲线的曲率变化线性线段的距离。函数符合分段回旋曲线曲线(x,y)坐标匹配路径点的曲率两岸的路标。非闭曲线,第一个和最后一个航点的曲率为零。如果第一个和最后一个锚点重合,那么前后曲率端点相匹配。的z路的坐标是使用一种保形插值分段立方曲线。
版本历史
介绍了R2017a
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。