主要内容

laneMarking

创建道路车道标记对象

描述

沿着车道单标记类型

lm= laneMarking (类型)创建一个默认的车道标志指定类型的对象(固体巷,冲巷,等等)。该对象定义了车道边界的特征标志在路上。当创建道路驾驶的情况下,您可以使用车道标记对象作为输入lanespec对象。

例子

lm= laneMarking (类型,名称,值)设置车道标记的属性对象使用一个或多个名称-值对。例如,laneMarking(“固体”、“颜色”、“黄色”)创建一个坚实的黄色车道标志。

沿着车道多个标记类型

例子

厘米= laneMarking (lmArray)创建一个复合车道标记对象从车道标记对象数组,lmArray。使用这种语法生成包含多个标记类型的路面标志。

例如,创建一个既有坚实的车道边界标记和虚线标记类型定义lmArray

lmArray = [laneMarking(固体)laneMarking(虚线)]厘米= laneMarking (lmArray)
的顺序标记类型发生取决于画路的方向。有关更多信息,请参见画的方向道路和通道的编号复合车道标志

例子

厘米= laneMarking (lmArray“SegmentRange”,范围)指定范围中的每个标记类型复合车道标记通过使用名称-值对的论点“SegmentRange”,范围

例子

全部折叠

创建一个场景和道路中心直接开车,80米的道路。

场景= drivingScenario;roadCenters = [0 0;80 0];

创建一个lanespec对象为四车道公路。使用laneMarking函数来指定它五车道标记。中心线double-solid和黄色的两倍。最外层的线是坚固的和白色的。内部线是虚线和白色。

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);情节(场景)

图包含一个坐标轴对象。坐标轴对象包含X (m), ylabel Y (m)包含3补丁,类型的对象。

模拟驾驶场景和一辆车行驶在一个s曲线。创建和绘制车道边界。

创建驾驶场景一条路有一个s曲线。

场景= drivingScenario (“StopTime”3);roadcenters = [-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 m / s的速度传播。

车=车辆(场景中,“ClassID”,1“位置”,20 0 [-35]);路点= [-35 20 0;-20 -20 0;0 0 0;20个20 0;35 -20 0];smoothTrajectory(车,路点);

情节相对应的场景和追逐情节。

情节(场景)

chasePlot(汽车)

运行仿真循环。

  1. 初始化一个鸟瞰的情节和创建一个轮廓绘图仪,左车道右车道边界策划者和道路边界绘图仪。

  2. 获得的道路边界和矩形轮廓。

  3. 获取车道边界左和右的车辆。

  4. 推进仿真和更新策划者。

cep = birdsEyePlot (“XLim”,40 [-40],“YLim”[-30]30日);olPlotter = outlinePlotter (cep);lblPlotter = laneBoundaryPlotter (cep),“颜色”,“r”,“线型”,“- - -”);lbrPlotter = laneBoundaryPlotter (cep),“颜色”,‘g’,“线型”,“- - -”);rbsEdgePlotter = laneBoundaryPlotter (cep);传奇(“关闭”);推进(场景)苏格兰皇家银行= roadBoundaries(车);(位置、偏航、长度、宽度、originOffset color] = targetOutlines(车);磅= laneBoundaries(车,“XDistance”0:5:30,“LocationType”,“中心”,“AllBoundaries”、假);plotLaneBoundary (rbsEdgePlotter rbs) plotLaneBoundary (lblPlotter{磅(1).Coordinates}) plotLaneBoundary (lbrPlotter,{磅(2).Coordinates}) plotOutline (olPlotter、位置、偏航、长度、宽度、“OriginOffset”originOffset,“颜色”、颜色)结束

这个例子展示了如何创建一个驾驶等演习场景换车道和超车。您创建的道路通过区域和车辆添加到场景中。然后,定义这些车辆的轨迹来模拟车辆车道变化区域。

创建道路,通过区域通过使用复合车道标志

