exponenta event banner

trackerGridRFS

Многообъектный трекер на основе сетки

Описание

trackerGridRFS Система object™ - это трекер, способный обрабатывать обнаружения множества целей от множества датчиков в 2-D среде. Трекер отслеживает динамические объекты вокруг автономной системы, используя данные датчиков высокого разрешения, такие как облака точек и радиолокационные детекторы. Трекер использует подход на основе случайного конечного набора (RFS) в сочетании с приближениями Демпстера-Шафера, определенными в [1], для оценки динамических характеристик ячеек сетки. Для извлечения объектов из сетки трекер использует схему связи «ячейка-дорожка» [2]. Дополнительные сведения см. в разделе Алгоритмы.

Для отслеживания целей с помощью этого объекта:

  1. Создать trackerGridRFS и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

пример

tracker = trackerGridRFS создает trackerGridRFS Системный объект со значениями свойств по умолчанию.

tracker = trackerGridRFS(Name,Value) задает свойства для трекера, используя одну или несколько пар имя-значение. Например, trackerGridRFS('MaxNumTracks',100) создает многообъектный трекер на основе сетки, который допускает максимум 100 дорожек. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

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

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Конфигурация трекера

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

Пример: 1

Конфигурация датчиков слежения, заданная как массив ячеек trackingSensorConfiguration объекты. Это свойство предоставляет трекеру информацию о конфигурации датчика отслеживания, такую как пределы обнаружения датчика, разрешение датчика и монтаж датчика. Нет значений по умолчанию для SensorConfigurations и необходимо указать SensorConfigurations перед использованием трекера. Вы можете обновить конфигурацию, если HasSensorConfigurationsInput свойство имеет значение true, путем указания входного аргумента конфигурации configs.

При указании trackingSensorConfiguration в следующих форматах необходимо указать следующие свойства:

Имя свойстваФормат
SensorIndex

Уникальный идентификатор датчика, указанный как положительное целое число.

IsValidTime

Укажите, следует ли использовать данные датчика для обновления дорожек, указанных как true или false.

SensorTransformParameters

Параметры функции преобразования датчика, задаваемые как p-элементный массив структур параметров измерения. p - число датчиков. Структура должна содержать поля с теми же именами, что и параметры измерения, используемые в функции измерения, например, cvmeas функция.

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

SensorLimits

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

Трекер игнорирует FilterInitializationFcn, SensorTransformFcn, и MaxNumDetsPerObject свойства trackingSensorConfiguration объект.

Включить обновление конфигураций датчиков со временем, указанным как false или true. Установить для этого свойства значение true если вы хотите, чтобы конфигурации датчиков обновлялись со временем. Если для этого свойства установлено значение true, необходимо указать входные данные конфигурации configs при использовании этого объекта.

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

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

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

Имя поляСтоимость
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Настраиваемый: Да

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

Максимальное количество датчиков, которые могут быть подключены к трекеру, указанное как положительное целое число. MaxNumSensors должно быть больше или равно наибольшему значению SensorIndex во всех данных датчика и конфигурациях, используемых для обновления трекера.

Типы данных: single | double

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

Типы данных: single | double

Определение сетки

размерность сетки в направлении X в локальных координатах, заданная как положительный скаляр в метрах.

y-направление размера сетки в локальных координатах, заданное как положительный скаляр в метрах.

Разрешение сетки, указанное как положительный скаляр. GridResolution представляет количество ячеек на метр сетки как для направления x, так и для направления y сетки.

Расположение начала сетки в локальном кадре координат, указанном как двухэлементный вектор скаляров в метрах. Начало координат сетки представляет левый нижний угол сетки.

Фильтрация частиц

Модель движения для отслеживания, указанная как 'constant-velocity', 'constant-acceleration', или 'constant-turn-rate'. Состояние частиц и состояние объекта для каждой модели движения:

