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)

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

свернуть все

Измерения угла обзора в виде массива ячеек 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] Блэкмен, Сэмюэль и Роберт Пополи. "Проект и анализ современных систем слежения". Норвуд, MA: Дом Artech, 1999. (1999).

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

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

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

Объекты

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

Введенный в R2018b