exponenta event banner

ctrectcorners

Угловые измерения прямоугольной цели постоянной скорости поворота

Описание

zCorners = ctrectcorners(states) возвращает положения углов для прямоугольных целей с постоянной скоростью поворота в прямоугольном кадре.

пример

zCorners = ctrectcorners(states,sensorParameters) определяет параметры датчика, измеряющего углы прямоугольных целей.

Примеры

свернуть все

Определите опорную рамку датчика, указав 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');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Target State, Corners.

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

свернуть все

Текущие прямоугольные целевые состояния, заданные как 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

Параметры функции преобразования датчика, возвращаемые в виде структуры или массива структур. Если требуется преобразовать состояние только один раз, укажите его как структуру. Если требуется преобразовать состояние n раз, укажите его как массив структур n-by-1. Например, для преобразования состояния из кадра сценария в кадр датчика обычно необходимо сначала преобразовать состояние из прямоугольного кадра сценария в прямоугольный кадр платформы, а затем преобразовать состояние из прямоугольного кадра платформы в сферический кадр датчика.

Поля структуры:

ОбластьОписание
Frame

Тип дочерней рамки координат, указанный как 'Rectangular' или 'Spherical'.

OriginPosition

Исходная позиция дочернего кадра, выраженная в родительском кадре, заданная как вектор 3 на 1.

OriginVelocity

Начальная скорость дочернего кадра, выраженная в родительском кадре, заданная как вектор 3 на 1.

Orientation

Относительная ориентация между кадрами, заданная как матрица вращения 3 на 3. Если IsParentToChild свойство имеет значение false, затем укажите Orientation как поворот от дочернего кадра к родительскому. Если IsParentToChild свойство имеет значение true, затем укажите Orientation как поворот от родительского кадра к дочернему.

IsParentToChild

Флаг для указания направления поворота между родительским и дочерним кадром, указанный как true или false. Значение по умолчанию: false. См. описание Orientation для получения подробной информации.

HasAzimuth

Указывает, содержат ли выходы азимутальные компоненты, указанные как true или false.

HasElevation

Указывает, содержат ли выходные данные компоненты отметки, указанные как true или false.

HasRange

Указывает, содержат ли выходы компоненты диапазона, указанные как true или false.

HasVelocity

Указывает, содержат ли выходы компоненты скорости, указанные как true или false.

При этом кадр сценария является родительским кадром кадра платформы, а кадр платформы является родительским кадром кадра датчика.

Когда 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

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

свернуть все

Состояния углов, возвращаемые в виде массива M-by-N-by-4 с действительным значением. Каждая страница (матрица M-by-N) массива соответствует одному углу для всех состояний, заданных во входных состояниях. N - число состояний. M - размер выходного сигнала, определяемый sensorParameters вход. Если неуказанный, значение по умолчанию M равняется трем, которые соответствуют 3D Декартовским координатам положения.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b