Создайте несколько технических требований маршрута для дороги
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);
свойства наборов с помощью одних или нескольких аргументов name-value. Например, clspec
= compositeLaneSpec(lsArray
,Name,Value
)'SegmentRange',[0.6 0.4]
указывает, что нормированными областями значений двух дорожных сегментов является 0.6
и 0.4
, соответственно.
LaneSpecification
— Технические требования маршрута дорожных сегментовlanespec
объектыЭто свойство доступно только для чтения.
Технические требования маршрута дорожных сегментов в виде 1 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 M массивом laneSpecConnector
объектыДорожные коннекторы сегмента в виде laneSpecConnector
возразите или 1 M массивом laneSpecConnector
объекты. M является количеством дорожных коннекторов сегмента. Для дороги с сегментами N, M = N – 1. Когда задано как только один объект, те же технические требования применяются ко всем коннекторам M дороги.
laneSpecConnector
объект задает эти свойства для соединения пары дорожных сегментов. Можно задать свойства к laneSpecConnector
функция создания как аргументы name-value.
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')
Симулируйте изменение маршрута транспортного средства
Добавьте автомобиль, оборудованный датчиком в сценарий. Задайте waypoints и значение постоянной скорости, чтобы установить его траекторию вдоль среднего прямого маршрута.
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)];
Задайте дорожный объект коннектора сегмента. Чтобы добавить третий маршрут в левую сторону второго дорожного сегмента, задайте свойство положения. Задайте длину заострения меньше, чем длина первого дорожного сегмента. Оба дорожные сегменты составляют 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
объект. Поскольку вы ни не добавляете, ни пропускаете маршруты, не задавайте свойство положения дорожного коннектора сегмента.
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
функционируйте, задайте дорожные центры как матричный вход. Функция создает направленную линию, которая пересекает дорожные центры, начинающие с координат в первой строке матрицы и заканчивающиеся в координатах в последней строке матрицы. Координаты в первых двух строках матрицы задают draw direction дороги. Эти координаты соответствуют первым двум последовательным дорожным центрам. Направление ничьей является направлением, в котором дороги представляют в графике сценария.
Чтобы создать дорогу при помощи приложения Driving Scenario Designer, можно или задать параметр Road Centers или в интерактивном режиме привлечь Scenario Canvas. Для подробного примера смотрите, Создают Ведущий Сценарий. В этом случае направление ничьей является направлением, в котором дороги представляют в Scenario Canvas.
Для дороги с направлением ничьей от начала до конца различие между 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
— Сила цвета маршрута
road
| roadNetwork
| roadGroup
| laneMarking
| laneType
| vehicle
| actor
| smoothTrajectory
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.