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);

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

свернуть все

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

ПеременнаяЗначение Модуль
x

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

m
y

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

m
s

Скорость в направляющемся направлении

m/s
θ

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

градус
ω

Угловая скорость вращения

degree/s
L

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

m
W

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

m

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

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

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

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

свернуть все

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

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

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

Введенный в R2019b