Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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, 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 nombre-valor.

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 with xlabel X, ylabel Y 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 o un objeto se3 escalar. La función genera una trayectoria que va desde la transformación inicial, T0, hasta la transformación final, TF.

T0 y TF deben ser del mismo tipo. Por ejemplo, si T0 es un objeto se3 escalar, TF debe ser un objeto se3 escalar.

Tipos de datos: single | double

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

T0 y TF deben ser del mismo tipo. Por ejemplo, si T0 es un objeto se3 escalar, TF debe ser un objeto se3 escalar.

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

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 1; 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 una posición en una escala de tiempo en la primera fila. La segunda y tercera fila representan la primera y la segunda derivada de la primera fila, 1/s y 1/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 time scaling, s(t)
s(2,:) = [1    1   1 0 0 0] % Velocity time scaling, ds/dt
s(3,:) = [0    0   0 0 0 0] % Acceleration time scaling, d^2s/dt^2
Todos los elementos de la primera fila deben estar en el rango [0, 1].

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 o un arreglo de m elementos de objetos se3. 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

expandir todo