Создание спецификаций полос движения
lanespec объект определяет характеристики полосы движения дороги, которая была добавлена в drivingScenario с использованием road функция. Дополнительные сведения см. в разделе Спецификации полосы движения.
создает спецификации полосы движения для дороги, имеющей lnspec = lanespec(numlanes)numlanes полосы движения. numLanes устанавливает NumLanes имущества lanespec объект. Порядок нумерации полос на дороге зависит от ориентации дороги. Дополнительные сведения см. в разделе Направление дороги и нумерация полос движения.
задает свойства, используя одну или несколько пар имя-значение. Например, lnspec = lanespec(numlanes,Name,Value)lanespec(3,'Width',[2.25 3.5 2.25]) определяет трехполосную дорогу с шириной слева направо 2,25 метра, 3,5 метра и 2,25 метра. Дополнительные сведения о геометрических свойствах полосы движения см. в разделе Спецификации полосы движения.
NumLanes - Количество полос движения в дорогеЭто свойство доступно только для чтения.
Число полос движения в дороге, указанное как положительное целое число или двухэлементный вектор положительных целых чисел, [NL, NR]. Когда NumLanes - положительное целое число, все полосы протекают в одном направлении. Когда NumLanes является вектором:
NL - количество левых полос, протекающих в одном направлении.
NR - количество правых полос, протекающих в противоположном направлении.
Общее количество полос движения в дороге - сумма этих векторных значений: N = NL + NR.
Это свойство можно задать при создании объекта. После создания объекта это свойство доступно только для чтения.
Пример: [2 2] задает две левые полосы движения и две правые полосы движения.
Width - Ширина полосы3.6 (по умолчанию) | положительный вещественный скаляр | 1-by-N вектор положительных вещественных скаляровШирина полосы, заданная как положительный действительный скаляр или 1-by-N вектор положительных вещественных скаляров, где N - количество полос в дороге. N должно быть равно numlanes и соответствующее значение, установленное в NumLanes собственность.
Когда Width - скаляр, одинаковое значение применяется ко всем полосам. Когда Width является вектором, элементы вектора применяются к полосам слева направо. Единицы в метрах.
Пример: [3.5 3.7 3.7 3.5]
Типы данных: double
Marking - Разметка полосы движенияLaneMarking объект (по умолчанию) | SolidMarking объект | DashedMarking объект | CompoundMarking объект | 1-by-M массив объектов разметки полос движенияРазметка полосы движения дороги, указанная как одно из следующих значений:
LaneMarking объект. Это значение по умолчанию.
SolidMarking объект
DashedMarking объект
CompoundMarking объект
1-by-M массив объектов разметки полос движения.
M - количество разметок полос движения. Для дороги с N полосами М = N + 1.
Для создания объектов разметки полос используйте laneMarking и укажите тип разметки полосы движения.
'Unmarked' | 'Solid' | 'Dashed' | 'DoubleSolid' | 'DoubleDashed' | 'SolidDashed' | 'DashedSolid' |
|---|---|---|---|---|---|---|
Без разметки полосы движения | Сплошная линия | Пунктирная линия | Две сплошные линии | Две пунктирные линии | Сплошная линия слева, пунктирная линия справа | Пунктирная линия слева, сплошная линия справа |
|
|
|
|
|
|
|
|
По умолчанию для дороги с односторонним движением крайняя правая и центральная разметка полосы движения имеет белый цвет, а крайняя левая разметка полосы движения - желтый. Для двухсторонних дорог цвет разметки разделительной полосы - жёлтый.
Пример: [laneMarking('Solid') laneMarking('DoubleDashed') laneMarking('Solid')] задание разметки полосы движения для двухполосной дороги. Крайняя левая и крайняя правая разметка полосы представляет собой сплошные линии, а разметка разделительной полосы представляет собой двойную пунктирную линию.
Type - Типы полос движенияDrivingLaneType объект (по умолчанию) | RestrictedLaneType объект | ShoulderLaneType объект | ParkingLaneType объект | 1-by-M массив объектов типа полосы движенияТипы полос дорог, определяемые как однородный объект типа полосы движения или 1-by-M массив объектов типа полосы движения. M - количество типов полос движения.
Для создания объектов типа полосы используйте laneType и укажите тип полосы движения.
'Driving' | 'Border' | 'Restricted' | 'Shoulder' | 'Parking' |
|
|
|
|
|
|
Пример: [laneType('Shoulder') laneType('Driving')] определяет типы полос движения для двухполосной дороги. Крайней левой полосой является обочина, а самой правой полосой - ведущая полоса.
Создайте сценарий вождения и центры дорог для прямой 80-метровой дороги.
scenario = drivingScenario; roadCenters = [0 0; 80 0];
Создать lanespec объект для четырехполосной дороги. Используйте laneMarking для задания его пяти разметок полос движения. Осевая линия - двойная сплошная и двойная желтая. Самые внешние линии сплошные и белые. Внутренние линии пунктирные и белые.
solidW = laneMarking('Solid','Width',0.3); dashW = laneMarking('Dashed','Space',5); doubleY = laneMarking('DoubleSolid','Color','yellow'); lspec = lanespec([2 2],'Width',[5 5 5 5], ... 'Marking',[solidW dashW doubleY dashW solidW]);
Добавьте дорогу в сценарий движения. Отображение дороги.
road(scenario,roadCenters,'Lanes',lspec);
plot(scenario)
Смоделировать сценарий вождения с одним автомобилем, путешествующим по S-образной кривой. Создайте и выведите на печать границы полос движения.
Создайте сценарий движения с одной дорогой, имеющей S-образную кривую.
scenario = drivingScenario('StopTime',3);
roadcenters = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0];
Создайте полосы движения и добавьте их к дороге.
lm = [laneMarking('Solid','Color','w'); ... laneMarking('Dashed','Color','y'); ... laneMarking('Dashed','Color','y'); ... laneMarking('Solid','Color','w')]; ls = lanespec(3,'Marking',lm); road(scenario,roadcenters,'Lanes',ls);
Добавьте эго-транспортное средство и укажите его траекторию из его ППМ. По умолчанию автомобиль едет со скоростью 30 метров в секунду.
car = vehicle(scenario, ... 'ClassID',1, ... 'Position',[-35 20 0]); waypoints = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0]; smoothTrajectory(car,waypoints);
Постройте график сценария и соответствующий график погони.
plot(scenario)

