Track-To-Track Fuser

Слияние трека и трека

  • Библиотека:
  • Sensor Fusion and Tracking Toolbox/Мультиобъектные алгоритмы отслеживания

  • Track-to-Track-Fuser

Описание

The Track-to-Track Fuser Simulink® Блок является многоисточником, многообъектным фузером уровня дорожки, который использует глобальную ассоциацию ближайшего соседа (GNN) для поддержания одной гипотезы о треках, которые он плавно соединяет. Входами для блока являются треки из источников, которые уже отслеживают несколько объектов, таких как мультиобъекты трекера или другие блоки трекера. Входные дорожки называются source или local tracks, в то время как дорожки, поддерживаемые в фузере, называются central tracks.

Порты

Вход

расширить все

Список треков, заданный как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:

ОбластьОписание
NumTracksКоличество дорожек
TracksМассив путевых структур

Поля структуры дорожки показаны в Track Structure.

Отследите время обновления, заданное как действительный скаляр в секундах. Fuser обновляет все треки к этому времени. Время обновления должно увеличиваться с каждым вызовом блока. Время обновления должно быть как минимум таким же большим, как и самое большое UpdateTime задается в Tracks входном порте.

Если этот порт не включен, время обновления определяется временем симуляции, управляемым Simulink.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting задайте Prediction time source Input port.

Исходный список строения, заданный как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:

ОбластьОписание
NumConfigurationsКоличество исходных строений, отличных от конфигурации по умолчанию. Значение поля должно быть меньше значения, заданного в параметре Maximum number of source configurations.
ConfigurationsМассив структур исходного строения.

Поля исходной структуры строения:

Имя поляОписание
SourceIndexУникальный индекс для исходной системы, заданный как положительное целое число.
IsInternalSourceУкажите, является ли источник внутренним для fuser, задайте как true или false. Внутренний источник является источником, который fuser непосредственно выдает треки из, даже если треки не сообщаются самостоятельно. Для примера, если фюзер находится на уровне транспортного средства, радар слежения, установленный на связанном транспортном средстве, рассматривается как внутренний, в то время как другое транспортное средство, которое сообщает о сросшихся путях, рассматривается как внешнее.
IsInitializingCentralTracksУкажите, может ли источник инициализировать центральную дорожку в фузере, задайте как true или false. Центральная дорожка является дорожкой, поддерживаемой в фузере.
LocalToCentralTransformFcnФункция для преобразования дорожки из локального в центральное пространство состояний, заданная как указатель на функцию. Для примера, @track(track) не выполняет преобразования.
CentralToLocalTransformFcnФункция для преобразования дорожки из центрального в локальное пространство состояний, заданная как указатель на функцию. Для примера, @track(track) не выполняет преобразования.

Зависимости

Чтобы включить этот порт, на вкладке Fuser Management выберите параметр Update source configurations with time.

Отслеживайте параметры состояния, заданные как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:

ОбластьОписание
NumParametersКоличество параметров, не являющихся параметрами состояния по умолчанию, заданное в виде неотрицательного целого числа
ParametersМассив структур параметров состояния

Блок использует значение Parameters поле для StateParameters поле сгенерированных дорожек. Можно использовать эти параметры, чтобы задать систему координат, в которой трек сообщается, или другие желательные атрибуты сгенерированных треков.

Например, можно использовать следующую структуру, чтобы задать прямоугольную систему координат, начальное положение которой находится в [10 10 0] метров, начальная скорость которых [2 -2 0] метров в секунду относительно системы координат сценария.

Имя поляЗначение
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Зависимости

Чтобы включить этот порт, на вкладке Tracker Configuration выберите параметр Update track state parameters with time.

Выход

расширить все

Подтвержденные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур дорожки длиной, заданной параметром Maximum number of central tracks. Только первый NumTracks из них являются фактическими треками.

Поля структуры дорожки показаны в Track Structure.

