创建道路标线对象
从车道标记对象数组中创建一个复合车道标记对象,厘米
= laneMarking (lmArray
)lmArray
.使用此语法生成包含多种标记类型的车道标记。
例如,通过定义,创建一个同时具有实线和虚线标记类型的车道边界标记lmArray
.
lmArray = [laneMarking('Solid') laneMarking('虚线')]cm = laneMarking(lmArray)
创建一个驾驶场景,道路中心为一条80米长的直路。
场景= drivingScenario;道路中心= [0 0;80 0];
创建一个lanespec
反对四车道公路。使用laneMarking
功能指定其五个车道标记。中心线是重实色和重黄色。最外面的线是纯白色的。内线是虚线和白色的。
solidW = laneMarking (“固体”,“宽度”,0.3);dashW=laneMarking(“冲”,“空间”5);doubleY = laneMarking (“DoubleSolid”,“颜色”,“黄色”);Lspec = lanespec([2 2],“宽度”,[5 5 5 5],...“标记”,[solidW dashW doubleY dashW solidW]);
将道路添加到驾驶场景中。显示的道路。
路(场景、roadCenters“道”, lspec);情节(场景)
模拟一辆车沿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];轨迹(车,路点);
绘制场景和相应的追逐图。
情节(场景)
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,“颜色”、颜色)结束
这个例子展示了如何创建一个驾驶场景,例如改变车道和超过其他车辆。您可以创建带有通过区域的道路,并将车辆添加到场景中。然后,定义这些车辆的轨迹,以模拟车辆在超车区域的变道。
使用复合车道标记创建具有超车区域的道路
创建一个驾驶场景。指定道路中心和车道数量,以添加一条双向、双车道、54米的直线道路,从上到下绘制方向。
场景= drivingScenario (“StopTime”10);道路中心= [50 0;4 0];numLanes = [1 1];
通常情况下,车道标记的数量等于车道的数量加1。一条双向、双车道的道路有3个车道标记,最外面的车道标记在两边都是白实线。
创建一个标记宽度为0.25米的实体标记对象,构成双向道路最外面的车道标记。
outerLM = laneMarking (“固体”,“宽度”, 0.25);
创建一个车道标记数组SolidMarking
和DashedMarking
包含实线和虚线双黄线属性的对象。
lmArray = [laneMarking (“DoubleSolid”,“颜色”,“黄色”,“宽度”0.25) laneMarking (“DashedSolid”,“颜色”,“黄色”,“长度”, 1“空间”, 1.5,“宽度”0.25) laneMarking (“DoubleSolid”,“颜色”,“黄色”,“宽度”0.25) laneMarking (“SolidDashed”,“颜色”,“黄色”,“长度”, 1“空间”, 1.5,“宽度”0.25)];
使用车道标记阵列为中心车道标记创建一个复合车道标记对象。为每个标记对象指定规范化长度。
centerLM = laneMarking (lmArray,“SegmentRange”,[0.1 0.25 0.2 0.35]);
创建最外层和中心车道标记对象的矢量。将向量作为输入传递给lanespec
功能,以定义道路的车道规格。
标志= [outerLM centerLM outerLM];ls = lanespec (numLanes,“宽度”7“标记”,标志着);
将道路添加到驾驶场景中。绘制驾驶场景。由于道路的绘制方向是自上而下的,因此复合车道标记中的标记类型也是自上而下的。
路(场景、roadCenters“道”、ls);figMark =图;集(figMark,“位置”,[0 0 600 600]);hPlot =轴(figMark);情节(场景中,“父”,hPlot);头衔(“复合标记:有通行区域的道路”)
模拟通过区域的车辆变道
在场景中添加慢行车辆(SMV)。指定路径点和速度值来设置SMV的轨迹。
slowVehicle =车辆(场景中,“ClassID”, 1“位置”[37 3 0]);路径点= [37 -3;12 -3];速度= 2;轨迹(slowVehicle、锚点、速度);
向场景中添加另一个车辆。设置车辆的轨迹,使其通过在通过区域改变车道而超过前面的SMV。
passingVehicle =车辆(场景中,“ClassID”, 1“位置”,[49 -3 0]); 航路点=[49-3;45-3;40-3;350;303;263;223;183;80;5-2;2-3;1-3];速度=6;轨迹(通过车辆、航路点、速度);
创建自定义地物窗口并绘制场景。
关闭所有;figScene =图;集(figScene,“位置”,[0 0 600 600]);hPanel = uipanel (figScene);hPlot =轴(hPanel);情节(场景中,“父”,hPlot);头衔(“通行区:变道超车”)%运行模拟而推进(场景)暂停(0.01)结束
类型
- - - - - -车道标记类型“无名”
|“固体”
|“冲”
|“DoubleSolid”
|“DoubleDashed”
|“SolidDashed”
|“DashedSolid”
车道标记的类型,指定为这些值之一。
“无名” |
“固体” |
“冲” |
“DoubleSolid” |
“DoubleDashed” |
“SolidDashed” |
“DashedSolid” |
---|---|---|---|---|---|---|
没有车道标志 |
实线 |
虚线 |
两个实线 |
两个虚线 |
左边实线,右边虚线 |
左虚线,右实线 |
|
|
|
|
|
|
|
车道标记的类型存储在类型
,返回的车道标记对象的只读属性。
lmArray
- - - - - -车道标记对象的一维数组LaneMarking
对象|SolidMarking
对象|DashedMarking
对象车道标记对象的一维数组,指定为
LaneMarking
对象“无名”
车道标志的类型。
SolidMarking
对象“固体”
和“DoubleSolid”
车道标记的类型。
DashedMarking
对象“冲”
,“DoubleDashed”
,“SolidDashed”
,“DashedSolid”
车道标记的类型。
例子:lmArray = [laneMarking('Solid') laneMarking(' dash ')]
范围
- - - - - -每个标记类型的范围每个标记类型的范围,指定为在区间[0,1]内具有规格化值的向量。向量的长度必须与输入数组中指定的标记类型的数量相同lmArray
.
中指定的标记类型数量的倒数是车道中每个标记类型的默认范围值lmArray
.
例如,如果输入的车道标记数组包含三个车道标记对象,例如lmArray = [lanemark ('Solid') lanemark('虚线')lanemark ('Solid')]
,则每个标记类型的缺省范围值为1/3,即范围= [0.3330 0.3330 0.3330]
.
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
laneMarking(“冲”、“宽度”,0.25,“长度”,5.0)
创建一条宽0.25米、间隔5米的破折线。
“宽度”
- - - - - -车道标志宽度0.15
(默认)|积极的真正的标量车道标记宽度,指定为逗号分隔对组成“宽度”
一个正的实标量。对于双车道标记,对两条线使用相同的宽度。单位是米。
例子:0.20
“颜色”
- - - - - -车道标线的颜色(1 1 1)
(白色)(默认)|RGB值|十六进制颜色代码|颜色名称|短的颜色名称车道标记的颜色,指定为逗号分隔对组成“颜色”
以及RGB三元组、十六进制颜色代码、颜色名称或简短的颜色名称。对于双车道标记,两条线使用相同的颜色。
对于自定义颜色,指定RGB三元组或十六进制颜色代码。
RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在这个范围内[0, 1]
;例如,(0.4 0.6 0.7)
.
十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(#
),然后是3个或6个十六进制数字,其范围可以是0
来F
.这些值不区分大小写。因此,颜色是代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。
颜色名称 | 短名称 | RGB值 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
“红色” |
“r” |
(1 0 0) |
“# FF0000” |
|
“绿色” |
‘g’ |
(0 1 0) |
“# 00 ff00” |
|
“蓝” |
“b” |
[0 0 1] |
“# 0000 ff” |
|
“青色” |
“c” |
(0 1 1) |
“# 00飞行符” |
|
“洋红” |
“米” |
(1 0 1) |
“#就” |
|
“黄色” |
“y” |
(0.98 0.86 0.36) |
“# FFFF00” |
|
“黑” |
“k” |
(0 0 0) |
'#000000' |
|
“白色” |
' w ' |
(1 1 1) |
“# FFFFFF” |
|
例子:[0.8 0.8 0.8]
“力量”
- - - - - -车道标志颜色的饱和度1
(默认)|[0,1]范围内的实标量车道标记颜色的饱和度强度,指定为逗号分隔对组成“力量”
以及一个在[0,1]范围内的实标量。的值0
对应于颜色完全不饱和的标记。标记是灰色的。的值1
对应于颜色完全饱和的标记。对于双车道标记,对两条线使用相同的强度。
例子:0.20
“长度”
- - - - - -虚线中虚线的长度3.0
(默认)|积极的真正的标量虚线中破折号的长度,指定为组成的逗号分隔对“长度”
一个正的实标量。对于双车道标记,两条线的长度是相同的。虚线是虚线的可见部分。单位是米。
例子:2.0
“空间”
- - - - - -虚线中虚线之间的间隔长度9.0
(默认)|积极的真正的标量一个破折号的结束和下一个破折号的开始之间的空格长度,指定为逗号分隔对,由“空间”
一个正的实标量。对于双车道标记,两条线的长度是相同的。单位是米。
例子:2.0
lm
——车道标志LaneMarking
对象|SolidMarking
对象|DashedMarking
对象车道标记,返回为LaneMarking
对象,SolidMarking
对象,或DashedMarking
对象。属性的返回对象的类型取决于指定的输入通道标记的类型类型
输入。
输入类型 | 输出通道标记 | 车道标记属性 |
---|---|---|
“无名” |
|
|
“固体” |
|
|
“DoubleSolid” |
||
“冲” |
|
|
“DashedSolid” |
||
“SolidDashed” |
||
“DoubleDashed” |
属性的对应名称-值对可以在创建车道标记对象时设置这些属性laneMarking
函数。要在创建后更新这些属性,请使用点表示法。例如:
lm = laneMarking (“固体”);lm。宽= 0.2;
类型
,它是只读的。的几何性质的细节SolidMarking
和DashedMarking
对象,请参见莱恩规范.
厘米
-综合车道标记CompositeMarking
对象复合车道标记,返回为CompositeMarking
对象的属性标记
和SegmentRange
.
复合车道标记特性 | 描述 |
标记 |
此属性是一个车道标记对象数组,定义了组成复合车道标记的多种标记类型。每个线标对象定义的线标部分为标记片段.此属性是只读的。 |
SegmentRange |
此属性指定复合车道标记中每个标记段的规范化范围。此属性是只读的。 |
使用此对象可指定沿车道的多个标记类型。有关如何指定复合车道标记以及沿车道的标记段顺序的详细信息,请参见复合车道标志.
创造一条道路通过使用路
函数,指定道路中心作为矩阵输入。该函数创建一条横过道路中心的有向线,从矩阵的第一行坐标开始,到矩阵的最后一行坐标结束。矩阵前两行的坐标指定画的方向的道路。这些坐标对应前两个连续的道路中心。绘制方向是道路在场景图中渲染的方向。
创造一条道路通过使用驾驶场景设计师应用,你可以指定道路中心参数或交互式绘制场景帆布.有关详细示例,请参见创建驾驶场景.在这种情况下,绘制方向是道路渲染的方向场景帆布.
对于具有从上到下绘制方向的道路,两者之间的差异x前两个连续道路中心的坐标是正的。
对于具有从下到上绘制方向的道路x前两个连续道路中心的坐标为负。
|
|
对于具有从左到右绘制方向的道路,y前两个连续道路中心的坐标是正的。
对于具有从右到左绘制方向的道路,y前两个连续道路中心的坐标为负。
|
|
车道必须从左到右编号,道路的左边缘定义相对于道路的绘制方向。对于单向道路,默认情况下,道路的左边缘为实黄色标记,表示横向方向(垂直方向绘制方向)的道路尽头。对于双向道路,默认情况下,两条边都用白实线标记。
例如,这些图表显示了如何在单向和双向道路上用从上到下的绘制方向进行编号。
在单行道上为车道编号 | 在双向道路上为车道编号 |
指定单行道的车道数为正整数。如果您将整数值设置为 1,2,3.分别指道路的第一、第二和第三车道。 |
将车道数指定为双向道路的正整数双元素向量。如果将向量设置为[ 1 l指这条路唯一左边的车道。1 r和2 r分别指道路的第一及第二右车道。 |
车道的规格是按照车道编号的顺序来执行的。
复合车道标记由两个或多个标记段组成,这些标记段沿车道定义了多种标记类型。复合车道标记的几何特性包括每种标记类型的几何特性和标记段的规格化长度。
指定标记段在复合车道标记中出现的顺序取决于道路的绘制方向。每个标记段是一个有方向的段,有起点,并向最后一个道路中心移动。第一个标记段从第一个道路中心开始,并以指定的长度向最后一个道路中心移动。第二标记段从第一标记段的终点开始,并以指定的长度向最后一条道路中心移动。同样的过程适用于为复合车道标记指定的每个标记段。属性可以为每个标记段设置规范化长度范围
输入参数。
例如,考虑一条有两条车道的单行道。从道路左侧边缘开始的第二车道标记为具有标记类型的复合车道标记固体
和冲
.每个标记类型的标准化范围是0.5。第一个标记段是实标记,第二个标记段是虚线标记。这些图表显示了标记区段应用于道路从左到右和从右到左绘制方向的顺序。
|
|
有关车道标记的几何属性的信息,请参见莱恩规范.
该图显示了道路、车道和车道标记的组成部分和几何属性。
lane规格对象,lanespec
,定义了道路。
的NumLanes
属性指定车道的数量。创建此对象时,必须指定车道的数量。
的宽度
属性指定每个通道的宽度。
的标记
属性包含道路上每个车道标记的规格。标记
是一个车道标记对象数组,每个车道有一个对象。要创建这些对象,使用laneMarking
函数。车道标记规范包括:
类型
-车道标记类型(实线,虚线,等等)
宽度
-线标宽度
颜色
-车道标记颜色
强度
-车道标记颜色的饱和度值
长度
—对于虚线道,每个虚线的长度
空间
-对于虚线,虚线之间的间距
SegmentRange
—对于复合车道标记,每个标记段的归一化长度。
的类型
属性包含道路中每个车道的车道类型规格。类型
可以是同质车道类型对象或异质车道类型数组。
同质车道类型对象包含道路中所有车道的车道类型规格。
异构车道类型数组包含车道类型对象的数组,每个车道有一个对象。
要创建这些对象,使用laneType
函数。Lane类型规格包括:
类型
-车道类型(驾驶,边界等)
颜色
- Lane彩色
强度
-车道颜色的强度
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。