plot

Создайте ведущий график сценария

Описание

пример

plot(scenario) создает 3-D график с ортонормированной перспективой, как замечено по сразу выше ведущего сценария, scenario.

пример

plot(scenario,Name,Value) задает опции с помощью одной или нескольких пар "имя-значение". Например, можно использовать эти опции, чтобы отобразить дорожные центры и агента waypoints на графике.

Примеры

свернуть все

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

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

scenario = drivingScenario;

Добавьте дорогу фигуры 8 к сценарию. Отобразите сценарий.

roadCenters = [0  0  1
             20 -20  1
             20  20  1
            -20 -20  1
            -20  20  1
              0   0  1];

roadWidth = 3;
bankAngle = [0 15 15 -15 -15 0];
road(scenario,roadCenters,roadWidth,bankAngle);
plot(scenario)

Добавьте автомобиль, оборудованный датчиком в сценарий. Расположите транспортное средство в мировых координатах (20, –20) и ориентируйте его под –15 углами отклонения от курса степени.

ego = actor(scenario,'Position',[20 -20 0],'Yaw',-15);

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

rbEgo1 = roadBoundaries(ego);

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

bep = birdsEyePlot;
lbp = laneBoundaryPlotter(bep,'DisplayName','Road');
plotLaneBoundary(lbp,rbEgo1)

Получите дорожные контуры в мировых координатах при помощи roadBoundaries функция. Задайте сценарий как входной параметр.

rbScenario = roadBoundaries(scenario);

Получите дорожные контуры в координатах автомобиля, оборудованного датчиком при помощи driving.scenario.roadBoundariesToEgo функция.

rbEgo2 = driving.scenario.roadBoundariesToEgo(rbScenario,ego);

Отобразите дорожные контуры на видимом с большого расстояния графике.

bep = birdsEyePlot;
lbp = laneBoundaryPlotter(bep,'DisplayName','Road boundaries');
plotLaneBoundary(lbp,{rbEgo2})

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

Создайте ведущий объект сценария.

scenario = drivingScenario('SampleTime',0.1','StopTime',60);

Создайте кривую дорогу с помощью дорожных центральных точек после дуги круга с 800-метровым радиусом. Дуга запускается на уровне 0 °, заканчивается на уровне 90 ° и производится в шаге на 5 °.

angs = [0:5:90]';
R = 800;
roadcenters = R*[cosd(angs) sind(angs) zeros(size(angs))];
roadwidth = 10;
road(scenario,roadcenters,roadwidth);

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

roadcenters = [700 0 0; 100 0 0];
road(scenario,roadcenters)
roadcenters = [400 400 0; 0 0 0];
road(scenario,roadcenters)

Получите дорожные контуры.

rbdry = roadBoundaries(scenario);

Добавьте автомобиль и велосипед к сценарию. Расположите автомобиль в начале первой дороги подряд.

car = vehicle(scenario,'Position',[700 0 0],'Length',3,'Width',2,'Height',1.6);

Расположите велосипед дальше в будущем.

bicycle = actor(scenario,'Position',[706 376 0]','Length',2,'Width',0.45,'Height',1.5);

Постройте сценарий.

plot(scenario,'Centerline','on','RoadCenters','on');
title('Scenario');

Отобразите положения агента и профили.

poses = actorPoses(scenario)
poses=2×1 struct array with fields:
    ActorID
    Position
    Velocity
    Roll
    Pitch
    Yaw
    AngularVelocity

profiles = actorProfiles(scenario)
profiles=2×1 struct array with fields:
    ActorID
    ClassID
    Length
    Width
    Height
    OriginOffset
    MeshVertices
    MeshFaces
    RCSPattern
    RCSAzimuthAngles
    RCSElevationAngles

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

свернуть все

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

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

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

Пример: plot(sc,'Centerline','on','RoadCenters','on') отображает центральную линию и дорожные центры каждого дорожного сегмента.

Отобразите сетки агента вместо кубоидов в виде разделенной запятой пары, состоящей из 'Meshes' и 'off' или 'on'.

Оси, в которых можно построить график в виде разделенной запятой пары, состоящей из 'Parent' и Axes объект. Если вы не задаете Parent, создается новая фигура.

Отобразите центральную линию дорог в виде разделенной запятой пары, состоящей из 'Centerline' и 'off' или 'on'. Центральная линия следует за серединой каждого дорожного сегмента. Центральные линии прерывисты через области, такие как пересечения или дорожные разделения.

Отобразите дорожные центры в виде разделенной запятой пары, состоящей из 'RoadCenters' и 'off' или 'on'. Дорожные центры задают дороги, показанные в графике.

Отобразите агента waypoints в виде разделенной запятой пары, состоящей из 'Waypoints' и 'off' или 'on'. Waypoints задают траекторию агента.

Советы

  • Чтобы вращать любой график, в окне рисунка, выбирают View> Camera Toolbar.

Введенный в R2017a