actorPoses

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

Синтаксис

poses = actorPoses(sc)

Описание

пример

poses = actorPoses(sc) возвращает текущие положения (положения, скорости и ориентации) для всех агентов в ведущем сценарии, sc. Агенты включают Actor и объекты Vehicle, которые можно создать использование actor и функций vehicle, соответственно. Положения агента находятся в координатах сценария.

Примеры

свернуть все

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

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

sc = 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(sc,roadcenters,roadwidth);

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

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

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

rbdry = roadBoundaries(sc);

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

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

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

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

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

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

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

poses = actorPoses(sc)
poses = 2x1 struct array with fields:
    ActorID
    Position
    Velocity
    Roll
    Pitch
    Yaw
    AngularVelocity

profiles = actorProfiles(sc)
profiles = 2x1 struct array with fields:
    ActorID
    ClassID
    Length
    Width
    Height
    OriginOffset
    RCSPattern
    RCSAzimuthAngles
    RCSElevationAngles

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

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

sc = drivingScenario;

Создайте целевых агентов.

actor(sc,'Position',[10 20 30], ...
    'Velocity',[12 113 14], ...
    'Yaw',54, ...
    'Pitch',25, ...
    'Roll',22, ...
    'AngularVelocity',[24 42 27]);

actor(sc,'Position',[17 22 12], ...
    'Velocity',[19 13 15], ...
    'Yaw',45, ...
    'Pitch',52, ...
    'Roll',2, ...
    'AngularVelocity',[42 24 29]);

Добавьте агента автомобиля, оборудованного датчиком.

ego = actor(sc,'Position',[1 2 3], ...
    'Velocity',[1.2 1.3 1.4], ...
    'Yaw',4, ...
    'Pitch',5, ...
    'Roll',2, ...
    'AngularVelocity',[4 2 7]);

Используйте actorPoses, чтобы возвратить положения всех агентов. Изложите свойства (положение, скорость и ориентация) находятся в координатах сценария.

allposes = actorPoses(sc);

Используйте driving.scenario.targetsToEgo, чтобы преобразовать только целевые положения в эгоцентрические координаты агента эго. Исследуйте положение первого агента.

targetposes1 = driving.scenario.targetsToEgo(allposes(1:2),ego);
disp(targetposes1(1))
            ActorID: 1
           Position: [7.8415 18.2876 27.1675]
           Velocity: [18.6826 112.0403 9.2960]
               Roll: 16.4327
              Pitch: 23.2186
                Yaw: 47.8114
    AngularVelocity: [20 40 20]

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

targetposes2 = targetPoses(ego);
disp(targetposes2(1))
            ActorID: 1
            ClassID: 0
           Position: [7.8415 18.2876 27.1675]
           Velocity: [18.6826 112.0403 9.2960]
               Roll: 16.4327
              Pitch: 23.2186
                Yaw: 47.8114
    AngularVelocity: [20 40 20]

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

свернуть все

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

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

свернуть все

Положения агента, в координатах сценария, возвратились как структура или массив структур. Poses является положениями, скоростями и ориентациями агентов.

Каждая структура в poses имеет эти поля.

Поле Описание
ActorID

Заданный сценарием идентификатор агента, заданный как положительное целое число.

Position

Положение агента, заданного как [x y z] вектор с действительным знаком. Модули исчисляются в метрах.

Velocity

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

Roll

Угол вращения агента, заданного как действительный скаляр. Модули в градусах.

Pitch

Передайте угол агента, заданного как действительный скаляр. Модули в градусах.

Yaw

Угол отклонения от курса агента, заданного как действительный скаляр. Модули в градусах.

AngularVelocity

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

Для полных определений этих полей структуры смотрите функции vehicle и actor.

Введенный в R2017a

Для просмотра документации необходимо авторизоваться на сайте