Analisis del Problema
El problema que se necesita resolver es el de la cinemática inversa del robot, es decir, dada una posición final en el espacio, qué conjunto de ángulos de los de los efectores (servos) del brazo le permite llegar con su efector final a ese punto. Dicho de otra manera, se busca que el usuario pueda indicarle al robot un objeto en el espacio y el robot sea capaz, de manera autónoma, de alcanzarlo.
La dificultad de este punto radica en que encontrar la transformación que permite pasar del espacio cartesiano (x,y,z) al espacio de los ángulos (q0,q1,q3...qn) implica resolver un sistema de ecuaciones no lineales (trigonométricas) muy complejas y que a menudo no pueden ser resueltas de manera analitica sin desacoplar el robot (separarlo en cadenas más pequeñas).
Para resolver el problema se propuso implementar un método matemático basado en el algoritmo de Newton-Raphson (descenso de gradiente, buscando minimizar una función de error definida como la posición del efector final del robot menos la posición solicitada por el usuario). La utilización de este método requiere la resolución de un sistema lineal difícil de resolver, por lo que se integró la librería de álgebra lineal Eigen en la implementación de nuestra solución.
Por otro lado, dado que se está en una etapa de pruebas, surge la necesidad de tener una interfaz visual (e intuitiva) para poder corroborar de manera cualitativa por parte del programador que las soluciones matemáticas encontradas por Eigen son correctas y tienen sentido físico y práctico. Para esto, se escogió utilizar la API de Vrep para c++. Vrep es un programa de simulación que permite simular y programar robots móviles corriendo bajo un motor de física.
Se busca que la aplicación sea capaz de encontrar una solución adecuada, es decir, encontrar el conjunto de ángulos necesarios para el robot llegue a la posición solicitada por el usuario, así como que sirva de nexo entre la librería de cinemática inversa y la simulación de brazo robótico. De esta forma, la aplicación es concebida como una primera aproximación a la interfaz final que permitirá controlar el robot real una vez construido. Mientras tanto, la integración con el simulador Vrep permite poder comprobar el funcionamiento del algoritmo de resolución de la cinemática inversa.