exponenta event banner

Слияние радиолокационных данных и данных Лидара на уровне отслеживания в Simulink

Автономные системы требуют точной оценки их окружения для поддержки принятия решений, планирования и контроля. Датчики высокого разрешения, такие как радар и лидар, часто используются в автономных системах для облегчения оценки окружающей среды. Эти датчики обычно выводят дорожки. Вывод дорожек вместо обнаружений и слияние дорожек вместе децентрализованным образом обеспечивают несколько преимуществ, включая низкую частоту ложных аварийных сигналов, более высокую точность целевой оценки, низкую потребность в полосе пропускания и низкие вычислительные затраты. В этом примере показано, как отслеживать объекты из измерений радара и лидарного датчика и как сплавлять их с помощью схемы слияния на уровне дорожки в Simulink ®. Радиолокационные измерения обрабатываются с помощью GM-PHD (Gaussian Mixe Bulderability Topethesis Density, GM-PHD) трекера, а лидарные измерения - с помощью JPDA (Joint Probabilistic Data Association, JPDA) трекера. Эти дорожки далее сплавляются с помощью схемы слияния на уровне дорожек. Пример полностью соответствует примеру Track-Level Fusion of Radar и Lidar Data (Sensor Fusion and Tracking Toolbox) MATLAB ®.

Обзор модели

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

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

  • Моделирование сценариев и датчиков

  • Алгоритм радиолокационного слежения

  • Алгоритм отслеживания Lidar

  • Слияние уровней отслеживания

  • Анализ производительности

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

Моделирование сценариев и датчиков

Запись сценария для этого примера записывается из сценария, описанного в примере MATLAB Track-Level Fusion of Radar и Lidar Data (Sensor Fusion and Tracking Toolbox). Блок чтения сценариев считывает предварительно записанный файл сценария и генерирует актёров и данные позиции эго-транспортного средства как Simulink.Bus (Simulink) объекты. В этом сценарии эго-транспортное средство монтируется с четырьмя 2-D радиолокационными датчиками. Передние и задние радиолокационные датчики имеют поле зрения 45 градусов. Левый и правый радиолокационные датчики имеют поле зрения 150 градусов. Каждая РЛС имеет разрешение 6 градусов по азимуту и 2,5 метра по дальности. Эго-транспортное средство также установлено с одним 3-D лидарным датчиком с полем обзора 360 градусов по азимуту и 40 градусов по высоте. Лидар имеет разрешение 0,2 градуса по азимуту и 1,25 градуса по отметке (32 канала возвышения). Блок генератора радиолокационного обнаружения генерирует радиолокационные обнаружения, а блок генератора облака точек Лидара генерирует облака точек. Детекторы от всех четырех радиолокационных датчиков группируются вместе с блоком конкатенации обнаружения, и блок цифровых часов используется для моделирования времени. Конфигурации датчиков и смоделированные данные датчиков визуализируются в следующей анимации. Обратите внимание, что радары имеют более высокое разрешение, чем объекты, и поэтому возвращают несколько измерений на объект. Также обратите внимание, что лидар взаимодействует с актерами, а также дорожным покрытием, возвращая несколько точек.

Алгоритм радиолокационного слежения

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

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

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

Алгоритм отслеживания Lidar

Датчики Lidar имеют высокую разрешающую способность, и каждое сканирование датчика содержит множество точек, обычно известных как облако точек. Эти необработанные данные должны быть предварительно обработаны для извлечения объектов. Предварительная обработка выполняется с использованием алгоритма подгонки плоскости на основе RANSAC, а ограничивающие рамки устанавливаются с использованием алгоритма кластеризации расстояний на основе евклидова. Дополнительные сведения об алгоритме см. в примере Track Vehicles Using Lidar: From Point Cloud to Track List (Sensor Fusion and Tracking Toolbox).

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

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

Эта визуализация показывает отслеживание лидара за один шаг времени. Блок «Детектор ограничивающих рамок» генерирует обнаружения из облака точек, а трекер JPDA формирует трехмерные кубовидные дорожки, соответствующие каждому объекту.

Слияние на уровне отслеживания

Алгоритм слияния дорожек реализуется с использованием блока Fuser Track-To-Track. Блок принимает время прогнозирования, прямоугольные радиолокационные дорожки и кубовидные лидарные дорожки в качестве входных и выходных конденсированных дорожек. Он использует традиционную схему слияния на основе ассоциации дорожек и назначение GNN для создания единой гипотезы. Блок конкатенации гусениц объединяет гусеницы из обоих источников и генерирует одноколейную шину. SourceConfig через PreLoadFcn обратный вызов. Дополнительные сведения о функциях обратного вызова см. в разделе Обратные вызовы модели (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 вспомогательные файлы. Блок «Считыватель истинности земли» предоставляет данные истинности на каждом шаге времени. Блок реализован с использованием блока MATLAB System (Simulink), и код для этого блока определен в HelperGroundTruthReader класс. Наконец, оценка GOSPA для радиолокационного слежения, лидарного слежения и алгоритмов слияния дорожек сгруппирована вместе.

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

Блок визуализации реализуется с использованием блока системы MATLAB (Simulink). Код для этого блока определен в классе помощника helperLidarRadarTrackFusionDisplayBlock. Блок использует RunTimeObject параметр блоков для отображения их выходов. Дополнительные сведения о доступе к выводам блоков во время моделирования см. в разделе Доступ к данным блоков во время моделирования (Simulink).

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

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

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

close_system('TrackLevelFusionOfRadarAndLidarDataInSimulink');

Резюме

В этом примере вы научились отслеживать радиолокационные измерения с помощью расширенного объектного трекера с двумерной прямоугольной моделью, отслеживать лидарные измерения с помощью обычного JPDA-трекера с трехмерной кубоидной моделью и как настроить алгоритм слияния на уровне дорожки для сплавления дорожек с радиолокационных и лидарных датчиков в Simulink. Также вы научились оценивать производительность алгоритма отслеживания с помощью метрики Generalized Optimum Subpattern Assignment. Результаты моделирования показывают, что отслеживание путем сплавления гусениц с радара и лидара является более точным, чем отслеживание каждым отдельным датчиком.

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