Представление строения датчика для отслеживания
The trackingSensorConfiguration
объект создает строение для датчика, используемого с trackerPHD
Системные object™. Это позволяет вам задать параметры датчика, такие как плотность загромождения, пределы датчика, разрешение датчика. Можно также задать, как трекер воспринимает обнаружения от датчика, используя такие свойства, как FilterInitializationFcn
, SensorTransformFcn
, и SensorTransformParameters
. Для получения дополнительной информации смотрите Строение создания датчика отслеживания. The trackingSensorConfiguration
объект позволяет трекеру выполнить три основные рутинные операции:
Оцените вероятность обнаружения в точках в пространстве состояний.
Инициируйте компоненты в плотности гипотезы вероятностей.
Получите плотность загромождения датчика.
создает config
= trackingSensorConfiguration(SensorIndex
)trackingSensorConfiguration
объект с заданным индексом датчика, SensorIndex
, и значения свойств по умолчанию.
позволяет вам задать свойства с помощью одной или нескольких пар "имя-значение".config
= trackingSensorConfiguration(SensorIndex
,Name,Value
)
SensorIndex
- Уникальный идентификатор датчикаУникальный идентификатор датчика, заданный как положительное целое число. Это свойство отличает обнаружения, которые поступают от разных датчиков в мультисенсорной системе. При создании trackingSensorConfiguration
объект, вы должны задать SensorIndex
как первый входной параметр в синтаксисе создания.
Пример: 2
Типы данных: double
IsValidTime
- Указать состояние отчета об обнаруженииfalse
(по умолчанию) | true
Укажите состояние сообщения об обнаружении датчика, заданное как false
или true
. Установите это свойство на true
когда датчик должен сообщать о обнаружениях в пределах своего датчика трекеру. Если дорожка или цель должны были быть обнаружены датчиком, но датчик не сообщил об обнаружениях, то эта информация используется для подсчета относительно вероятности существования дорожки, когда isValidTime
для свойства задано значение true
.
Типы данных: logical
FilterInitializationFcn
- Функция инициализации фильтра@initcvggiwphd
(по умолчанию) | указатель на функцию | вектор символовФункция инициализации фильтра, заданная как указатель на функцию или как вектор символов, содержащий имя действительной функции инициализации фильтра. Функция инициализирует PHD-фильтр, используемый trackerPHD
. Функция должна поддерживать следующие синтаксисы:
filter = filterInitializationFcn() filter = filterInitializationFcn(detections)
filter
является действительным PHD-фильтром с компонентами для новорожденных целей и detections
- массив ячеек из objectDetection
объекты. Первый синтаксис позволяет вам задать прогнозирующую плотность рождения в фильтре PHD, не используя обнаружения. Второй синтаксис позволяет фильтру инициализировать адаптивную плотность рождения с помощью информации обнаружения. Смотрите свойство BirthRate trackerPHD
для получения дополнительной информации. Если вы создаете свои собственные FilterInitilizationFcn
, вы также должны предоставить функцию преобразования, используя SensorTransformFcn
свойство. Кроме функции инициализации фильтра по умолчанию initcvggiwphd
, Sensor Fusion and Tracking Toolbox™ также обеспечивает другие функции инициализации, такие как initctrectgmphd
, initctgmphd
, initcvgmphd
, initcagmphd
, initctggiwphd
и initcaggiwphd
.
Типы данных: function_handle
| char
SensorTransformFcn
- Функция преобразования датчика@cvmeas
| указатель на функцию | вектор символовФункция преобразования датчика, заданная как указатель на функцию или как вектор символов, содержащий имя действительной функции преобразования датчика. Функция преобразует состояние дорожки в состояние обнаружения датчика. Для примера функция преобразует состояние дорожки в Декартовой системе координат сценария в сферическую систему координат датчика. Можно создать собственную функцию преобразования датчика, но она должна поддерживать следующий синтаксис:
detStates = SensorTransformFcn(trackStates,params)
params
являются ли параметры сохраненными в SensorTransformParameters
свойство. Заметьте, что подпись функции аналогична функции измерения. Поэтому можно использовать функцию измерения (такую как cvmeas
, ctmeas
, или cameas
) как SensorTransformFcn
.
В зависимости от типа фильтра и целевого типа, выхода, detStates
, нужно вернуться по-другому.
При использовании с gmphd
для не расширенных целей или с ggiwphd
, detStates
является N -by M матрицей, где N - количество строк в SensorLimits
свойство и M - это количество входа состояний в trackStates
. Для gmphd
не расширенные цели относятся к точечным целям и удлиненным целям, MeasurementOrigin
является 'center'
.
При использовании с gmphd
для расширенных целей, SensorTransformFcn
позволяет вам задать несколько detStates
в trackState
. В этом случае detStates
является N -by- M -by- S матрицей, где S - количество обнаруживаемых источников в расширенной целевой системе. Для примера, если цель описана прямоугольным состоянием, обнаруживаемые источники могут быть углами прямоугольника.
Если какой-либо из источников падает внутрь SensorLimits
, цель объявлена обнаруживаемой. Функции используют спред (максимальную координату − минимальную координату) каждого detStates
и отношение между расширением и разрешением датчика на каждом пределе датчика для вычисления ожидаемого количества обнаружений от каждой расширенной цели. Вы можете переопределить эту настройку по умолчанию, предоставив дополнительный выход в SensorTransformFcn
как:
[..., Nexp] = SensorTransformFcn(trackStates, params)
Nexp
- ожидаемое количество обнаружений от каждого расширенного состояния дорожки.
Обратите внимание, что значение по умолчанию SensorTransformFcn
- функция преобразования датчика фильтра, возвращаемая FilterInitilizationFcn
. Для примера, initicvggiwphd
функция возвращает значение по умолчанию cvmeas
, тогда как initictggiwphd
и initicaggiwphd
возврат функций ctmeas
и cameas
, соответственно.
Типы данных: function_handle
| char
SensorTransformParameters
- Параметры для функции преобразования датчикаПараметры для функции преобразования датчика, возвращенные как структура или массив структур. Если вам нужно преобразовать состояние только один раз, задайте его как структуру. Если вам нужно преобразовать состояние n раз, задайте его как n массив структур -by-1. Для примера, чтобы преобразовать состояние из кадра сценария в кадр датчика, обычно необходимо сначала преобразовать состояние из прямоугольной системы координат сценария в прямоугольную систему координат платформы, а затем преобразовать состояние из прямоугольной системы координат платформы в сферическую систему координат датчика. Полями структуры являются:
Область | Описание |
Frame | Тип дочерней координатной системы координат, заданный как |
OriginPosition | Положение начала дочерней системы координат, выраженное в родительской системе координат в виде вектора 3 на 1. |
OriginVelocity | Скорость начала дочерней системы координат, выраженная в родительской системе координат, заданная как вектор 3 на 1. |
Orientation | Относительная ориентация между системами координат, заданная как матрица вращения 3 на 3. Если на |
IsParentToChild | Флаг для указания направления вращения между родительской и дочерней системами координат, заданный как |
HasAzimuth | Указывает, содержат ли выходы компоненты азимута, задается как |
HasElevation | Указывает, содержат ли выходы компоненты повышения, задается как |
HasRange | Указывает, содержат ли выходы компоненты области значений, заданные как |
HasVelocity | Указывает, содержат ли выходы компоненты скорости, задается как |
Обратите внимание, что здесь система координат сценария является родительской системой координат системы координат платформы, а система координат платформы является родительской системой координат системы координат датчика.
Значения по умолчанию для SensorTransformParameters
являются массивом структур 2 на 1 как:
Области | Struct 1 | Struct 2 |
Система координат | 'Spherical' | 'Rectangular' |
OriginPosition | [0;0;0] | [0;0;0] |
OriginVelocity | [0;0;0] | [0;0;0] |
Ориентация | eye(3) | eye(3) |
IsParentToChild | false | false |
HasAzimuth | true | true |
HasElevation | true | true |
HasRange | true | true |
HasVelocity | false | true |
В этой таблице Struct 2 учитывает преобразование из прямоугольной системы координат сценария в прямоугольную систему координат платформы, а Struct 1 рассчитывает преобразование из прямоугольной системы координат платформы в сферическую систему координат датчика, учитывая isParentToChild
для свойства задано значение false
.
Типы данных: struct
SensorLimits
- Пределы обнаружения датчикаПределы обнаружения датчика, заданные как матрица N-на-2, где N - выходная размерность функции преобразования датчика. Матрица должна описать нижний и верхний пределы обнаружения датчика в том же порядке, что и выходы функции преобразования датчика.
Если вы используете cvmeas
, cameas
, или ctmeas
как функция преобразования датчика, тогда необходимо обеспечить пределы датчика в следующем порядке:
Описание этих пределов и их значений по умолчанию приведены в следующей таблице. Обратите внимание, что значения по умолчанию для SensorLimits
являются матрицей 3 на 2, включая шесть верхних элементов таблицы. Более того, если вы используете эти три функции, можно задать матрицу в других размерах (1 на 2, 2 на 2 или 3 на 4), но вы должны задать эти пределы в последовательности, показанной в матрице SensorLimits.
Пределы | Описание | Значения по умолчанию |
minAz | Минимальный обнаруживаемый азимут в степенях. | -10 |
maxAz | Максимальный обнаруживаемый азимут в степенях. | 10 |
minEl | Минимальное обнаруживаемое повышение в степенях. | -2.5 |
maxEl | Максимальное обнаруживаемое повышение в степенях. | 2.5 |
minRng | Минимальный обнаруживаемая область значений в метрах. | 0 |
maxRng | Максимальный обнаруживаемая область значений в метрах. | 1000 |
minRr | Минимальная обнаруживаемая частота областей значений в метрах в секунду. | Н/Д |
maxRr | Максимальная обнаруживаемая частота областей значений в метрах в секунду. | Н/Д |
Типы данных: double
SensorResolution
- Разрешение датчика[4;2;10]
(по умолчанию) | N вектор с положительным значением -элементРазрешение датчика, заданное как N элемент с положительным значением, где N - количество параметров, заданное в SensorLimits
свойство. Если вы хотите назначить только одну камеру разрешения для параметра, просто укажите ее разрешение как различие между максимальным пределом и минимальным пределом параметра.
Типы данных: double
MaxNumDetsPerObject
- Максимальное количество обнаружений на объектInf
(по умолчанию) | положительное целое числоМаксимальное количество обнаружений, о которых датчик может сообщать на объект, заданное в виде положительного целого числа.
Пример: 3
Типы данных: double
ClutterDensity
- Ожидаемое количество ложных предупреждений на модуль объема1e-3
(по умолчанию) | положительная скалярная величинаОжидаемое количество ложных предупреждений на модуль объем от датчика, заданное как положительная скалярная величина.
Пример: 2e-3
Типы данных: double
MinDetectionProbability
- Вероятность обнаружения дорожки, которая, по оценкам, находится вне пределов действия датчика0.05
(по умолчанию) | положительная скалярная величинаВероятность обнаружения цели, которая, по оценкам, находится вне пределов датчика, задается как положительная скалярная величина. Это свойство позволяет использовать trackerPHD
объект, чтобы учесть, что расчетная цель, которая находится вне пределов датчика, может быть обнаруживаемой.
Пример: 0.03
Типы данных: double
Рассмотрим радар с нижеследующими пределами датчика и разрешением датчика.
azLimits = [-10 10]; elLimits = [-2.5 2.5]; rangeLimits = [0 500]; rangeRateLimits = [-50 50]; sensorLimits = [azLimits;elLimits;rangeLimits;rangeRateLimits]; sensorResolution = [5 2 10 3];
Определение функции преобразования датчика, которая преобразует Декартовы координаты [x; y; vx; vy] в сценарной системе координат [az; el; область значений; rr] в сферической системе координат датчика. Можно использовать функцию
измерения cvmeas
как функцию преобразования датчика.
transformFcn = @cvmeas;
Чтобы задать параметры, необходимые для cvmeas
, используйте SensorTransformParameters
свойство. Здесь вы предполагаете, что датчик установлен в центре платформы, а платформа, расположенная на [100; 30; 20], движется со скоростью [-5; 4; 2] модули в секунду в систему координат сценария.
Первая структура определяет положение, скорость и ориентацию датчика в системе координат платформы.
params(1) = struct('Frame','Spherical','OriginPosition',[0;0;0],... 'OriginVelocity',[0;0;0],'Orientation',eye(3),'HasRange',true,... 'HasVelocity',true);
Вторая структура определяет местоположение, скорость и ориентацию платформы в системе координат сценария.
params(2) = struct('Frame','Rectangular','OriginPosition',[100;30;20],... 'OriginVelocity',[-5;4;2],'Orientation',eye(3),'HasRange',true,... 'HasVelocity',true);
Создайте строение.
config = trackingSensorConfiguration('SensorIndex',3,'SensorLimits',sensorLimits,... 'SensorResolution',sensorResolution,... 'SensorTransformParameters',params,... 'SensorTransformFcn',@cvmeas,... 'FilterInitializationFcn',@initcvggiwphd)
config = trackingSensorConfiguration with properties: SensorIndex: 3 IsValidTime: 0 SensorLimits: [4x2 double] SensorResolution: [4x1 double] SensorTransformFcn: @cvmeas SensorTransformParameters: [1x2 struct] FilterInitializationFcn: @initcvggiwphd MaxNumDetsPerObject: Inf ClutterDensity: 1.0000e-03 DetectionProbability: 0.9000 MinDetectionProbability: 0.0500
Чтобы создать строение для датчика, сначала нужно задать функцию преобразования датчика, которая обычно задается как:
где x обозначает состояние отслеживания, Y обозначает состояния обнаружения, а p обозначает необходимые параметры. Для приложений отслеживания объектов вы в основном фокусируетесь на получении состояния отслеживания объекта. Для примера радарный датчик может измерить объект азимут, повышение, диапазон и, возможно, частоту области значений. Использование trackingSensorConfiguration
объект, можно задать функцию преобразования радара используя SensorTransformFcn
свойство и укажите местоположение, ориентацию и скорость установки радара, используя соответствующие поля в SensorTransformParameters
свойство. Если объект движется с постоянной скоростью, постоянным ускорением или постоянным поворотом, можно использовать встроенную функцию измерения - cvmeas
, cameas
, или ctmeas
, соответственно - как SensorTransformFcn
. Чтобы настроить точные выходы этих трех функций, задайте hasAzimuth
, hasElevation
, hasRange
, и hasVelocity
поля как true
или false
в SensorTransformParameters
свойство.
Чтобы настроить строение датчика, необходимо также задать способность датчика обнаруживать. В первую очередь необходимо указать пределы обнаружения датчика. Для всех выходов функции преобразования датчика необходимо предоставить пределы обнаружения в том же порядке этих выходов с помощью SensorLimits
свойство. Для примера, для радарного датчика, вам может потребоваться задать его азимут, повышение, диапазон и пределы дальности. Можно также задать SensorResolution
радара и
MaxNumDetsPerObject
свойства, если необходимо рассмотреть возможность обнаружения расширенных объектов. Можно также хотеть задать другие свойства, такие как ClutterDensity
, IsValidTime
, и MinDetectionProbability
для дополнительного уточнения детекторной способности датчика.
cameas
| ctmeas
| cvmeas
| ggiwphd
| trackerPHD
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.