Создание дороги с несколькими спецификациями полос движения
compositeLaneSpec объект объединяет массив lanespec объекты для создания дороги с несколькими сегментами дороги, имеющими различные спецификации полос движения.
Чтобы определить спецификации составной полосы движения, выполните следующие действия.
Создание массива lanespec объекты. Количество lanespec объекты определяют количество сегментов дороги в дороге. Каждый lanespec объект содержит спецификации полосы для одного сегмента дороги.
Создайте составной объект спецификации полосы движения, compositeLaneSpec, чтобы объединить спецификации полосы, используя один из синтаксисов, показанных здесь. По умолчанию функция предполагает, что каждый сегмент дороги имеет одинаковый диапазон.
Чтобы изменить диапазон для каждого сегмента дороги, используйте SegmentRange имущества compositeLaneSpec объект.
Для определения соединения между двумя сегментами дороги используйте Connector имущества compositeLanespec объект.
Добавить compositeLaneSpec объект к ведущему сценарию с использованием road функция.
создает составную спецификацию полосы движения для дороги с использованием массива объектов спецификации полосы движения; clspec = compositeLaneSpec(lsArray)lsArray.
Например, создайте составной объект спецификации полосы движения, compositeLaneSpec, для объединения характеристик полосы движения двух сегментов дороги с двумя и тремя полосами движения соответственно.
lsArray = [lanespec(2) lanespec(3)]; clspec = compositeLaneSpec(lsArray);
задает свойства, используя один или несколько аргументов «имя-значение». Например, clspec = compositeLaneSpec(lsArray,Name,Value)'SegmentRange',[0.6 0.4] указывает, что нормализованные диапазоны двух сегментов дороги 0.6 и 0.4соответственно.
LaneSpecification - Характеристики полос движения сегментов дорогlanespec объектыЭто свойство доступно только для чтения.
Характеристики полос движения сегментов дорог, указанные как 1-by-N массив lanespec объекты. N - количество спецификаций полосы движения. Необходимо указать не менее двух lanespec объекты для создания дороги с несколькими спецификациями полос движения. Каждый lanespec объект представляет отдельный сегмент дороги. Как таковое, количество lanespec объекты определяют количество сегментов дороги в дороге.
Необходимо задать это свойство с помощью lsArray входной аргумент при создании объекта. Для создания объектов спецификации полосы используйте lanespec функция.
Пример: [lanespec(2) lanespec(3)] определяет параметры полосы движения для дороги с двумя сегментами. Первый дорожный сегмент имеет две полосы, а второй - три полосы.
SegmentRange - Диапазон каждого сегмента дорогиДиапазон каждого сегмента дороги, заданный в виде N-элементного числового вектора с нормализованными значениями в диапазоне (0, 1). N - число lanespec объекты в LaneSpecification собственность. Сумма элементов вектора должна быть равна 1.
Значением диапазона по умолчанию для каждого сегмента дороги является 1/N. Например, если LaneSpecification свойство определяет спецификации полосы движения для двух сегментов дороги, затем значением диапазона по умолчанию для каждого сегмента дороги является 1/2, означающее, что SegmentRange = [0.5 0.5].
Пример: [0.4 0.3 0.3]
Типы данных: single | double
Connector - Соединители сегмента дорогиlaneSpecConnector объект | 1-by-M массив laneSpecConnector объектыСоединители сегмента дороги, указанные как laneSpecConnector объект или 1-by-M массив laneSpecConnector объекты. M - количество соединителей сегмента дороги. Для дороги с N сегментами M = N - 1. При указании только одного объекта одни и те же спецификации применяются ко всем М соединителям дороги.
laneSpecConnector объект задает эти свойства для соединения пары сегментов дороги. Можно указать свойства для laneSpecConnector функция создания в качестве аргументов «имя-значение».
TaperShape - определяет форму конуса, соединяющего два сегмента дороги, как 'Linear' или 'None'. Определить 'None' при необходимости изменения шага при добавлении или опускании полос между сегментами дорог. Значение по умолчанию для TaperShape является 'Linear'.
TaperLength - определяет длину конуса в метрах. Значение по умолчанию TaperLength является меньшим из 241 метров или 75 процент длины сегмента дороги, содержащего конус.
Position - определяет край дороги, с которого требуется добавить или сбросить полосы движения. Можно указать положение соединителя как 'Right', 'Left', или 'Both'.
Пример: [laneSpecConnector('Position','Left') laneSpecConnector('TaperLength',20)]
Примечание
Конус является частью нижнего пронумерованного сегмента дороги внутри пары. Дополнительные сведения о порядке нумерации сегментов дорог см. в разделе Спецификация составной полосы движения.
Спецификации соединителя сегмента дороги должны соответствовать спецификациям полосы движения и значениям диапазона сегментов. В противном случае функция сбрасывает спецификации соединителя с допустимыми значениями. Например, если указать TaperLength больше, чем длина соответствующего сегмента дороги, функция сбрасывает длину конусности со значением, которое 75 процент от длины соответствующего сегмента дороги.
Создание сценария управления с объединением трафика. Дорога в сценарии вождения имеет две характеристики полосы, и движение сливается влево по мере окончания правой полосы.
Создание дороги с двумя спецификациями полосы движения
Создайте сценарий управления. Укажите центры дорог с направлениями рисования снизу вверх.
scenario = drivingScenario('StopTime',5);
roadCenters = [0 20; 100 20];Определите параметры полосы движения для пары сегментов дороги с двусторонним движением. Первый дорожный сегмент имеет пять полос, а второй дорожный сегмент - четыре полосы. Обратите внимание, что крайняя правая полоса опускается из спецификации второй полосы.
ls1 = lanespec([2 3],'Width',4); ls2 = lanespec([2 2],'Width',4); lsArray = [ls1 ls2];
Создайте составной объект спецификации полосы движения и добавьте дорогу в сценарий движения. Объект спецификации составной полосы определяет положение, в котором полоса опускается из lsArray входной аргумент. Объект по умолчанию имеет форму линейного конуса и длину конуса, равную 75% длины первого сегмента дороги.
clspec = compositeLaneSpec(lsArray);
road(scenario,roadCenters,'Lanes',clspec);Постройте график сценария вождения. Сценарий визуализирует сегменты дороги в направлении прорисовки дороги снизу вверх.
figMark = figure; set(figMark,'Position',[0 0 600 600]) hPlot = axes(figMark); plot(scenario,'Parent',hPlot) title('Two-way Road Dropping Rightmost Lane')

