Generación de trayectorias

MT3005 - Robótica 1

paths (caminos | recorridos)
vs
trajectories (trayectorias)

Trayectoria = camino + especificación de tiempo
Trayectoria = camino + especificación de tiempo
conjunto de puntos ordenados en el espacio (\(\mathcal{C}\) o \(\mathcal{T}\)) que el robot debe seguir (puramente geométrico)
Trayectoria = camino + especificación de tiempo
conjunto de puntos ordenados en el espacio (\(\mathcal{C}\) o \(\mathcal{T}\)) que el robot debe seguir (puramente geométrico)
qué tan rápido ejecutará el robot el camino (acorde a los límites de los actuadores)
Trayectoria = camino + especificación de tiempo
conjunto de puntos ordenados en el espacio (\(\mathcal{C}\) o \(\mathcal{T}\)) que el robot debe seguir (puramente geométrico)
qué tan rápido ejecutará el robot el camino (acorde a los límites de los actuadores)
velocidades
aceleraciones
Trayectoria = camino + especificación de tiempo
Trayectoria = camino + especificación de tiempo
Trayectoria = camino + especificación de tiempo
por lo tanto, para garantizar la continuidad en la aceleración del robot, tanto el camino como la especificación de tiempo deben ser por lo menos dos veces diferenciables
Trayectoria = camino + especificación de tiempo
por lo tanto, para garantizar la continuidad en la aceleración del robot, tanto el camino como la especificación de tiempo deben ser por lo menos dos veces diferenciables
las generaremos según la aplicación
Trayectorias punto a punto
se especifica la configuración | pose del efector final en los puntos inicial y final
se especifica la configuración | pose del efector final en los puntos inicial y final
NO nos importa* qué ocurre con la pose del efector durante la trayectoria
se especifica la configuración | pose del efector final en los puntos inicial y final
NO nos importa* qué ocurre con la pose del efector durante la trayectoria
Ejemplo: pick and place




interpolación en \(\mathcal{C}\)
Interpolación en \(\mathcal{C}\)
Interpolación en \(\mathcal{C}\)
(interpolación lineal)
Interpolación en \(\mathcal{C}\)
(interpolación lineal)
¿Escalamiento?
Interpolación en \(\mathcal{C}\)
(interpolación lineal)
¿Escalamiento? para garantizar una aceleración continua se requiere por lo menos un polinomio de 3er orden
Interpolación en \(\mathcal{C}\)
¿Escalamiento? para garantizar una aceleración continua se requiere por lo menos un polinomio de 3er orden
(interpolación lineal)
los más comunes:
- polinomios de 5to orden
- perfiles trapezoidales
- entre otros...
Polinomios de 5to orden
Polinomios de 5to orden
6 parámetros, permiten establecer condiciones en las posiciones, velocidades y aceleraciones inicial y final
Polinomios de 5to orden
Polinomios de 5to orden
interpolación
Polinomios de 5to orden
aceleración continua (velocidad suave)
Polinomios de 5to orden
jerk continuo (aceleración suave)
Algunos detalles sobre el escalamiento

Algunos detalles sobre el escalamiento