Дорожка подтверждается, если она удовлетворяет порогу, заданному в параметре Confirmation threshold на вкладке Tracks .

Ориентировочные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Дорожка является ориентировочной, прежде чем она будет подтверждена.

Структура имеет форму:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур дорожки длиной, заданной параметром Maximum number of central tracks. Только первый NumTracks из них являются фактическими треками.

Поля структуры дорожки показаны в Track Structure.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выберите Enable tentative tracks output.

Объединенный список подтвержденных и ориентировочных дорожек, возвращенных как шина Simulink, содержащая структуру MATLAB.

Структура имеет форму:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур дорожки длиной, заданной параметром Maximum number of central tracks. Только первый NumTracks из них являются фактическими треками.

Поля структуры дорожки показаны в Track Structure.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выберите Enable all tracks output.

Дополнительная информация для анализа обновлений трека, возвращенная как шина Simulink, содержащая структуру MATLAB.

В этой таблице показаны поля информационной структуры:

ОбластьОписание
BranchIDsAtStepBeginning

Идентификаторы ветвей при начале обновления.

CostMatrix

Матрица затрат на присвоение.

Assignments

Назначения, возвращенные из assignTOMHT функция.

UnassignedTracks

Идентификаторы неназначенных ветвей, возвращенные с трекера.

UnassignedDetections

Идентификаторы неназначенных обнаружений, возвращенные с трекера.

InitialBranchHistory

История ветви после ответвления и до обрезки.

InitialBranchScores

Ветви счетов перед обрезкой.

KeptBranchHistory

История ветви после начальной обрезки.

KeptBranchScores

Счета ветви после начальной обрезки.

Clusters

Логический массив, сопоставляющий ветви с кластерами. Ветви относятся к одному и тому же кластеру, если они имеют общий доступ к обнаружениям в своей истории или относятся к одному и тому же пути либо непосредственно, либо через другие ветви.

TrackIncompatibility

Матрица несовместимости ветвей. The (i,j) элемент true если i-я и j-я ветви имеют общие обнаружения в своей истории или относятся к одной дорожке.

GlobalHypotheses

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

GlobalHypScoresОбщий счет глобальных гипотез.
PrunedBranches

Логический массив ветвей, которые pruneTrackBranches функция определяет, чтобы обрезать.

GlobalBranchProbabilities

Глобальная вероятность каждой ветви, существующей в глобальных гипотезах.

BranchesDeletedByPruning

Ветви, удаленные трекером.

BranchIDsAtStepEnd

Идентификаторы ветвей, когда обновление закончилось.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выберите Enable information output.

Параметры

расширить все

Управление Fuser

Уникальный индекс для fuser, заданный как положительное целое число. Используйте это свойство для различения различных фузеров в окружении с несколькими фузерами.

Пример: 2

Алгоритм назначения, заданный как MatchPairs, Munkres, Jonker-Volgenant, Auction, или Custom. Munkres является единственным алгоритмом назначения, который гарантирует оптимальное решение, но он также самый медленный, особенно для большого количества обнаружений и дорожек. Другие алгоритмы не гарантируют оптимального решения, но могут быть быстрее для задач с 20 или более треками и обнаружениями. Использование Custom чтобы определить свою собственную функцию назначения и указать ее имя в параметре Name of 'Custom' assignment function.

Типы данных: char

Имя функции назначения 'Custom', заданное как строка или указатель на функцию. Функция назначения должна иметь следующий синтаксис:

 [assignments,unassignedCentral,unassignedLocal] = f(cost,costNonAssignment)
Для примера функции назначения и описания ее аргументов см. assignmunkres.

Зависимости

Чтобы включить это свойство, установите параметр Assignment algorithm name равным Custom.

Пороговое значение для назначения источника центральным трекам, заданное как положительный скаляр или вектор 1 на 2 формы [C 1 C 2], где C 1 ≤ C 2. Если задано в виде скаляра, заданное значение, val, расширяется до [val Inf ].

