exponenta event banner

Слияние датчиков переднего транспортного средства

В этом примере показано, как моделировать слияние и отслеживание датчиков в 3D среде моделирования для автоматических приложений вождения. В примере также показано, как использовать метрики производительности для оценки производительности трекера в среде с разомкнутым контуром.

Введение

Автономное транспортное средство использует множество датчиков, включая камеры и радары, для восприятия окружающей среды. Однако каждый датчик имеет свои ограничения. Слияние информации от различных датчиков может сделать восприятие транспортного средства более надежным. Слияние и отслеживание датчиков является центральным элементом процесса принятия решений в различных системах, включая отслеживание полосы движения и предупреждение о столкновении в прямом направлении. Используя модель слияния датчиков и отслеживания в этом примере, можно выполнить тесты на критических сценариях, которые в действительности трудно реализовать. В этом примере выполняются следующие шаги.

  1. Изучить модель испытательного стенда - модель содержит датчики, алгоритм слияния и отслеживания датчиков и метрики для оценки функциональности. Эквивалентная сцена Unreal Engine ® используется для моделирования обнаружений с помощью радиолокационного датчика и датчика зрения.

  2. Настройка датчиков и среды - настройка сценария вождения, включающего эго-автомобиль с камерой и радиолокационным датчиком. Постройте график зоны покрытия каждого датчика с использованием области действия птичьего глаза.

  3. Объединение и отслеживание датчиков - объединение информации с двух датчиков с помощью совместного многообъектного трекера вероятностных данных (JPDA) для отслеживания объектов вокруг эго-транспортного средства.

  4. Оценка производительности трекера - используйте обобщенную метрику назначения оптимального податтерна (GOSPA) для оценки производительности трекера.

  5. Моделирование модели тестового стенда и анализ результатов - модель тестового стенда можно настроить для различных сценариев. По умолчанию модель конфигурирует сценарий, в котором целевые транспортные средства приближаются друг к другу перед эго-транспортным средством на трех смежных полосах и создают проблемы для системы слежения. Моделирование модели и анализ компонентов метрики GOSPA для понимания производительности трекера.

В этом примере проверяется алгоритм слияния и отслеживания датчиков в среде моделирования 3D с использованием Unreal Engine ® от Epic Games ®. Для среды моделирования вождения Unreal Engine требуется 64-разрядная платформа Windows ®.

if ~ispc
    error(['3D simulation is only supported on Microsoft', char(174), ' Windows', char(174), '.']);
end

Изучение модели испытательного стенда

Чтобы изучить модель испытательного стенда, откройте рабочую копию файлов примеров проекта. MATLAB ® копирует файлы в папку примера, чтобы их можно было редактировать.

addpath(fullfile(matlabroot, 'toolbox', 'driving', 'drivingdemos'));
helperDrivingProjectSetup('FVSFTestBench.zip', 'workDir', pwd);

Откройте модель испытательного стенда.

open_system('ForwardVehicleSensorFusionTestBench');

При открытии этой модели запускается helperSLForwardVehicleSensorFusionSetup , который инициализирует сценарий с помощью drivingScenario в базовой рабочей области. Он также конфигурирует параметры слияния и отслеживания датчиков, параметры транспортного средства и сигналы шины Simulink ®, необходимые для определения входов и выходов для ForwardVehicleSensorFusionTestBench модель. Модель испытательного стенда содержит следующие подсистемы:

  • Датчики и среда - эта подсистема определяет сцену, транспортные средства и датчики, используемые для моделирования.

  • Figure Vehicle Sensor Fusion - эта подсистема реализует алгоритмы кластеризации радаров, конкатенации обнаружения, слияния и слежения.

  • Оценить метрики трекера - эта подсистема оценивает производительность трекера с помощью метрики GOSPA между набором дорожек и их истиной.

Настройка датчиков и среды

Подсистема датчиков и окружающей среды настраивает дорожную сеть, размещает транспортные средства и синтезирует датчики. Пример использования аналогичной подсистемы см. в разделе Highway Lane Following. Откройте подсистему датчиков и окружающей среды.

open_system('ForwardVehicleSensorFusionTestBench/Sensors and Environment');

Подсистема включает в себя два блока датчиков: Simulation 3D Вероятностный радар и Simulation 3D Генератор обнаружения зрения. Параметры этих моделей задаются helperSLForwardVehicleSensorFusionSetup при открытии модели испытательного стенда. Эти блоки генерируют обнаружения из среды моделирования 3D.

  • Блок Simulation 3D Probabilistic Radar генерирует обнаружения объектов на основе статистической модели. Этот датчик устанавливается на эго-транспортном средстве со смещением, указанным Position и Rotation параметры radar структура.