dentro del recorrido formado mediante interpolación
Algunos detalles sobre el escalamiento
entonces, la velocidad máxima de la configuración se da en \(t=T/2\), mientras que las aceleraciones máximas ocurren en \(t=T/4\) y \(t=3T/4\)
Algunos detalles sobre el escalamiento
entonces, la velocidad máxima de la configuración se da en \(t=T/2\), mientras que las aceleraciones máximas ocurren en \(t=T/4\) y \(t=3T/4\)
estos máximos deben ser congruentes con lo que pueden brindar los actuadores
Algunos detalles sobre el escalamiento
entonces, la velocidad máxima de la configuración se da en \(t=T/2\), mientras que las aceleraciones máximas ocurren en \(t=T/4\) y \(t=3T/4\)
estos máximos deben ser congruentes con lo que pueden brindar los actuadores
en caso no, puede resolverse para \(T\) tal que los actuadores sean capaces de ejecutar la trayectoria
¿Limitantes?
la fuerte aceleración y desaceleración durante el método hace que no se esté aprovechando adecuadamente la potencia de los motores
¿Limitantes?
la fuerte aceleración y desaceleración durante el método hace que no se esté aprovechando adecuadamente la potencia de los motores
dicho de otra manera, la velocidad cambia mucho durante el recorrido
¿Limitantes?
la fuerte aceleración y desaceleración durante el método hace que no se esté aprovechando adecuadamente la potencia de los motores
dicho de otra manera, la velocidad cambia mucho durante el recorrido
una solución más eficiente...
Perfiles de velocidad trapezoidal
Linear Segment with Parabolic Blends (LSPB)
Perfiles de velocidad trapezoidal
Linear Segment with Parabolic Blends (LSPB)
* siempre que \(v^2/a \le 1\), sino el perfil trapezoidal se convierte en un triángulo
Perfiles de velocidad trapezoidal
Linear Segment with Parabolic Blends (LSPB)
para \(0\le t\le\frac{v}{a}\):
Perfiles de velocidad trapezoidal
Linear Segment with Parabolic Blends (LSPB)
para \(\frac{v}{a} < t \le T-\frac{v}{a}\):
Perfiles de velocidad trapezoidal
Linear Segment with Parabolic Blends (LSPB)
para \(T-\frac{v}{a} < t \le T\):
Detalles y limitantes
sólo pueden establecerse independientemente 2 de los 3 parámetros \(v, a\) y \(T\), por lo que hay tres opciones:
(todas las opciones garantizan que el perfil tenga tres segmentos y que pueda cumplirse con \(s(T)=1\))
Detalles y limitantes
sólo pueden establecerse independientemente 2 de los 3 parámetros \(v, a\) y \(T\), por lo que hay tres opciones:
1. Se escogen \(v\) y \(a\) tal que \(v^2/a\le 1\) y se resuelve para \(T\). Esto da el tiempo mínimo posible del movimiento si \(v\) y \(a\) corresponden a las velocidades y aceleraciones máximas posibles de la configuración.
Detalles y limitantes
sólo pueden establecerse independientemente 2 de los 3 parámetros \(v, a\) y \(T\), por lo que hay tres opciones:
2. Se escogen \(v\) y \(T\) tal que \(2 \ge vT > 1\) y se resuelve para \(a\).
Detalles y limitantes
sólo pueden establecerse independientemente 2 de los 3 parámetros \(v, a\) y \(T\), por lo que hay tres opciones:
3. Se escogen \(a\) y \(T\) tal que \(aT^2 \ge 4\) y se resuelve para \(v\).
Detalles y limitantes
menos suave que el escalamiento polinomial, dado que la aceleración es discontinua (puede resolverse esto empleando una curva-S en su lugar)

Ejemplo

PUMA 560
\(z\) cte.
>> mt3005_clase11_p2ptraj.mlx
Ejemplo

PUMA 560
\(z\) cte.
>> mt3005_clase11_p2ptraj.mlx
¿Problema?
La interpolación lineal en \(\mathcal{C}\) NO produjo un movimiento lineal en \(\mathcal{T}\)
Ejemplo

PUMA 560
\(z\) cte.
>> mt3005_clase11_p2ptraj.mlx
¿Problema?
La interpolación lineal en \(\mathcal{C}\) NO produjo un movimiento lineal en \(\mathcal{T}\)
esto no se esperaba del método, pero podría ser necesario


