Этот пример показывает, как смоделировать и моделировать вывод автомобильного радарного датчика для различных ведущих сценариев. Генерация синтетических радарных обнаружений важна для тестирования и проверки отслеживания и алгоритмов сплава датчика в угловых случаях или когда оборудование датчика недоступно. Этот пример анализирует различия между радарными измерениями и наземным положением истины автомобиля и скоростью для сценария прямого предупреждения столкновения (FCW), передающего сценария автомобиля и сценария с близко расположенными целями. Это также включает сравнение значений отношения сигнал-шум (SNR) между пешеходом и целями автомобиля в различных областях значений.
В этом примере вы генерируете радарные обнаружения программно. Можно также сгенерировать обнаружения при помощи приложения Driving Scenario Designer. Для примера смотрите Сборку Ведущий Сценарий и Сгенерируйте Синтетические Обнаружения.
Автомобили, которые содержат функции продвинутой системы помощи водителю (ADAS) или разработаны, чтобы быть полностью автономными обычно, полагаются на несколько типов датчиков. Эти датчики включают гидролокатор, радар, лазерный дальномер и видение. Надежное решение включает алгоритм сплава датчика, чтобы объединить сильные места через различные типы датчиков, включенных в систему. Для получения дополнительной информации о сплаве датчика синтетических обнаружений от системы ADAS мультидатчика, смотрите, что Fusion Датчика Использует Синтетические Данные о Радаре и Видении.
При использовании синтетических обнаружений для тестирования и проверки отслеживания и алгоритмов сплава датчика, важно понять, как сгенерированные обнаружения моделируют уникальные показатели производительности датчика. Каждый вид автомобильного датчика обеспечивает определенный набор достоинств и недостатков, которые способствуют сплавленному решению. Этот пример представляет некоторые важные показатели производительности автомобильных радаров и показывает, как радарная производительность моделируется при помощи синтетических обнаружений.
Этот пример использует radarDetectionGenerator
, чтобы сгенерировать синтетические радарные обнаружения. radarDetectionGenerator
моделирует следующие показатели производительности автомобильного радара:
Сильные места
Хорошая область значений и точность уровня области значений в длинных областях значений обнаружения
Длинная область значений обнаружения для автомобилей
Слабые места
Плохая точность положения и скорости по измерению перекрестной области значений
Более короткая область значений обнаружения для пешеходов и других неметаллических объектов
Кластеры обнаружения близкого расстояния ставят проблему к отслеживанию алгоритмов
Неспособность разрешить близко расположенные цели в больших расстояниях
FCW управление сценарием
Создайте сценарий тестирования прямого предупреждения столкновения (FCW), который используется, чтобы проиллюстрировать, как измерить положение цели с типичным автомобильным радаром дальним. Сценарий состоит из движущегося автомобиля, оборудованного датчиком, и стационарный целевой автомобиль поместил 150 метров в будущем. Автомобиль, оборудованный датчиком имеет начальную скорость 50 км/ч прежде, чем применить ее тормоза, чтобы достигнуть постоянного замедления 3 m/s^2. Автомобиль затем прибывает в полную остановку 1 метр перед задним бампером целевого автомобиля.
addpath(fullfile(matlabroot,'toolbox','shared','tracking','fusionlib')); rng default; initialDist = 150; % m initialSpeed = 50; % kph brakeAccel = 3; % m/s^2 finalDist = 1; % m [scenario, egoCar] = helperCreateSensorDemoScenario('FCW', initialDist, initialSpeed, brakeAccel, finalDist);
Радар дальний по ходу движения
Создайте радарный датчик дальний по ходу движения, смонтированный на переднем бампере автомобиля, оборудованного датчиком, 20 см над землей. Датчик генерирует измерения каждые 0,1 секунды и имеет азимутальное поле зрения 20 градусов и угловое разрешение 4 градусов. Его максимальная область значений составляет 150 м, и его разрешение области значений составляет 2,5 м. Свойство ActorProfiles
задает физические размерности и шаблоны радарного поперечного сечения (RCS) автомобилей, замеченных радаром в симуляции.
radarSensor = radarDetectionGenerator( ... 'SensorIndex', 1, ... 'UpdateInterval', 0.1, ... 'SensorLocation', [egoCar.Wheelbase+egoCar.FrontOverhang 0], ... 'Height', 0.2, ... 'FieldOfView', [20 5], ... 'MaxRange', 150, ... 'AzimuthResolution', 4, ... 'RangeResolution', 2.5, ... 'ActorProfiles', actorProfiles(scenario))
radarSensor = radarDetectionGenerator with properties: SensorIndex: 1 UpdateInterval: 0.1000 SensorLocation: [3.7000 0] Height: 0.2000 Yaw: 0 Pitch: 0 Roll: 0 FieldOfView: [20 5] MaxRange: 150 RangeRateLimits: [-100 100] DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06 Use get to show all properties
Симуляция радарных обнаружений
Моделируйте радар, измеряющий положение целевого автомобиля путем усовершенствования времени симуляции сценария. Радарный датчик генерирует обнаружения от истинного целевого положения (положение, скорость и ориентация) выраженный в координатном кадре автомобиля, оборудованного датчиком.
Радар сконфигурирован, чтобы сгенерировать обнаружения в 0,1 вторых интервалах, который сопоставим с частотой обновления типичных автомобильных радаров. Однако, чтобы точно смоделировать движение автомобилей, симуляция сценария совершенствуется каждую 0.01 секунды. Датчик возвращает логический флаг, isValidTime
, который верен, когда радар достигает своего необходимого интервала обновления, указывая, что этот шаг времени симуляции сгенерирует обнаружения.
% Create display for FCW scenario [bep, figScene] = helperCreateSensorDemoDisplay(scenario, egoCar, radarSensor); metrics = struct; % Initialize struct to collect scenario metrics while advance(scenario) % Update vehicle positions gTruth = targetPoses(egoCar); % Get target positions in ego vehicle coordinates % Generate time-stamped radar detections time = scenario.SimulationTime; [dets, ~, isValidTime] = radarSensor(gTruth, time); if isValidTime % Update Bird's-Eye Plot with detections and road boundaries helperUpdateSensorDemoDisplay(bep, egoCar, radarSensor, dets); % Collect radar detections and ground truth for offline analysis metrics = helperCollectScenarioMetrics(metrics, gTruth, dets); end % Take a snapshot for the published example helperPublishSnapshot(figScene, time>=9.1); end
По длительности теста FCW расстояние целевого автомобиля от автомобиля, оборудованного датчиком охватывает широкий спектр значений. Путем сравнения измеренных продольных и боковых положений радара целевого автомобиля к наземному положению истины автомобиля можно наблюдать точность измеренных положений радара.
Используйте helperPlotSensorDemoDetections
, чтобы построить продольные и боковые ошибки положения как различие между измеренным положением, о котором сообщает радар и наземной истиной целевого автомобиля. Наземная ссылка истины для целевого автомобиля является точкой на земле непосредственно ниже центра задней оси целевого автомобиля, которая составляет 1 метр перед бампером автомобиля.
helperPlotSensorDemoDetections(metrics, 'position', 'reverse range', [-6 6]); % Show rear overhang of target vehicle tgtCar = scenario.Actors(2); rearOverhang = tgtCar.RearOverhang; subplot(1,2,1); hold on; plot(-rearOverhang*[1 1], ylim, 'k'); hold off; legend('Error', '2\sigma noise', 'Rear overhang');
Продольные измерения положения
Для радарной настройки по ходу движения измерения области значений радара соответствуют продольному положению целевого автомобиля.
Продольные ошибки положения в предыдущем графике слева показывают-1метровое смещение между долготой, измеренной радаром и наземным положением истины цели. Это смещение указывает, что радар последовательно измеряет цель, чтобы быть ближе, чем положение, о котором сообщает наземная истина. Вместо того, чтобы аппроксимировать цель как одну точку на пробеле, радар моделирует физические размерности корпуса автомобиля. Обнаружения сгенерированы вдоль тыльной стороны автомобиля согласно разрешению радара в азимуте, области значений, и (когда включено) повышение. Это-1метровое смещение затем объяснено задним нависающим краем целевого автомобиля, который задает расстояние между тыльной стороной автомобиля и ее задней осью, где наземная ссылка истины расположена.
Радар моделируется с разрешением области значений 2,5 метров. Однако шум измерения, как сообщают, всего 0,25 метра в самой близкой точке и растет немного до 0,41 метров в самой дальней протестированной области значений. Реализованная точность датчика намного меньше, чем разрешение области значений радара. Поскольку радар моделирует зависимость ОСШ ошибок области значений нижняя граница Крамера-Рао, цели с большим радарным поперечным сечением (RCS) или цели, которые являются близко к датчику, будут иметь лучшую точность области значений, чем меньший или больше удаленных целей.
Эта зависимость ОСШ от шума измерения радара моделируется для каждой из измеренных размерностей радара: азимут, повышение, область значений и уровень области значений.
Боковые измерения положения
Для радарной настройки по ходу движения размерность, ортогональная к измерениям области значений радара (обычно называемый размерностью перекрестной области значений датчика), соответствует боковому положению целевого автомобиля.
Боковые ошибки положения от теста FCW в предыдущем графике справа показывают сильную зависимость от наземной области значений истины цели. Точность положения ответвления показаний радара всего 0,03 метра в близких расстояниях и до 2,6 метров, когда цель далека от радара.
Кроме того, несколько обнаружений появляются, когда цель - в областях значений меньше чем 30 метров. Так же ранее упомянутый, целевой автомобиль не моделируется как одна точка на пробеле, но радарная модель сравнивает размерности автомобиля с разрешением радара. В этом сценарии радар просматривает тыльную сторону целевого автомобиля. Когда тыльная сторона автомобиля охватывает больше чем одну из ячеек разрешения азимута радара, радар генерирует обнаружения от каждой ячейки разрешения, которую занимает цель.
Вычислите азимут, заполненный целевым автомобилем в тесте FCW, когда это будет в 30-метровом наземном диапазоне истины от автомобиля, оборудованного датчиком.
% Range from radar to target vehicle's rear side radarRange = 30-(radarSensor.SensorLocation(1)+tgtCar.RearOverhang); % Azimuth spanned by vehicle's rear side at 30 meters ground truth range width = tgtCar.Width; azSpan = rad2deg(width/radarRange)
azSpan = 4.0764
В наземной области значений истины 30 метров тыльная сторона автомобиля начинает охватывать азимут, больше, чем разрешение азимута радара 4 градусов. Поскольку азимут, заполненный тыльной стороной цели, превышает разрешение датчика, 3 разрешенных точки вдоль тыльной стороны автомобиля сгенерированы: один от центра тыльной стороны, один от левого края тыльной стороны, и один от правого края.
Создайте ведущий сценарий с двумя целевыми автомобилями (ведущий автомобиль и проезжающий мимо автомобиль), чтобы проиллюстрировать точность продольных и боковых скоростных измерений радара. Ведущий автомобиль помещается 40 метров перед автомобилем, оборудованным датчиком и перемещается с той же скоростью. Проезжающий мимо автомобиль запускается в левом маршруте вместе с автомобилем, оборудованным датчиком, передает автомобиль, оборудованный датчиком и объединяет в правильный маршрут только позади ведущего автомобиля. Этот маневр слияния генерирует продольные и боковые скоростные компоненты, позволяя вам сравнить точность датчика по этим двум измерениям.
Поскольку ведущий автомобиль непосредственно перед радаром, он имеет чисто продольный скоростной компонент. Проезжающий мимо автомобиль имеет скоростной профиль и с продольными и с боковыми скоростными компонентами. Эти компоненты изменение как автомобиль передают автомобиль, оборудованный датчиком и перемещаются в правильный маршрут позади ведущего автомобиля. Сравнение измеренных продольных и боковых скоростей радара целевых автомобилей к их наземным скоростям истины иллюстрирует способность радара наблюдать оба из этих скоростных компонентов.
% Create passing scenario leadDist = 40; % m speed = 50; % kph passSpeed = 70; % kph [scenario, egoCar] = helperCreateSensorDemoScenario('Passing', leadDist, speed, passSpeed);
Настройка радарных скоростных измерений
Радар генерирует скоростные измерения путем наблюдения Доплеровского сдвига частоты относительно энергии сигнала, возвращенной в каждую цель. Уровень, на котором область значений цели изменяется относительно радара, выведен непосредственно от этих Доплеровских частот. Возьмите радарный датчик, используемый в предыдущем разделе, чтобы измерить положение и сконфигурировать его, чтобы сгенерировать измерения уровня области значений. Эти измерения имеют разрешение 0,5 м/с, которое является типичным разрешением для автомобильного радара.
% Configure radar for range-rate measurements release(radarSensor); radarSensor.HasRangeRate = true; radarSensor.RangeRateResolution = 0.5; % m/s % Use actor profiles for the passing car scenario radarSensor.ActorProfiles = actorProfiles(scenario);
Используйте helperRunSensorDemoScenario
, чтобы моделировать движение эго и целевых автомобилей. Эта функция также собирает моделируемые метрики, как был ранее сделан для FCW ведущий сценарий.
snapTime = 6; % Simulation time to take snapshot for publishing
metrics = helperRunSensorDemoScenario(scenario, egoCar, radarSensor, snapTime);
Используйте helperPlotSensorDemoDetections
, чтобы построить продольные и боковые ошибки радара скорости как различие между измеренной скоростью, о которой сообщает радар и наземной истиной целевого автомобиля.
helperPlotSensorDemoDetections(metrics, 'velocity', 'time', [-25 25]); subplot(1,2,1); legend('Lead car error', 'Lead car 2\sigma noise', ... 'Pass car error', 'Pass car 2\sigma noise', 'Location', 'northwest');
Продольные скоростные измерения
Для радара по ходу движения продольная скорость тесно выравнивается к измерениям уровня области значений радара. Предыдущий график слева показывает продольные ошибки радара скорости для передающего сценария автомобиля. Поскольку радар может точно измерить продольную скорость от Доплеровского сдвига частоты, наблюдаемого в энергии сигнала, полученной от обоих автомобилей, ошибки скорости для обоих автомобилей (показавший точками) являются небольшими. Однако, когда проезжающий мимо автомобиль вводит поле зрения радара в 3 секунды, шум измерения проезжающего мимо автомобиля (показанный использование чисто желтых строк) является первоначально большим. Шум затем уменьшается до автомобильных слияний в правильный маршрут позади ведущего автомобиля в 7 секунд. Когда автомобиль передает автомобиль, оборудованный датчиком, продольная скорость проезжающего мимо автомобиля включает и радиальные и нерадиальные компоненты. Радар раздувает свой продольный скоростной шум, о котором сообщают, чтобы указать на его неспособность наблюдать нерадиальные скоростные компоненты проезжающего мимо автомобиля, когда он передает автомобиль, оборудованный датчиком.
Боковые скоростные измерения
Для радара по ходу движения измеренная боковая скорость соответствует нерадиальному скоростному компоненту цели. Предыдущий график справа показывает боковые погрешности измерения проезжающего мимо автомобиля скорости, которые отображаются как желтые точки. Неспособность радара измерить боковую скорость производит большую ошибку во время маневра изменения маршрута проезжающего мимо автомобиля между 5 и 7 секундами. Однако показания радара большой боковой скоростной шум (показавший сплошными линиями), чтобы указать, что это не может наблюдать скорость по боковому измерению.
Радар "видит" не физические размерности только объекта (длина, ширина и высота), но также и чувствителен к электрическому размеру объекта. Электрический размер объекта упоминается как его радарное поперечное сечение (RCS) и обычно дается в модулях квадратных метров децибела (dBsm). RCS объекта задает, как эффективно он отражает электромагнитную энергию, полученную от радара назад к датчику. Значение объекта RCS зависит от многих свойств, включая размер объекта, форму и вид материалов, которые это содержит. RCS объекта также зависит от частоты передачи радара. Это значение может быть большим для автомобилей и других металлических объектов. Для типичных автомобильных радарных частот около 77 ГГц автомобиль имеет номинальный RCS приблизительно 10 квадратных метров (10 dBsm). Однако неметаллические объекты обычно имеют намного меньшие значения.-8 dBsm является разумным RCS, чтобы сопоставить с пешеходом. Это значение соответствует эффективному электрическому размеру только 0,16 квадратных метров. В ADAS или автономной ведущей системе, радар должен смочь сгенерировать обнаружения на обоих из этих объектов.
FCW управление сценарием с пешеходом и автомобилем
Пересмотрите сценарий FCW от ранее путем добавления пешехода, стоящего на тротуаре около остановленного автомобиля. По длительности теста FCW расстояние от радара до целевого автомобиля и пешехода охватывает широкий спектр значений. Сравнение измеренного отношения сигнал-шум (SNR) радара, о котором сообщают для тестового автомобиля и пешеходных обнаружений через протестированные области значений, демонстрирует, как производительность обнаружения радара изменяется и с областью значений обнаружения и с типом объекта.
% Create FCW test scenario initialDist = 150; % m finalDist = 1; % m initialSpeed = 50; % kph brakeAccel = 3; % m/s^2 withPedestrian = true; [scenario, egoCar] = helperCreateSensorDemoScenario('FCW', initialDist, initialSpeed, brakeAccel, finalDist, withPedestrian);
Настройка радарной производительности обнаружения
Производительность обнаружения радара обычно задается вероятностью обнаружения цели ссылки, которая имеет RCS 0 dBsm в определенной области значений. Создайте радар дальний, который обнаруживает цель с RCS 0 dBsm в области значений 100 метров с вероятностью обнаружения 90%.
% Configure radar's long-range detection performance release(radarSensor); radarSensor.ReferenceRange = 100; % m radarSensor.ReferenceRCS = 0; % dBsm radarSensor.DetectionProbability = 0.9; % Use actor profiles for the passing car scenario radarSensor.ActorProfiles = actorProfiles(scenario);
Запустите сценарий, чтобы собрать радарные обнаружения и наземные данные об истине. Сохраните их для оффлайнового анализа.
snapTime = 8; % Simulation time to take snapshot for publishing
metrics = helperRunSensorDemoScenario(scenario, egoCar, radarSensor, snapTime);
Постройте ОСШ обнаружений и для целевого автомобиля и для пешехода.
helperPlotSensorDemoDetections(metrics, 'snr', 'range', [0 160]); legend('Vehicle', 'Pedestrian');
Этот график показывает эффект RCS объекта на способности радара "видеть" его. Обнаружения, соответствующие стационарному тестовому автомобилю, отображают красным. Обнаружения от пешехода отображают желтым.
Тестовый автомобиль обнаруживается к самой дальней области значений, включенной в этот тест, но обнаружение пешехода становится менее сопоставимыми близкими 70 метрами. Это различие между областью значений обнаружения двух объектов происходит, потому что тестовый автомобиль имеет намного больший RCS (10 dBsm), чем пешеход (-8 dBsm), который позволяет радару обнаружить автомобиль в более длинных областях значений, чем пешеход.
Тестовый автомобиль также обнаруживается в самой близкой области значений, включенной в этот тест, но радар прекращает генерировать обнаружения на пешеходе около 20 метров. В этом сценарии целевой автомобиль помещается непосредственно перед радаром, но пешеход смещается от угла обзора радара. Около 20 метров пешеход больше не в поле зрения радара и не может быть обнаружен радаром.
Пересмотрите этот сценарий для среднего автомобильного радара, чтобы проиллюстрировать, как производительность обнаружения радара затронута. Смоделируйте средний радар, чтобы обнаружить объект с RCS 0 dBsm в диапазоне ссылки 50 метров с вероятностью обнаружения 90%.
% Configure radar for a mid-range detection requirement release(radarSensor); radarSensor.ReferenceRange = 50; % m radarSensor.ReferenceRCS = 0; % dBsm radarSensor.DetectionProbability = 0.9;
Кроме того, чтобы улучшить обнаружение объектов в близких расстояниях, которые смещаются от угла обзора радара, азимутальное поле зрения среднего радара увеличено до 90 градусов. Разрешение азимута радара собирается в 10 градусов искать эту большую зону охвата более быстро.
% Increase radar's field of view in azimuth and elevation to 90 and 10 degrees respectively radarSensor.FieldOfView = [90 10]; % Increase radar's azimuth resolution radarSensor.AzimuthResolution = 10;
Запустите тест FCW с помощью среднего радара и ОСШ для обнаружений от целевого автомобиля и пешехода. Постройте ОСШ.
% Run simulation and collect detections and ground truth for offline analysis metrics = helperRunSensorDemoScenario(scenario, egoCar, radarSensor); % Plot SNR for vehicle and pedestrian detections helperPlotSensorDemoDetections(metrics, 'snr', 'range', [0 160]); legend('Vehicle', 'Pedestrian');
Для среднего радара обнаружения и автомобиля и пешехода ограничиваются более короткими областями значений. С радаром дальним автомобиль обнаруживается к полной тестовой области значений, но теперь обнаружение автомобиля становится ненадежным на уровне 95 метров. Аналогично, пешеход обнаруживается надежно только к 35 метрам. Однако расширенное поле зрения среднего радара в азимуте включает обнаружения на пешеходе к 10-метровому наземному диапазону истины от датчика, существенного улучшения в покрытии по радару дальнему.
Когда несколько целей занимают ячейку разрешения радара, о группе близко расположенных целей сообщают как одно обнаружение. Местоположение, о котором сообщают, является центроидом местоположения каждой цели содействия. Это слияние нескольких целей в одно обнаружение распространено в больших расстояниях, потому что область, покрытая разрешением азимута радара, растет с увеличивающимся расстоянием от датчика.
Создайте сценарий с двумя мотоциклами, перемещающимися бок о бок перед автомобилем, оборудованным датчиком. Этот сценарий показывает, как радар объединяет близко расположенные цели. Мотоциклы на расстоянии в 1,8 метра и перемещаются на 10 км/ч быстрее, чем автомобиль, оборудованный датчиком.
По длительности сценария, расстояния между мотоциклами и увеличениями автомобиля, оборудованного датчиком. Когда мотоциклы близко к радару, они занимают различные радарные ячейки разрешения. К концу сценария, после того, как увеличилось расстояние между радаром и мотоциклами, оба мотоцикла занимают те же радарные ячейки разрешения и объединены. Продольные и боковые ошибки положения радара показывают, когда этот переход происходит во время сценария.
duration = 8; % s speedEgo = 50; % kph speedMotorcycles = 60; % kph distMotorcycles = 25; % m [scenario, egoCar] = helperCreateSensorDemoScenario('Side-by-Side', duration, speedEgo, speedMotorcycles, distMotorcycles); % Create forward-facing long-range automotive radar sensor mounted on ego vehicle's front bumper radarSensor = radarDetectionGenerator(... 'SensorIndex', 1, ... 'SensorLocation', [egoCar.Wheelbase+egoCar.FrontOverhang 0], ... 'Height', 0.2, ... 'ActorProfiles', actorProfiles(scenario)); % Run simulation and collect detections and ground truth for offline analysis snapTime = 5.6; % Simulation time to take snapshot for publishing metrics = helperRunSensorDemoScenario(scenario, egoCar, radarSensor, snapTime);
Постройте продольные и боковые ошибки положения радара. Путем анализа ошибок положения, о которых сообщают для каждого мотоцикла, можно идентифицировать область значений, где радар больше не может отличать эти два мотоцикла как уникальные объекты.
helperPlotSensorDemoDetections(metrics, 'position', 'range', [-3 3], true); subplot(1,2,2); legend('Left error', 'Left 2\sigma noise', 'Right error', 'Right 2\sigma noise', 'Merged error', 'Merged 2\sigma noise');
Обнаружения сгенерированы сзади и вдоль внутренней стороны каждого мотоцикла. Красные ошибки от левого мотоцикла, желтые ошибки от правильного мотоцикла, и фиолетовые точки показывают обнаружения, которые объединены между этими двумя мотоциклами. Мотоциклы разделяются расстоянием 1,8 метров. Каждый мотоцикл моделируется, чтобы иметь ширину 0,6 метров и длину 2,2 метров. Внутренние стороны мотоциклов на расстоянии только в 1,2 метра.
Внутренние обнаружения стороны
Обнаружения сгенерированы от точек вдоль внутренней стороны каждого мотоцикла. Обнаружения запускаются в самом близком ребре и выбираются в области значений согласно разрешению области значений радара 2,5 метров и положению мотоцикла относительно радара. Когда мотоцикл занимает несколько ячеек разрешения области значений, самые близкие точки выборки в каждой уникальной ячейке области значений генерируют обнаружения. Местоположение контура ячейки области значений производит обнаружение, которое происходит или в среднем или далеком ребре внутренней стороны мотоцикла. Обнаружение от самого близкого ребра мотоцикла также сгенерировано. Это перемещение через границы ячейки разрешения области значений радара создает 3 полосы продольных ошибок положения, замеченных в предыдущем графике слева. Общая продольная степень, покрытая этими 3 полосами, составляет 2,2 метра, который соответствует длине мотоциклов.
Поскольку внутренние стороны мотоциклов разделяются только на 1,2 метра, эти выбранные точки все находятся в пределах общей азимутальной ячейки разрешения и объединены радаром. Центроид этих объединенных точек находится посреди этих двух мотоциклов. centroiding объединенных обнаружений производит боковое смещение со значением 0,9 метров, соответствуя половине расстояния между мотоциклами. В боковой диаграмме погрешностей положения справа, все объединенные обнаружения (отображенный фиолетовым) имеют это смещение.
Обнаружения тыльной стороны
Обнаружения, сгенерированные от тыльной стороны каждого мотоцикла, далее независимо (1,8 м), чем выбранные точки вдоль внутренних сторон (1,2 м).
В начале сценария мотоциклы в наземной области значений истины 25 метров от автомобиля, оборудованного датчиком. В этом близком расстоянии обнаружения от тыльных сторон лежат в различных азимутальных ячейках разрешения, и радар не объединяет их. Эти отличные обнаружения тыльной стороны показываются красными точками (оставленный мотоцикл) и желтыми точками (правильный мотоцикл) в предыдущих продольных и боковых диаграммах погрешностей положения. Для этих необъединенных обнаружений продольные ошибки положения от тыльных сторон смещаются задним нависающим краем мотоциклов (0,37 м). Боковые ошибки положения от тыльных сторон не показывают смещения. Этот результат сопоставим с ошибками положения, наблюдаемыми в сценарии FCW.
В то время как сценарий продолжает, расстояние между мотоциклами и радарными увеличениями, и область, заполненная ячейками разрешения радара, растет. Когда мотоциклы перемещаются вне наземной области значений истины 39 метров, обнаружения, сгенерированные от тыльных сторон слияния мотоциклов. Вычислите азимутальное разделение внешних ребер тыльных сторон.
% Range from radar to rear side of motorcycles motorcycle = scenario.Actors(2); radarRange = 39-(radarSensor.SensorLocation(1)+motorcycle.RearOverhang); % Azimuth separation between outside edges of rear sides lateralDist = 1.8+0.6; % Total lateral distance between outer sides azSep = rad2deg(lateralDist/radarRange)
azSep = 3.9367
В наземной области значений истины 39 метров внешние края тыльных сторон мотоциклов теперь лежат в той же ячейке разрешения азимута на 4 градуса и объединены. Вне этой области значений эти два мотоцикла появляются к радару как отдельный объект, и только объединенные обнаружения (отображенный фиолетовым) замечены в предыдущих графиках.
Этот пример продемонстрировал, как смоделировать вывод автомобильных радаров с помощью синтетических обнаружений. В частности, это представило как модель radarDetectionGenerator
:
Обеспечивает точные продольные измерения положения и скорости по большим расстояниям, но ограничил боковую точность в больших расстояниях
Генерирует несколько обнаружений от единой цели в близких расстояниях, но объединяет обнаружения от нескольких близко расположенных целей в одно обнаружение в больших расстояниях
Видит автомобили и другие цели с большими радарными поперечными сечениями по большим расстояниям, но ограничил производительность обнаружения для неметаллических объектов, таких как пешеходы