Преобразуйте целевые положения от эго до координат сценария
преобразует положения целевых агентов от координат относительно положения агента эго к мировым координатам ведущего сценария. pose является положением, скоростью и ориентацией агента. Для получения дополнительной информации о системах координат агентов смотрите Автомобиль, оборудованный датчиком и Цели.targetPosesScenarioCoords
= driving.scenario.targetsToScenario(targetPosesEgoCoords
,egoPose
)
преобразует целевые положения при помощи положения заданного агента эго.targetPosesScenarioCoords
= driving.scenario.targetsToScenario(targetPosesEgoCoords
,egoActor
)
В простом ведущем сценарии получите положения целевых транспортных средств в системе координат автомобиля, оборудованного датчиком. Затем преобразуйте эти положения назад в мировые координаты ведущего сценария.
Создайте ведущий сценарий.
scenario = drivingScenario;
Создайте целевых агентов.
actor(scenario,'ClassID',1, ... 'Position',[10 20 30], ... 'Velocity',[12 113 14], ... 'Yaw',54, ... 'Pitch',25, ... 'Roll',22, ... 'AngularVelocity',[24 42 27]); actor(scenario,'ClassID',1, ... 'Position',[17 22 12], ... 'Velocity',[19 13 15], ... 'Yaw',45, ... 'Pitch',52, ... 'Roll',2, ... 'AngularVelocity',[42 24 29]);
Добавьте агента автомобиля, оборудованного датчиком.
egoActor = actor(scenario,'ClassID',1, ... 'Position',[1 2 3], ... 'Velocity',[1.2 1.3 1.4], ... 'Yaw',4, ... 'Pitch',5, ... 'Roll',2, ... 'AngularVelocity',[4 2 7]);
Используйте actorPoses
функционируйте, чтобы возвратить положения всех агентов в сценарии. Изложите свойства (положение, скорость и ориентация) находятся в мировых координатах ведущего сценария. Сохраните целевых агентов в отдельную переменную и смотрите положение первого целевого агента.
allPoses = actorPoses(scenario); targetPosesScenarioCoords = allPoses(1:2); targetPosesScenarioCoords(1)
ans = struct with fields:
ActorID: 1
Position: [10 20 30]
Velocity: [12 113 14]
Roll: 22
Pitch: 25
Yaw: 54
AngularVelocity: [24 42 27]
Используйте driving.scenario.targetsToEgo
функционируйте, чтобы преобразовать целевые положения в эгоцентрические координаты агента эго. Смотрите положение первого агента.
targetPosesEgoCoords = driving.scenario.targetsToEgo(targetPosesScenarioCoords,egoActor); targetPosesEgoCoords(1)
ans = struct with fields:
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: [-3.3744 47.3021 18.2569]
В качестве альтернативы используйте targetPoses
функция, чтобы получить все целевые положения агента в координатах автомобиля, оборудованного датчиком. Отобразите первое целевое положение, которое совпадает с ранее расчетным положением.
targetPosesEgoCoords = targetPoses(egoActor); targetPosesEgoCoords(1)
ans = struct with fields:
ActorID: 1
ClassID: 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: [-3.3744 47.3021 18.2569]
Используйте driving.scenario.targetsToScenario
преобразовывать цель позирует назад к мировым координатам сценария. Отобразите первое целевое положение, которое совпадает с исходным целевым положением.
targetPosesScenarioCoords = driving.scenario.targetsToScenario(targetPosesEgoCoords,egoActor); targetPosesScenarioCoords(1)
ans = struct with fields:
ActorID: 1
ClassID: 1
Position: [10.0000 20.0000 30.0000]
Velocity: [12.0000 113.0000 14.0000]
Roll: 22
Pitch: 25.0000
Yaw: 54
AngularVelocity: [24.0000 42.0000 27.0000]
targetPosesEgoCoords
— Целевые положения в координатах агента эгоЦелевые положения в агенте эго координируют в виде структуры или массива структур.
Каждая целевая структура положения должна содержать, по крайней мере, эти поля.
Поле | Описание |
---|---|
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]. Модули в градусах в секунду. |
Для полных определений этих полей структуры смотрите actor
и vehicle
функции.
egoPose
— Положение агента эгоАгент эго позирует в мировых координатах ведущего сценария в виде структуры.
Структура положения агента эго должна содержать, по крайней мере, эти поля.
Поле | Описание |
---|---|
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]. Модули в градусах в секунду. |
Для полных определений этих полей структуры смотрите actor
и vehicle
функции.
egoActor
— Агент эгоActor
возразите | Vehicle
объектАгент эго в мировых координатах ведущего сценария в виде Actor
или Vehicle
объект. Функция преобразует координаты целевых агентов относительно положения egoActor
. Информация о положении хранится в Position
, Velocity
Крен
Тангаж
, Yaw
, и AngularVelocity
свойства агента эго.
Для полных определений свойств положения смотрите actor
и vehicle
функции.
targetPosesScenarioCoords
— Целевые положения в мировых координатах сценарияЦелевой агент позирует в мировых координатах ведущего сценария, возвращенного как структура или массив структур.
Как минимум каждая возвращенная целевая структура положения имеет эти поля.
Поле | Описание |
---|---|
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]. Модули в градусах в секунду. |
Возвращенный targetPosesScenarioCoords
структуры включают те же поля как тех во входе targetPosesEgoCoords
структуры. Например, если входные структуры включают ClassID
поле, затем возвращенные структуры также включают ClassID
.
Для полных определений этих полей структуры смотрите actor
и vehicle
функции.
В ведущем сценарии можно задать одного агента как наблюдатель всех других агентов, похожих на то, как драйвер автомобиля наблюдает все другие автомобили. Агент наблюдателя называется ego actor или, более конкретно, ego vehicle. С точки зрения автомобиля, оборудованного датчиком все другие агенты (такие как транспортные средства и пешеходы) являются наблюдаемыми агентами, названными targets. Координаты автомобиля, оборудованного датчиком сосредоточены и ориентированы со ссылкой на автомобиль, оборудованный датчиком. Координаты ведущего сценария являются мировыми координатами.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.