Задайте спецификации соединителей сегментов дороги
The laneSpecConnector
объект определяет спецификации для соединения двух сегментов дороги с различными спецификациями маршрута. См. compositeLaneSpec
для получения дополнительной информации о создании дороги с несколькими спецификациями маршрута.
создает объект соединителя сегмента дороги для соединения двух сегментов дороги с различными спецификациями маршрута. Задайте объекты соединителей сегментов дороги в качестве входов для lc
= laneSpecConnectorcompositeLaneSpec
объект для создания дороги с несколькими спецификациями маршрута.
устанавливает свойства с помощью одного или нескольких аргументов в виде имя-значение. Для примера, lc
= laneSpecConnector(Name,Value
)'TaperLength',20
задает длину конуса 20 метров. Для получения дополнительной информации о геометрических свойствах сегментов конусности и дороги см. раздел «Составная Спецификация маршрута».
TaperShape
- Форма конусности'Linear'
(по умолчанию) | 'None'
| вектор символов | строковый скалярФорма конуса, соединяющего два сегмента дороги, заданная в виде вектора символов или строкового скаляра, который частично или полностью соответствует ConnectorTaperShape
имя представителя перечисления. При создании объекта задайте это свойство как вектор символов или строковый скаляр, который должен частично или полностью совпадать с одним из этих имен представителей перечисления.
Имя представителя перечисления | Перечисленное значение | Описание | Пример (Использование дороги слева направо) |
'Linear' | 0 | Текущий сегмент сужается линейно, добавляя или сбрасывая полосы для следующего сегмента. |
|
'None' | 1 | Сегмент не сужается, резко изменяясь при добавлении или сбрасывании полос. |
|
Пример: 'TaperShape'
, 'None'
TaperLength
- Длина конусностиДлина конуса, соединяющего два сегмента дороги, задается как действительная положительная скалярная величина. Модули измерения указаны в метрах. Длина конуса по умолчанию меньше длины 241
счетчики или 75
процент длины сегмента дороги, содержащего конусность.
Примечание
Длина конусности должна быть меньше длины соответствующего сегмента дороги. В противном случае функция сбрасывает ее в значение, которое 75
процент длины соответствующего сегмента дороги.
Не задавайте длину конуса, когда коническая форма установлена на 'None'
. Функция будет игнорировать указанный вход.
Пример: 'TaperLength'
, 20
Типы данных: double
Position
- Положение соединителя сегмента дороги'Right'
(по умолчанию) | 'Left'
| 'Both'
| вектор символов | строковый скалярПоложение соединителя сегмента дороги, заданное как вектор символов или строковый скаляр, который частично или полностью соответствует ConnectorPosition
имя представителя перечисления. Это свойство задает ребро дороги, с которого нужно добавить или сбросить полосы. При создании объекта задайте это свойство как вектор символов или строковый скаляр, который должен частично или полностью совпадать с одним из этих имен представителей перечисления.
Имя представителя перечисления | Перечисленное значение | Описание | Пример (Использование дороги слева направо) |
'Right' | 0 | Добавить или сбросить полосы с правого ребра дороги. |
|
'Left' | 1 | Добавить или сбросить полосы с левого края дороги. |
|
'Both' | 2 | Добавить или сбросить полосы с обоих ребер дороги. |
|
Используйте это свойство только при соединении двух сегментов односторонней дороги с разным количеством полос. Чтобы добавить или сбросить полосы с обоих ребер односторонней дороги, количество полос сегментов дороги должно отличаться четным числом.
Не задайте это свойство при соединении сегментов дороги, которые не являются односторонними, потому что compositeLaneSpec
объект игнорирует это свойство.
Чтобы соединить сегменты двухсторонней дороги, compositeLaneSpec
объект определяет положение соединителя из количества полос движения, заданного соответствующими объектами спецификаций маршрута. Например, если количество полос движения сегментов двухсторонней дороги [1 1]
и [2 1]
, а compositeLaneSpec
объект применяет 'Left'
положение.
Чтобы соединить сегменты дороги с односторонним и двухсторонним направлениями, compositeLaneSpec
объект добавляет или сбрасывает левую (назад) полосу движения от левого края дороги. Объект применяет 'Left'
положение, когда количество правых (прямых) полос совпадает между обоими сегментами дороги. В противном случае положение соединителя устанавливается на 'Both'
. Например, если спецификации маршрута двух сегментов дороги [1 2]
и 2
, а compositeLaneSpec
объект применяет 'Left'
положение. Напротив, если спецификации маршрута двух сегментов дороги [1 2]
и 1
, а compositeLaneSpec
устанавливает свойство положения на 'Both'
.
Примечание
Сценарий вождения рассматривает все полосы движения по дороге с односторонним движением как правые (передние) полосы, что предполагает, что движение движется в том же направлении, что и направление вытяжки дороги. Дополнительные сведения о направлении рисования дорог см. в разделах Направление рисования дороги и Нумерация полос движения.
The TaperShape
и TaperLength
свойства применяются при изменении количества полос или ширины сегмента между сегментами дороги. Однако Position
свойство применяется, только при добавлении или сбросе полос между сегментами дороги.
Пример:
'Position',
'Both'
Создайте дорогу с несколькими спецификациями маршрута и добавьте одну полосу слева от дороги с односторонним движением.
Создайте сценарий вождения. Укажите центр дороги для прямой 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
function, задайте дорожные центры как матричный вход. Функция создает ориентированную линию, которая пересекает центры дорог, начиная с координат в первой строке матрицы и заканчивая координатами в последней строке матрицы. Координаты в первых двух строках матрицы определяют draw direction дороги. Эти координаты соответствуют первым двум последовательным центрам дорог. Направление рисования является направлением, в котором дороги визуализируются на графике сценария.
Чтобы создать дорогу при помощи приложения Driving Scenario Designer, можно либо задать параметр Road Centers, либо в интерактивном режиме нарисовать на Scenario Canvas. Подробный пример см. в разделе Создание сценария вождения. В этом случае направление рисования является направлением, в котором дороги визуализируются в Scenario Canvas.
Для дороги с направлением ничьей от начала до конца разница между x - координаты первых двух последовательных дорожных центров положительная.
Поскольку дорога с основанием к верхней части привлекает направление, различие между x - координаты первых двух последовательных дорожных центров отрицательны.
|
|
Для дороги с направлением рисования слева направо различие между y -кординатами первых двух последовательных центров дороги положительная.
Для дороги с направлением рисования справа налево различие между y -кординатами первых двух последовательных центров дороги отрицательная.
|
|
Полосы должны нумероваться слева направо, при этом левый край дороги должен быть определен относительно направления рисования дороги. Для дороги с односторонним движением по умолчанию левый край дороги представляет собой сплошную желтую разметку, которая указывает конец дороги в поперечном направлении (направлении, перпендикулярном направлению рисования). Для двухсторонней дороги по умолчанию оба ребер отмечены сплошными белыми линиями.
Для примера эти схемы показа, как нумеруются полосы в односторонней и двухсторонней дороге с направлением вытяжки сверху вниз.
Нумерация полос в односторонней дороге | Нумерация полос на двухсторонней дороге |
Задайте количество полос в качестве положительного целого числа для односторонней дороги. Если вы задаете целое значение следующим 1, 2, 3 обозначают первую, вторую и третью полосы дороги, соответственно. | Задайте количество полос в качестве двухэлементного вектора положительного целого числа для двухсторонней дороги. Если вы устанавливаете вектор равным [ 1L обозначают единственную левую полосу дороги. 1R и 2R обозначают первую и вторую правые полосы дороги, соответственно. |
Спецификации маршрута применяются в порядке нумерации маршрутов.
Составная спецификация маршрута состоит из массива из двух или более спецификаций маршрута для одной дороги. Каждая спецификация маршрута задает сегмент дороги, который является участком дороги с независимыми геометрическими свойствами, нормализованным областью значений и конусностью.
Каждый сегмент дороги является направленным сегментом, который движется к конечному центру дороги, причем первый сегмент начинается в первом центре дороги, второй сегмент начинается с первого конца дороги и так далее. Область значений каждого сегмента дороги является нормированным расстоянием, которое задает долю от общей длины дороги. Когда сегмент дороги добавляет или сбрасывает полосы из предыдущего сегмента, предыдущий сегмент сужается вдоль заданного расстояния, чтобы учесть изменение количества полос.
При тонировании дороги с составными спецификациями маршрута сегменты дороги отображаются в направлении рисования дороги. Например, рассмотрите дорогу с односторонним движением с двумя сегментами дороги и нормализованной областью значений по умолчанию 0,5 для каждого сегмента дороги. Первый сегмент дороги содержит четыре полосы, а второй сегмент - только две полосы. Первый сегмент сужается с четырёх полос на две полосы, сбрасывая по одной полосе с каждой стороны, так как приближается к полуторной точке дороги, которая является начальной точкой второго сегмента. Эти схемы показывают направление, в котором отображаются сегменты дороги, и то, как конус применяется к дороге, как для направления рисования слева направо, так и справа налево.
|
|
Для получения информации о геометрических свойствах маршрутов смотрите Спецификации маршрутов.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.