MotionModelСостояние частицСостояние объекта
'constant-velocity'[x; vx; y; vy] [x; vx; y; vy; yaw; L; W]
'constant-acceleration'[x; vx; ax; y; vy; ay][x; vx; ax; y; vy; ay; yaw; L; W]
'constant-turn-rate'[x; vx; y; vy; w][x; vx; y; vy; w; yaw; L; W]

где:

  • x - Положение объекта в направлении x локального кадра слежения (м)

  • y - Положение объекта в направлении y локального кадра слежения (м)

  • vx - Скорость объекта в направлении x локального кадра слежения (м/с)

  • vy - Скорость объекта в направлении y локального кадра слежения (м/с)

  • ax - Ускорение объекта в направлении x локального кадра слежения (м/с2)

  • ay - Ускорение объекта в направлении y локального кадра слежения (м/с2)

  • w - Скорость рыскания объекта в локальном кадре слежения (градус/с)

  • yaw - угол рыскания объекта в локальном кадре слежения (град.)

  • L - Длина объекта (м)

  • W - Ширина объекта (м)

Минимальная и максимальная скорость объектов, заданная как матрица скаляров 2 на 2 в м/с. Первая строка задает нижний и верхний пределы скорости в направлении x, а вторая строка задает нижний и верхний пределы скорости в направлении y. Трекер использует эти пределы для отбора проб новых частиц в сетке с использованием равномерного распределения.

Минимальное и максимальное ускорение объектов, задаваемое как матрица скаляров 2 на 2 в m/s2. Первая строка задает нижний и верхний пределы ускорения в направлении x, а вторая строка задает нижний и верхний пределы ускорения в направлении y. Трекер использует эти пределы для отбора проб новых частиц в сетке с использованием равномерного распределения.

Это свойство активно только в том случае, если MotionModel свойство имеет значение 'constant-acceleration'.

Минимальная и максимальная скорость поворота объектов, заданная двухэлементным вектором скаляров в градусах/с. Первый элемент определяет минимальную скорость поворота, а второй элемент определяет максимальную скорость поворота.

Это свойство активно только в том случае, если MotionModel свойство имеет значение 'constant-turnrate'.

Ковариация шума процесса, заданная как матрица скаляров N-на-N. Это свойство определяет шум процесса для положений частиц и геометрических центров целей.

  • Когда HasAdditiveProcessNoise свойство имеет значение true, процесс непосредственно добавляет к модели прогнозирования. В этом случае N равно размеру состояния частиц.

  • Когда HasAdditiveProcessNoise свойство имеет значение falseопределите шум процесса в соответствии с выбранной моделью движения. Технологический шум добавляется к членам более высокого порядка, таким как ускорение для 'constant-acceleration' модель.

    MotionModelКоличество условий (N)Значение терминов
    'constant-velocity'2Ускорение в направлениях x и y
    'constant-acceleration'2Рывок в направлениях x и y
    'constant-turn-rate'3Ускорение в направлениях x и y, а также угловое ускорение

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

Настраиваемый: Да

Возможность моделирования технологического шума как аддитивного, указанного как true или false. Когда это свойство true, технологический шум добавляется непосредственно к вектору состояния. В противном случае шум включается в модель движения.

Пример: true

Число частиц на сетку, указанное как положительное целое число. Большее количество частиц может улучшить качество оценки, но может увеличить вычислительные затраты.

Число новорожденных (инициализированных) частиц на шаг времени, указанное как положительное целое число. Трекер определяет местоположения этих новых частиц, используя несоответствие между прогнозируемыми и обновленными массами убеждений занятости и BirthProbability собственность. Разумная стоимость NumBirthParticles свойство составляет приблизительно десять процентов от числа частиц, указанных NumParticles собственность.

Вероятность целевого рождения в ячейке на шаг, указанная как скаляр в диапазоне [0 1). Вероятность рождения управляет вероятностью того, что в клетке образуются новые частицы.

