barrier

Добавьте барьер к сценарию вождения

Описание

пример

barrier(scenario,rd) добавляет барьер по всей длине road rd объекта. По умолчанию барьер размещается вдоль правого ребра, и каждый сегмент лежит на поверхности дороги.

пример

barrier(scenario,rd,'RoadEdge','left') добавляет барьер вдоль левого края road rd объекта.

пример

barrier(scenario,barrierCenters) добавляет барьер вдоль кусочно-хлороидной кривой, который плавно соединяет указанные барьерные центры. Этот подход полезен при добавлении барьеров к ребрам дорог, которые пересекаются или перекрываются.

barrier(scenario,barrierCenters,bankAngle) задает угол, на который барьер наклоняется при прохождении барьерных центров.

пример

barrier(___,Name,Value) устанавливает барьерные свойства с помощью одного или нескольких аргументов пары "имя-значение", в сложение для amy комбинации входных параметров из предыдущих синтаксисов.

Барьеры состоят из отдельных элементов, называемых барьерными сегментами. Используйте аргументы пары "имя-значение", такие как 'SegmentLength', 'SegmentGap', 'Width' и 'Height' для настройки свойств отдельных сегментов барьера. Джерси барьеры и ограждения являются двумя типами барьеров, которые вы можете добавить к сценарию. Укажите соответствующую 'Mesh' и 'ClassID' аргументы, представляющие барьер как ограждение или барьер джерси.

Примеры

свернуть все

Создайте сценарий вождения и добавьте изогнутую дорогу.

scenario = drivingScenario;
roadCenters = [-14.1 -4.3; 9 -10; 37 -8; 60 3.9; 81.2 29.4; 83.4 57.9];
road1 = road(scenario,roadCenters);

Добавить барьер вдоль правого ребра дороги.

barrier(scenario,road1)

Добавить еще один барьер вдоль левого края дороги с боковым смещением на 1 м от ребра. Задайте зазор 1 м между отдельными сегментами барьера.

barrier(scenario,road1,'RoadEdge',"left",'SegmentGap',1,'RoadEdgeOffset',1)

Постройте график сценария.

plot(scenario)

Figure contains an axes. The axes contains 4 objects of type patch, line.

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

scenario2 = drivingScenario;
roadCenters = [0 0; 20 0];
rr = road(scenario2,roadCenters);

Укажите соответствующие барьерные центры и добавьте барьер на дороге, покрывающий всю ширину дороги.

barrierCenters = [20 3; 20 0; 20 -3];
barrier(scenario2,barrierCenters,'SegmentGap',0.2)

Добавить два барьера на дороге, каждый покрывает половину ширины дороги.

barrierCenters1 = [12 3; 12 0];
barrierCenters2 = [6 -3; 6 0];
barrier(scenario2,barrierCenters1,'SegmentGap',0.2)
barrier(scenario2,barrierCenters2,'SegmentGap',0.2)

Постройте график сценария.

plot(scenario2)

Figure contains an axes. The axes contains 5 objects of type patch, line.

Входные параметры

свернуть все

Сценарий вождения, заданный как drivingScenario объект.

Дорога для добавления барьера, заданная как road объект.

Координаты центра барьера, заданные как матрица N -by-3 или N -by-2.

  • Если barrierCenters является матрицей N -by-3, затем каждая строка матрицы представляет (x, y, z) координаты барьерного центра.

  • Если barrierCenters является матрицей N -by-2, затем каждая строка матрицы представляет (x, y) координаты барьерного центра. Координата z каждого барьерного центра равна нулю.

Функция соединяет координаты вдоль гладкой, кусочно-клоидной кривой и добавляет барьер с кривой в качестве центральной линии. Модули измерения указаны в метрах.

Банковский угол барьера, заданный как вектор с реальным N -by-1. N - количество барьерных центров. bankAngle является углом крена барьера вдоль направления кривой, образованной барьерными центрами. Модули указаны в степенях.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'RoadEdge','left' добавляет барьер вдоль левого края дороги.

Ребро дороги, вдоль которого можно разместить барьер, заданный как разделенная разделенными запятой парами, состоящая из 'RoadEdge' и 'right' или 'left'. Использование 'RoadEdge' только тогда, когда вы задаете road объект для добавления барьера.

