laneBoundaries

Получите контуры маршрута маршрута агента

Описание

lbdry = laneBoundaries(ac) возвращает контуры маршрута, lbdry, из маршрута, в который агент автомобиля, оборудованного датчиком, ac, перемещается. Контуры маршрута находятся в системе координат автомобиля, оборудованного датчиком.

пример

lbdry = laneBoundaries(ac,Name,Value) задает опции с помощью одной или нескольких пар "имя-значение". Например, laneBoundaries(ac,'AllLaneBoundaries',true) возвращает все контуры маршрута дороги, на которой перемещается агент автомобиля, оборудованного датчиком.

Примеры

свернуть все

Симулируйте ведущий сценарий с одним автомобилем, перемещающимся на S-кривой. Создайте и постройте контуры маршрута.

Создайте ведущий сценарий с одной дорогой, имеющей S-кривую.

scenario = drivingScenario('StopTime',3);
roadcenters = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0];

Создайте маршруты и добавьте их в дорогу.

lm = [laneMarking('Solid','Color','w'); ...
    laneMarking('Dashed','Color','y'); ...
    laneMarking('Dashed','Color','y'); ...
    laneMarking('Solid','Color','w')];
ls = lanespec(3,'Marking',lm);
road(scenario,roadcenters,'Lanes',ls);

Добавьте автомобиль, оборудованный датчиком и задайте его траекторию от его waypoints. По умолчанию автомобиль перемещается со скоростью 30 метров в секунду.

car = vehicle(scenario, ...
    'ClassID',1, ...
    'Position',[-35 20 0]);
waypoints = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0];
smoothTrajectory(car,waypoints);

Постройте сценарий и соответствующий график преследования.

plot(scenario)

chasePlot(car)

Запустите цикл симуляции.

  1. Инициализируйте видимый с большого расстояния график и создайте плоттер схемы, лево-маршрут и плоттеры контура правильного маршрута и дорожный граничный плоттер.

  2. Получите дорожные контуры и прямоугольные контуры.

  3. Получите контуры маршрута налево и право на транспортное средство.

  4. Усовершенствуйте симуляцию и обновите плоттеры.

bep = birdsEyePlot('XLim',[-40 40],'YLim',[-30 30]);
olPlotter = outlinePlotter(bep);
lblPlotter = laneBoundaryPlotter(bep,'Color','r','LineStyle','-');
lbrPlotter = laneBoundaryPlotter(bep,'Color','g','LineStyle','-');
rbsEdgePlotter = laneBoundaryPlotter(bep);
legend('off');
while advance(scenario)
    rbs = roadBoundaries(car);
    [position,yaw,length,width,originOffset,color] = targetOutlines(car);
    lb = laneBoundaries(car,'XDistance',0:5:30,'LocationType','Center', ...
        'AllBoundaries',false);
    plotLaneBoundary(rbsEdgePlotter,rbs)
    plotLaneBoundary(lblPlotter,{lb(1).Coordinates})
    plotLaneBoundary(lbrPlotter,{lb(2).Coordinates})
    plotOutline(olPlotter,position,yaw,length,width, ...
        'OriginOffset',originOffset,'Color',color)
end

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

свернуть все

Агент, принадлежащий drivingScenario объект в виде Actor или Vehicle объект. Чтобы создать эти объекты, используйте actor и vehicle функции, соответственно.

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

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

Пример: 'LocationType','center' указывает, что контуры маршрута сосредоточены на маркировках маршрута.

Расстояния от автомобиля, оборудованного датчиком, в котором можно вычислить контуры маршрута в виде разделенной запятой пары, состоящей из 'XDistance' и N - элемент вектор с действительным знаком. N является количеством значений расстояния. При обнаружении маршрутов от камер, расположенных "против движения", задайте отрицательные расстояния. При обнаружении маршрутов от обращенных к передней стороне камер задайте положительные расстояния. Модули исчисляются в метрах.

По умолчанию функция вычисляет контуры маршрута на расстоянии 0 от автомобиля, оборудованного датчиком, которые являются контурами налево и правом на источник автомобиля, оборудованного датчиком.

Пример: 1:0.1:10 вычисляет контур маршрута каждый 0,1 метра по диапазону от 1 до 10 метров перед автомобилем, оборудованным датчиком.