disp(radar');
        FieldOfView: [40 5]
    DetectionRanges: [1 100]
           Position: [3.7290 0 0.8000]
      PositionSim3d: [2.4240 0 0.8000]
           Rotation: [0 0 0]

  • Блок генератора имитационного 3D визуального обнаружения генерирует сигналы обнаружения из измерений камеры, производимых датчиком зрения, установленным на эго-транспортном средстве со смещением, указанным Position и Rotation параметры camera структура.

disp(camera');
             NumColumns: 1024
                NumRows: 768
            FieldOfView: [45 45]
              ImageSize: [768 1024]
         PrincipalPoint: [512 384]
            FocalLength: [512 512]
               Position: [1.8750 0 1.2000]
          PositionSim3d: [0.5700 0 1.2000]
               Rotation: [0 0 0]
        DetectionRanges: [6 50]
    LaneDetectionRanges: [6 30]
       MeasurementNoise: [3×3 double]
     MinObjectImageSize: [10 10]

Область видимости птичьего глаза отображает покрытия датчиков с помощью кубовидного представления. Зона действия РЛС и обнаружения выделены красным цветом. Зона видимости и обнаруженные сигналы выделены синим цветом.

Выполнить слияние и отслеживание датчиков

Модель Fusion для датчика прямого транспортного средства - это эталонная модель, которая обрабатывает визуальное и радиолокационное обнаружение и генерирует положение и скорость трасс относительно эго-транспортного средства. Откройте эталонную модель Fusion для датчика транспортного средства.

open_system('ForwardVehicleSensorFusion');

Эталонная модель Fusion с передовым датчиком транспортного средства содержит следующие блоки:

  • Кластеризация обнаружения - кластер множественных радиолокационных обнаружений, поскольку трекер ожидает не более одного обнаружения на объект на датчик.

  • Конкатенация обнаружения (Detection Concatenation) - Совмещение визуального и радиолокационного обнаружения на одной выходной шине.

  • JPDA Tracker - выполнение слияния и управление дорожками стационарных и движущихся объектов.

Блок JPDA Tracker является ключевым блоком эталонной модели Forward Vehicle Sensor Fusion. Трекер сплавляет информацию, содержащуюся в конкатенированных обнаружениях, и отслеживает объекты вокруг эго-транспортного средства. Трекер выводит список подтвержденных дорожек. Эти дорожки обновляются во время прогнозирования с помощью цифровых часов в подсистеме датчиков и окружающей среды.

Оценка производительности трекера

Подсистема оценки метрик трекера вычисляет различные метрики для оценки производительности трекера. Откройте подсистему оценки метрик Tracker.

open_system('ForwardVehicleSensorFusionTestBench/Evaluate Tracker Metrics');

Чтобы оценить производительность трекера, необходимо удалить актеров, которые находятся вне зоны покрытия датчиков, из информации о истинности земли. Для этой цели подсистема использует блок «Фильтр в пределах зоны действия» для фильтрации только тех субъектов, которые находятся в зоне действия датчиков.

Подсистема содержит метрический блок GOSPA, который вычисляет следующие метрики:

  • Метрика GOSPA - эта метрика измеряет расстояние между набором дорожек и их наземными истинами и объединяет точность назначения и оценки состояния в одно значение стоимости.

  • Ошибка локализации - эта ошибка указывает точность оценки состояния. Более высокое значение указывает на то, что назначенные дорожки неправильно оценивают состояние истин.

  • Ошибка пропущенного целевого объекта - эта ошибка указывает на наличие пропущенных целевых объектов. Более высокое значение указывает на то, что целевые объекты не отслеживаются.

  • Ошибка ложной дорожки - эта ошибка указывает на наличие ложных дорожек.

Моделирование модели испытательного стенда и анализ результатов

Во время моделирования можно визуализировать сценарий как в окне моделирования 3D, так и с использованием области действия «птичий глаз».

Чтобы открыть область, щелкните Область птичьего глаза (Bird-Eye Scope) в разделе Результаты проверки (Review Results) на панели инструментов Simulink. Затем щелкните Найти сигналы (Find Signals), чтобы найти сигналы, которые могут отображаться в области.

Сконфигурируйте ForwardVehicleSensorFusionTestBench модель для моделирования scenario_LFACC_03_Curve_StopnGo сценарий. Этот сценарий содержит шесть транспортных средств, включая эго-транспортное средство. Функция сценария также определяет их траектории. В этом сценарии эго-транспортное средство имеет ведущее транспортное средство в своей полосе. В полосе справа от эго-транспортного средства целевые транспортные средства, обозначенные зеленым и синим цветом, движутся в одном направлении. В полосе слева от эго-транспортного средства в обратном направлении едут целевые транспортные средства, обозначенные желтым и фиолетовым цветом.

helperSLForwardVehicleSensorFusionSetup("scenarioFcnName","scenario_LFACC_03_Curve_StopnGo");

Смоделировать модель испытательного стенда.

sim('ForwardVehicleSensorFusionTestBench');
          ActorName: 'SimulinkVehicle3'
      ObjectClassID: 0
            ActorID: 3
           Position: [216.1989 38.4191 0]
           Velocity: [0 0 0]
           Rotation: [0 0 -2.6542]
    AngularVelocity: [0 0 176.6253]

          ActorName: 'SimulinkVehicle6'
      ObjectClassID: 0
            ActorID: 4
           Position: [37.4850 4.5686 0]
           Velocity: [0 0 0]
           Rotation: [0 0 0.0324]
    AngularVelocity: [0 0 -29.4416]

          ActorName: 'SimulinkVehicle2'
      ObjectClassID: 0
            ActorID: 5
           Position: [49.8752 1.1827 0]
           Velocity: [0 0 0]
           Rotation: [0 0 0.0521]
    AngularVelocity: [0 0 -28.3173]

          ActorName: 'SimulinkVehicle5'
      ObjectClassID: 0
            ActorID: 6
           Position: [5.4562 3.9658 0]
           Velocity: [0 0 0]
           Rotation: [0 0 5.7500e-04]
    AngularVelocity: [0 0 -31.2669]

          ActorName: 'SimulinkVehicle4'
      ObjectClassID: 0
            ActorID: 7
           Position: [250.7064 60.2103 0]
           Velocity: [0 0 0]
           Rotation: [0 0 -2.5111]
    AngularVelocity: [0 0 -175.1727]

    NumLaneBoundaries: 5
       LaneBoundaries: [1×5 struct]

Simulation (Моделирование) открывает окно 3D Simulation (Моделирование), в котором отображается сценарий, но не отображается обнаружение или покрытие датчика. Используйте окно Bird 's-Eye Scope для визуализации эго-актера, целевых актеров, покрытия датчиков и обнаружений, а также подтвержденных дорожек. Чтобы визуализировать только данные датчика, отключите окно 3D Simulation во время моделирования, очистив Display 3D simulation window в блоке «Моделирование» 3D «Конфигурация сцены».

Во время моделирования модель выводит метрику GOSPA и ее компоненты. Модель регистрирует метрики с подтвержденными дорожками и информацией об истинности основания в базовой переменной рабочей области. logsout. Можно распечатать значения в logsout с помощью helperPlotForwardVehicleSensorFusionResults функция.

helperPlotForwardVehicleSensorFusionResults(logsout);

Графики показывают, что ошибка локализации в основном учитывает метрику GOSPA. Обратите внимание, что пропущенный целевой компонент первоначально начинается с более высокого значения из-за задержки установления трекера и через некоторое время падает до нуля. Другие пики на пропущенной целевой кривой возникают из-за той же задержки, когда желтый и фиолетовый целевые транспортные средства входят в зону покрытия датчиков.

Изучение других сценариев

Вы можете использовать процедуру в этом примере, чтобы исследовать эти другие сценарии, которые совместимы с ForwardVehicleSensorFusionTestBench :

  • scenario_LFACC_01_Curve_DecelTarget

  • scenario_LFACC_02_Curve_AutoRetarget

  • scenario_LFACC_03_Curve_StopnGo [По умолчанию]

  • scenario_LFACC_04_Curve_CutInOut

  • scenario_LFACC_05_Curve_CutInOut_TooClose

  • scenario_LFACC_06_Straight_StopandGoLeadCar

  • scenario_FVSF_01_Curve_FourVehicles

  • scenario_FVSF_02_Straight_FourVehicles

  • scenario_FVSF_03_Curve_SixVehicles

Используйте эти дополнительные сценарии для анализа ForwardVehicleSensorFusionTestBench в различных условиях.

Заключение

В этом примере показано, как моделировать и оценивать производительность компонента слияния датчиков и отслеживания для автоматизированного применения вождения. Эта модель на уровне компонентов позволяет выполнить стресс-тестирование конструкции в виртуальной среде с разомкнутым контуром и помогает в настройке параметров трекера путем оценки показателей GOSPA. Следующим логическим шагом является интеграция этой модели уровня компонентов в замкнутую систему, такую как следующая полоса движения.

См. также

| | | |

Связанные темы