Пример: 1e-4

Коэффициент смертности частиц в единицу времени, определяемый как положительный скаляр. Уровень смертности указывает на возможность исчезновения частицы или мишени после одного временного шага. Уровень смертности влияет на вероятность выживания (Ps) компонента между последовательными временными шагами, как:

Ps = (1 Pd) ΔT

где ΔT - временной шаг.

Пример: 1e-4

Настраиваемый: Да

Уверенность в прогнозировании свободного пространства, заданная как скаляр. На стадии прогнозирования трекера поверная масса клетки, находящейся в «свободном» (незанятом) состоянии, уменьшается на FreeSpaceDiscountFactor:

mk 'k 1 (F) = αΔTmk − 1 (F)

где k - индекс временного шага, m - масса верования, α - коэффициент дисконтирования свободного пространства, ΔT - временной шаг.

Настраиваемый: Да

Отслеживание инициализации

Метод кластеризации, используемый для извлечения нового объекта, указан как 'DBSCAN' или 'Custom'.

  • 'DBSCAN' - Кластер неназначенных ячеек динамической сетки с использованием основанной на плотности пространственной кластеризации приложений с алгоритмом шума (DBSCAN). Можно настроить алгоритм DBSCAN, указав ClusteringThreshold и MinNumCellsPerCluster свойства трекера.

  • 'Custom' - Кластер неназначенных ячеек динамической сетки с помощью пользовательской функции кластеризации, указанной в CustomClusteringFcn свойство трекера.

Порог кластеризации DBSCAN, заданный как положительный скаляр.

Чтобы включить это свойство, установите значение Clustering свойство для 'DBSCAN'.

Пользовательская функция для кластеризации неназначенных ячеек сетки, заданная как дескриптор функции. Функция должна поддерживать эту подпись:

function indices = myFunction(dynamicGridCells)
где dynamicGridCells - структура, определяющая набор ячеек сетки, инициализирующих дорожку. В нем должны быть следующие поля:

ОбластьОписание
WidthШирина ячейки, заданная как положительный скаляр.
GridIndicesИндексы ячеек сетки, заданные как массив N-by-2, где N - количество неназначенных ячеек. Первый элемент задает индекс сетки в направлении x, а второй элемент задает индекс сетки в направлении y.
StateСостояния ячеек сетки, заданные как массив скаляров P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
StateCovarianceКовариации состояния ячеек сетки, определенные как массив скаляров P-by-P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
OccupancyMassМасса проверки занятости ячеек, заданная как N-элементный массив скаляров, где N - количество неназначенных ячеек.
FreeMassМасса свободных убеждений ячеек, заданная как N-элементный массив скаляров, где N - число неназначенных ячеек.

indices должен быть возвращен в виде N-элементного вектора индексов, определяющих индекс кластера для каждой ячейки динамической сетки.

Чтобы включить это свойство, установите значение Clustering свойство для 'Custom'.

Минимальное количество ячеек на кластер для DBSCAN, указанное как положительный скаляр. Это свойство влияет на то, является ли точка базовой точкой в алгоритме DBSCAN.

Чтобы включить это свойство, установите значение Clustering свойство для 'DBSCAN'.

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

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

При настройке собственной функции инициализации функция должна поддерживать следующую сигнатуру:

function track = myFunction(dynamicGridCells)
где dynamicGridCells - структура, определяющая набор ячеек сетки, инициализирующих дорожку. Он имеет следующие поля:

ОбластьОписание
WidthШирина ячейки, заданная как положительный скаляр.
GridIndicesИндексы ячеек сетки, заданные как массив N-by-2, где N - количество неназначенных ячеек. Первый элемент задает индекс сетки в направлении x, а второй элемент задает индекс сетки в направлении y.
StateСостояния ячеек сетки, заданные как массив скаляров P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
StateCovarianceКовариации состояния ячеек сетки, определенные как массив скаляров P-by-P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
OccupancyMassМасса проверки занятости ячеек, заданная как N-элементный массив скаляров, где N - количество неназначенных ячеек.
FreeMassМасса свободных убеждений ячеек, заданная как N-элементный массив скаляров, где N - число неназначенных ячеек.

