exponenta event banner

график

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

Описание

пример

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.

Добавьте ego-транспортное средство к сценарию. Расположите транспортное средство в точке с мировыми координатами (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 функция. Укажите средство ego в качестве входного аргумента.

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 значения. Каждый круг имеет тот же цвет, что и актер, которого он окружает. Круги не являются зонами покрытия датчиков.

Эта пара «имя-значение» используется для выделения эго-транспортного средства в сценариях вождения, содержащих несколько транспортных средств.

Совет

  • Для поворота любого графика в окне рисунка выберите «Вид» > «Панель инструментов камеры».

Представлен в R2017a