Преобразование целевых позиций из ego в координаты сценария
преобразует позы целевых актеров из координат относительно позы эго-актера в мировые координаты сценария вождения. Поза - это положение, скорость и ориентация актера. Подробнее о системах координат субъектов см. Ego Vehicle and Targets.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 - Позы цели в координатах эго-актераЦель находится в координатах ego-актера, указанных как структура или массив структур.
Каждая целевая структура позы должна содержать по крайней мере эти поля.
| Область | Описание |
|---|---|
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 функции.
egoPose - Поза эго актераЭго-актер позирует в мировых координатах сценария вождения, указанного как структура.
Структура позы ego actor должна содержать по крайней мере эти поля.
| Область | Описание |
|---|---|
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 функции.
egoActor - Эго-актерActor объект | Vehicle объектEgo-актер в мировых координатах сценария вождения, указанный как Actor или Vehicle объект. Функция преобразует координаты целевых акторов относительно позы egoActor. Информация о позе хранится в Position, Velocity, Roll, Pitch, Yaw, и AngularVelocity свойства эго-актера.
Полные определения свойств позы см. в разделе actor и vehicle функции.
targetPosesScenarioCoords - Позы цели в мировых координатах сценарияЦелевой актер позирует в мировых координатах сценария вождения, возвращаемого как структура или массив структур.
Как минимум, каждая возвращаемая целевая структура позы имеет эти поля.
| Область | Описание |
|---|---|
ActorID | Определяемый сценарием идентификатор субъекта, указанный как положительное целое число. |
Position | Положение актера, определяемое как действительный вектор вида [x y z]. Единицы в метрах. |
Velocity | Скорость (v) актера в направлениях x-y и z, заданная как действительный вектор вида [vx vy vz]. Единицы измерения в метрах в секунду. |
Roll | Угол крена актера, заданный как действительный скаляр. Единицы измерения в градусах. |
Pitch | Угол тангажа актера, определяемый как действительный скаляр. Единицы измерения в градусах. |
Yaw | Угол рыскания актера, определяемый как действительный скаляр. Единицы измерения в градусах. |
AngularVelocity | Угловая скорость (λ) актера в направлениях x -, y - и z, заданная как действительный вектор вида [startx starty ü z]. Единицы измерения в градусах в секунду. |
Возвращенный targetPosesScenarioCoords структуры включают те же поля, что и во входных данных targetPosesEgoCoords конструкции. Например, если входные структуры включают ClassID поле, то возвращенные структуры также включают ClassID.
Полные определения этих полей структуры см. в разделе actor и vehicle функции.
В сценарии вождения можно указать одного актёра в качестве наблюдателя всех остальных актёров, аналогично тому, как водитель автомобиля наблюдает за всеми остальными автомобилями. Актёр-наблюдатель называется актёром эго или, более конкретно, транспортным средством эго. С точки зрения эго-транспортного средства все другие субъекты (такие как транспортные средства и пешеходы) являются наблюдаемыми субъектами, называемыми целями. Координаты эго-транспортного средства центрируются и ориентируются относительно эго-транспортного средства. Координатами сценария вождения являются мировые координаты.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.