Моделирование изменения полосы движения транспортного средства
Добавьте ego-транспортное средство к сценарию. Укажите ППМ и постоянное значение скорости, чтобы задать траекторию движения по средней прямой полосе.
egoVehicle = vehicle(scenario,'ClassID',1,'Position',[2 16 0]); waypoints = [2 16; 20 16; 95 16]; speed = 30; smoothTrajectory(egoVehicle,waypoints,speed)
Добавьте в сценарий еще одно транспортное средство. Установите траекторию движения транспортного средства таким образом, чтобы оно двигалось по крайней правой полосе, а затем слилось влево перед окончанием полосы.
car = vehicle(scenario,'ClassID',1,'Position',[2 12 0]); waypoints = [2 12; 12 12; 30 14; 42 16; 58 16; 85 16]; speed = 20; smoothTrajectory(car,waypoints,speed)
Создайте пользовательское окно фигуры и постройте график сценария.
close all figScene = figure; set(figScene,'Position',[0 0 600 600]) hPanel = uipanel(figScene); hPlot = axes(hPanel); plot(scenario,'Waypoints','on','Parent',hPlot) title('Merge Left as Right Lane Ends') while advance(scenario) pause(0.01) end

Создайте дорогу с несколькими спецификациями полос движения и добавьте одну полосу движения слева от дороги с односторонним движением.
Создайте сценарий управления. Укажите центры дорог для прямой 100-метровой дороги с направлением рисования слева направо.
scenario = drivingScenario; roadCenters = [20 100; 20 0];
Определите массив спецификаций полосы движения для двух сегментов дороги с односторонним движением. Первый дорожный сегмент имеет две полосы, а второй дорожный сегмент имеет три полосы.
lsArray = [lanespec(2) lanespec(3)];
Определите объект соединителя сегмента дороги. Чтобы добавить третью полосу к левой стороне второго сегмента дороги, задайте свойство position. Длина конусности меньше длины первого сегмента дороги. Длина обоих сегментов дороги составляет 50 метров, так как по умолчанию общая длина дороги 100 метров делится поровну между указанными сегментами дороги.
lc = laneSpecConnector('Position','Left','TaperLength',30);
Создайте составной объект спецификации полосы движения.
clspec = compositeLaneSpec(lsArray,'Connector',lc);Добавьте дорогу в сценарий движения и просмотрите ее. Сценарий визуализирует сегменты дороги в направлении прорисовки дороги слева направо.
road(scenario,roadCenters,'Lanes',clspec); plot(scenario) title('Road with Multiple Lane Specifications')

Создайте пустой сценарий управления. Укажите центры дорог для криволинейной дороги.
scenario = drivingScenario; roadCenters = [-20 22; 0 22; 18.8 15.8; 22 0; 22 -20];
Определите параметры полосы движения для трех сегментов двухсторонней дороги. Обратите внимание, что все сегменты дорог имеют одинаковое количество полос. Однако второй сегмент дороги имеет большую ширину полосы (4,6 метра) для расширения дороги по кривой. Два других сегмента дороги имеют ширину полосы по умолчанию 3,6 метра.
lsArray = [lanespec([1 1]) lanespec([1 1],'Width',4.6) lanespec([1 1])];Определите нормализованные длины для каждого сегмента дороги. Обратите внимание, что сумма нормированных длин равна 1и длина вектора соответствует количеству объектов спецификации полосы движения.
range = [0.25 0.65 0.1];
Создайте объект соединителя сегмента дороги. Поскольку одни и те же спецификации применяются к соединителям обоих сегментов для трех сегментов дороги, создайте только один laneSpecConnector объект. Поскольку полосы движения не добавляются и не сбрасываются, не определяйте свойство position соединителя сегмента дороги.
lc = laneSpecConnector('TaperLength',14);Создайте составной объект спецификации полосы движения и добавьте дорогу в сценарий движения.
clspec = compositeLaneSpec(lsArray,'Connector',lc,'SegmentRange',range); road(scenario,roadCenters,'Lanes',clspec);
Постройте график сценария вождения.
plot(scenario,'RoadCenters','on') title('Lane Widening Along a Curve')

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

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