Первоначально fuser выполняет грубую оценку нормированного расстояния между всеми исходными и центральными дорожками. Fuser вычисляет только точное нормированное расстояние для исходного и центрального комбинаций, грубое нормированное расстояние которых меньше C 2. Кроме того, fuser может только назначить локальную дорожку центральной дорожке, если их точное нормированное расстояние меньше C 1. См. distance функция, используемая с фильтрами отслеживания для объяснения вычисления расстояния.

Совет

  • Увеличьте значение C 2, если существуют комбинации исходного и центрального треков, которые должны быть рассчитаны для назначения, но не являются. Уменьшите его, если вычисление занимает слишком много времени.

  • Увеличьте значение C 1, если есть исходные дорожки, которые должны быть назначены центральным трекам, но не имеют. Уменьшите его, если есть локальные дорожки, которые назначены центральным трекам, им не следует назначать (слишком далеко ).

Максимальное количество центральных треков, которые может поддерживать трекер, заданное как положительное целое число.

Максимальное количество исходных строений, которые может поддерживать fuser, заданное в виде положительного целого числа.

Строение исходных систем, заданная как массив исходных строений структур. Поля исходной структуры строения:

Имя поляОписание
SourceIndexУникальный индекс для исходной системы, заданный как положительное целое число.
IsInternalSourceУкажите, является ли источник внутренним для fuser, задайте как true или false. Внутренний источник является источником, который fuser непосредственно выдает треки из, даже если треки не сообщаются самостоятельно. Для примера, если фюзер находится на уровне транспортного средства, радар слежения, установленный на связанном транспортном средстве, рассматривается как внутренний, в то время как другое транспортное средство, которое сообщает о сросшихся путях, рассматривается как внешнее.
IsInitializingCentralTracksУкажите, может ли источник инициализировать центральную дорожку в фузере, задайте как true или false. Центральная дорожка является дорожкой, поддерживаемой в фузере.
LocalToCentralTransformFcnФункция для преобразования дорожки из локального в центральное пространство состояний, заданная как указатель на функцию. Для примера, @track(track) не выполняет преобразования.
CentralToLocalTransformFcnФункция для преобразования дорожки из центрального в локальное пространство состояний, заданная как указатель на функцию. Для примера, @track(track) не выполняет преобразования.

Выберите этот параметр, чтобы включить вход исходных строений через Source configurations входной порт.

Параметры опорной системы координат состояния дорожки, заданные как структура или массив структур. Блок передает значение этого параметра StateParameters поле сгенерированных дорожек. Можно использовать эти параметры, чтобы задать систему координат, в которой трек сообщается, или другие желательные атрибуты сгенерированных треков.

Например, можно использовать следующую структуру, чтобы задать прямоугольную систему координат, начальное положение которой находится в [10 10 0] метров, начальная скорость которых [2 -2 0] метров в секунду относительно системы координат сценария.

Имя поляЗначение
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Можно обновить параметры состояния дорожки через State Parameters входной порт, выбрав параметр Update track state parameters with time.

Типы данных: struct

Выберите этот параметр, чтобы включить входной порт для параметров состояния дорожки через State Parameters входной порт.

Выберите тип симуляции из следующих опций:

  • Interpreted execution - Симулируйте модель с помощью интерпретатора MATLAB. Эта опция сокращает время запуска. В Interpreted execution mode, можно отлаживать исходный код блока.

  • Code generation - Симулируйте модель с помощью сгенерированного кода C. При первом запуске симуляции Simulink генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска.

Следы

Порог для подтверждения центральной дорожки, заданное в виде положительного целого числа, M или действительного вектора 1 на 2 положительных целые числа, [M N]. Центральный трек подтверждается, если он назначается локальным трекам по крайней мере M раз за последние обновления N. Если задано положительное целое число, M, порог подтверждения расширяется до [M M].

