parkingLaneMarkingVertices

Парковка вершин маркировки маршрута и поверхностей в ведущем сценарии

Описание

[plmv,plmf] = parkingLaneMarkingVertices(scenario) возвращает маршрут парковки, отмечающий вершины plmv и парковка маршрута, отмечающего поверхности plmf содержавшийся в ведущем сценарии scenario. plmf и plmv выходные параметры находятся в мировых координатах scenario. Используйте вершины маркировки маршрута парковки и поверхности, чтобы отобразить маркировки маршрута с помощью laneMarkingPlotter функция с видимым с большого расстояния графиком.

пример

[plmv,plmf] = parkingLaneMarkingVertices(ac) возвращает все вершины маркировки маршрута и стоит содержавшийся в ведущем сценарии в координатах агента ac.

Примеры

свернуть все

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

Создайте ведущий сценарий, содержащий дорожную и парковку.

scenario = drivingScenario;
roadcenters = [10 40; 10 -40];
road(scenario,roadcenters);
vertices = [0 20; 20 20; 20 -20; 0 -20];
parkingLot(scenario,vertices,ParkingSpace=parkingSpace);

Добавьте автомобиль, оборудованный датчиком и задайте траекторию, в которой транспортное средство проезжает парковка.

ego = vehicle(scenario);
waypoints = [10 35 0; 10 10 0];
speed = 5; % m/s
smoothTrajectory(ego,waypoints,speed)

Создайте припаркованные автомобили на нескольких парковочных местах. Постройте сценарий.

parkedCar1 = vehicle(scenario,Position=[15.8 12.4 0]);
parkedCar2 = vehicle(scenario,Position=[15.8 -12.4 0]);
parkedCar3 = vehicle(scenario,Position=[2 -9.7 0]);
parkedCar4 = vehicle(scenario,Position=[2 9.7 0]);
plot(scenario)

Создайте датчик видения для генерации обнаружений. По умолчанию датчик смонтирован к переднему бамперу автомобиля, оборудованного датчиком.

sensor = visionDetectionGenerator;

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

bep = birdsEyePlot(XLim=[-40 40],YLim=[-30 30]);
olPlotter = outlinePlotter(bep);
lbPlotter = laneBoundaryPlotter(bep);
lmPlotter = laneMarkingPlotter(bep,DisplayName="Parking lanes");
caPlotter = coverageAreaPlotter(bep,DisplayName="Coverage area");
detPlotter = detectionPlotter(bep,DisplayName="Detections");

while advance(scenario)

    % Plot target outlines.
    [position,yaw,length,width,originOffset,color] = targetOutlines(ego);
    plotOutline(olPlotter,position,yaw,length,width)

    % Plot lane boundaries of ego vehicle.
    rbEgo = roadBoundaries(ego);
    plotLaneBoundary(lbPlotter,rbEgo)

    % Plot parking lane markings.
    [plmv,plmf] = parkingLaneMarkingVertices(ego);
    plotParkingLaneMarking(lmPlotter,plmv,plmf)

    % Plot sensor coverage area.
    mountPosition = sensor.SensorLocation;
    range = sensor.MaxRange;
    orientation = sensor.Yaw;
    fieldOfView = sensor.FieldOfView(1);
    plotCoverageArea(caPlotter,mountPosition,range,orientation,fieldOfView)

    % Generate and plot detections.
    actors = targetPoses(ego);
    time = scenario.SimulationTime;
    [dets,isValidTime] = sensor(actors,time);
    if isValidTime
        positions = cell2mat(cellfun(@(x)([x.Measurement(1) x.Measurement(2)]), ...
            dets,UniformOutput=false));
        plotDetection(detPlotter,positions)
    end

end

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

свернуть все

Ведущий сценарий в виде drivingScenario объект.

Агент, принадлежащий drivingScenario объект в виде Actor или Vehicle объект. Чтобы создать эти объекты, используйте actor и vehicle функции, соответственно.

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

свернуть все

Парковка вершин маркировки маршрута, возвращенных как V-by-3 матрица с действительным знаком. Каждая строка матрицы представляет (x, y, z) координаты вершины. V является количеством вершин в маркировке.

Парковка поверхностей маркировки маршрута, возвращенных как матрица целых чисел. Каждая строка матрицы содержит связи вершины, которые задают поверхность для однополосной маркировки. Для получения дополнительной информации смотрите Поверхности.

Алгоритмы

Эта функция использует patch функция, чтобы задать вершины маркировки маршрута и поверхности.

Введенный в R2021b