laneMarkingPlotter

График разметки маршрута для графика птичьего глаза

Описание

пример

lmPlotter = laneMarkingPlotter(bep) создает LaneMarkingPlotter объект, который конфигурирует отображение разметки маршрута на графике птичьего глаза. The 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;
smoothTrajectory(egovehicle,egopath,egospeed);

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

targetcar = vehicle(scenario,'ClassID',1);
targetpath = [8 2; 60 -3.2; 120 33];
targetspeed = 40;
smoothTrajectory(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' и вектор символов или строковый скаляр. Значение по умолчанию является 'Plotter N', где N является целым числом, которое соответствует Nth плоттер, сопоставленный с входом birdsEyePlot объект.

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

свернуть все

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

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

Введенный в R2018a