Порог для центрального удаления следа, определенного как положительное целое число, P, или положительных 1 на 2 vector целых чисел [<reservedrangesplaceholder9> <reservedrangesplaceholder8>] с <reservedrangesplaceholder7> <reservedrangesplaceholder6> <reservedrangesplaceholder5>. Центральная дорожка удаляется, если дорожка не назначена локальным трекам по крайней мере P раз за последние обновления Q . Если задано положительное целое P, порог подтверждения расширяется до [P P].

Размер состояния центральной дорожки, заданный как положительное целое число.

Атрибуты центрального объекта дорожки, заданные как структура. Трекер передает значение этого параметра в ObjectAttributes поле выходного сигнала дорожки.

Функция перехода состояния, заданная как указатель на функцию или строка. Эта функция вычисляет состояние в временной шаг k на основе состояния в временной шаг k -1 .

  • Если параметр Enable additive process noise на вкладке Tracks включен, функция должна использовать следующий синтаксис:

    x(k) = f(x(k-1),dt)
    
    где:

    • x(k) - Расчетное состояние в момент времени k, заданный как вектор или матрица. Если задано в виде матрицы, то каждый столбец матрицы представляет один вектор состояния.

    • dt - Временной шаг для предсказания.

  • Если параметр Enable additive process noise на вкладке Tracks не включен, функция должна использовать этот синтаксис:

    x(k) = f(x(k-1),w(k-1),dt)
    где:

    • x(k) - Расчетное состояние в момент времени k, заданный как вектор или матрица. Если задано в виде матрицы, то каждый столбец матрицы представляет один вектор состояния.

    • w(k) - Технологический шум во время k.

    • dt - Временной шаг для предсказания.

Пример: @constacc

Якобиан функции перехода состояния, заданный как указатель на функцию или строка. Если не указано, якобиан вычисляется численно, что может увеличить время вычислений и числовую неточность. Если задано, функция должна поддерживать один из этих двух синтаксисов:

  • Если параметр Enable additive process noise на вкладке Tracks включен, функция должна использовать этот синтаксис:

    Jx(k) = statejacobianfcn(x(k),dt)
    
    где:

    • x(k) - Расчетное состояние в момент времени k, заданный как M -by-1 вектор вещественных значений.

    • dt - Временной шаг для предсказания.

    • Jx(k) - якобиан переходной функции государства относительно состояния, df/dx, оцениваемый в x(k). Якобиан возвращается как M -by - M матрица.

  • Если параметр Enable additive process noise на вкладке Tracks не включен, функция должна использовать этот синтаксис::

    [Jx(k),Jw(k)] = statejacobianfcn(x(k),w(k),dt)
    
    где:

    • x(k) - (расчетное) состояние во время k, заданный как M -by-1 вектор вещественных значений.

    • w(k) - Технологический шум во время k, заданный как W -by-1 вектор вещественных значений.

    • dt - Временной шаг для предсказания.

    • Jx(k) - якобиан переходной функции государства относительно состояния, df/dx, оцениваемый в x(k). Якобиан возвращается как M -by - M матрица.

    • Jw(k) - Якобиан функции перехода состояния относительно шума процесса, df/dw, оцениваемый в x(k) и w(k). Якобиан возвращается как M -by - W матрица.

Пример: @constaccjac

Матрица ковариации шума процесса, заданная как положительный действительный скаляр или положительно определенная матрица.

  • Когда параметр Enable additive process noise на вкладке Tracks включен, задайте ковариацию шума процесса как положительный действительный скаляр или положительно определенную матрицу M -by M. M - размерность вектора состояний. При задании в качестве скаляра матрица является M -by M диагональной матрицей с каждым диагональным элементом, равным скаляру.

  • Когда параметр Enable additive process noise на вкладке Tracks не включен, задайте ковариацию шума процесса как матрицу W -by W. W - размерность вектора технологического шума.

