Целевые положения и ориентации относителен автомобиль , оборудованный датчиком
возвращает положения всех целей в сценарии вождения относительно актёра автомобиль , оборудованный датчиком, poses
= targetPoses(ac
)ac
. Дополнительные сведения см. в разделах Автомобиля , оборудованного датчиком и Targets.
В простом сценарии вождения получите положения целевых транспортных средств в системе координат автомобиль , оборудованный датчиком. Затем преобразуйте эти положения обратно в мировые координаты сценария вождения.
Создайте сценарий вождения.
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]
Получите положения целей, которые находятся в максимальной области значений датчика, установленного на автомобиль , оборудованный датчиком.
Создайте сценарий вождения. Сценарий содержит 75-метровую прямую дорогу, автомобиль , оборудованный датчиком и два целевых транспортных средств.
Близкое целевое транспортное средство находится в 45 метрах и в той же полосе, что и автомобиле , оборудованном датчиком.
Самое дальнее целевое транспортное средство находится в 65 метрах и в противоположной полосе автомобиля , оборудованного датчиком.
Постройте график сценария вождения.
scenario = drivingScenario; roadCenters = [0 0 0; 75 0 0]; laneSpecification = lanespec([1 1]); road(scenario,roadCenters,'Lanes',laneSpecification,'Name','Road'); egoVehicle = vehicle(scenario, ... 'ClassID',1, ... 'Position',[4 -2 0], ... 'Name','Ego'); vehicle(scenario, ... 'ClassID',1, ... 'Position',[45 -1.7 0], ... 'Name','Near Target'); vehicle(scenario, ... 'ClassID',1, ... 'Position',[65 2 0], ... 'Yaw',-180, ... 'Name','Far Target'); plot(scenario)
Создайте датчик зрения, установленный на переднем бампере автомобиля , оборудованного датчиком. Сконфигурируйте датчик таким образом, чтобы максимальная область значений обнаружения составляла 50 метров.
sensor = visionDetectionGenerator('SensorIndex',1, ... 'SensorLocation',[3.7 0], ... 'MaxRange',50);
Постройте график контуров транспортных средств и зоны покрытия датчика. Близкое целевое транспортное средство находится в области значений от датчика, но самое дальнее целевое транспортное средство - нет.
bep = birdsEyePlot; olPlotter = outlinePlotter(bep); [position,yaw,length,width,originOffset,color] = targetOutlines(egoVehicle); plotOutline(olPlotter,position,yaw,length,width, ... 'OriginOffset',originOffset,'Color',color) caPlotter = coverageAreaPlotter(bep,'DisplayName','Coverage area','FaceColor','blue'); mountPosition = sensor.SensorLocation; range = sensor.MaxRange; orientation = sensor.Yaw; fieldOfView = sensor.FieldOfView(1); plotCoverageArea(caPlotter,mountPosition,range,orientation,fieldOfView);
Получите положения целей, которые находятся в области значений датчика. В структура output содержится положение только ближайшей цели, которая находится на расстоянии менее 50 метров от автомобиля , оборудованного датчиком.
poses = targetPoses(egoVehicle,range)
poses = struct with fields:
ActorID: 2
ClassID: 1
Position: [41 0.3000 0]
Velocity: [0 0 0]
Roll: 0
Pitch: 0
Yaw: 0
AngularVelocity: [0 0 0]
ac
- АктёрActor
| объекта Vehicle
объектАктёр, принадлежащий к drivingScenario
объект, заданный как Actor
или Vehicle
объект. Чтобы создать эти объекты, используйте actor
и vehicle
функций, соответственно.
range
- Круговая область значений вокруг ego vehicle Круговые области значений вокруг автомобиля , оборудованного датчиком актёра, заданные как неотрицательный действительный скаляр. targetPoses
функция возвращает только положения целей, которые находятся в этой области значений. Модули измерения указаны в метрах.
poses
- Целевые положенияЦелевые положения в координатах автомобиль , оборудованный датчиком возвращаются как структура или как массив структур. Положение автомобиля , оборудованного датчиком актёра, ac
, не включена.
A target pose определяет положение, скорость и ориентацию цели в координатах автомобиль , оборудованный датчиком. Целевые положения также включают скорости изменения положения и ориентации актёра.
Каждая структура положения имеет эти поля.
Область | Описание |
---|---|
ActorID | Определяемый сценарием идентификатор актёра, заданный как положительное целое число. |
ClassID | Идентификатор классификации, заданный как неотрицательное целое число. 0 представляет объект неизвестного или неназначенного класса. |
Position | Положение актёра, заданное как действительный вектор вида [x y z]. Модули измерения указаны в метрах. |
Velocity | Скорость (<reservedrangesplaceholder9>) актера в x - y - и z - направления, определенные как вектор с реальным знаком формы [<<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reserved angesplaceholder1> <reservedrangesplaceholder0>]. Модули указаны в метрах в секунду. |
Roll | Угол крена актёра, заданный как действительный скаляр. Модули указаны в степенях. |
Pitch | Угол тангажа актёра, заданный как действительный скаляр. Модули указаны в степенях. |
Yaw | Угол рыскания актёра, заданный как действительный скаляр. Модули указаны в степенях. |
AngularVelocity | Скорость вращения (<reservedrangesplaceholder9>) актера в x - y - и z - направления, определенные как вектор с реальным знаком формы [<<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reserved angesplaceholder1> <reservedrangesplaceholder0>]. Модули указаны в степенях в секунду. |
Полные определения этих структурных полей см. в разделе actor
и vehicle
функций.
В сценарии вождения можно задать одного актёра в качестве наблюдателя всех других актёров, подобно тому, как драйвер автомобиля наблюдает все остальные машины. Актёра-наблюдателя называют ego actor или, конкретнее, ego vehicle. С точки зрения автомобиля , оборудованного датчиком, все другие субъекты (такие, как транспортные средства и пешеходы) являются наблюдаемыми субъектами, называемыми targets. Автомобили , оборудованные датчиком координаты центрированы и ориентированы с ссылки на автомобиль , оборудованный датчиком. Координаты сценария вождения являются мировыми координатами.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.