laneMarkingPlotter

Плоттер маркировки маршрута для видимого с большого расстояния графика

Синтаксис

lmPlotter = laneMarkingPlotter(bep)
lmPlotter = laneMarkingPlotter(bep,Name,Value)

Описание

пример

lmPlotter = laneMarkingPlotter(bep) создает объект LaneMarkingPlotter, который конфигурирует отображение маркировок маршрута на видимом с большого расстояния графике. Объект LaneMarkingPlotter хранится в свойстве Plotters объекта входа birdsEyePlot, bep. Чтобы отобразить маркировки маршрута, используйте функцию plotLaneMarking.

lmPlotter = laneMarkingPlotter(bep,Name,Value) свойства наборов с помощью одного или нескольких аргументов пары Name,Value. Например, laneMarkingPlotter(bep,'DisplayName','Lane markings') определяет имя отображения, которое появляется в легенде графика птичьего глаза.

Примеры

свернуть все

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

sc = drivingScenario;

Создайте трехполосную дорогу при помощи спецификаций маршрута.

roadCenters = [0 0 0; 60 0 0; 120 30 0];
lspc = lanespec(3);
road(sc,roadCenters,'Lanes',lspc);

Укажите, что автомобиль, оборудованный датчиком следует за центральным маршрутом на уровне 30 м/с.

egovehicle = vehicle(sc);
egopath = [1.5 0 0; 60 0 0; 111 25 0];
egospeed = 30;
trajectory(egovehicle,egopath,egospeed);

Укажите, что целевые перемещения автомобиля перед автомобилем, оборудованным датчиком на уровне 40 м/с и перестраиваются на другую полосу близко к автомобилю, оборудованному датчиком.

targetcar = vehicle(sc,'ClassID',2);
targetpath = [8 2; 60 -3.2; 120 33];
targetspeed = 40;
trajectory(targetcar,targetpath,targetspeed);

Отобразите график преследования для 3-D представления сценария из-за автомобиля, оборудованного датчиком.

chasePlot(egovehicle)

Создайте генератор обнаружения видения, который обнаруживает маршруты и объекты. Подача датчика указывает одну степень вниз.

visionSensor = visionDetectionGenerator('Pitch',1.0);
visionSensor.DetectorOutput = 'Lanes and objects';
visionSensor.ActorProfiles = actorProfiles(sc);

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

  1. Создайте видимый с большого расстояния график и связанные плоттеры.

  2. Отобразите зону охвата датчика.

  3. Отобразите маркировки маршрута.

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

  5. Получите идеальные граничные точки маршрута до 60 м вперед.

  6. Сгенерируйте обнаружения от идеальных целевых положений и контуров маршрута.

  7. Отобразите схему цели.

  8. Обнаружения экранного объекта, когда обнаружение объектов допустимо.

  9. Отобразите контур маршрута, когда обнаружение маршрута будет допустимо.

bep = birdsEyePlot('XLim',[0 60],'YLim',[-35 35]);
caPlotter = coverageAreaPlotter(bep,'DisplayName','Coverage area', ...
    'FaceColor','blue');
detPlotter = detectionPlotter(bep,'DisplayName','Object detections');
lmPlotter = laneMarkingPlotter(bep,'DisplayName','Lane markings');
lbPlotter = laneBoundaryPlotter(bep,'DisplayName', ...
    'Lane boundary detections','Color','red');
olPlotter = outlinePlotter(bep);
plotCoverageArea(caPlotter,visionSensor.SensorLocation,...
    visionSensor.MaxRange,visionSensor.Yaw, ...
    visionSensor.FieldOfView(1));
while advance(sc)
    [lmv,lmf] = laneMarkingVertices(egovehicle);
    plotLaneMarking(lmPlotter,lmv,lmf)
    tgtpose = targetPoses(egovehicle);
    lookaheadDistance = 0:0.5:60;
    lb = laneBoundaries(egovehicle,'XDistance',lookaheadDistance,'LocationType','inner');
    [obdets,nobdets,obValid,lb_dets,nlb_dets,lbValid] = ...
        visionSensor(tgtpose,lb,sc.SimulationTime);
    [objposition,objyaw,objlength,objwidth,objoriginOffset,color] = targetOutlines(egovehicle);
    plotOutline(olPlotter,objposition,objyaw,objlength,objwidth, ...
        'OriginOffset',objoriginOffset,'Color',color)
    if obValid
        detPos = cellfun(@(d)d.Measurement(1:2),obdets,'UniformOutput',false);
        detPos = vertcat(zeros(0,2),cell2mat(detPos')');
        plotDetection(detPlotter,detPos)
    end
    if lbValid
        plotLaneBoundary(lbPlotter,vertcat(lb_dets.LaneBoundaries))
    end
end

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

свернуть все

Видимый с большого расстояния график, заданный как объект birdsEyePlot.

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

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

Пример: laneBoundaryPlotter('Color','red') выбирает цвет маркировок маршрута к красному.

Имя плоттера, чтобы отобразиться в легенде, заданной как пара, разделенная запятой, состоящая из 'DisplayName' и вектора символов или представить скаляр в виде строки. Если вы не задаете имя, видимый с большого расстояния график не отображает запись легенды для плоттера.

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

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета и эквивалентные значения триплета RGB.

Название цветаТриплет RGBВнешний вид
'red'[1 0 0]

'green'[0 1 0]

'blue'[0 0 1]

'cyan' [0 1 1]

'magenta'[1 0 1]

'yellow'[1 1 0]

'black'[0 0 0]

'white'[1 1 1]

Тег сопоставлен с объектом плоттера, заданным как пара, разделенная запятой, состоящая из 'Tag' и скаляра строки или вектора символов. Значением по умолчанию является 'PlotterN', где N является целым числом, которое соответствует N th плоттер, сопоставленный с объектом входа birdsEyePlot.

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

свернуть все

Плоттер маркировки маршрута, возвращенный как объект LaneMarkingPlotter. Можно изменить этот объект путем изменения его значений свойств. Имена свойства соответствуют аргументам пары "имя-значение" функции laneMarkingPlotter.

lmPlotter хранится в свойстве Plotters объекта входа birdsEyePlot, bep. Чтобы построить маркировки маршрута, используйте функцию plotLaneMarking.

Введенный в R2018a