irSensor

Сгенерируйте инфракрасные обнаружения для сценария отслеживания

Описание

The irSensor Система object™ создает статистическую модель для генерации обнаружений с помощью инфракрасных датчиков. Можно использовать irSensor объект в сценарии, который моделирует движущиеся и стационарные платформы, используя trackingScenario. Датчик может имитировать реальные обнаружения с добавлением случайного шума, а также генерировать ложные обнаружения предупреждений. Кроме сложения, можно использовать этот объект для создания входа к трекерам, таким как trackerGNN, trackerJPDA, или trackerTOMHT.

Этот объект позволяет вам сконфигурировать датчик механического сканирования. Инфракрасный датчик сканирования изменяет угол обзора между обновлениями, шагая механическое положение луча с шагами углового диапазона, заданным в FieldOfView свойство. Инфракрасный датчик сканирует общую область в азимуте и повышении, заданные MechanicalScanLimits свойство. Если для пределов сканирования азимута или повышения задано значение [0 0]сканирование по этой размерности для этого скана режима не выполняется. Кроме того, если максимальная скорость скана для азимута или повышения установлена равной нулю, сканирование по этой размерности не выполняется.

Чтобы сгенерировать инфракрасные обнаружения:

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

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

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

Создание

Описание

sensor = irSensor(SensorIndex) создает объект генератора инфракрасного обнаружения с заданным индексом датчика, SensorIndex, и значения свойств по умолчанию.

sensor = irSensor(SensorIndex,'No scanning') является синтаксисом удобства, который создает irSensor который следит за направлением боресайта датчика. Механическое сканирование не выполняется. Этот синтаксис устанавливает ScanMode свойство к 'No scanning'.

sensor = irSensor(SensorIndex,'Raster') является синтаксисом удобства, который создает irSensor объект, который механически сканирует растровый шаблон. Размах растра составляет 90 ° по азимуту от -45 ° до + 45 ° и по повышению от горизонта до 10 ° над горизонтом. Свойства, заданные этим синтаксисом, см. в разделе Синтаксис удобства.

sensor = irSensor(SensorIndex,'Rotator') является синтаксисом удобства, который создает irSensor объект, который механически сканирует 360 ° по азимуту путем электронного поворота датчика с постоянной скоростью. Когда вы задаете HasElevation на trueинфракрасный датчик механически указывает в сторону центра поля зрения по повышению. Свойства, заданные этим синтаксисом, см. в разделе Синтаксис удобства.

sensor = irSensor(SensorIndex,'Sector') является синтаксисом удобства для создания irSensor объект, который механически сканирует сектор азимута 90 ° от -45 ° до + 45 °. Настройка HasElevation на true, указывает инфракрасный датчик в направлении центра поля зрения повышения. Балки складываются механически, чтобы обработать всё повышение, охватываемую пределами скана в одной скважине. Свойства, заданные этим синтаксисом, см. в разделе Синтаксис удобства.

sensor = irSensor(___,Name,Value) устанавливает свойства, используя одну или несколько пары "имя-значение" после всех других входных параметров. Заключайте каждое имя свойства в кавычки. Для примера, irSensor(1,'UpdateRate',1,'CutoffFrequency',20e3) создает инфракрасный датчик, который сообщает о обнаружениях со частотой обновления 1 Гц и частотой отключения 20 кГц. Если вы задаете индекс датчика, используя SensorIndex свойство, можно опустить SensorIndex вход.

Свойства

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

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

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

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

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

Пример: 2

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

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

Пример: 5

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

Режим сканирования инфракрасного датчика, заданный как 'Mechanical' или 'No scanning'. Когда установлено значение 'Mechanical'датчик механически сканирует азимут и пределы по повышению, заданные MechanicalScanLimits свойство. Скан позиционирует шаг полем зрения датчика между жилыми помещениями. Когда установлено значение 'No scanning', сканирование датчиком не выполняется.

Пример: 'No scanning'

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

Расположение датчика на платформе, заданное как вектор с реальным значением 1 на 3. Это свойство определяет координаты датчика относительно источника платформы. Значение по умолчанию задает, что источник датчика находится в источнике платформы. Модули измерения указаны в метрах.

Пример: [.2 0.1 0]

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

