Угловые измерения постоянной скорости поворота прямоугольной цели
Задайте опорную систему координат датчика путем определения 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 | Скорость в направлении курса | м/с |
θ | Угол ориентации прямоугольника относительно 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; <reservedrangesplaceholder8> <reservedrangesplaceholder7>; <reservedrangesplaceholder6> <reservedrangesplaceholder5>; 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.