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
Robótica médica y cirugía asistida por computadora
¿Qué tenemos hasta ahora?

podemos hacer que el robot ejecute (cinemáticamente hablando) la tarea que necesitemos

podemos hacer que el robot ejecute (cinemáticamente hablando) la tarea que necesitemos
dependerá de la aplicación

en nuestro caso...



Recordemos: tareas 4A
automation
autonomy
augmentation
assistance
robótica médica
Cirugía (robótica) asistida por computadora




principalmente basadas en imágenes médicas


combinación de imágenes médicas con navegación y registro

Navegación


Navegación
Registro



aquí se da el principal/mayor aporte del robot


¿Qué tanto asiste el robot al cirujano? Depende del paradigma de control

Movimiento semi-autónomo
Movimiento pre-programado de forma interactiva por el cirujano, basado en imágenes médicas. Ej: inserción de agujas o instrumentos, trayectorias de herramientas de corte.

Movimiento semi-autónomo
Control teleoperado

El robot en el lado del paciente replica los movimientos registrados por la interfaz para el cirujano.
Hands-on compliant control
El cirujano recibe retroalimentación sobre la fuerza ejercida en el efector final del robot y viceversa.

Estos paradigmas no son mutuamente excluyentes ya que frecuentemente se usa una mezcla de los mismos.

Cirujano vs robot
Potencial de impacto

BE3027 - Lecture 8 (2025)
By Miguel Enrique Zea Arenales
BE3027 - Lecture 8 (2025)
- 47