Ориентация датчика относительно платформы, заданная как трехэлементный вектор с реальным значением. Каждый элемент вектора соответствует собственному повороту угла Эйлера, который несет оси тела платформы к осям датчика. Три элемента описывают повороты вокруг z -, y - и x - осей последовательно. Модули указаны в степенях.

Пример: [10 20 -15]

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

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

Поля зрения датчика, заданные как вектор 2 на 1 положительных вещественных значений, [азфов; эльфов]. Поле зрения определяет общую угловую длину, охватываемую датчиком. Каждый компонент должен находиться в интервале (0,180]. Цели вне поля зрения датчика не будут обнаружены. Модули указаны в степенях.

Пример: [14;70]

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

Максимальная механическая скорость скана, заданная как неотрицательный скаляр или действительный вектор 2 на 1 с неотрицательными значениями.

Когда HasElevation true, задайте скорость скана как вектор-столбец 2 на 1 неотрицательных записей [maxAzRate; maxElRate]. maxAzRate является максимальной частотой скана в азимуте, а maxElRate является максимальной частотой скана в повышении.

Когда HasElevation является false, задайте скорость скана как неотрицательный скаляр, представляющий максимальную скорость скана механического азимута.

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

Пример: [5;10]

Зависимости

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

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

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

Когда HasElevation является trueпределы скана принимают форму [minAz maxAz; minEl maxEl]. minAz и maxAz представляют минимальные и максимальные пределы угла азимута скана. minEl и maxEl представляют минимальные и максимальные пределы скана угла возвышения. Когда HasElevation является falseпределы скана принимают форму [minAz maxAz]. Если вы задаете пределы скана как матрицу 2 на 2, но задаете HasElevation на falseвторая строка матрицы игнорируется.

Пределы азимутального скана не могут охватывать более 360 °, а пределы скана должны находиться в пределах закрытого интервала [-90 ° 90 °]. Модули указаны в степенях.

Пример: [10 90;0 85]

Зависимости

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

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

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

Механический угол скана тока, возвращенный как скаляр или реальный вектор 2 на 1. Когда HasElevation true, угол скана принимает форму [Az; Эль]. Az и El представляют углы азимута и скана повышения, соответственно, относительно установленного угла датчика на платформе. Когда HasElevation является false, угол скана является скаляром, представляющим угол азимутального скана.

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

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

Посмотрите угол датчика, заданный как скаляр или реальный вектор 2 на 1. Угол взгляда зависит от механического угла, установленного в ScanMode свойство.

ScanModeLookAngle
'Mechanical'MechanicalAngle
'No scanning'0

Когда HasElevation trueугол взгляда принимает форму [Az; El]. Az и El представляют азимут и углы взгляда по повышению, соответственно. Когда HasElevation является false, угол взгляда является скаляром, представляющим угол взгляда азимута.

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

Пример: 0.1

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

Фокусное расстояние датчика округлой линзы, заданное как скаляр. Фокусное расстояние в пикселях f = F s, где F - фокусное расстояние в миллиметрах и s - количество пикселей на миллиметр.

Пример: 500

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

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

Пример: [500 750]

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

Отключите частоту передаточной функции модуляции датчика (MTF), заданную как положительная скалярная величина. Модули указаны в герцах.

Пример: 30.5e3

Зависимости

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

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

Область элемента/пикселя инфракрасного детектора, заданная как положительная скалярная величина. Модули указаны в квадратных метрах.

Пример: 3.0e-5

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

Специфическая детективность детекторного материала, заданная как положительная скалярная величина. Модулями являются см-sqrt (Гц )/W.

Пример: .9e10

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

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

Пример: 100

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

Частота сообщения ложного предупреждения в каждой камере разрешения, заданная как положительная скалярная величина в область значений [10–7,10–3]. Модули безразмерны. Камеры разрешения определяются из свойства AzimuthResolution и опционально включенного свойства ElevationResolution.

Пример: 1e-5

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

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

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

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

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

Включите необязательный входной параметр, который передает текущую оценку положения платформы датчика датчику, заданную как false или true. Когда true, информация о положении добавляется к MeasurementParameters структура сообщаемых обнаружений. Информация о положении позволяет алгоритмам отслеживания и слияния оценить состояние обнаружений целей в северо-восточной (NED) системе координат.

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

