actor

Добавьте агента в ведущий сценарий

Описание

ac = actor(scenario) добавляет Actor объект, ac, к ведущему сценарию, scenario. Агент имеет значения свойств по умолчанию.

Actors является кубоидами (формы поля), которые представляют объекты в движении, такие как автомобили, пешеходы и велосипеды. Агенты могут также представлять стационарные препятствия, которые могут влиять на движение других агентов, таких как барьеры. Для получения дополнительной информации о том, как агенты заданы, смотрите Агентов и Транспортные средства.

пример

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

Примеры

свернуть все

Создайте ведущий сценарий, содержащий кривую дорогу, две дороги подряд и двух агентов: автомобиль и велосипед. Оба агента проходят дорога в течение 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×7 struct
    ActorID
    Position
    Velocity
    Roll
    Pitch
    Yaw
    AngularVelocity

profiles = actorProfiles(scenario)
profiles=2×9 struct
    ActorID
    ClassID
    Length
    Width
    Height
    OriginOffset
    RCSPattern
    RCSAzimuthAngles
    RCSElevationAngles

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

свернуть все

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

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

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

Пример: actor('Length',0.24,'Width',0.45,'Height',1.7) создает агента с размерностями пешехода. Модули исчисляются в метрах.

Идентификатор классификации агента, заданного как разделенная запятой пара, состоящая из 'ClassID' и неотрицательное целое число.

Задайте ClassID значения, чтобы группироваться агенты, которые имеют подобные размерности, шаблоны радарного поперечного сечения (RCS) или другие свойства. Как лучшая практика, перед добавляющими агентами к drivingScenario возразите, определите систему классификации агента, которую вы хотите использовать. Затем при создании агентов задайте ClassID пара "имя-значение", чтобы установить идентификаторы классификации согласно схеме.

Предположим, что вы хотите создать сценарий, содержащий этих агентов:

  • Два автомобиля, один из которых является автомобилем, оборудованным датчиком

  • Грузовик

  • Велосипед

Код показывает демонстрационную систему классификации для этого сценария, где 1 относится к автомобилям, 2 относится к грузовикам и 3 относится к велосипедам. Автомобили имеют свойства транспортного средства по умолчанию. Грузовик и велосипед имеют размерности типичного грузовика и велосипеда, соответственно.

scenario = drivingScenario;
ego = vehicle(scenario,'ClassID',1);
car = vehicle(scenario,'ClassID',1);
truck = vehicle(scenario,'ClassID',2,'Length',8.2,'Width',2.5,'Height',3.5);
bicycle = actor(scenario,'ClassID',3,'Length',1.7,'Width',0.45,'Height',1.7);

ClassID по умолчанию из 0 резервируется для объекта неизвестного или неприсвоенного класса. Если вы планируете импортировать drivingScenario объекты в приложение Driving Scenario Designer, не оставляйте ClassID свойство набора агентов к 0. Приложение не распознает ClassID из 0 для агентов и возвращает ошибку. Вместо этого установите ClassID значения агентов согласно системе классификации агента используются в приложении.

ClassIDClassName
1Автомобиль
2Грузовик
3Велосипед
4Пешеход
5Барьер

Позиция центра агента, заданного как разделенная запятой пара, состоящая из 'Position' и [x y z] вектор с действительным знаком.

Центром агента является [L/2 W/2 b], где:

  • L/2 является средней точкой длины агента L.

  • W/2 является средней точкой ширины агента W.

  • b является нижней частью кубоида.

Модули исчисляются в метрах.

Пример: [10;50;0]

Скорость (v) агента центрируется в x - y - и z - направления, заданные как разделенная запятой пара, состоящая из 'Velocity' и [v x v y v z] вектор с действительным знаком. 'Position' пара "имя-значение" задает центр агента. Модули исчисляются в метрах в секунду.

Пример: [-4;7;10]

Угол отклонения от курса агента, заданного как разделенная запятой пара, состоящая из 'Yaw' и действительный скаляр. Yaw является углом вращения агента вокруг z - ось и положителен в направлении по часовой стрелке. Угловые значения перенесены к области значений [–180, 180]. Модули в градусах.

Пример: -0.4

Передайте угол агента, заданного как разделенная запятой пара, состоящая из 'Pitch' и действительный скаляр. Pitch является углом вращения агента вокруг y - ось и положителен в направлении по часовой стрелке. Угловые значения перенесены к области значений [–180, 180]. Модули в градусах.

Пример: 5.8

Угол вращения агента, заданного как разделенная запятой пара, состоящая из 'Roll' и действительный скаляр. Roll является углом вращения агента вокруг x - ось и положителен в направлении по часовой стрелке. Угловые значения перенесены к области значений [–180, 180]. Модули в градусах.

Пример: -10

Скорость вращения (ω) агента, в мировых координатах, заданных как разделенная запятой пара, состоящая из 'AngularVelocity' и [ω x ω y ω z] вектор с действительным знаком. Модули в градусах в секунду.

