Угловые измерения прямоугольной цели постоянной скорости поворота
Определите опорную рамку датчика, указав sensorParameters вход.
sensorPosition = [-5;10;0]; sensorOrientation = rotmat(quaternion([30 0 0],'eulerd','ZYX','frame'),'frame'); sensorParams = struct('Frame','Rectangular', ... 'OriginPosition',sensorPosition,... 'Orientation',sensorOrientation);
Определите состояние постоянной скорости поворота для цели прямоугольника.
state = [10;5;1.6;30;0.5;4.7;1.8];
Вычислите угловые положения в системе координат датчика.
corners = ctrectcorners(state,sensorParams);
Настройка среды визуализации с помощью theaterPlot.
% Create a theater plot. tp = theaterPlot; % Plot the state using a track plotter. statePlotter = trackPlotter(tp,'DisplayName','Target State'); % Plot the corners using a detection plotter. cornerPlotter = detectionPlotter(tp,'DisplayName','Corners');
Вычислите входные данные и постройте график.
targetPos = [state(1) state(2) 0]; targetOrientation = rotmat(quaternion([state(4) 0 0],'eulerd','ZYX','frame'),'frame'); targetDims = struct('Length',state(6),... 'Width',state(7),... 'Height',5,... 'OriginOffset',[0 0 0]); cornerPosGlobal = sensorOrientation*corners(:,:) + sensorPosition; statePlotter.plotTrack(targetPos,targetDims,targetOrientation); cornerPlotter.plotDetection(cornerPosGlobal');

states - Текущее состояние прямоугольной целиТекущие прямоугольные целевые состояния, заданные как 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
sensorParameters - Параметры функции преобразования датчикаПараметры функции преобразования датчика, возвращаемые в виде структуры или массива структур. Если требуется преобразовать состояние только один раз, укажите его как структуру. Если требуется преобразовать состояние n раз, укажите его как массив структур n-by-1. Например, для преобразования состояния из кадра сценария в кадр датчика обычно необходимо сначала преобразовать состояние из прямоугольного кадра сценария в прямоугольный кадр платформы, а затем преобразовать состояние из прямоугольного кадра платформы в сферический кадр датчика.
Поля структуры:
| Область | Описание |
Frame | Тип дочерней рамки координат, указанный как |
OriginPosition | Исходная позиция дочернего кадра, выраженная в родительском кадре, заданная как вектор 3 на 1. |
OriginVelocity | Начальная скорость дочернего кадра, выраженная в родительском кадре, заданная как вектор 3 на 1. |
Orientation | Относительная ориентация между кадрами, заданная как матрица вращения 3 на 3. Если |
IsParentToChild | Флаг для указания направления поворота между родительским и дочерним кадром, указанный как |
HasAzimuth | Указывает, содержат ли выходы азимутальные компоненты, указанные как |
HasElevation | Указывает, содержат ли выходные данные компоненты отметки, указанные как |
HasRange | Указывает, содержат ли выходы компоненты диапазона, указанные как |
HasVelocity | Указывает, содержат ли выходы компоненты скорости, указанные как |
При этом кадр сценария является родительским кадром кадра платформы, а кадр платформы является родительским кадром кадра датчика.
Когда frame является 'Rectangular', HasVelocity определяет, возвращено ли измерение в виде [x; y; z; vx; vy; vz] или [x; y; z].
Когда frame является 'spherical', возвращаемые измерения находятся в порядке [азимут, отметка, диапазон, дальность]. Элементы возвращаемых измерений определяются:
HasAzimuth - определяет, содержит ли выходной сигнал измерение азимута.
HasElevation - определяет, содержит ли вывод измерение отметки.
HasRange - Определяет, содержит ли выходной сигнал измерение диапазона.
HasVelocity - Определяет, содержит ли вывод измерение скорости диапазона при условии, что HasRange является 'true'. Если HasRange является 'false', возвращенное измерение не содержит скорости диапазона (несмотря на то, что HasVelocity является 'true').
Типы данных: struct
zCorners - Состояния угловСостояния углов, возвращаемые в виде массива M-by-N-by-4 с действительным значением. Каждая страница (матрица M-by-N) массива соответствует одному углу для всех состояний, заданных во входных состояниях. N - число состояний. M - размер выходного сигнала, определяемый sensorParameters вход. Если неуказанный, значение по умолчанию M равняется трем, которые соответствуют 3D Декартовским координатам положения.
ctrect | ctrectjac | ctrectmeas | ctrectmeasjac | gmphd | initctrectgmphd | trackerPHD
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.