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);

Добавьте автомобиля , оборудованного датчиком и задайте его траекторию по путевым точкам. По умолчанию машина едет со скоростью 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