laneMarkingPlotter

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

Описание

пример

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

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

Примеры

свернуть все

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

scenario = drivingScenario;

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

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

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

egovehicle = vehicle(scenario,'ClassID',1);
egopath = [1.5 0 0; 60 0 0; 111 25 0];
egospeed = 30;
trajectory(egovehicle,egopath,egospeed);

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

targetcar = vehicle(scenario,'ClassID',1);
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(scenario);

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

  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(scenario)
    [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,scenario.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 имя аргумента и 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