trackerGridRFS

Сетчатый многообъектный трекер

Описание

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

Чтобы отслеживать цели, использующие этот объект:

  1. Создайте trackerGridRFS Объекту и установите его свойства.

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

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

Создание

Описание

пример

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Строение трекера

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

Пример: 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 локальной системы координат слежения (m)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ковариация шума процесса, заданная как N -by - 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

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

Ps=(1Pd)ΔT

где Δ T является временным шагом.

Пример: 1e-4

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

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

mk|k1(F)=αΔTmk1(F)

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

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

Инициализация трека

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы принимаете решение настроить свою собственную функцию инициализации, функция должна поддерживать следующую сигнатуру:

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

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

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

Управление треками

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

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

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

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

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

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

    ОбластьОписание
    WidthШирина камеры, заданная как положительная скалярная величина.
    GridIndicesИндексы камер сетки, заданные как массив N-на-2, где N количество неназначенных камер. Первый элемент задает индекс сетки в x -направлении, а второй элемент задает индекс сетки в y -направлении.
    StateСостояния камер сетки, заданные как P -by - N массив скаляров, где P - размерность состояния, а N - количество неназначенных камер.
    StateCovarianceКовариации состояний камер сетки, заданные как P -by P -by - N массив скаляров, где P - размерность состояния, а N - количество неназначенных камер.
    OccupancyMassМасса веры заполнения камер, заданная как N-element массив скаляров, где N количество неназначенных камер.
    FreeMassМасса свободного убеждения камер, заданная как N-element массив скаляров, где 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. Для включения расчетов графический процессор требуется Parallel Computing 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Параметры измерения, заданные как структура, описывающая преобразование из состояния частиц в измерение. Для получения дополнительной информации см. Обнаружения объектов.

The 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 объект.

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

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

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

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] Nuss, D., Reuter, S., Thom, M., Yuan, T., Krehl, G., Maile, M., Gern, A. and Dietmayer, K., 2018. Случайный подход к конечному набору для динамических сеточных карт заполнения с приложением реального времени. Международный журнал исследований робототехники, 37 (8), стр. 841-866.

[2] Steyer, Sascha, Georg Tanzmeister, and Dirk Wollherr. «Отслеживание объектов, основанное на доказательственных динамических сетках заполнения в городских окружениях». В 2017 году IEEE Intelligent Vehicles Symposium (IV), стр. 1064-1070. IEEE, 2017.

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

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

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