Fusion уровня дорожки данных о радаре и лидаре в Simulink

Автономные системы требуют, чтобы точная оценка их среды поддержала принятие решения, планирование и управление. Датчики с высоким разрешением, такие как радар и лидар часто используются в автономных системах, чтобы помочь по оценке среды. Эти датчики обычно выводят дорожки. Вывод дорожек вместо обнаружений и плавление дорожек вместе децентрализованным способом предоставляют несколько преимуществ, включая низкие ложные сигнальные уровни, более высокую целевую точность оценки, низкое требование пропускной способности и низкие вычислительные затраты. Этот пример показывает вам, как к отслеживаемым объектам от измерений радара и датчика лидара и как плавить их использующий схему сплава уровня дорожки в Simulink®. Вы обрабатываете радарные измерения с помощью Гауссовой Плотности Гипотезы Вероятности Смеси (GM-PHD) средство отслеживания и измерения лидара с помощью средства отслеживания Объединенной вероятностной ассоциации данных (JPDA). Вы далее плавите эти дорожки с помощью схемы сплава уровня дорожки. Пример сопровождает Fusion Уровня Дорожки Данных о Радаре и Лидаре (Sensor Fusion and Tracking Toolbox) пример MATLAB®.

Обзор модели

load_system('TrackLevelFusionOfRadarAndLidarDataInSimulink');
set_param('TrackLevelFusionOfRadarAndLidarDataInSimulink','SimulationCommand','update');
open_system('TrackLevelFusionOfRadarAndLidarDataInSimulink');

Модель имеет шесть подсистем, каждый реализующий часть алгоритма.

  • Сценарий и симуляция датчика

  • Радарный алгоритм отслеживания

  • Лоцируйте алгоритм отслеживания

  • Отследите Fusion уровня

  • Анализ эффективности

  • Визуализация

Сценарий и симуляция датчика

Запись сценария для этого примера получена из сценария, описанного в Fusion Уровня Дорожки Данных о Радаре и Лидаре (Sensor Fusion and Tracking Toolbox) пример MATLAB. Блок Scenario Reader читает записанный заранее файл сценария и генерирует агентов и данные о положении автомобиля, оборудованного датчиком как Simulink.Bus (Simulink) объекты. В этом сценарии автомобиль, оборудованный датчиком смонтирован с четырьмя 2D радарными датчиками. Передние и задние радарные датчики имеют поле зрения 45 градусов. Левые и правые радарные датчики имеют поле зрения 150 градусов. Каждый радар имеет разрешение 6 градусов в области азимута и 2,5 метров в области значений. Автомобиль, оборудованный датчиком также смонтирован с одним 3-D датчиком лидара с полем зрения 360 градусов в области азимута и 40 градусов в области вертикального изменения. Лидар имеет разрешение 0,2 градусов в области азимута и 1,25 градусов в области вертикального изменения (32 канала вертикального изменения). Блок Radar Detection Generator генерирует радарные обнаружения, и блок Lidar Point Cloud Generator генерирует облака точек. Обнаружения от всех четырех радарных датчиков группируются с блоком Detection Concatenation, и блок Digital Clock используется, чтобы симулировать время. Настройки датчика и симулированные данные о датчике визуализируются в анимации, которая следует. Заметьте, что радары имеют более высокое разрешение, чем объекты и поэтому возвращают несколько измерений на объект. Также заметьте, что лидар взаимодействует с агентами, а также дорожным покрытием, чтобы возвратить несколько точек.

Радарный алгоритм отслеживания

Радары обычно имеют более высокое разрешение, чем объекты и возвращают несколько обнаружений на объект. Обычные средства отслеживания, такие как Глобальный самый близкий сосед (GNN) и Объединенная вероятностная ассоциация данных (JPDA) принимают, что датчики возвращают самое большее одно обнаружение на объект на скан. Поэтому обнаружения от датчиков с высоким разрешением должны или кластеризироваться прежде, чем обработать их с обычными средствами отслеживания или должны быть обработаны с помощью расширенных объектных средств отслеживания. Расширенные объектные средства отслеживания не требуют предварительной кластеризации обнаружений. Обычно расширенные объектные средства отслеживания предлагают лучшую оценку объектов, поскольку они обрабатывают кластеризацию и ассоциацию данных одновременно.

