Cinemática inversa de manipuladores seriales
BE3027 - Robótica Médica
¿Qué tenemos hasta ahora?
cinemática directa
cinemática diferencial
cinemática diferencial
¿A qué queremos llegar?
cinemática inversa
especificación de la tarea
(se tiene)
referencias para los servos
(se quiere)
A pesar que el planteamiento es claro, se tiene un problema considerable
A pesar que el planteamiento es claro, se tiene un problema considerable
(en general) función extremadamente no lineal de la configuración
A pesar que el planteamiento es claro, se tiene un problema considerable
encontrar este mapeo resulta muy difícil y en muchos casos NO existe solución analítica
Ejemplo: cinemática inversa analítica
espacio de configuración
espacio de tarea
Ejemplo: cinemática inversa analítica
R
R
manipulador RR
empleando trigonometría y métodos algebráicos
empleando trigonometría y métodos algebráicos
\(\arctan\) pero válida en \((-\pi, \pi]\) (programación)
las expresiones trigonométricas muestran múltiples soluciones al problema
si bien hay casos en donde podemos encontrar la solución analítica, hacerlo no es tan buena idea
\(\to\) expresiones complejas e individuales, incluso para manipuladores triviales
\(\to\) solución dada en lazo abierto (no corrige errores)
¿Qué hacemos entonces?
emplear algoritmos basados en control (lazo cerrado) para encontrar la cinemática inversa de forma numérica
>> be3027_clase7_robotRR_ik.mlx
¿Cómo funciona el ikine de la Robotics Toolbox?
ikine
(en general)
NO necesariamente
ikine
(en general)
NO necesariamente
Para que el problema tenga solución y se acople a los GDL del robot, la Robotics Toolbox emplea la noción de máscaras
ikine
(en general)
NO necesariamente
>> be3027_clase7_p560ik.m
Obteniendo intuición detrás de los algoritmos
idea fundamental (prestando atención sólo a la posición)
idea fundamental (prestando atención sólo a la posición)
idea fundamental (prestando atención sólo a la posición)
pseudo-inversa del jacobiano >> pinv(Jv)
\(\mathbf{T}_d\equiv\) meta
\({^B}\mathbf{T}_E(\mathbf{q})\)
efector final
el algoritmo debe llevar al efector final a la pose deseada o "meta"
\(\mathbf{T}_d\equiv\) meta
\({^B}\mathbf{T}_E(\mathbf{q})\)
efector final
Nota 1: el robot sólo puede cambiar su configuración
Nota 2: por el momento nos interesa sólo la posición
configuración actual: \(\mathbf{q}_1\)
¿Cuál es la discrepancia entre la posición deseada y la posición actual?
configuración actual: \(\mathbf{q}_1\)
¿Cuál es la discrepancia entre la posición deseada y la posición actual?
configuración actual: \(\mathbf{q}_1\)
¿Cuál es la discrepancia entre la posición deseada y la posición actual?
configuración actual: \(\mathbf{q}_1\)
configuración actual: \(\mathbf{q}_1\)
¿Hacia dónde, potencialmente, puede moverse el robot?
¿Hacia dónde, potencialmente, puede moverse el robot?
configuración actual: \(\mathbf{q}_1\)
entonces el robot hace un movimiento pequeño tomando todo en consideración
configuración actual: \(\mathbf{q}_2\)
entonces el robot hace un movimiento pequeño tomando todo en consideración
configuración actual: \(\mathbf{q}_2\)
entonces el robot hace un movimiento pequeño tomando todo en consideración
configuración actual: \(\mathbf{q}_2\)
y se repite el proceso hasta que el error/discrepancia sea lo suficientemente pequeño
pueden obtenerse algoritmos similares pero para la orientación o la pose completa
Todo algoritmo de cinemática inversa cumple con la estructura
donde \(\mathbf{q}_{k+1} \to \mathbf{q}_d\) conforme incrementa el número de iteraciones
BE3027 - Lecture 7 (2024)
By Miguel Enrique Zea Arenales
BE3027 - Lecture 7 (2024)
- 113