Пример: [20 40 20]

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

Пример: 5.5

Ширина агента, заданного как разделенная запятой пара, состоящая из 'Width' и положительный действительный скаляр. Модули исчисляются в метрах.

Пример: 3.0

Высота агента, заданного как разделенная запятой пара, состоящая из 'Height' и положительный действительный скаляр. Модули являются метрами.

Пример: 2.1

Шаблон радарного поперечного сечения (RCS) агента, заданного как разделенная запятой пара, состоящая из 'RCSPattern' и Q-by-P матрица с действительным знаком. RCS является функцией азимута и углов вертикального изменения, где:

  • Q является количеством углов вертикального изменения, заданных 'RCSElevationAngles' пара "имя-значение".

  • P является количеством углов азимута, заданных 'RCSAzimuthAngles' пара "имя-значение".

Модули находятся в децибелах на квадратный метр (dBsm).

Пример: 5.8

Углы азимута шаблона агента RCS, заданного как разделенная запятой пара, состоящая из 'RCSAzimuthAngles' и P - элемент вектор с действительным знаком. P является количеством углов азимута. Значения находятся в области значений [-180 °, 180 °].

Каждый элемент RCSAzimuthAngles задает угол азимута соответствующего столбца 'RCSPattern' пара "имя-значение". Модули в градусах.

Пример: [-90:90]

Углы вертикального изменения шаблона агента RCS, заданного как разделенная запятой пара, состоящая из 'RCSElevationAngles' и Q - элемент вектор с действительным знаком. Q является количеством углов вертикального изменения. Значения находятся в области значений [-90 °, 90 °].

Каждый элемент RCSElevationAngles задает угол вертикального изменения соответствующей строки RCSPattern свойство. Модули в градусах.

Пример: [0:90]

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

свернуть все

Ведущий агент сценария, возвращенный как Actor объект, принадлежащий ведущему сценарию, задан scenario.

Можно изменить Actor объект путем изменения его значений свойств. Имена свойства соответствуют аргументам пары "имя-значение", используемым, чтобы создать объект. Единственным свойством, которое вы не можете изменить, является ActorID, который является положительным целым числом, указывающим на уникальный, заданный сценарием ID агента.

Чтобы задать или визуализировать движение агента, используйте эти функции:

trajectory

Создайте агента или траекторию транспортного средства в ведущем сценарии

chasePlot

Эгоцентрический проективный перспективный график

Чтобы получить информацию о характеристиках агента, используйте эти функции:

actorPoses

Положения, скорости и ориентации агентов в ведущем сценарии

actorProfiles

Физический и радарные характеристики агентов в ведущем сценарии

targetOutlines

Основы целей просматриваются агентом

targetPoses

Целевые положения и ориентации относительно автомобиля, оборудованного датчиком

driving.scenario.targetsToEgo

Преобразуйте положения агента в координаты автомобиля, оборудованного датчиком

Чтобы получить информацию о дорогах и маршрутах, что агент работает, используйте эти функции:

roadBoundaries

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

driving.scenario.roadBoundariesToEgo

Преобразуйте дорожные контуры в координаты автомобиля, оборудованного датчиком

currentLane

Получите текущий маршрут агента

laneBoundaries

Получите контуры маршрута маршрута агента

laneMarkingVertices

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

Больше о

свернуть все

Агенты и транспортные средства

В ведущих сценариях actor является кубоидом объект, (имеющий форму поля) с определенной длиной, шириной и высотой. Агенты также имеют шаблон радарного поперечного сечения (RCS), заданный в dBsm, который можно совершенствовать путем установки углового азимута и координат вертикального изменения. Положение агента задано как центр его нижней поверхности. Эта центральная точка используется в качестве вращательного центра агента и точки контакта с землей.

vehicle является специальным видом агента, который перемещается в колеса. Транспортные средства имеют три дополнительных свойства, которые управляют размещением передней и задней оси.

  • Wheelbase — Расстояние между передними и задними осями

  • Front overhang — Расстояние между передней стороной транспортного средства и передней осью.

  • Rear overhang — Расстояние между задней осью и задней частью транспортного средства.

В отличие от других типов агентов, положение транспортного средства задано точкой на том основании, что ниже центра ее задней оси. Эта точка соответствует естественному центру транспортного средства вращения.

Эта таблица показывает список общих агентов и их размерностей. Задавать эти значения в Actor и Vehicle объекты, набор соответствующие показанные свойства.

Классификация агентовОбъект агентаСвойства агента
LengthWidthHeightFrontOverhangRearOverhangWheelbaseRCSPattern
ПешеходActor0,24 м0,45 м1,7 мНет данныхНет данныхНет данных– 8 dBsm
АвтомобильVehicle4,7 м1,8 м1,4 м0,9 м1,0 м2,8 м10 dBsm
МотоциклVehicle2,2 м0,6 м1,5 м0,37 м0,32 м1,51 м0 dBsm

Введенный в R2017a