exponenta event banner

plotLaneMarking

Отображение разметки полосы движения на графике птичьего полета

Описание

пример

plotLaneMarking(lmPlotter,lmv,lmf) отображает вершины разметки полосы движения, lmvи грани разметки полосы движения, lmf, на участке птичьего глаза. Плоттер разметки полосы движения, lmPlotter, связан с birdsEyePlot и настраивает отображение указанной разметки полосы движения.

Удаление всех разметок полос, связанных с плоттером разметки полос lmPlotter, вызовите clearData функции и указать lmPlotter в качестве входного аргумента.

Примеры

свернуть все

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

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

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

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

свернуть все

Плоттер разметки полосы движения, указанный как LaneMarkingPlotter объект. Этот объект хранится в Plotters свойство birdsEyePlot и конфигурирует отображение указанной разметки полосы на графике птичьего глаза. Чтобы создать этот объект, используйте laneMarkingPlotter функция.

Разметка вершин полосы движения, заданная как L-by-3 вещественная матрица. Каждая строка lmv представляет координаты x, y и z одной вершины. Плоттер использует только координаты x и y. Чтобы получить вершины и грани разметки полосы движения из сценария движения, используйте laneMarkingVertices функция.

Грань разметки полосы движения, заданная как вещественная матрица. Каждая строка lmf - грань, определяющая соединение между вершинами для одной разметки полосы движения. Чтобы получить вершины и грани разметки полосы движения из сценария движения, используйте laneMarkingVertices функция.

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