track должен быть возвращен как objectTrack объект или структура, имена полей которых совпадают с именами свойств objectTrack объект. Измерение состояния должно совпадать с измерением состояния, указанным в MotionModel собственность.

Управление дорожками

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

Функция обновления по умолчанию обновляет State и StateCovariance свойства дорожки с использованием новой оценки из ячеек динамической сетки, связанных с дорожкой. Процесс обновления аналогичен процессу инициализации для TrackInitializationFcn собственность. Трекер не применяет фильтрацию к ковариации состояния и состояния.

Если выбрана настройка собственной функции обновления, функция должна поддерживать эту подпись:

function updatedTrack = TrackUpdateFcn(predictedTrack,dynamicGridCells)
где:

  • predictedTrack - предсказанная дорожка объекта, указанная как objectTrack объект.

  • dynamicGridCells - структура, определяющая набор динамических ячеек сетки, связанных с дорожкой. Структура имеет следующие поля:

    ОбластьОписание
    WidthШирина ячейки, заданная как положительный скаляр.
    GridIndicesИндексы ячеек сетки, заданные как массив N-by-2, где N - количество неназначенных ячеек. Первый элемент задает индекс сетки в направлении x, а второй элемент задает индекс сетки в направлении y.
    StateСостояния ячеек сетки, заданные как массив скаляров P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
    StateCovarianceКовариации состояния ячеек сетки, определенные как массив скаляров P-by-P-by-N, где P - размерность состояния, а N - количество неназначенных ячеек.
    OccupancyMassМасса проверки занятости ячеек, заданная как N-элементный массив скаляров, где N - количество неназначенных ячеек.
    FreeMassМасса свободных убеждений ячеек, заданная как N-элементный массив скаляров, где N - число неназначенных ячеек.

  • updatedTrack является обновленной дорожкой, возвращенной как objectTrack объект или структура, имена полей которых совпадают с именами свойств objectTrack объект.

Порог назначения динамических ячеек сетки дорожкам, заданный как положительный скаляр. Динамическая ячейка сетки может быть связана с дорожкой, только если ее расстояние (представленное отрицательным логарифмическим правдоподобием) до дорожки меньше, чем AssignmentThreshold значение.

  • Увеличьте порог, если динамическая ячейка не назначается дорожке, которой она должна быть назначена.

  • Уменьшите порог, если есть динамические ячейки, назначенные дорожке, которой они не должны быть назначены.

Пример: 18.1

Порог подтверждения дорожки, заданный как 2-элементный вектор скаляров [M N]. Дорожка подтверждается, если она была назначена какой-либо динамической ячейке сетки, по крайней мере, в M обновления последнего N обновления.

Порог удаления дорожки, заданный как 2-элементный вектор скаляров [P R]. Дорожка удаляется, если она не была назначена какой-либо ячейке динамической сетки по крайней мере в P обновления последнего R обновления.

Пример: 0.01

Типы данных: single | double

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

Количество подтвержденных дорожек, возвращаемых как неотрицательное целое число. Если IsConfirmed свойство объекта выходной дорожки true, трасса подтверждена.

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

Это свойство доступно только для чтения.

Включить использование графического процессора для оценки динамической карты сетки, указанной как true или false. Для включения вычислений GPU требуется Toolbox™ параллельных вычислений.

Использование

Описание

confirmedTracks = tracker(sensorData,time) возвращает список подтвержденных дорожек, которые обновляются из списка данных датчика sensorData во время обновления time. Подтвержденные дорожки корректируются и прогнозируются до времени обновления.

