triangulateLOS

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

Синтаксис

estPos = triangulateLOS(detections)
[estPos,estCov] = triangulateLOS(detections)

Описание

пример

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)

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

свернуть все

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

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

Каждое обнаружение должно задать свойство 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 использует субоптимальный метод линейного метода наименьших квадратов, чтобы минимизировать расстояние мисс между несколькими обнаружениями. Формулировка делает эти предположения:

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

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

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

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

Смотрите также

Классы

Системные объекты

Введенный в R2018b