plotOrientation

Постройте график набора ориентаций на графике ориентации

Описание

пример

plotOrientation(oPlotter,orientations) задает ориентации M объектов для отображения на графике ориентации, oPlotter. The orientations Аргумент может быть либо массивом кватернионов M -by-1, либо массивом матриц вращения M 3 на 3 байта.

plotOrientation(oPlotter,roll,pitch,yaw) задает ориентации M объектов для отображения на графике ориентации, oPlotter. Аргументы roll, pitch, и yaw M вектора -by-1, измеренные в степенях.

plotOrientation(oPlotter,___,positions) также задает положения объектов как матрицу M -by-3. Каждый столбец positions соответствует x -, y - и z - координатам местоположений объектов, соответственно.

plotOrientation(oPlotter,___,positions,labels) также задает метки как M-на-1 массив ячеек из векторов символов, которые соответствуют M ориентации.

Примеры

свернуть все

В этом примере показано, как анимировать ориентацию колеблющегося устройства.

Загрузка rpy_9axis.mat. Данные в rpy_9axis.mat регистрируют данные акселерометра, гироскопа и датчика магнитометра от устройства, колеблющегося с тангажом (вокруг оси Y), затем рыскание (вокруг оси Z), затем крен (вокруг оси X). Ось X устройства указывала на юг при регистрации.

ld = load('rpy_9axis.mat')
ld = struct with fields:
            Fs: 200
    sensorData: [1x1 struct]

Установите частоту дискретизации. Извлеките данные акселерометра и гироскопа. Установите коэффициент десятикратного уменьшения равным 2. Использование fuse создать косвенный фильтр слияния датчика Калмана из данных.

accel = ld.sensorData.Acceleration;
gyro = ld.sensorData.AngularVelocity;    
Fs  = ld.Fs;
decim = 2;
fuse = imufilter('SampleRate',Fs,'DecimationFactor',decim);

Получите информацию о положении сросшихся данных.

pose = fuse(accel,gyro);

Создайте театральный график. Добавьте к графику театра ориентировочный плоттер с 'DisplayName' установлено на 'Fused Data' и 'LocalAxesLength' установлено на 2.

tp = theaterPlot('XLimit',[-2 2],'YLimit',[-2 2],'ZLimit',[-2 2]);
op = orientationPlotter(tp,'DisplayName','Fused Data',...
    'LocalAxesLength',2);

Пройдите по контуру информацию о положении, чтобы анимировать изменение ориентации.

for i=1:numel(pose)
    plotOrientation(op, pose(i))
    drawnow
end

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Fused Data, x-Fused Data, y-Fused Data, z-Fused Data.

Входные параметры

свернуть все

Ориентировочный плоттер, заданный как orientationPlotter объект.

Ориентации M объектов, заданные как M-на-1 массив кватернионов, или 3-на-3- M массив матриц поворота.

Углы крена, тангажа и рыскания, определяющие ориентации M объектов, заданные как M векторы -by-1. Углы измеряются в степенях.

Положения объекта, заданные как M -by-3 матрица с реальным значением, где M количество объектов. Каждый столбец матрицы соответствует x -, y - и z - координатам расположения объектов в метрах. Значение по умолчанию positions находится в источнике.

Метки объекта, заданные как M-на-1 массив ячеек векторов символов, где M количество объектов. labels содержит текстовые метки, соответствующие M объектам, указанным в positions. Если labels опущен, метки не нанесены.

Введенный в R2018b