exponenta event banner

laneMarkingVertices

Разметка вершин и граней полосы движения в сценарии вождения

Описание

пример

[lmv,lmf] = laneMarkingVertices(scenario) возвращает вершины разметки полосы движения, lmvи грани разметки полосы движения, lmf, содержится в сценарии вождения scenario. lmf и lmv выходы находятся в мировых координатах scenario. Использование вершин и граней разметки полосы движения для отображения разметки полосы движения с помощью laneMarkingPlotter функция с сюжетом птичьего глаза.

пример

[lmv,lmf] = laneMarkingVertices(ac) возвращает вершины и грани разметки полосы движения в координатах движущегося участника сценария ac.

Примеры

свернуть все

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

Создайте пустой сценарий управления.

scenario = drivingScenario;

Создайте прямой 25-метровый сегмент дороги с двумя полосами движения в одном направлении.

lm = [laneMarking('Solid')
      laneMarking('Dashed','Length',2,'Space',4)
      laneMarking('Solid')];
l = lanespec(2,'Marking',lm);
road(scenario,[0 0 0; 25 0 0],'Lanes',l);

Добавить к сценарию вождения пешехода, переходящего дорогу со скоростью 1 метр в секунду, и автомобиля, идущего по дороге со скоростью 10 метров в секунду.

ped = actor(scenario,'ClassID',4,'Length',0.2,'Width',0.4,'Height',1.7);
car = vehicle(scenario,'ClassID',1);
smoothTrajectory(ped,[15 -3 0; 15 3 0],1);
smoothTrajectory(car,[car.RearOverhang 0 0; 25-car.Length+car.RearOverhang 0 0],10);

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

plot(scenario)

chasePlot(car)

Запустите моделирование.

  1. Создайте график птичьего глаза.

  2. Создайте плоттер контура, плоттер границ полосы движения и плоттер разметки полосы движения для графика «птичий глаз».

  3. Получение границ дорог и целевых контуров.

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

  5. Отображение границ полосы движения и маркеров полосы движения.

  6. Запустите цикл моделирования.

bep = birdsEyePlot('XLim',[-25 25],'YLim',[-10 10]);
olPlotter = outlinePlotter(bep);
lbPlotter = laneBoundaryPlotter(bep);
lmPlotter = laneMarkingPlotter(bep,'DisplayName','Lanes');
legend('off');
while advance(scenario)
    rb = roadBoundaries(car);
    [position,yaw,length,width,originOffset,color] = targetOutlines(car);
    [lmv,lmf] = laneMarkingVertices(car);
    plotLaneBoundary(lbPlotter,rb);
    plotLaneMarking(lmPlotter,lmv,lmf);
    plotOutline(olPlotter,position,yaw,length,width, ...
        'OriginOffset',originOffset,'Color',color);
end

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

свернуть все

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

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

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

свернуть все

Полоса, обозначающая вершины, возвращается в виде вещественной матрицы. Каждая строка матрицы представляет координаты (x, y, z) вершины.

Разметка полос, возвращаемая в виде вещественной матрицы. Каждая строка матрицы содержит соединения вершин, которые определяют грань для одной разметки полосы движения. Дополнительные сведения см. в разделе Грани.

Алгоритмы

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

См. также

Объекты

Функции

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