exponenta event banner

actorPoses

Позиции, скорости и ориентации субъектов в сценарии вождения

Описание

пример

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

Примеры

свернуть все

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

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

свернуть все

В координатах сценария актерские позы возвращаются в виде структуры или массива структур. Позы - это позиции, скорости и ориентации актеров.

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

ОбластьОписание
ActorID

Определяемый сценарием идентификатор субъекта, указанный как положительное целое число.

Position

Положение актера, определяемое как действительный вектор вида [x y z]. Единицы в метрах.

Velocity

Скорость (v) актера в направлениях x-y и z, заданная как действительный вектор вида [vx vy vz]. Единицы измерения в метрах в секунду.

Roll

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

Pitch

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

Yaw

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

AngularVelocity

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

Полные определения этих полей структуры см. в разделе actor, vehicle и barrier функции.

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