chasePlot(car)

Запустите цикл моделирования.
Инициализируйте график «птичий глаз» и создайте плоттер контура, плоттер границы левой и правой полос и плоттер границы дороги.
Получение границ дороги и прямоугольных контуров.
Получить границы полосы слева и справа от транспортного средства.
Продолжите моделирование и обновите плоттеры.
bep = birdsEyePlot('XLim',[-40 40],'YLim',[-30 30]); olPlotter = outlinePlotter(bep); lblPlotter = laneBoundaryPlotter(bep,'Color','r','LineStyle','-'); lbrPlotter = laneBoundaryPlotter(bep,'Color','g','LineStyle','-'); rbsEdgePlotter = laneBoundaryPlotter(bep); legend('off'); while advance(scenario) rbs = roadBoundaries(car); [position,yaw,length,width,originOffset,color] = targetOutlines(car); lb = laneBoundaries(car,'XDistance',0:5:30,'LocationType','Center', ... 'AllBoundaries',false); plotLaneBoundary(rbsEdgePlotter,rbs) plotLaneBoundary(lblPlotter,{lb(1).Coordinates}) plotLaneBoundary(lbrPlotter,{lb(2).Coordinates}) plotOutline(olPlotter,position,yaw,length,width, ... 'OriginOffset',originOffset,'Color',color) end



