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-байтовая 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

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

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

свернуть все

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

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

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

.
Введенный в R2019b