В этом примере вы используете Гауссову плотность гипотезы вероятности смеси (GM-PHD) расширенное объектное средство отслеживания для радарного отслеживания. Блок средства отслеживания берет обнаружения, время предсказания, и настройки датчика, как введено и выходные параметры подтвердили дорожки как Simulink.Bus Объект (Simulink). Обнаружения от радара предварительно обрабатываются, чтобы включать информацию о INS автомобиля, оборудованного датчиком в Радарное Обнаружение, Предварительно обрабатывающее функцию MATLAB (Simulink) Блок. Блок Sensor Configuration Reader предоставляет Настройку Датчика блоку средства отслеживания. Блок реализован при помощи блока MATLAB System (Simulink). Код для этого блока задан в HelperSourceConfigReader класс.

Эта визуализация показывает радарное отслеживание на одном временном шаге. Заметьте, что радарные датчики сообщают о нескольких обнаружениях на объект, и средство отслеживания GM-PHD формирует двумерные прямоугольные дорожки, соответствующие каждому объекту.

Лоцируйте алгоритм отслеживания

Датчики лидара имеют высокие разрешающие способности, и каждый скан от датчика содержит много точек, обычно известных как облако точек. Это необработанные данные должно быть предварительно обработано, чтобы извлечь объекты. Предварительная обработка выполняется с помощью основанного на RANSAC плоского алгоритма подбора, и ограничительные рамки адаптированы с помощью Евклидового алгоритма кластеризации расстояния. Для получения дополнительной информации об алгоритме, обратитесь к Транспортным средствам Дорожки Используя Лидар: От Облака точек до Списка Дорожек (Sensor Fusion and Tracking Toolbox) пример.

Блок Bounding Box Detector реализован с помощью блока MATLAB System (Simulink). Код для этого блока задан в классе помощника, HelperBoundingBoxDetectorBlk. Блок принимает местоположения облака точек и время предсказания, как введено и выходные обнаружения ограничительной рамки, соответствующие информация о сегментации и препятствия. Обнаружения обрабатываются с помощью обычного средства отслеживания JPDA, сконфигурированного с фильтром взаимодействующей многоуровневой модели (IMM). Фильтр IMM реализуется с помощью функции помощника helperInitIMMUKFFilter, который задан как параметр функции инициализации Фильтра блока. Обнаружения от датчика лидара предварительно обрабатываются, чтобы включать информацию о INS автомобиля, оборудованного датчиком в блок Lidar Detection Preprocessing MATLAB Function (Simulink).

Блок Calculate Detectability вычисляет Detectable TrackIDs введите для средства отслеживания, и выводит массив 2D столбца. Первый столбец представляет TrackIDs дорожек, и второй столбец задает их вероятность обнаружения детектором ограничительной рамки и датчиком. Блок реализован с помощью блока MATLAB Function (Simulink).

Эта визуализация показывает отслеживание лидара на одном временном шаге. Блок Bounding Box Detector генерирует обнаружения от облака точек, и средство отслеживания JPDA формирует 3D дорожки кубоида, соответствующие каждому объекту.

Fusion уровня дорожки

Алгоритм сплава дорожки реализован с помощью блока Track-To-Track Fuser. Блок занимает время предсказания, прямоугольные радарные дорожки, и дорожки лидара кубоида, как введено и выходные параметры плавили дорожки. Это использует традиционный от дорожки к дорожке основанная на ассоциации схема сплава и присвоение GNN, чтобы создать одну гипотезу. Блок Track Concatenation комбинирует дорожки из обоих источников и генерирует шину одноколейного пути. Исходная настройка термофиксатора для радара и лидара установлена с помощью SourceConfig переменная через PreLoadFcn 'callback'. Смотрите Коллбэки Модели (Simulink) для получения дополнительной информации о функциях обратного вызова. Алгоритм сплава состояния для этого примера реализован в helperRadarLidarFusionFunction функция помощника и заданный как 'custom fusion function' свойство.

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