创建一个驾驶场景。指定道路中心和车道的数量添加双向两车道的直路54米的方向上。

场景= drivingScenario (“StopTime”10);roadCenters = [50 0;4 0];numLanes = [1];

通常,车道标记的数量等于车道数+ 1。一个双向两车道的道路有三车道标记和最外层的车道标记在边缘都是坚实的白线。

创建一个坚实的标记对象标记宽度0.25米,路面标志构成最外层的双向道路。

outerLM = laneMarking (“固体”,“宽度”,0.25);

创建一个车道标记数组SolidMarkingDashedMarking对象包含固体和冲双黄线的属性。

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);标题(“复合标记:道路与传递区”)

图包含一个坐标轴对象。坐标轴对象与标题复合标记:道路与传递区,包含X (m), ylabel Y (m)包含3补丁,类型的对象。

通过模拟车辆车道变化区

添加一个缓慢移动的车辆(SMV)的场景。指定路径点和速度值设置为SMV轨迹。

slowVehicle =车辆(场景中,“ClassID”,1“位置”[37 3 0]);路点= [37 3;12 3];速度= 2;smoothTrajectory (slowVehicle、锚点、速度);

添加另一个车的场景。设置车辆的轨迹,它通过前面的SMV的换车道经过的区域。

passingVehicle =车辆(场景中,“ClassID”,1“位置”[49 3 0]);路点= [49 3;45 3;40 3;35 0;30 3;26日3;22 3;18 3;8 0; 5 -2; 2 -3; 1 -3]; speed = 6; smoothTrajectory(passingVehicle,waypoints,speed);

创建一个自定义图窗口和情节场景。

关闭所有;figScene =图;集(figScene,“位置”[0 0 600 600]);hPanel = uipanel (figScene);hPlot =轴(hPanel);情节(场景中,“父”,hPlot);标题(通过区域:改变车道,通过其他车辆的)%运行仿真推进(场景)暂停(0.01)结束

图包含一个坐标轴对象和一个uipanel类型的对象。坐标轴对象与标题传递区域:改变车道和通过其他车辆,包含X (m), ylabel Y (m)包含5补丁,类型的对象。

输入参数

全部折叠

类型的车道标志,指定这些值。

“无名” “固体” “冲” “DoubleSolid” “DoubleDashed” “SolidDashed” “DashedSolid”

没有车道标志

实线

虚线

两个实线

两个虚线

左边是实线,虚线上正确的

虚线左边,右边是实线

样的一个无名的车道

固体样品车道标志

虚线车道标记的样本

double-solid车道标记的样本

双破折号车道标记的样本

solid-dashed车道标记的样本

dashed-solid车道标记的样本

车道标识存储在的类型类型,一个只读属性返回的车道标记对象。

一维数组的车道标记对象,指定为

  • LaneMarking对象“无名”类型的车道标志。

  • SolidMarking对象“固体”“DoubleSolid”类型的车道标志。

  • DashedMarking对象“冲”,“DoubleDashed”,“SolidDashed”,“DashedSolid”类型的车道标志。

例子:lmArray = [laneMarking(固体)laneMarking(虚线)]

范围为每一个标记类型,指定为一个向量的归一化值区间[0,1]。向量的长度必须相同标记的数量输入数组中指定的类型lmArray

默认范围值为每一个标记类型在车道的逆标记中指定类型的数量lmArray

例如,如果输入车道标记数组包含三个车道标记对象,如lmArray = [laneMarking(固体)laneMarking(虚线)laneMarking(固体)]每个标记的范围,那么默认值类型是1/3,范围= (0.3330 0.3330 0.3330)

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:laneMarking(“冲”、“宽度”,0.25,“长度”,5.0)创建一个车道的破折号,0.25米宽,间距为5米。

车道标志宽度,指定为逗号分隔组成的“宽度”和积极的真正的标量。双车道标记,用于线宽度相同。单位是米。

车道的宽度标记必须小于其封闭车道的宽度。的封闭车道直接车道左边的车道标志。