interpolación en \(\mathcal{T}\)
Interpolación en \(\mathcal{T}\)
en este caso ya no puede emplearse directamente la fórmula de interpolación, ¿Por qué?
Interpolación en \(\mathcal{T}\)
en este caso ya no puede emplearse directamente la fórmula de interpolación, ¿Por qué?
Interpolación en \(\mathcal{T}\)
en este caso ya no puede emplearse directamente la fórmula de interpolación, ¿Por qué?
???
Interpolación en \(\mathcal{T}\)
Spherical Linear Interpolation (SLERP)

Interpolación en \(\mathcal{T}\)
Spherical Linear Interpolation (SLERP)

Interpolación en \(\mathcal{T}\)
y para finalizar debe regresarse la trayectoria al espacio de configuración
servos
Interpolación en \(\mathcal{T}\)
y para finalizar debe regresarse la trayectoria al espacio de configuración
servos
>> mt3005_clase11_p2ptraj.mlx
¿Problemas?

¿Problemas?

puede que los recorridos lineales en \(\mathcal{T}\) no caigan completamente dentro del espacio de trabajo del robot
Trayectorias multi-segmento
(a través de puntos vía)
se especifica una secuencia de poses específicas por las cuales debe pasar el efector final
se especifica una secuencia de poses específicas por las cuales debe pasar el efector final
qué tanto deberán respetarse las poses específicas dependerá de la aplicación
se especifica una secuencia de poses específicas por las cuales debe pasar el efector final
Ejemplo: soldadura, pintura, etc.
qué tanto deberán respetarse las poses específicas dependerá de la aplicación
¿Opciones?
1. Emplear una secuencia consecutiva de trayectorias punto a punto.
¿Opciones?
1. Emplear una secuencia consecutiva de trayectorias punto a punto.
es probable que deban cambiarse las condiciones de frontera en los escalamientos de tiempo para que el robot no se encuentre acelerando y desacelerando constantemente
¿Opciones?
1. Emplear una secuencia consecutiva de trayectorias punto a punto.
pero se cae al problema de seleccionar correctamente las velocidades y aceleraciones en los puntos y resolver en simultáneo para todos los escalamientos de tiempo (sección 9.3 de [Lynch&Park])
¿Opciones?
1. Emplear una secuencia consecutiva de trayectorias punto a punto.
pero se cae al problema de seleccionar correctamente las velocidades y aceleraciones en los puntos y resolver en simultáneo para todos los escalamientos de tiempo (sección 9.3 de [Lynch&Park])
una mejor opción...
¿Opciones?
2. Encontrar la trayectoria directamente mediante polinomios de 5to orden o LSPBs.
¿Opciones?
2. Encontrar la trayectoria directamente mediante polinomios de 5to orden o LSPBs.
en lugar de calcular el recorrido y el escalamiento de tiempo por aparte, se plantea el problema de interpolación polinomial | LSPB directamente en el tiempo
¿Opciones?
2. Encontrar la trayectoria directamente mediante polinomios de 5to orden o LSPBs.
en MATLAB, tanto la Robotics Toolbox como la Robotics Systems Toolbox tienen rutinas especializadas para hacer esto
>> mt3005_clase11_viatraj.m
¿Opciones?
2. Encontrar la trayectoria directamente mediante polinomios de 5to orden o LSPBs.
sin embargo, igualmente debe considerarse la forma en que se definen las velocidades y aceleraciones en los puntos vía
¿Opciones?

¿Opciones?
3. Utilizar interpolación mediante splines
directamente en el tiempo.
¿Opciones?
3. Utilizar interpolación mediante splines
directamente en el tiempo.
las splines presentan un comportamiento similar al de la interpolación mediante polinomios pero evitan el fenómeno de Runge, aunque no garantizan pasar exactamente sobre los puntos vía
¿Opciones?
3. Utilizar interpolación mediante splines
directamente en el tiempo.
igualmente existen rutinas especializadas como las de la Robotics System Toolbox de MATLAB
>> mt3005_clase11_viatraj.m
MT3005 - Lecture 11 (2025)
By Miguel Enrique Zea Arenales
MT3005 - Lecture 11 (2025)
- 59