Пример: linspace(-150,150,101) вычисляет 101 контур маршрута по диапазону от 150 метров позади автомобиля, оборудованного датчиком к 150 метрам перед автомобилем, оборудованным датчиком. Эти расстояния линейно расположены с интервалами на расстоянии в 3 метра.

Местоположение контура маршрута на маркировках маршрута в виде разделенной запятой пары, состоящей из 'LocationType' и одна из опций в этой таблице.

Местоположение контура маршрутаОписаниеПример
'Center'Контуры маршрута сосредоточены на маркировках маршрута.

Трехполосная дорога имеет четыре контура маршрута: один на маркировку маршрута.

'Inner'Контуры маршрута помещаются во внутренние края маркировок маршрута.

Трехполосная дорога имеет шесть контуров маршрута: два на маршрут.

Возвратите все контуры маршрута, на которых автомобиль, оборудованный датчиком перемещается в виде разделенной запятой пары, состоящей из 'Value' и false или true.

Контуры маршрута возвращены слева направо относительно автомобиля, оборудованного датчиком. Когда 'AllBoundaries' false, только контуры маршрута налево и право на автомобиль, оборудованный датчиком возвращены.

Выходные аргументы

свернуть все

Контуры маршрута, возвращенные как массив граничных структур маршрута. Эта таблица показывает поля для каждой структуры.

Поле Описание

Coordinates

Контур маршрута координирует в виде N с действительным знаком-by-3 матрицу, где N является количеством координат контура маршрута. Координаты контура маршрута задают положение точек на контуре на заданных продольных расстояниях далеко от автомобиля, оборудованного датчиком вдоль центра дороги.

  • В MATLAB® задайте эти расстояния при помощи 'XDistance' аргумент пары "имя-значение" laneBoundaries функция.

  • В Simulink® задайте эти расстояния при помощи параметра Distances from ego vehicle for computing boundaries (m) блока Scenario Reader или параметра Distance from parent for computing lane boundaries блока Simulation 3D Vision Detection Generator.

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

Curvature

Искривление контура маршрута для каждой строки Coordinates матрица в виде N с действительным знаком-by-1 вектор. N является количеством координат контура маршрута. Модули исчисляются в радианах на метр.

CurvatureDerivative

Производная искривления контура маршрута для каждой строки Coordinates матрица в виде N с действительным знаком-by-1 вектор. N является количеством координат контура маршрута. Модули исчисляются в радианах на квадратный метр.

HeadingAngle

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

LateralOffset

Расстояние от контура маршрута от положения автомобиля, оборудованного датчиком в виде действительного скаляра. Смещение к контуру маршрута слева от автомобиля, оборудованного датчиком положительно. Смещение справа от автомобиля, оборудованного датчиком отрицательно. Модули исчисляются в метрах.

BoundaryType

Тип контура маршрута, отмечающего в виде одного из этих значений:

  • 'Unmarked' — Никакой физический маркер маршрута не существует

  • 'Solid' — Одна неповрежденная линия

  • 'Dashed' — Одна строка пунктирных маркеров маршрута

  • 'DoubleSolid' — Две неповрежденных линии

  • 'DoubleDashed' — Две пунктирных линии

  • 'SolidDashed' — Сплошная линия слева и пунктирная линия справа

  • 'DashedSolid' — Пунктирная линия слева и сплошная линия справа

Strength

Сила насыщения контура маршрута, отмечающего в виде действительного скаляра от 0 до 1. Значение 0 соответствует маркировке, цвет которой является полностью ненасыщенным. Маркировка является серой. Значение 1 соответствует маркировке, цвет которой полностью насыщается.

Width

Ширина контура маршрута в виде положительного действительного скаляра. В маркере маршрута двойной линии та же ширина используется для обеих линий и для пробела между линиями. Модули исчисляются в метрах.

Length

Длина тире в пунктирных линиях в виде положительного действительного скаляра. В маркере маршрута двойной линии та же длина используется для обеих линий.

Space

Продолжительность пробела между тире в пунктирных линиях в виде положительного действительного скаляра. В пунктирном маркере маршрута двойной линии то же пространство используется для обеих линий.

Смотрите также

Объекты

Функции

Введенный в R2018a
Для просмотра документации необходимо авторизоваться на сайте