exponenta event banner

ctrectmeas

Модель измерения прямоугольной цели с постоянной скоростью поворота

Описание

пример

measurements = ctrectmeas(states,detections) возвращает ожидаемые измерения из текущих прямоугольных состояний и обнаружений.

Примеры

свернуть все

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

load('rectangularTargetDetections.mat','detections','truthState');

Создание ожидаемых обнаружений из прямоугольного состояния целевого объекта и фактических обнаружений с помощью ctrectmeas.

tgtState = [3;48;0;60;0;5;1.9];
zExp = ctrectmeas(tgtState,detections);

Настройка среды визуализации с помощью theaterPlot.

theaterP = theaterPlot;
stateP = trackPlotter(theaterP,'DisplayName','State','MarkerFaceColor','g');
truthP = trackPlotter(theaterP,'DisplayName','Truth','MarkerFaceColor', 'b');
detP = detectionPlotter(theaterP,'DisplayName','Detections','MarkerFaceColor','r');
expDetP = detectionPlotter(theaterP,'DisplayName','Expected Detections','MarkerFaceColor','y');
l = legend(theaterP.Parent);
l.AutoUpdate = 'on';
hold on;
assignP = plot(theaterP.Parent,NaN,NaN,'-.','DisplayName','Association');

Постройте график фактических и ожидаемых обнаружений.

inDets = [detections{:}];
inMeas = horzcat(inDets.Measurement);
detP.plotDetection(inMeas');

zExpPlot = reshape(zExp,3,[]);
expDetP.plotDetection(zExpPlot');

Печать линий связи.

zLines = nan(2,numel(detections)*3);
zLines(1,1:3:end) = zExpPlot(1,:);
zLines(2,1:3:end) = zExpPlot(2,:);
zLines(1,2:3:end) = inMeas(1,:);
zLines(2,2:3:end) = inMeas(2,:);
assignP.XData = zLines(1,:);
assignP.YData = zLines(2,:);

Постройте график правды и состояния.

truthPos = [truthState(1:2);0];
truthDims = struct('Length',truthState(6),...
    'Width',truthState(7),...
    'Height', 0,...
    'OriginOffset', [0 0 0]);
truthOrient = quaternion([truthState(4) 0 0],'eulerd', 'ZYX','frame');
truthP.plotTrack(truthPos',truthDims,truthOrient);

statePos = [tgtState(1:2);0];
stateDims = struct('Length',tgtState(6),...
    'Width',tgtState(7),...
    'Height',0,...
    'OriginOffset', [0 0 0]);
stateOrient = quaternion([tgtState(4) 0 0],'eulerd', 'ZYX','frame');
stateP.plotTrack(statePos', stateDims, stateOrient);

Figure contains an axes. The axes contains 5 objects of type line. These objects represent State, Truth, Detections, Expected Detections, Association.

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

свернуть все

Текущие прямоугольные состояния, заданные как 7-by-N вещественно-значная матрица, где N - число состояний. Семизмерное прямоугольное целевое состояние определяется как [x; y; s; θ; ω; L; W]:

ПеременнаяЗначение Единица
x

Положение центра прямоугольника в направлении x

m
y

Положение центра прямоугольника в направлении y

m
s

Скорость в направлении курса

м/с
θ

Угол ориентации прямоугольника относительно направления x

степень
ω

Скорость поворота

степень/с
L

Длина прямоугольника

m
W

Ширина прямоугольника

m

Пример: [1;2;2;30;1;4.7;1.8]

Типы данных: single | double

Обнаружения цели, указанной как массив 1-by-M ячеек objectDetection объекты. MeasurementParameters свойство (указывающее преобразование из state-space в measurement-space) для каждого объекта должно быть одинаковым для всех обнаружений в массиве ячеек.

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

свернуть все

Ожидаемые измерения, возвращаемые в виде массива вещественных значений P-by-N-by-M. P - размер каждого измерения, указанного в detections input, N - количество состояний, указанных в states и M - количество обнаружений, указанное в detections вход.

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

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

.
Представлен в R2019b