Анализ эффективности

В этом примере вы оцениваете эффективность каждого алгоритма с помощью Обобщенного Оптимального Присвоения Подшаблона (GOSPA) метрика. Метрика GOSPA стремится оценивать эффективность системы слежения со скалярной стоимостью.

Метрика GOSPA может быть вычислена следующим уравнением

$GOSPA = [\sum_{i=0}^{m}(min(d_{b},c))^{p} + \frac{c^{p}}{\alpha} (n-m)]^{1/p}$

то, где$m$ количество основных истин,$n (n>=m)$ является количеством предполагаемых дорожек,$c$ порог расстояния сокращения,$d_{b}$ основное расстояние между дорожкой и истиной, вычисленной функцией расстояния, заданной в Distance свойство,$p$ является порядком метрики и$\alpha$ является альфа-параметром метрики, заданной от маски блока.

Нижнее значение метрики указывает на лучшую эффективность алгоритма отслеживания. Использовать метрику GOSPA с пользовательскими моделями движения как та использовало в этом примере, вы устанавливаете Distance свойство к custom и задайте функцию расстояния между дорожкой и ее связанной основной истиной. Эти функции расстояния заданы в helperRadarDistance и helperLidarDistance файлы помощника. Блок Ground Truth Reader обеспечивает данные об истине на каждом временном шаге. Блок реализован с помощью блока MATLAB System (Simulink), и код для этого блока задан в HelperGroundTruthReader класс. Наконец, счет GOSPA к радарному отслеживанию, отслеживанию лидара и алгоритмам сплава дорожки группируется.

Визуализация

Блок Visualization реализован с помощью блока MATLAB System (Simulink). Код для этого блока задан в классе помощника helperLidarRadarTrackFusionDisplayBlock. Блок использует RunTimeObject параметр блоков, чтобы отобразить их выводы. Смотрите доступ к Данным о Блоке В процессе моделирования (Simulink) для получения дополнительной информации о том, как получить доступ, блокируют выходные параметры в процессе моделирования.

Эта анимация показывает целому запуску каждые три временных шага. Каждые три системы слежения (радар, лидар и сплав уровня дорожки) смогли отследить все четыре транспортных средства в сценарии, не подтверждая ложных дорожек.

Метрика GOSPA визуализируется с помощью блока scope. Ось X на рисунке, который следует, представляет время, и ось Y представляет счет GOSPA. Каждый модуль на оси X представляет 10 временных шагов в сценарии. Точность локализации уровня дорожки каждого средства отслеживания может быть количественно оценена с метрикой GOSPA на каждом временном шаге. Нижнее значение указывает на лучшую точность отслеживания. Как не было никаких пропущенных целей или ложных дорожек, метрика фиксирует ошибки локализации, следующие из оценки состояния каждого транспортного средства. Каждый компонент метрики GOSPA может также выбираться как блок выход и визуализироваться отдельно.

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

close_system('TrackLevelFusionOfRadarAndLidarDataInSimulink');

Сводные данные

В этом примере вы изучили, как отследить радарные измерения с помощью расширенного объектного средства отслеживания с двумерной прямоугольной моделью, как отследить измерения лидара с помощью обычного средства отслеживания JPDA с 3D моделью кубоида, и как настроить алгоритм сплава уровня дорожки для плавления дорожек от датчиков радара и лидара в Simulink. Вы также изучили, как оценить эффективность алгоритма отслеживания с помощью Обобщенной Оптимальной метрики Присвоения Подшаблона. Результаты симуляции показывают, что отслеживание путем плавления дорожек от радара и лидара более точно, чем отслеживание каждым отдельным датчиком.

Похожие темы