Hasta ahora hicimos control de posición en el espacio articular: las referencias que se quieren alcanzar son posiciones angulares de las articulaciones. Ahora nos interesa alcanzar posiciones en el espacio de trabajo: posiciones cartesianas XYZ. Obtener las primeras a partir de las segundas es lo que se llama el problema de la cinemática inversa.
1) Añadamos a nuestro modelo un algoritmo que nos calcule la cinemática inversa (IK Solver). Repasemos los apuntes para entender que la solución sólo es posible obtenerla de manera analítica en casos muy sencillos como el del robot RR plano. En general, tendremos que echar mano de algoritmos iterativos que encuentren la solución por métodos numéricos. Matlab nos proporciona librerías con estos algoritmos ya programados, aunque tendremos que ajustar sus parámetros.
2) Para la simulación, definamos las posiciones que se quieren alcanzar en el espacio de trabajo XYZ. Hay que escogerlas con cuidado para que estén efectivamente en el área de trabajo del robot, de lo contrario el método de IK nunca encontrará la solución. En nuestro caso estos datos están definidos en el archivo parametros_cinematinv.m y se los pasamos al IK Solver para que nos calcule una secuencia de posiciones articulares que nos lleven a dichas posiciones. El modelo cinemático está incluido también en los materiales del curso, para el caso del robot irb 120 en forma de archivo urdf (para cargar el modelo desde CAD ver la PF-B). Ellas serán las referencias con que alimentar a nuestros sistemas de control diseñados en la etapa anterior:
Los resultados que obtenemos son similares a estos:
Nuestros sistemas de control siguen dando resultados manifiestamente mejorables, como era esperable ya que no los hemos modificado respecto a la simulación anterior, pero las sucesivas posiciones XYZ se van alcanzando como se deseaba. Obsérvese que aunque el eje 1 no se mueve, el sistema de control tiene que compensar los ligeros movimientos inducidos por el movimiento del eje 2.