Включите сложение шума к измерениям датчика, заданным как true или false. Установите это свойство на true чтобы добавить шум к измерениям. В противном случае измерения не имеют шума. Обратите внимание, что сообщенная ковариация шума измерения не зависит от этого свойства и всегда представляет шум, который будет добавлен при HasNoise задано значение true.

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

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

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

Включите окклюзию от расширенных объектов, заданную как true или false. Установите это свойство на true для моделирования окклюзии из расширенных объектов. Моделируются два типа окклюзии (самоокклюзия и объект окклюзия). Самоокклюзия происходит, когда одна сторона расширенного объекта окклюдирует другую сторону. Окклюзия между объектами происходит, когда один расширенный объект стоит в линии зрения другого расширенного объекта или точки. Обратите внимание, что и расширенные объекты, и точку цели могут быть окклюдированы расширенными объектами, но точка цель не может окклюзировать другую точку цель или расширенный объект.

Установите это свойство на false отключение окклюзии расширенных объектов. Это также отключает слияние объектов, обнаружения которых имеют общую камеру разрешения датчика, что дает каждому объекту в сценарии отслеживания возможность сгенерировать обнаружение.

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

Минимальный размер изображения для классификации, заданный как положительное целое число. MinClassificationArea задает минимальную площадь (в квадратных пикселях), используемую для определения, распознает ли датчик обнаружение как классифицированный объект. The irSensor пытается окружить обнаружение протяженности с помощью минимального прямоугольного ограничивающего прямоугольника (вдоль направления азимута и повышения) в плоскости изображения датчика. Если площадь минимального ограничивающего прямоугольника меньше значения, заданного MinClassificationArea свойство, затем сообщаемое ClassID равен нулю в возвращенном objectDetection для этого обнаружения. В противном случае представленное ClassID получено из ClassID соответствующего целевого входа.

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

Максимально допустимая окклюзия, заданная как действительный скаляр на интервале [0,1). Свойство задает отношение окклюдированной площади к общей площади ограничивающего прямоугольника целевого объекта. Если коэффициент окклюдированной площади больше значения, заданного MaxAllowedOccusion свойство, окклюдированная цель не будет обнаружена.

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

Источник максимального количества обнаружений, сообщаемых датчиком, указанный как 'Auto' или 'Property'. Когда для этого свойства задано значение 'Auto', датчик сообщает обо всех обнаружениях. Когда для этого свойства задано значение 'Property'датчик сообщает о обнаружениях до номера, заданного MaxNumDetections свойство.

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

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

Зависимости

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

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

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

Описание

dets = sensor(targets,simTime) создает инфракрасные обнаружения, dets, от измерений датчика, выполненных из targets в текущее время симуляции, simTime. Датчик может генерировать обнаружения для нескольких целей одновременно.

пример

dets = sensor(targets,ins,simTime) также задает информацию о предполагаемом положении INS, ins, для сенсорной платформы. Информация INS используется алгоритмами отслеживания и слияния, чтобы оценить целевые положения в системе координат NED.

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

[dets,numDets,config] = sensor(___) также возвращает количество зарегистрированных допустимых обнаружений, numValidDetsи строение датчика, config, во время текущей симуляции.

Входные параметры

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

Отслеживать целевые положения сценария, заданные как структура или массив структур. Каждая структура соответствует цели. Вы можете сгенерировать эту структуру с помощью targetPoses способ платформы. Можно также создать такую структуру вручную. Таблица показывает необходимые поля структуры:

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

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

ClassID

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

Position

Положение цели в координатах платформы, заданное как реальный вектор 1 на 3. Это обязательное поле без значения по умолчанию. Модули измерения указаны в метрах.

Velocity

Скорость цели в координатах платформы, заданная как реальный вектор 1 на 3. Модули указаны в метрах в секунду. Значение по умолчанию является [0 0 0].

Acceleration

Ускорение цели в координатах платформы, заданное как вектор-строка 1 на 3. Модули указаны в метрах на секунду. Значение по умолчанию является [0 0 0].

Orientation

Ориентация цели относительно координат платформы, заданная как скалярный кватернион или матрица вращения 3 на 3. Ориентация определяет поворот системы координат платформы к текущей целевой системе координат тела. Модули безразмерны. Значение по умолчанию является quaternion(1,0,0,0).

AngularVelocity

