triangulateLOS

Триангулируйте несколько обнаружений линии зрения

Описание

пример

estPos = triangulateLOS(detections) оценивает положение цели в глобальной Декартовой координатной системе координат путем триангуляции набора только углов detections. Обнаружение только угла также известно как обнаружение линии видимости (LOS). Для получения дополнительной информации см. «Алгоритмы».

[estPos,estCov] = triangulateLOS(detections) также возвращается estCovковариация ошибки в целевом положении. Функция использует приближение ряда Тейлора, чтобы оценить ковариацию ошибки.

Примеры

свернуть все

Загрузите MAT-файл, содержащий набор обнаружений линии видимости, сохраненных в переменной detectionSet.

load angleOnlyDetectionFusion.mat

Постройте график только обнаружений угла и положения датчика. Задайте область значений значений 5 км для графического изображения вектора направления. Чтобы задать положение источника, используйте второй параметр измерения, потому что датчик расположен в центре платформы. Преобразуйте показания азимута и повышения в Декартовы координаты.

rPlot = 5000;

for i = 1:numel(detectionSet)
    originPos = detectionSet{i}.MeasurementParameters(2).OriginPosition;

    az = detectionSet{i}.Measurement(1);
    el = detectionSet{i}.Measurement(2);
    [xt,yt,zt] = sph2cart(deg2rad(az),deg2rad(el),rPlot);
        
    positionData(:,i) = originPos;
    plotData(:,3*i+(-2:0)) = [xt yt zt]'.*[1 0 NaN]+originPos;
end

plot3(positionData(1,:),positionData(2,:),positionData(3,:),'*')
hold on
plot3(plotData(1,:),plotData(2,:),plotData(3,:))

Триангулируйте обнаружения при помощи triangulateLOS. Постройте график триангулированного положения.

[estPos,estCov] = triangulateLOS(detectionSet);

plot3(estPos(1),estPos(2),estPos(3),'pk','MarkerFaceColor','k')
hold off

legend('Sensor Positions','Angle-Only Detections','Triangulated Position', ...
    'location','southeast')
xlabel('x [m]')
ylabel('y [m]')
view(2)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Sensor Positions, Angle-Only Detections, Triangulated Position.

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

свернуть все

Измерения линии видимости, заданные как массив ячеек objectDetection объекты. Каждый объект имеет свойства, перечисленные в таблице.

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

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

ПараметрОпределение
Frame

Система координат, используемый для сообщения измерений. Задайте Frame как 'spherical' для первой структуры.

OriginPosition

Смещение положения источника системы координат относительно родительской системы координат, представленное в виде вектора действительных чисел 3 на 1.

OriginVelocity

Смещение скорости источника системы координат относительно родительской системы координат, представленное в виде вектора действительных чисел 3 на 1.

Orientation

Матрица ориентации действительной системы координат 3 на 3.

IsParentToChild

Логический скаляр, который указывает, Orientation задается как поворот системы координат от родительской системы координат к дочерней системе координат. Если false, затем Orientation задается как поворот системы координат от дочерней системы координат к родительской системе координат.

HasElevation

Логический скаляр, который указывает, включено ли в измерения повышение высоты. Этот параметр true по умолчанию.

HasAzimuthЛогический скаляр, который указывает, включен ли азимут в измерения. Этот параметр true по умолчанию. Если это поле задано как поле, оно должно быть установлено на true.
HasRangeЛогический скаляр, который указывает, включена ли область значений в измерения. Этот параметр должен быть задан как поле и установлен на false.
HasVelocity

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

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

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

свернуть все

Расчетное положение цели, возвращаемое как вектор 3 на 1.

Предполагаемая ковариация ошибки целевой позиции, возвращенная как матрица 3 на 3.

Алгоритмы

Несколько измерений только угла или линии обзора приводят к тому, что линии в пространстве. Эти линии могут пересекаться или не пересекаться из-за шума измерения. triangulateLOS использует неоптимальный линейный метод методом наименьших квадратов, чтобы минимизировать расстояние промаха между несколькими обнаружениями. Формулировка делает следующие предположения:

  • Все обнаружения сообщают о измерениях с примерно одинаковой точностью по азимуту и повышению (если измерено).

  • Расстояния от различных датчиков до триангулированной цели имеют одинаковый порядок.

Ссылки

[1] Блэкман, Сэмюэль и Роберт Пополи. «Проект и анализ современных систем слежения». Norwood, MA: Artech House, 1999. (1999).

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

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

.

См. также

Объекты

Введенный в R2018b