Generación de trayectorias y control cinemático

BE3027 - Robótica Médica

¿Qué tenemos hasta ahora?
(usando una analogía de sistemas de control)


cinemática directa
cinemática diferencial

cinemática directa
cinemática diferencial
K(q)+J(q)∼ función de transferencia

tarea deseada
cinemática inversa

tarea deseada
cinemática inversa
K−1(Td)∼ controlador
esto es en teoría lo que esperamos, sin embargo...
la cinemática inversa sólo nos da esto
¿Qué ocurre con este comportamiento?
El algoritmo de cinemática inversa
recordemos que el resultado de la cinemática inversa se obtiene mediante el algoritmo iterativo
El algoritmo de cinemática inversa
recordemos que el resultado de la cinemática inversa se obtiene mediante el algoritmo iterativo
entonces, si qk→qf conforme aumentan las iteraciones, ¿Por qué no emplear los qk intermedios para el comportamiento transitorio?


porque el algoritmo NO converge como controlador, sino como método iterativo (discontinuo y "quebradizo")


este comportamiento predomina cuando la diferencia entre q0 y qf es considerable
sin embargo, el comportamiento se hace "más continuo" conforme disminuye la diferencia entre q0 y qf


Idea:

Idea: control cinemático


Idea: control cinemático


Idea: control cinemático


puede ser un recorrido o una trayectoria
(más adelante...)
Control cinemático (por capas)
control cinemático
Control cinemático (por capas)
control cinemático
(servo) actuador 1
Control cinemático (por capas)
control cinemático
(servo) actuador 1
(servo) actuador 2
Control cinemático (por capas)
planificación de movimiento o generación de trayectorias
control cinemático
(servo) actuador 1
(servo) actuador 2
Control cinemático (por capas)
planificación de movimiento o generación de trayectorias
control cinemático
autónoma (AI)
manual o asistida
(servo) actuador 1
(servo) actuador 2
Recorridos vs trayectorias
Trayectoria = recorrido + especificación de tiempo
Recorridos vs trayectorias
Trayectoria = recorrido + especificación de tiempo
conjunto de puntos ordenados en el espacio, ya sea C o T, que el manipulador debe seguir (puramente geométrico)
Recorridos vs trayectorias
Trayectoria = recorrido + especificación de tiempo
conjunto de puntos ordenados en el espacio, ya sea C o T, que el manipulador debe seguir (puramente geométrico)
qué tan rápido ejecutará el robot el recorrido
(acorde a los límites de los actuadores)
Recorridos vs trayectorias
Trayectoria = recorrido + especificación de tiempo
conjunto de puntos ordenados en el espacio, ya sea C o T, que el manipulador debe seguir (puramente geométrico)
qué tan rápido ejecutará el robot el recorrido
(acorde a los límites de los actuadores)
velocidades
aceleraciones
Recorridos vs trayectorias
Trayectoria = recorrido + especificación de tiempo
conjunto de puntos ordenados en el espacio, ya sea C o T, que el manipulador debe seguir (puramente geométrico)
qué tan rápido ejecutará el robot el recorrido
(acorde a los límites de los actuadores)
velocidades
aceleraciones
dependiendo qué nos interese, tendremos distintas formas de generarlas

caso 1: sólo nos interesan las poses de inicio y final
(trayectoria | recorrido punto a punto)

caso 1: sólo nos interesan las poses de inicio y final
(trayectoria | recorrido punto a punto)

caso 1: sólo nos interesan las poses de inicio y final
(trayectoria | recorrido punto a punto)
interpolación en C
la evolución de la configuración es suave pero no nos interesa lo que hace

caso 1: sólo nos interesan las poses de inicio y final
(trayectoria | recorrido punto a punto)
qtraj = jtraj(q0, qf, spec)
- número de segmentos
- vector de tiempo
- velocidad inicial y final

caso 2: nos interesan todas las poses del movimiento
(trayectoria | recorrido continuo)

caso 2: nos interesan todas las poses del movimiento
(trayectoria | recorrido continuo)
interpolación en T
Ttraj = ctraj(T0, Tf, spec)

caso 2: nos interesan todas las poses del movimiento
(trayectoria | recorrido continuo)
- número de segmentos
- vector de [0,1] generado con algún esquema de interpolación
Ttraj = ctraj(T0, Tf, spec)

caso 2: nos interesan todas las poses del movimiento
(trayectoria | recorrido continuo)
IMPORTANTE:
debe regresarse al espacio C antes de mandarse a los servos
qtraj = robot.ikine(Ttraj, ...);

caso 2: nos interesan todas las poses del movimiento
(trayectoria | recorrido continuo)
IMPORTANTE:
debe regresarse al espacio C antes de mandarse a los servos
>> be3027_clase8_ejemplos_trayectorias.m
BE3027 - Lecture 8 (2024)
By Miguel Enrique Zea Arenales
BE3027 - Lecture 8 (2024)
- 213