Скорость вращения цели в координатах платформы, заданная как действительный вектор 1 на 3. Величина вектора задает угловую скорость. Направление задает ось поворота по часовой стрелке. Модули указаны в степенях в секунду. Значение по умолчанию является [0 0 0].

Значения Position, Velocity, и Orientation поля заданы относительно системы координат платформы.

Текущее время симуляции, заданное как положительная скалярная величина. The trackingScenario объект вызывает инфракрасный датчик с регулярными временными интервалами. Датчик генерирует новые обнаружения с интервалами, заданными UpdateInterval свойство. Значение UpdateInterval свойство должно быть целым числом, кратным временному интервалу симуляции. Обновления, запрошенные у датчика между интервалами обновления, не содержат обнаружений. Модули указаны в секундах.

Пример: 10.5

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

Положение сенсорной платформы, полученное от инерционной навигационной системы (INS), указывается как структура.

Информация о положении платформы от инерционной навигационной системы (INS) является структурой с этими полями:

ОбластьОпределение
Position

Положение в навигационной системе координат, заданное как реальный вектор 1 на 3. Модули измерения указаны в метрах.

Velocity

Скорость в навигационной системе координат, заданная как реальный вектор 1 на 3. Модули указаны в метрах в секунду.

Orientation

Ориентация относительно навигационной системы координат, заданная как quaternion или матрицу вращения 3 на 3 вещественных значений. Вращение происходит от навигационной системы координат до текущего каркаса кузова INS. Это также упоминается как вращение «родительский элемент к ребенку».

Зависимости

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

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

Помехи или помехи, заданные как структура.

Зависимости

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

Типы данных: double
Поддержка комплексного числа: Да

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

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

Обнаружения датчиков, возвращенные как массив ячеек objectDetection объекты. Каждый объект имеет следующие свойства:

СвойствоОпределение
TimeВремя измерения
MeasurementИзмерения объекта
MeasurementNoiseМатрица ковариации шума измерения
SensorIndexУникальный идентификатор датчика
ObjectClassIDКлассификация объектов
ObjectAttributesТрекеру передана дополнительная информация
MeasurementParametersПараметры, используемые функциями инициализации нелинейных фильтров отслеживания Калмана

Measurement и MeasurementNoise сообщаются в сферической координатной системе координат датчика.

Количество зарегистрированных обнаружений, возвращенных в виде неотрицательного целого числа.

  • Когда MaxNumDetectionsSource для свойства задано значение 'Auto', numDets задается как длина dets.

  • Когда MaxNumDetectionsSource для свойства задано значение 'Property', dets - массив ячеек с длиной, определяемой MaxNumDetections свойство. Не более MaxNumDetections возвращено количество обнаружений. Если количество обнаружений меньше MaxNumDetections, первый numDets элементы dets хранить допустимые обнаружения. Остальные элементы dets устанавливаются на значение по умолчанию.

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

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

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

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

IsValidTime

Допустимое время обнаружения, возвращаемое как true или false. IsValidTime является false при запросе обновлений обнаружения между интервалами обновления, заданными частотой обновления.

IsScanDone

IsScanDone является true когда датчик завершит скан.

FieldOfView

Поле зрения датчика, возвращаемое как вектор 2 на 1 положительных вещественных значений, [azfov; elfov]. azfov и elfov представление поля зрения в азимуте и повышению, соответственно.

MeasurementParameters

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

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

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

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

release(obj)

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

coverageConfigПокрытие датчика и излучателя строения
perturbationsВозмущение, заданное для объекта
perturbПрименить возмущения к объекту
stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Обнаружите цель с помощью инфракрасного датчика.

Сначала создайте целевую структуру.

tgt = struct( ...
    'PlatformID',1, ...
    'Position',[10e3 0 0], ...
    'Speed',900*1e3/3600);

Затем создайте ИК-датчик.

sensor = irSensor(1);

Сгенерируйте обнаружение от цели.

time = 0;
[dets,numDets,config] = sensor(tgt,time)
dets = 1x1 cell array
    {1x1 objectDetection}

numDets = 1
config = struct with fields:
              SensorIndex: 1
              IsValidTime: 1
               IsScanDone: 0
              FieldOfView: [64.0108 64.0108]
    MeasurementParameters: [1x1 struct]

Подробнее о

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

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

.

См. также

Объекты

Функции

Введенный в R2018b