Поперечное смещение от ребра дороги, заданное как разделенная разделенными запятой парами, состоящая из 'RoadEdgeOffset' и скалярный или действительный вектор N -by-1. N - количество барьерных центров. Значение положительного смещения смещает барьер от дороги, а значение отрицательного смещения смещает барьер в дорогу. Модули измерения указаны в метрах. 'RoadEdgeOffset' допустимо только, когда вы задаете road объект и 'RoadEdge' аргумент.

Длина каждого сегмента барьера, заданная как разделенная разделенными запятой парами, состоящая из 'SegmentLength' и положительный действительный скаляр. Модули измерения указаны в метрах.

Расстояние между последовательными сегментами барьера, заданное как разделенная разделенными запятой парами, состоящая из 'SegmentGap' и положительный действительный скаляр. Модули измерения указаны в метрах.

Ширина каждого сегмента барьера, заданная как разделенная разделенными запятой парами, состоящая из 'Width' и положительный действительный скаляр. Модули измерения указаны в метрах.

Высота каждого сегмента барьера, заданная как разделенная разделенными запятой парами, состоящая из 'Height' и положительный действительный скаляр. Модули измерения указаны в метрах.

Представление барьера в сетке, заданное как разделенная разделенными запятой парами, состоящая из 'Mesh' и действительное extendedObjectMesh объект. Доступные сетки для барьера: driving.scenario.jerseyBarrierMesh, представляющий барьер Джерси и driving.scenario.guardrailMesh, представляющий ограждение. The lidarPointCloudGenerator системный объект использует эту сетку mesh для генерации обнаружений.

Отобразите цвет барьера, заданный как разделенная разделенными запятой парами, состоящая из 'PlotColor' и триплет RGB, шестнадцатеричный цветовой код, название цвета или короткое название цвета.

Барьер появляется в заданном цвете во всех визуализациях программного сценария, включая plot функция, chasePlot функции и функции построения графика birdsEyePlot объекты. Если вы импортируете сценарий в приложение Driving Scenario Designer, то барьер появляется в этом цвете во всех визуализациях приложения. Если вы импортируете сценарий в Simulink®, затем барьер появляется в этом цвете в Bird's-Eye Scope.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Радиолокационное сечение (RCS) шаблона барьера, заданное как разделенная запятой пара, состоящее из 'RCSPattern' и Q -by P вещественной матрицей. RCS является функцией азимута и углов возвышения, где:

  • Q - количество углов возвышения, заданное 'RCSElevationAngles' аргумент пары "имя-значение".

  • P - количество азимутальных углов, заданное 'RCSAzimuthAngles' аргумент пары "имя-значение".

Модули указаны в децибелах на квадратный метр (дБсм).

Пример: 5.8

Азимутальные углы RCS шаблона барьера, заданные как разделенная разделенными запятой парами, состоящая из 'RCSAzimuthAngles' и P элемент с реальным значением. P - количество азимутальных углов. Значения находятся в области значений [-180 °, 180 °].

Каждый элемент 'RCSAzimuthAngles' определяет угол азимута соответствующего столбца 'RCSPattern' аргумент пары "имя-значение". Модули указаны в степенях.

Пример: [-90:90]

Углы возвышения RCS шаблона барьера, заданные как разделенная разделенными запятой парами, состоящая из 'RCSElevationAngles' и Q элемент с реальным значением. Q - количество углов возвышения. Значения находятся в области значений [-90 °, 90 °].

Каждый элемент 'RCSElevationAngles' определяет угол возвышения соответствующей строки 'RCSPattern' аргумент пары "имя-значение". Модули указаны в степенях.

Пример: [0:90]

Идентификатор классификации барьера, заданный как разделенная разделенными запятой парами, состоящая из 'ClassID' и неотрицательное целое значение 5 или 6. Значения 5 и 6 соответствуют джерси-барьерам и ограждениям, соответственно. Укажите соответствующий идентификатор класса для каждого барьера перед импортом сценария в Driving Scenario Designer приложение. Для получения дополнительной информации о значениях идентификатора класса для различных участников обратитесь к описанию 'ClassID' аргумент пары "имя-значение".

Ограничения

  • Дорожные сети, добавленные с помощью roadNetwork функция не поддерживает барьеры.

Совет

  • Для более быстрых симуляций задайте входной параметр range для targetPoses функция в цикле усовершенствования сценария.

Введенный в R2021a