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.

cubicpolytraj

Genere trayectorias polinómicas de tercer orden

Descripción

ejemplo

[q,qd,qdd,pp] = cubicpolytraj(wayPoints,timePoints,tSamples) genera un polinomio de tercer orden que alcanza un determinado conjunto de waypoints de entrada con los puntos de tiempo correspondientes. La función genera las posiciones, velocidades y aceleraciones en las muestras de tiempo dadas, tSamples. También devuelve la forma polinómica por tramos pp de la trayectoria polinómica con relación al tiempo.

[q,qd,qdd,pp] = cubicpolytraj(___,Name,Value) especifica parámetros adicionales como argumentos de par Name,Value utilizando cualquier combinación de las sintaxis anteriores.

Ejemplos

contraer todo

Utilice la función cubicpolytraj con un conjunto determinado de waypoints xy en 2D. También se proporcionan puntos de tiempo para los waypoints.

wpts = [1 4 4 3 -2 0; 0 1 2 4 3 1];
tpts = 0:5;

Especifique un vector de tiempo para el muestreo de la trayectoria. Realice el muestreo con un intervalo menor que los puntos de tiempo especificados.

tvec = 0:0.01:5;

Calcule la trayectoria cúbica. La función genera las posiciones de la trayectoria (q), la velocidad (qd), la aceleración (qdd) y los coeficientes polinómicos (pp) del polinomio cúbico.

[q, qd, qdd, pp] = cubicpolytraj(wpts, tpts, tvec);

Represente las trayectorias cúbicas de las posiciones x e y. Compare la trayectoria con cada waypoint.

plot(tvec, q)
hold all
plot(tpts, wpts, 'x')
xlabel('t')
ylabel('Positions')
legend('X-positions','Y-positions')
hold off

Figure contains an axes object. The axes object with xlabel t, ylabel Positions contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent X-positions, Y-positions.

También puede verificar las posiciones reales en el plano 2D. Represente las diferentes filas del vector q y los waypoints como las posiciones x e y.

figure
plot(q(1,:),q(2,:),'-b',wpts(1,:),wpts(2,:),'or')
xlabel('X')
ylabel('Y')

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 2 objects of type line. One or more of the lines displays its values using only markers

Argumentos de entrada

contraer todo

Puntos de los waypoints de la trayectoria, especificados como una matriz de n por p, en la que n es la dimensión de la trayectoria y p es el número de waypoints.

Ejemplo: [1 4 4 3 -2 0; 0 1 2 4 3 1]

Tipos de datos: single | double

Puntos de tiempo para waypoints de trayectoria, especificados como un vector de p elementos.

Ejemplo: [0 2 4 5 8 10]

Tipos de datos: single | double

Muestras de tiempo de la trayectoria, especificadas como vector de m elementos. La posición de salida, q, la velocidad, qd, y las aceleraciones, qdd, se muestrean en estos intervalos de tiempo.

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: 'VelocityBoundaryCondition',[1 0 -1 -1 0 0; 1 1 1 -1 -1 -1]

Condiciones límite de velocidad de cada waypoint, especificadas como un par separado por comas compuesto por 'VelocityBoundaryCondition' y una matriz de n por p. Cada fila se corresponde a la velocidad en todos los waypoints p para la variable respectiva en la trayectoria.

Ejemplo: [1 0 -1 -1 0 0; 1 1 1 -1 -1 -1]

Tipos de datos: single | double

Argumentos de salida

contraer todo

Las posiciones de la trayectoria en las muestras de tiempo dadas en tSamples, devueltas como un vector de m elementos, donde m es la longitud de tSamples.

Tipos de datos: single | double

Velocidades de la trayectoria en las muestras de tiempo dadas en tSamples, devueltas como vector.

Tipos de datos: single | double

Aceleraciones de la trayectoria en las muestras de tiempo dadas en tSamples, devueltas como vector.

Tipos de datos: single | double

Polinomio por tramos, devuelto como una estructura que define el polinomio de cada sección de la trayectoria por tramos. Puede crear sus propios polinomios por tramos utilizando mkpp, o evaluar el polinomio en los tiempos especificados mediante ppval. La estructura contiene los siguientes campos:

  • form: 'pp'.

  • breaks: el vector de p elementos de los tiempos en los que la trayectoria por tramos cambia de forma. p es el número de waypoints.

  • coefs: matriz de n (p–1) por order para los coeficientes de los polinomios. n (p–1) es la dimensión de la trayectoria multiplicada por el número de pieces. Cada conjunto de n filas define los coeficientes del polinomio que ha descrito cada trayectoria variable.

  • pieces: p–1. El número de breaks menos 1.

  • order: El grado del polinomio +1. Por ejemplo, los polinomios cúbicos son de grado cuatro.

  • dim: n. La dimensión de las posiciones de los puntos de control.

Capacidades ampliadas

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

Historial de versiones

Introducido en R2019a