exponenta event banner

laneSpecConnector

Определение спецификаций соединителя сегмента дороги

Описание

laneSpecConnector объект определяет спецификации для соединения двух сегментов дороги с различными спецификациями полосы движения. Посмотрите compositeLaneSpec для получения дополнительной информации о создании дороги с несколькими спецификациями полос движения.

Создание

Описание

пример

lc = laneSpecConnector создает объект соединителя сегмента дороги для соединения двух сегментов дороги с различными спецификациями полосы движения. Укажите объекты соединителя сегмента дороги в качестве входных данных для compositeLaneSpec объект для создания дороги с несколькими спецификациями полос движения.

пример

lc = laneSpecConnector(Name,Value) задает свойства, используя один или несколько аргументов «имя-значение». Например, 'TaperLength',20 задает длину конусности 20 метров. Дополнительные сведения о геометрических свойствах сегментов конусности и дороги см. в разделе Спецификация составной полосы движения.

Свойства

развернуть все

Форма конуса, соединяющего два сегмента дороги, заданная как вектор символа или скаляр строки, который частично или полностью соответствует ConnectorTaperShape имя элемента перечисления. При создании объекта укажите это свойство как вектор символов или скаляр строки, которые должны частично или полностью совпадать с одним из этих имен элементов перечисления.

Имя элемента перечисленияПеречисляемое значениеОписаниеПример (Использование дороги слева направо)
'Linear'0Текущий сегмент линейно сужается при добавлении или перетаскивании полос для следующего сегмента.

Taper for Linear value

'None'1Сегмент не сужается, резко изменяется при добавлении или опускании полос.

Taper for None value

Пример: 'TaperShape','None'

Длина конуса, соединяющего два сегмента дороги, заданная как действительный положительный скаляр. Единицы в метрах. Длина конусности по умолчанию меньше 241 метров или 75 процент длины сегмента дороги, содержащего конус.

Примечание

  • Длина конусности должна быть меньше соответствующей длины сегмента дороги. В противном случае функция сбрасывает его на значение, равное 75 процент от длины соответствующего сегмента дороги.

  • Не указывайте длину конуса, если для формы конуса задано значение 'None'. Функция игнорирует указанные входные данные.

Пример: 'TaperLength',20

Типы данных: double

Позиция соединителя сегмента дороги, заданная как вектор символа или скаляр строки, который частично или полностью соответствует ConnectorPosition имя элемента перечисления. Это свойство определяет край дороги, с которого следует добавлять или сбрасывать полосы движения. При создании объекта укажите это свойство как вектор символов или скаляр строки, которые должны частично или полностью совпадать с одним из этих имен элементов перечисления.

Имя элемента перечисленияПеречисляемое значениеОписаниеПример (Использование дороги слева направо)
'Right'0Добавьте или опустите полосы от правого края дороги.

Segment adding lane to right edge of road.

'Left'1Добавьте или опустите полосы движения от левого края дороги.

Segment adding lane to left edge of road.

'Both'2Добавление или удаление полос движения с обоих краев дороги.

Segment adding lanes to both edges of road.

Это свойство используется только при соединении двух сегментов односторонней дороги с разным количеством полос. Чтобы добавить или сбросить полосы с обоих краев дороги с односторонним движением, количество полос на отрезках дороги должно отличаться на чётное число.

Не указывайте это свойство при соединении сегментов дороги, которые не являются односторонними, поскольку compositeLaneSpec объект игнорирует это свойство.

  • Для соединения сегментов двухсторонней дороги compositeLaneSpec объект определяет положение соединителя из числа полос движения, определенных соответствующими объектами спецификации полосы движения. Например, если количество полос двухсторонних сегментов дорог равно [1 1] и [2 1], compositeLaneSpec объект применяет 'Left' позиция.

  • Для соединения сегментов односторонней и двусторонней дороги compositeLaneSpec объект добавляет или опускает левую (заднюю) полосу от левого края дороги. Объект применяет 'Left' положение, когда количество правых (передних) полос совпадает между обоими сегментами дороги. В противном случае положение соединителя устанавливается в 'Both'. Например, если спецификациями полосы движения двух сегментов дороги являются [1 2] и 2, compositeLaneSpec объект применяет 'Left' позиция. Напротив, если характеристики полосы движения для двух сегментов дороги [1 2] и 1, compositeLaneSpec объект задает свойству position значение 'Both'.

Примечание

  • В сценарии вождения все полосы движения на дороге с односторонним движением рассматриваются как полосы движения вправо (вперед), что предполагает, что движение идет в том же направлении, что и направление движения дороги. Дополнительные сведения о направлении прорисовки дорог см. в разделе Направление прорисовки дороги и нумерация полос движения.

  • TaperShape и TaperLength свойства применяются при изменении количества полос движения или ширины сегмента между сегментами дороги. Тем не менее, Position применяется только при добавлении или опускании полос между сегментами дорог.

Пример: 'Position','Both'

Примеры

свернуть все

Создайте дорогу с несколькими спецификациями полос движения и добавьте одну полосу движения слева от дороги с односторонним движением.

Создайте сценарий управления. Укажите центры дорог для прямой 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')

Подробнее

развернуть все

См. также

Объекты

Функции

Представлен в R2021a