Пример: [1.0 0.05; 0.05 2]

Включите аддитивный технологический шум, заданный как on или off. Когда это on, технологический шум добавляется к вектору состояния. В противном случае шум включается в функцию перехода состояния.

Сплав

Функция слияния состояний, заданная в качестве одного из следующих опций:

  • Cross - Использует алгоритм кросс-ковариационного слияния

  • Intersection - Использует ковариацию пересечений

  • Custom - Позволяет вам задать пользовательскую функцию слияния с помощью параметра Name of 'Custom' fusion function

Используйте параметр State fusion parameters source, чтобы задать дополнительные параметры, используемые алгоритмом слияния состояний.

Имя пользовательской функции назначения, заданное как строка или указатель на функцию.

Функция слияния состояний должна поддерживать один из следующих синтаксисов:

[fusedState,fusedCov] = f(trackState,trackCov)
[fusedState,fusedCov] = f(trackState,trackCov,fuseParams)
где:

  • trackState задается как N -by - M матрица. N - размерность состояния дорожки, а M - количество дорожек.

  • trackCov задается как N -by- N -by- M матрица. N - размерность состояния дорожки, а M - количество дорожек.

  • fuseParams - необязательные параметры, заданные в параметре State fusion parameters source.

  • fusedState возвращается как вектор N -by-1.

  • fusedCov возвращается как матрица N -by N.

Зависимости

Чтобы включить это свойство, установите параметр State fusion function равным Custom.

Источник параметров слияния состояний, заданный как один из следующих опций:

  • Auto - Блок использует параметры слияния по умолчанию для каждого алгоритма слияния sate. Для получения дополнительной информации см. Cross covariance factor, Optimize covariance based on и State fusion custom algorithm parameters.

  • Property - Установите параметры слияния состояний используя

    • Cross covariance factor параметр, когда State fusion function выбран как Cross.

    • Optimize covariance based on параметр, когда State fusion function выбран как Intersection.

    • State fusion custom algorithm parameters параметр, когда State fusion function выбран как Custom.

Коэффициент перекрестной ковариации, заданный в виде скаляра в область значений (0,1). Посмотрите fusexcov для получения дополнительной информации.

Критерии алгоритма пересечения, заданные как det или trace. Посмотрите fusecovint для получения дополнительной информации.

Параметры алгоритма слияния состояний, заданные в любом типе переменных, если они совпадают с настройкой опционального fuseParams вход функции слияния пользовательских состояний, заданный в параметре Name of 'Custom' assignment function.

Предохранитель только подтвержденных исходных треков, указанный как on или off. Установите этот параметр равным off если необходимо объединить все исходные дорожки независимо от их статуса подтверждения.

Предохранители с покрытием исходных дорожек, заданные как off или on. Установите этот параметр равным on если вы хотите сплавить покрытые покрытием исходные дорожки. Установите значение off если необходимо использовать только те исходные дорожки, которые не покрыты покрытием.

Настройка порта

Источник для времени предсказания, заданный как Input port или Auto. Выберите Input port для ввода времени обновления с помощью Prediction Time входного порта. В противном случае часы симуляции, управляемые Simulink, определяют время обновления.

Выберите этот параметр, чтобы включить выход предварительных дорожек через Tentative Tracks выходной порт.

Выберите этот параметр, чтобы включить выход всех дорожек через All Tracks выходной порт.

Выберите этот параметр, чтобы включить выходной порт для информации анализа через Info выходной порт.

Источник выхода магистральной шины, заданный как:

  • Auto - Блок автоматически создает выход шины трека.

  • Property - Задайте имя выходной шины дорожки с помощью параметра Specify an output bus name.

Источник имени информационной шины выхода, заданный как один из следующих опций:

  • Auto - Блок автоматически создает имя выходной информационной шины.

  • Property - Задайте имя выходной информационной шины с помощью параметра Fuser info bus name.

Алгоритмы

расширить все

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2021a