• Haga uso de las funciones del RVC para hallar la cinemática inversa de su robot asignado y compruebe los resultados del punto anterior. Ya que existen varias funciones en el Toolbox explique: ¿Cuál es la diferencia entre estas funciones? ¿Cuál debe usar para su robot y por qué? (Revise la documentación del Toolbox)

Partiendo de la guía de la RVC encontramos los métodos asociados con la función SerialLink relacionados con la cinemática inversa:

INV1.png

Cada una de las funciones emplea diferentes métodos de resolución para encontrar la cinemática inversa para una determinada pose del efector final (x, y, z, roll, pitch, yaw), por tanto, dependiendo de la geometría del robot, algunos de estos métodos permiten obtener mejores resultados que otros.

SerialLink.ikine. Numerical inverse kinematics.
SerialLink.ikine6s. Analytical inverse kinematics.
SerialLink.ikinem. Numerical inverse kinematics by minimization.
SerialLink.ikunc. Numerical inverse manipulator without joint limits.
SerialLink.ikcon. Numerical inverse kinematics with joint limits.
SerialLink.ikine_sym. Symbolic inverse kinematics.

De los métodos disponibles, sólo dos de ellos permiten encontrar una solución analítica al problema de cinemática inversa, sin embargo el ikine6s se limita a robots manipuladores con muñeca esférica (intersección de tres de los ejes en un mismo punto) el cuál no es el caso del robot asignado UR5 ni tampoco es aplicable para convenciones diferentes a los parámetros de Denavit-Hartenberg estándar; y la función ikine_sym permite obtener una solución simbólica con ecuaciones comparables a la respuesta obtenida por la metodología convencional aplicada en clase, sin embargo, la misma aún presenta muchos errores y se encuentra en desuso dado que requiere funciones obsoletas de la Symbolic Math Toolbox de MATLAB®, razón por la cuál no fue posible utilizarla para obtener la solución general de la cinemática inversa por RVC.

Las demás funciones presentadas, permiten obtener una solución numérica de la cinemática inversa partiendo de una postura (x, y, z, roll, pitch, yaw) conocida empleando diferentes métodos de iteración y aproximación, y serán exploradas un poco más adelante.

  • Haga uso del RST para hallar la cinemática inversa de su robot asignado y compruebe los resultados anteriores.

Partiendo de la guía de la RST, la función analyticalInverseKinematics permite obtener una solución analítica al problema de cinemática inversa, sin embargo y de modo similar a lo ocurrido con RVC, la función presentaba muchos errores y era muy poco precisa al grado en que para la última versión de la Toolbox esta función ya no está disponible. De modo análogo con RVC, se tiene una función que permite obtener la solución numérica de la cinemática inversa partiendo de una postura (x, y, z, roll, pitch, yaw) conocida empleando diferentes métodos de iteración.

  • Compare los métodos.

Dado que no fue posible obtener una solución analítica por ninguno de los dos métodos, se realiza una comparación entre las soluciones numéricas obtenidas en el punto siguiente.

  • Calcule la configuración del robot para las siguientes posturas de la herramienta. Proponga 4 posturas (x, y, z, roll, pitch, yaw)T que estén dentro del espacio de trabajo y determine la configuración del manipulador y complete la tabla:

Con el fin de demostrar que el cálculo del vector de configuración q se realizó por medio de cinemática inversa, se seleccionan 4 posturas (x, y, z, roll, pitch, yaw) con valores cerrados, de modo que no pueden obtenerse con facilidad variando las articulaciones con los sliders de forma manual en la GUI.

INV2.png
INV3.png
INV4.png

Ahora, con el fin de comparar la cinemática inversa por ambos métodos, realizamos un bloque de código para obtener la inversa numérica en RVC por medio de la función ikinem. Con el fin de obtener los mismos vectores q (considerando la multiplicidad de soluciones y los diferentes métodos que emplean las funciones en cada Toolbox) se agregó parte de las soluciones obtenidas por RST como punto de partida para la iteración de la función ikinem, obteniendo los siguientes valores:

INV5.png
INV6.png
INV7.png
  • Haciendo uso de la GUI verifique que con la configuración calculada se obtiene la postura indicada de la herramienta.

Dado a que los vectores de q obtenidos por ambos métodos son bastante similares (con ligeras diferencias de precisión en los decimales), realizamos la validación de las configuraciones en la GUI con las soluciones obtenidas por el método de RST:

INV8.png
INV9.png
INV10.png
INV11.png

Para uno de los cuatro casos haga capturas de pantalla resaltando con cotas los valores x y z, e incluya en el informe los resultados.

En el numeral anterior se incluyen las capturas desde la GUI para los 4 casos, y en donde se pueden destacar que la posición (x, y, z) observada para el sistema NOA en cada una de las gráficas coincide con los valores de los campos .X., .Y., .Z., esto teniendo en consideración que la escala que se maneja para RST es de 1/1000 por limitaciones de la toolbox.

Con el fin de resaltar con cotas los valores de posición conforme se requiere en el enunciado, realizamos un bloque de código adicional con el fin de tomar el último q calculado para la posición (123.00, 456.00, 789.00) en el numeral anterior y graficar cada una de las cotas como vectores en ‘X’, ‘Y’ y ‘Z’ partiendo del origen hasta la respectiva posición del TCP. A continuación se presenta la captura de la gráfica resultante y el bloque de código utilizado (por el método de RST) para corroborar la transparencia en los valores de las cotas graficadas.

INV12.png
INV13.png