laneMarkingVertices

Маркировка вершин и граней маршрута в сценарии вождения

Описание

пример

[lmv,lmf] = laneMarkingVertices(scenario) возвращает вершины разметки маршрута, lmv, и лица разметки маршрута, lmf, содержащиеся в сценарии вождения scenario. The 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