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-байтовая 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; <reservedrangesplaceholder8> <reservedrangesplaceholder7>; <reservedrangesplaceholder6> <reservedrangesplaceholder5>; v z] или [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 является тремя, что соответствует 3-D Декартовым координатам положения.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b