Угловые измерения постоянной угловой скорости вращения прямоугольная цель
Задайте систему координат датчика путем определения 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 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
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; v x; v y; v z] или [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 равняется трем, которые соответствуют 3-D Декартовым координатам положения.
ctrect
| ctrectjac
| ctrectmeas
| ctrectmeasjac
| gmphd
| initctrectgmphd
| trackerPHD
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.