confirmedTracks = tracker(sensorData,configs,time) также определяет конфигурации датчиков configs. Чтобы включить этот синтаксис, установите HasSensorConfigurationsInput свойство для true.

[confirmedTracks,tentativeTracks,allTracks] = tracker(___) также возвращает список предварительных треков tentativeTracks и список всех треков allTracks. Можно использовать любую комбинацию входных аргументов из предыдущих синтаксисов.

[confirmedTracks,tentativeTracks,allTracks,map] = tracker(___) дополнительно возвращает карту доказательной сетки, сохраненную в трекере. Для получения подробной информации об оценках можно использовать возвращенную карту.

Входные аргументы

развернуть все

Данные датчика, указанные как N-элементный массив структур. Каждая структура должна определять измерение от датчика высокого разрешения, используя следующие поля:

ОбластиОписание
TimeВремя, в которое датчик сообщает данные, указанные как неотрицательный скаляр.
SensorIndexУникальный идентификатор датчика, указанный как положительное целое число.
MeasurementИзмерения датчика, заданная матрица скаляров K-by-M. K - размерность измерений, а M - количество измерений. Каждое измерение определяет позиционные аспекты обнаружения в прямоугольной или сферической рамке.
MeasurementParametersПараметры измерения, определенные как структура, описывающая переход от состояния частиц к измерению. Дополнительные сведения см. в разделе Обнаружения объектов.

Time значение должно быть меньше или равно текущему времени обновления, timeи больше предыдущего значения времени, использованного для обновления трекера.

Время обновления, указанное как скаляр. Трекер обновляет все дорожки до этого времени. Единицы измерения в секундах.

time должно быть больше или равно наибольшему Time значение поля sensorData конструкции. time должен увеличиваться с каждым обновлением трекера.

Типы данных: single | double

Конфигурации датчиков, определяемые как массив структур, массив ячеек структур или массив ячеек trackingSensorConfiguration объекты. Если значение задается с помощью массива структур или массива ячеек структур, необходимо включить SensorIndex как поле в каждой структуре. Другие необязательные поля в каждой структуре должны иметь те же имена, что и trackingSensorConfiguration свойства объекта. Необходимо указать только конфигурации датчиков, которые необходимо обновить. Например, если требуется обновить IsValidTime свойство только для пятого датчика, укажите configs как struct('SensorIndex',5,'IsValidTime',false).

Зависимости

Чтобы включить этот аргумент, установите HasSensorConfigurationsInput свойство для true.

Выходные аргументы

развернуть все

Подтвержденные дорожки, обновленные до текущего времени, возвращенные в виде массива objectTrack , где каждый элемент представляет дорожку объекта. Форма состояния каждой дорожки следует форме, указанной в MotionModel собственность.

Предварительные треки, возвращенные в виде массива objectTrack , где каждый элемент представляет дорожку объекта. Форма состояния каждой дорожки следует форме, указанной в MotionModel собственность.

Все треки, возвращенные в виде массива objectTrack , где каждый элемент представляет дорожку объекта. Форма состояния каждой дорожки следует форме, указанной в MotionModel собственность.

Динамическая карта сетки доказательств, возвращенная как dynamicEvidentialGridMap объект.

Функции объекта

Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

развернуть все

predictTracksToTimeПрогнозировать состояние дорожки
predictMapToTimeПрогнозирование динамической карты на метку времени
showDynamicMapПечать динамической карты заполняемости
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
isLockedОпределить, используется ли объект System
cloneСоздать повторяющийся объект System
resetСброс внутренних состояний объекта System

Примеры

свернуть все

Создайте сценарий отслеживания.

scene = trackingScenario('UpdateRate',5,'StopTime',5);
rng(2021); % For reproducible results

Добавьте платформу с установленным лидарным датчиком в сценарий отслеживания.

plat = platform(scene);
lidar = monostaticLidarSensor(1,'DetectionCoordinates','Body','HasOrganizedOutput',false);

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

