Постоянная прямоугольная целевая модель измерения скорости поворота
возвращает ожидаемые измерения из текущих прямоугольных состояний и обнаружений.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);
states
- Текущие прямоугольные состоянияТекущие прямоугольные состояния, заданные как 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
detections
- Обнаружение целиobjectDetection
объектыОбнаружения цели, заданные как массив ячеек M 1 байт objectDetection
объекты. The MeasurementParameters
свойство (которое задает преобразование из пространства состояний в пространство измерений) для каждого объекта должно быть одинаковым для всех обнаружений в массиве ячеек.
measurements
- Ожидаемые измеренияОжидаемые измерения, возвращенные как P -by- N -by- M вещественный массив. P - размерность каждого измерения, заданная в detections
вход, N - количество состояний, заданное в states
вход, и M - количество обнаружений, заданное в detections
вход.
ctrect
| ctrectcorners
| ctrectjac
| ctrectmeasjac
| gmphd
| initctrectgmphd
| trackerPHD
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.