exponenta event banner

transformtraj

Создание траекторий между двумя преобразованиями

Описание

пример

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples) генерирует траекторию, которая интерполирует между двумя однородными преобразованиями 4 на 4, T0 и TF, с точками, основанными на временном интервале и заданных временных выборках.

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples,Name,Value) задает дополнительные параметры с помощью Name,Value аргументы пары.

Примеры

свернуть все

Построение преобразований из двух ориентаций и положений. Укажите интервал времени и вектор времени для интерполяции.

t0 = axang2tform([0 1 1 pi/4])*trvec2tform([0 0 0]);
tF = axang2tform([1 0 1 6*pi/5])*trvec2tform([1 1 1]);
tInterval = [0 1];
tvec = 0:0.01:1;

Интерполяция между точками. Постройте график траектории с помощью plotTransforms. Преобразование преобразований в кватернионные повороты и линейные переходы. На рисунке показаны все промежуточные преобразования рамки координат.

[tfInterp, v1, a1] = transformtraj(t0,tF,tInterval,tvec);

rotations = tform2quat(tfInterp);
translations = tform2trvec(tfInterp);

plotTransforms(translations,rotations)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes. The axes contains 404 objects of type patch, line.

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

свернуть все

Начальное преобразование, указанное как однородное преобразование 4 на 4. Функция генерирует траекторию, которая начинается при начальном преобразовании. T0и переходит к окончательному преобразованию, TF.

Типы данных: single | double

Конечное преобразование, указанное как однородное преобразование 4 на 4. Функция генерирует траекторию, которая начинается при начальном преобразовании. T0и переходит к окончательному преобразованию, TF.

Типы данных: single | double

Время начала и окончания траектории, указанное как двухэлементный вектор в секундах.

Пример: [0 10]

Типы данных: single | double

Временные выборки для траектории, заданные как вектор m-элемента в секундах. Выходная траектория, rotVector, является вектором ориентаций.

Пример: 0:0.01:10

Типы данных: single | double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'TimeScaling',[0 1 2; 0 1 0; 0 0 0]

Вектор масштабирования по времени и первые две производные, заданные как вектор 3 на m, где m - длина tSamples. По умолчанию масштабирование по времени представляет собой линейное масштабирование по времени между точками времени в tInterval.

Для нелинейного масштабирования по времени укажите значения временных точек как позиции в метрах в первой строке. Второй и третий ряды представляют собой скорость и ускорение временных точек в м/с и м/с2 соответственно. Например, чтобы следовать по пути с линейной скоростью до половины пути, а затем перейти к концу, масштабирование по времени будет следующим:

s(1,:) = [0 0.25 0.5 1 1 1] % Position
s(2,:) = [1    1   1 0 0 0] % Velocity
s(3,:) = [0    0   0 0 0 0] % Acceleration

Типы данных: single | double

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

свернуть все

Траектория преобразования, возвращаемая как массив однородной матрицы преобразования 4 на 4 м, где m - количество точек в tSamples.

Скорости преобразования, возвращаемые в виде матрицы 6 на м в м/с, где m - количество точек в tSamples. Первые три элемента являются угловыми скоростями, а вторые три элемента являются скоростями во времени.

Ускорения преобразования, возвращаемые в виде матрицы 6 на м в m/s2, где m - количество точек в tSamples. Первые три элемента являются угловыми ускорениями, а вторые три элемента являются ускорениями во времени.

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

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

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