Положения, скорости и ориентации агентов в ведущем сценарии
poses = actorPoses(sc)
Создайте ведущий сценарий, содержащий кривую дорогу, две дороги подряд и двух агентов: автомобиль и велосипед. Оба агента проходят дорога в течение 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]
sc
— Ведущий сценарийdrivingScenario
Ведущий сценарий, заданный как объект drivingScenario
.
poses
— Положения агентаПоложения агента, в координатах сценария, возвратились как структура или массив структур. 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
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.