Cinemática Inversa IV

Cinemática Inversa para un Brazo Robot de 6 grados de libertad.

En la cinemática inversa de 6 grados de libertad (6 DOF [Degrees Of Freedom], las siglas en inglés) tenemos como variables de entradas para manipular el brazo los ejes X, Y y Z, y los ángulos de la muñeca [en inglés] Yaw (alabeo), Pitch (cabeceo) y Roll (balanceo). El terminal o pinzas no se cuenta como grado de libertad. Para saber qué ángulo ha de tener cada grado de libertad se emplea matrices y desde ahí se extraen las fórmulas.

Pongo para descargar dos versiones de código. Uno escrito en FreeBasic y otro en C++ Builder. En ambos casos utiliza las mismas fórmulas para los cálculos de los ángulos de cada grado de libertad. Te recomiendo mirar los dos códigos (en los dos lenguajes) antes de adaptar los programas a tus necesidades.

Versión FreeBasic.

(Si usas antivirus Avast has de añadir una exclusión para poder ejecutarlo. Para analizar este o cualquier otro archivo puedes hacer clic aquí)

Haz clic aquí (o en la imagen de arriba) para descargar el código fuente y ejecutable de un simulador de brazo robot de 6 grados de libertad más el terminal. Los valores de los ángulos que se muestra en el monitor son orientativos.

Las teclas para mover el brazo son:

A D -----> Mueve linealmente el brazo sobre el eje X.

Q E -----> Mueve linealmente el brazo sobre el eje Y.

W S -----> Mueve linealmente el brazo sobre el eje Z.

Si pulsas "Shift" y las teclas anteriores moverás el brazo con precisión.

R T -----> Alabeo (Yaw) de la muñeca.

Z X -----> Cabeceo (Pitch) de la muñeca.

C V -----> Balanceo (Roll) de la muñeca.

N M -----> Abre o cierra las pinzas.

Flechas (Up, Down, Left, Right) -----> Mueve el escenario.

Pag Up/Down -----> Aleja/Acerca el escenario.

Para salir del programa pulsa la tecla "Esc" (escape).

Versión C++ Builder.

Desde aquí agradezco a Quique Cuenca (de Valencia) los códigos fuentes que compartió con todo el mundo. Gracias a él pude abrir esta sección. Esta parte es su versión que luego traduje para hacer la mía en FreeBasic.

(Imagen parcial del programa en ejecución.)

En el zip que puedes descargar aquí contiene, entre otras cosas, dos códigos fuentes. Uno es un brazo robot de 6 grados de libertad y otro con el que podrás manipular un cubo sobre una mesa. Los parámetros de la cinemática inversa pertenece al brazo robot PUMA. Y si haces clic aquí, además de los códigos fuentes, obtendrás una hoja de cálculo para el método de Denavit-Hartenberg, fórmulas y varios PDF informativos.

Para terminar dos vídeos de demostración del funcionamiento de sus programas.

Nota de interés sobre los programas fuentes.

En el código fuente realizado en FreeBasic, en la subrutina "InverseK()" hago dos pequeñas modificaciones para que la punta de las pinzas estuviese donde esperaba.

Original:

d4=LongAntBr+(LongMunec/2);
d6=(LongMunec/2)+(LongDedos/2);

Lo cambié por:

d4=LongAntBr
d6=LongMunec+LongDedos