laneSpecConnector

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

Описание

The 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 устанавливает свойство положения на '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')

Подробнее о

расширить все

См. также

Объекты

Функции

Введенный в R2021a