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
\(\mathcal{K}\left(\mathbf{q}\right) + \mathbf{J}(\mathbf{q}) \sim\) función de transferencia
tarea deseada
cinemática inversa
tarea deseada
cinemática inversa
\(\mathcal{K}^{-1}\left(\mathbf{T}_d\right)\sim\) 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 \(\mathbf{q}_k \to \mathbf{q}_f\) conforme aumentan las iteraciones, ¿Por qué no emplear los \(\mathbf{q}_k\) 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 \(\mathbf{q}_0\) y \(\mathbf{q}_f\) es considerable
sin embargo, el comportamiento se hace "más continuo" conforme disminuye la diferencia entre \(\mathbf{q}_0\) y \(\mathbf{q}_f\)
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 \(\mathcal{C}\) o \(\mathcal{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 \(\mathcal{C}\) o \(\mathcal{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 \(\mathcal{C}\) o \(\mathcal{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 \(\mathcal{C}\) o \(\mathcal{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 \(\mathcal{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 \(\mathcal{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 \(\mathcal{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 \(\mathcal{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)
- 111