exponenta event banner

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Объекты

Представлен в R2018b