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 байта однородного преобразования, где m количество точек в tSamples.

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

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

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

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

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