Разметка полос в перекрестках не поддерживается.
Количество полос для дороги фиксированное. Во время моделирования невозможно изменить параметры полосы движения для дороги.
Создание дороги с помощью road укажите центры дорог в качестве ввода матрицы. Функция создает направленную линию, пересекающую центры дорог, начиная от координат в первой строке матрицы и заканчивая координатами в последней строке матрицы. Координаты в первых двух строках матрицы определяют направление прорисовки дороги. Эти координаты соответствуют первым двум последовательным дорожным центрам. Направление рисования - это направление, в котором дороги визуализируются на графике сценария.
Чтобы создать дорогу с помощью приложения «Конструктор сценариев вождения», можно либо указать параметр «Центры дорог», либо в интерактивном режиме нарисовать на холсте сценария. Подробный пример см. в разделе Создание сценария управления. В этом случае направление прорисовки - это направление, в котором тонируются дороги в холсте «Сценарий».
Для дороги с направлением прорисовки сверху вниз разница между координатами X первых двух последовательных центров дороги является положительной.
Для дороги с направлением прорисовки снизу вверх разница между координатами X первых двух последовательных центров дороги отрицательна.
|
|
|
Для дороги с направлением прорисовки слева направо разница между координатами y первых двух последовательных центров дороги является положительной.
Для дороги с направлением прорисовки справа налево разница между координатами y первых двух последовательных центров дороги отрицательна.
|
|
|
Полосы движения должны нумероваться слева направо, при этом левый край дороги определяется относительно направления прорисовки дороги. Для дороги с односторонним движением по умолчанию левый край дороги представляет собой сплошную желтую разметку, которая указывает конец дороги в поперечном направлении (направлении, перпендикулярном направлению рисования). Для дороги с двусторонним движением по умолчанию обе кромки отмечены сплошными белыми линиями.
Например, на этих диаграммах показано, как полосы пронумерованы на дороге с односторонним и двусторонним движением с направлением вытягивания сверху вниз.
| Нумерация полос в дороге с односторонним движением | Нумерация полос движения в двухсторонней дороге |
Укажите количество полос движения как положительное целое число для дороги с односторонним движением. Если целочисленное значение задано как 1, 2, 3 обозначают первую, вторую и третью полосы дороги соответственно.
| Укажите количество полос движения в виде двухэлементного вектора положительного целого числа для дороги с двусторонним движением. Если установить вектор как [ 1L обозначают единственную левую полосу дороги. 1R и 2R обозначают первую и вторую правую полосы дороги соответственно.
|
Спецификации полос применяются в порядке нумерации полос.
На схеме показаны компоненты и геометрические свойства дорог, полос движения и разметки полос движения.

Объект спецификации полосы движения, lanespec, определяет полосы движения.
NumLanes свойство определяет количество полос движения. При создании этого объекта необходимо указать количество полос движения.
Width свойство определяет ширину каждой полосы.
Marking свойство содержит спецификации каждой разметки полосы движения на дороге. Marking представляет собой массив объектов разметки полос с одним объектом на полосу. Для создания этих объектов используйте laneMarking функция. Технические требования к разметке полосы движения включают:
Type - Тип разметки полосы движения (сплошная, пунктирная и т.д.)
Width - Ширина разметки полосы движения
Color - Цвет разметки полосы движения
Strength - Значение насыщенности для цвета разметки полосы движения
Length - для пунктирных полос - длина каждой пунктирной линии;
Space - Для пунктирных полос - расстояние между тире
SegmentRange - Для составной разметки полосы движения нормированная длина каждого сегмента маркера
Type свойство содержит характеристики типа полосы движения для каждой полосы движения в дороге. Type может быть однородным объектом типа полосы или гетерогенным массивом типов полосы.
Однородный объект типа полосы содержит характеристики всех полос на дороге.
Гетерогенный массив типов полос содержит массив объектов типа полос с одним объектом на полосу.
Для создания этих объектов используйте laneType функция. Характеристики типа полосы движения включают в себя:
Type - Тип полосы движения (движение, граница и т.д.)
Color - Цвет полосы
Strength - Прочность цвета полосы движения
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.