for i = 1:2
    target = platform(scene);
    x = 50*(2*rand - 1);
    y = 50*(2*rand - 1);
    vx = 5*(2*rand - 1);
    vy = 5*(2*rand - 1);
    target.Trajectory.Position = [x y 0];
    target.Trajectory.Velocity = [vx vy 0];
    % Align the orientation of the target with the direction of motion.
    target.Trajectory.Orientation = quaternion([atan2d(vy,vx),0,0],'eulerd','ZYX','frame');
    target.Mesh = extendedObjectMesh('sphere');
    target.Dimensions = struct('Length',4,'Width',4,'Height',2,'OriginOffset',[0 0 0]);
end

Определите конфигурацию лидарного датчика.

config = trackingSensorConfiguration(1,...
    'SensorLimits',[-180 180;0 100],...
    'SensorTransformParameters',struct,...
    'IsValidTime',true);

Создайте трекер на основе сетки.

tracker = trackerGridRFS('SensorConfigurations',config,...
    'AssignmentThreshold',5,...
    'MinNumCellsPerCluster',4,...
    'ClusteringThreshold',3);

Определение theaterPlot объект и два связанных плоттера для визуализации сцены слежения.

tp = theaterPlot('XLimits',[-50 50],'YLimits',[-50 50]);
trkPlotter = trackPlotter(tp,'DisplayName','Tracks','MarkerFaceColor','g');
tthPlotter = platformPlotter(tp,'DisplayName','Truths','MarkerFaceColor','r','ExtentAlpha',0.2);

Перейдите к сценарию и запустите трекер с данными лидара.

while advance(scene)
    
    time = scene.SimulationTime;
    
    % Generate point cloud.
    tgtMeshes = targetMeshes(plat);
    [ptCloud, config] = lidar(tgtMeshes, time);
    
    % Format the data for the tracker.
    sensorData = struct('Time',time,...
        'SensorIndex',1,...
        'Measurement',ptCloud',...
        'MeasurementParameters',struct...
        );
    
    % Update the tracker using the sensor data.
    tracks = tracker(sensorData, time);
    
    % Visualize tracks.
    pos = zeros(numel(tracks),3);
    vel = zeros(numel(tracks),3);
    orient = quaternion.ones(numel(tracks),1);
    dim = repmat(plat.Dimensions,numel(tracks),1);
    ids = string([tracks.TrackID]);
    
    for i = 1:numel(tracks)
        vel(i,:) = [tracks(i).State(2);tracks(i).State(4);0];
        pos(i,:) = [tracks(i).State(1);tracks(i).State(3);0];
        dim(i).Length = tracks(i).State(6);
        dim(i).Width = tracks(i).State(7);
        orient(i) = quaternion([tracks(i).State(5) 0 0],'eulerd','ZYX','frame');
    end
    trkPlotter.plotTrack(pos,dim,orient,ids);
    
    % Visualize platforms.
    pos = vertcat(tgtMeshes.Position);
    meshes = vertcat(tgtMeshes.Mesh);
    orient = vertcat(tgtMeshes.Orientation);
    tthPlotter.plotPlatform(pos,meshes,orient);
end

Figure contains an axes. The axes contains 4 objects of type line, text. These objects represent Tracks, Truths.

Алгоритмы

развернуть все

Ссылки

[1] Нусс, Д., Рейтер, С., Том, М., Юань, Т., Крехль, Г., Майле, М., Герн, А. и Дитмайер, К., 2018. Подход случайного конечного набора для динамических карт сетки занятости с приложением в реальном времени. The International Journal of Robotics Research, 37 (8), стр. 841-866.

[2] Штайер, Саша, Георг Танзмейстер и Дирк Воллхерр. «Отслеживание объектов на основе доказательных динамических сеток размещения в городских условиях». В 2017 году IEEE Intelligent Vehicles Symposium (IV), стр. 1064-1070. IEEE, 2017.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2020b