plot

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

Описание

пример

plot(scenario) создает 3-D график с ортонормальной перспективой, как видно из непосредственно над сценарием вождения scenario.

пример

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

Примеры

свернуть все

Создайте сценарий вождения, содержащий рисунок-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)

Figure contains an axes. The axes contains 4 objects of type patch, line.

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

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

Figure contains an axes. The axes contains 5 objects of type patch, line.

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

rbEgo1 = roadBoundaries(ego);

Отображение результата на графике птичьего глаза.

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

Figure contains an axes. The axes contains an object of type line. This object represents Road.

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

rbScenario = roadBoundaries(scenario);

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

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

Отображение контуров дороги на графике птичьего глаза.

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

Figure contains an axes. The axes contains an object of type line. This object represents Road boundaries.

Создайте сценарий вождения, содержащий изогнутую дорогу, две прямые дороги и двух актёров: автомобиль и велосипед. Оба актёра двигаются по дороге на 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)
ans = 
  Road with properties:

           Name: ""
         RoadID: 2
    RoadCenters: [2x3 double]
      RoadWidth: 6
      BankAngle: [2x1 double]

roadcenters = [400 400 0; 0 0 0];
road(scenario,roadcenters)
ans = 
  Road with properties:

           Name: ""
         RoadID: 3
    RoadCenters: [2x3 double]
      RoadWidth: 6
      BankAngle: [2x1 double]

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

rbdry = roadBoundaries(scenario);

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

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

Расположите велосипед дальше по дороге.

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

Постройте график сценария.

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

Figure contains an axes. The axes with title Scenario contains 1219 objects of type patch, line.

Отображение положений и профилей актёра.

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') отображает осевую линию и центры дорог каждого сегмента дороги.

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

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

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

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

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

Актёры, вокруг которых можно нарисовать индикаторы, заданные как разделенная разделенными запятой парами, состоящая из 'ActorIndicators' и вектор ActorID целые числа. График сценария вождения рисует круги вокруг актёров, которые имеют указанную ActorID значения. Каждый кружок является тем же цветом, что и актёр, которого он окружает. Круги не являются зонами покрытия датчика.

Используйте эту пару "имя-значение", чтобы выделить автомобиль , оборудованный датчиком в сценариях вождения, которые содержат несколько транспортных средств.

Совет

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

Введенный в R2017a