例子:0.20

车道的颜色标志,指定为逗号分隔组成的“颜色”十六进制颜色代码和一个RGB值,颜色名称或短的颜色名称。双车道标记,用于行相同的颜色。

为一个自定义颜色,指定一个RGB值或十六进制的颜色代码。

  • 一个RGB值三元素行向量的元素指定强度的红色,绿色和蓝色的组件的颜色。强度必须在范围内[0,1]例如,(0.4 0.6 0.7)

  • 十六进制颜色代码是一个字符串标量或字符始于一个散列向量符号(#)后面跟着三个月或六个十六进制数字,它的范围可以从0F。的值是不区分大小写的。因此,颜色代码“# 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) “# FADB5C”

样品的颜色黄色

“黑” “k” (0 0 0) # 000000的

样品的颜色黑色

“白色” ' w ' (1 1 1) “# FFFFFF”

样品的颜色白色

例子:(0.8 0.8 0.8)

饱和强度的车道标志颜色,指定为逗号分隔组成的“力量”和一个真正的标量范围[0,1]。的值0对应于一个标志的颜色是完全不饱和。标志是灰色的。的值1对应于一个标志的颜色是完全饱和。双车道标记,用于行相同的力量。

例子:0.20

破折号在虚线,长度指定为逗号分隔组成的“长度”和积极的真正的标量。双车道标记,用于线路长度相同。dash的可见部分是虚线。单位是米。

例子:2.0

长度之间的空间一个破折号的结束,开始下一个破折号,指定为逗号分隔组成的“空间”和积极的真正的标量。双车道标记,用于线路长度相同。单位是米。

例子:2.0

输出参数

全部折叠

车道标记,作为一个返回LaneMarking对象,SolidMarking对象,或DashedMarking对象。返回的对象的类型取决于输入车道标记指定的类型类型输入。

输入类型 输出通道标记 车道标记属性
“无名”

LaneMarking对象

  • 类型

“固体”

SolidMarking对象

  • 颜色

  • 宽度

  • 强度

  • 类型

“DoubleSolid”
“冲”

DashedMarking对象

  • 长度

  • 空间

  • 颜色

  • 宽度

  • 强度

  • 类型

“DashedSolid”
“SolidDashed”
“DoubleDashed”

你可以设置这些属性创建车道标记对象时使用的相应名称-值对laneMarking函数。创建后更新这些属性,使用点符号。例如:

lm = laneMarking (“固体”);lm。宽= 0.2;
你可以设置后所有属性创建除外类型,这是只读的。对细节的几何性质SolidMarkingDashedMarking对象,看到莱恩规范

复合车道标记,作为一个返回CompositeMarking对象的属性标记SegmentRange

复合车道标记属性 描述
标记 这个属性是一个数组的车道标记对象定义了多个标记类型组成的复合车道标志。的车道标志由每个车道标记对象是一个定义的标记片段。这个属性是只读的。
SegmentRange 这个属性指定的归一化范围中的每个标记段复合车道标志。这个属性是只读的。

使用这个对象指定多个沿着车道标记类型。更多细节关于如何指定复合车道标记和标记片段的顺序沿着车道,看到的复合车道标志

更多关于

全部折叠

画的方向道路和通道的编号

通过创建一个道路函数,指定道路中心作为一个矩阵输入。的函数创建一个有向线横穿马路中心,从坐标矩阵的第一行,结束在最后一行的坐标矩阵。矩阵的坐标的两行指定画的方向的道路。这些坐标对应于第一个连续两路中心。画方向的方向道路场景的渲染情节。

通过创建一个道路驾驶场景设计师应用程序,您可以指定道路中心参数或交互式地画场景帆布。一个详细的例子,看到创建一个驾驶场景。在这种情况下,画方向的方向道路呈现的场景帆布

  • 自上而下的道路方向,之间的差别x坐标的第一个连续两路中心是正的。

  • 与自下而上画方向,道路之间的差别x坐标的第一个连续两路中心是负的。

路与自上而下画的方向

路与自下而上画的方向

  • 道路与方向从左到右画,之间的差别y坐标的第一个连续两路中心是正的。

  • 为从右到左的方向画一条道路,之间的差别y坐标的第一个连续两路中心是负的。

路,从左到右画的方向

画的方向从右到左的道路

编号车道

从左到右车道必须编号,路的左边缘定义相对于路的方向。单向道路,默认情况下,左边缘的道路是一个坚实的黄色标记表明路的尽头在横向方向(方向垂直于画方向)。双向的,默认情况下,边缘都标有坚实的白线。

例如,这些图显示通道编号在单向和双向道路上画方向。

编号车道单向道路 编号车道双向道路

指定数量的车道为单向道路一个正整数。如果你设置整数值3有三个车道的道路,那么,旅游方向相同。的车道从路的左边缘开始编号。

1,2,3表示第一、第二和第三车道的路上,分别。

在单向车道数

双元素向量指定数量的车道作为一个正整数的双向道路。如果你设置向量(12),然后路上有三个车道:两道在一个方向和一个旅行巷旅游在相反的方向。因为画的方向,路上有一个左车道和两个右车道。的车道从路的左边缘开始编号。

1 l表示只有左车道的道路。1 r2 r表示第一和第二车道的路上,分别。

莱恩数字双向道路

巷规范适用的顺序车道已经屈指可数了。

复合车道标志

复合车道标志由两个或两个以上的标记片段定义多个沿着车道标记类型。复合车道标志的几何性质包括每个标志的几何性质类型和标准化的标记片段的长度。

指定的顺序标记段发生在复合车道标志取决于画路的方向。每一个标记部分是一个有向线段的起点和中心走向最后的道路。第一个标记段开始从第一路中心和走向最后的路中心指定的长度。第二个标记段从第一个标记段的终点和走向最后的道路中心指定的长度。相同的过程适用于每一个标记段指定的复合车道标志。你可以设置这些标记的规范化长度为每个部分通过指定范围输入参数。

例如,考虑一个单向道路有两个车道。第二车道标记从左边路的边缘是一个复合车道标记与标记类型固体。每个标记类型的标准化范围是0.5。第一个标记部分是一个坚实的标记和第二个标记段虚线标记。这些图显示的顺序标记段申请从左到右和从右到左的方向的道路。

路,从左到右画的方向。路的左边缘上。

画的方向从右到左的道路。路的左边缘在底部。

有关路面标志的几何属性的信息,明白了莱恩规范

莱恩规范

图中显示了组件和几何性质的道路,车道,车道标记。

几何性质的道路,车道,车道标志

莱恩规范对象,lanespec,定义了道路车道。

  • NumLanes属性指定通道的数量。您必须指定车道当您创建这个对象的数量。

  • 宽度属性指定每个车道的宽度。

  • 标记属性包含每个车道标志的规格在路上。标记车道标记对象数组,每车道一个对象。要创建这些对象,可以使用laneMarking函数。车道标志规范包括:

    • 类型类型的车道标志(固体,破灭,等等)

    • 宽度——车道标志宽度

    • 颜色——车道标记颜色

    • 强度莱恩-饱和值标记颜色

    • 长度——虚线车道,每个虚线的长度

    • 空间——虚线车道,破折号之间的间距

    • SegmentRange——复合车道标记,每个标记的长度归一化段

  • 类型属性包含车道类型规范中每个车道的道路。类型可以是一个齐次车道类型对象或异构车道类型数组。

    • 齐次车道类型对象包含车道类型规范所有车道的马路。

    • 异构车道类型数组包含车道类型对象的数组,每车道与一个对象。

    要创建这些对象,可以使用laneType函数。车道类型规范包括:

    • 类型类型的车道(开车,边界,等等)

    • 颜色- Lane彩色

    • 强度——巷的颜色强度

版本历史

介绍了R2018a