Main Content

transformtraj

Generar trayectorias entre dos transformaciones

Descripción

ejemplo

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples) genera una trayectoria que interpola entre dos transformaciones homogéneas de 4 por 4, T0 y TF, con puntos basados en el intervalo de tiempo y muestras de tiempo dadas.

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples,Name,Value) especifica parámetros adicionales usando argumentos de par Name,Value.

Ejemplos

contraer todo

Cree transformaciones a partir de dos orientaciones y posiciones. Especifique el intervalo de tiempo y el vector de tiempos para interpolar.

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;

Interpole entre los puntos. Represente la trayectoria usando plotTransforms. Convierta las transformaciones en rotaciones de cuaterniones y transiciones lineales. La figura muestra todas las transformaciones intermedias del marco de coordenadas.

[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 object. The axes object contains 404 objects of type patch, line.

Argumentos de entrada

contraer todo

Transformación inicial, especificada como una transformación homogénea de 4 por 4. La función genera una trayectoria que va desde la transformación inicial, T0, hasta la transformación final, TF.

Tipos de datos: single | double

Transformación final, especificada como una transformación homogénea de 4 por 4. La función genera una trayectoria que va desde la transformación inicial, T0, hasta la transformación final, TF.

Tipos de datos: single | double

Tiempos de inicio y finalización de la trayectoria, especificados como un vector de dos elementos en segundos.

Ejemplo: [0 10]

Tipos de datos: single | double

Muestras de tiempo de la trayectoria, especificadas como un vector de m elementos en segundos.

Ejemplo: 0:0.01:10

Tipos de datos: single | double

Muestras de tiempo de la trayectoria, especificadas como vector de m elementos.

Ejemplo: 0:0.01:10

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

En versiones anteriores a R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'TimeScaling',[0 1 2; 0 1 0; 0 0 0]

Vector de escala de tiempo y las primeras dos derivadas, especificadas como un vector de 3 por m, donde m es la longitud de tSamples. De forma predeterminada, la escala de tiempo es una escala de tiempo lineal entre los puntos de tiempo en tInterval.

Para una escala de tiempo no lineal, especifique los valores de los puntos de tiempo como posiciones en metros en la primera fila. La segunda y tercera fila representan la velocidad y la aceleración de los puntos de tiempo en m/s y m/s2, respectivamente. Por ejemplo, para seguir la ruta con una velocidad lineal hasta el punto medio y luego saltar hasta el final, la escala de tiempo sería:

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

Tipos de datos: single | double

Argumentos de salida

contraer todo

Trayectoria de transformación, devuelta como un arreglo de matriz de transformación homogénea de 4 por 4 por m, donde m es el número de puntos de tSamples.

Velocidades de transformación, devueltas como una matriz de 6 por m en m/s, donde m es el número de puntos de tSamples. Los primeros tres elementos son las velocidades angulares y los segundos tres elementos son las velocidades en el tiempo.

Aceleraciones de transformación, devueltas como una matriz de 6 por m en m/s2, donde m es el número de puntos de tSamples. Los primeros tres elementos son las aceleraciones angulares y los segundos tres elementos son las aceleraciones en el tiempo.

Referencias

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press, 2017.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019a