Durante todo el tiempo que hemos realizado investigación nos hemos centrado en diversas tecnologías y aprendizajes. A pesar de que nuestro interés primordial es la Inteligencia Artificial hemos trabajado con el dipositivo de Microsoft, Kinect. Este dispositivo aunque no utiliza Inteligencia Artifical nos ha ayudado a dar un gran nivel de visibilidad a nuestros proyectos. La mayor parte de nuestros proyectos no se centran en el apartado de conocimiento que cubre la IA, sino que están dentro de la temática de robótica y dinámica simple.
Lego Kinect:
Este proyecto se basa en utilizar conexión de Bluetooth con un robot Lego NXT y de ahí utilizar el Kinect como medio de movimiento. Este proyecto nos permitió comenzar a aprender como se utiliza el SDK del Kinect desarrollado por Microsoft, además de la aplicación en un proyecto formal. Dentro de este proyecto se tuvieron varias fuentes de referencia pero la primordial fue la que se presenta en la siguiente liga:
http://proyectosdeprogramacionjava.blogspot.mx/2011/11/control-de-lego-nxt-con-kinect.html
El proyecto permitió dar una meta sobre los requerimientos a cumplir y la forma de establecer los límites del sistema. El lenguaje de programación utilizado para este proyecto fue C# para tener compatibilidad con el SDK de Microsoft y el Lego.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/legoKinect
Lego Kinect:
Este proyecto se basa en utilizar conexión de Bluetooth con un robot Lego NXT y de ahí utilizar el Kinect como medio de movimiento. Este proyecto nos permitió comenzar a aprender como se utiliza el SDK del Kinect desarrollado por Microsoft, además de la aplicación en un proyecto formal. Dentro de este proyecto se tuvieron varias fuentes de referencia pero la primordial fue la que se presenta en la siguiente liga:
http://proyectosdeprogramacionjava.blogspot.mx/2011/11/control-de-lego-nxt-con-kinect.html
El proyecto permitió dar una meta sobre los requerimientos a cumplir y la forma de establecer los límites del sistema. El lenguaje de programación utilizado para este proyecto fue C# para tener compatibilidad con el SDK de Microsoft y el Lego.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/legoKinect
Bioloid Kinect:
El robot Bioloid es un robot de ensamblaje que permite crear robot móviles y robots orgánicos que utilizan solo servomotores para su movimiento. El módulo central del robot se llama CM-5 el cual no contiene ningún módulo de computabilidad complejo, sino que es un simple microcontrolador el cual ejecuta archivos a bajo nivel. Existen varias formas de programar el robot Bioloid y estas son mediante el uso del microcontrolador o mediante una librería de traducción desde la computadora. Para el proyecto se utilizó una librería de traducción encontrada en la siguiente página:
http://softwaresouls.com/softwaresouls/2011/12/20/c-dynamixel-reading-and-writing-example/
Esta librería permite conectar el robot a la computador y escribir instrucciones en tiempo real, sin embargo se encontraron algunos errores por lo cual se modificó la librería para adecuarla y hacerla más sencilla de utilizar.
El uso de esta librería acota el proyecto a utilizar el lenguaje de programación C#, sin embargo con la experiencia obtenida del proyecto anterior del Lego fue más fácil utilizar e implementar más detalle.
A diferencia del Lego, este proyecto utiliza los brazos del usuario reconocidos desde el Kinect y traduce ese movimiento a los brazos del robot haciendo una copia del movimiento en tiempo real. Otro aspecto importante para el movimiento de los brazos es que no seguimos un algoritmo computacional para generar los valores de movimiento. Para poder hacer el movimiento se utilizó algo conocido como Cinemática Inversa, el uso de esta dinámica permite convertir a partir de coordenadas del plano cartesiano un ángulo de movimiento. La complejidad del proyecto se basa en la traducción del espacio de coordenadas delimitado por el Kinect y la traducción en el espacio del robot mismo.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/bioloidKinect
El robot Bioloid es un robot de ensamblaje que permite crear robot móviles y robots orgánicos que utilizan solo servomotores para su movimiento. El módulo central del robot se llama CM-5 el cual no contiene ningún módulo de computabilidad complejo, sino que es un simple microcontrolador el cual ejecuta archivos a bajo nivel. Existen varias formas de programar el robot Bioloid y estas son mediante el uso del microcontrolador o mediante una librería de traducción desde la computadora. Para el proyecto se utilizó una librería de traducción encontrada en la siguiente página:
http://softwaresouls.com/softwaresouls/2011/12/20/c-dynamixel-reading-and-writing-example/
Esta librería permite conectar el robot a la computador y escribir instrucciones en tiempo real, sin embargo se encontraron algunos errores por lo cual se modificó la librería para adecuarla y hacerla más sencilla de utilizar.
El uso de esta librería acota el proyecto a utilizar el lenguaje de programación C#, sin embargo con la experiencia obtenida del proyecto anterior del Lego fue más fácil utilizar e implementar más detalle.
A diferencia del Lego, este proyecto utiliza los brazos del usuario reconocidos desde el Kinect y traduce ese movimiento a los brazos del robot haciendo una copia del movimiento en tiempo real. Otro aspecto importante para el movimiento de los brazos es que no seguimos un algoritmo computacional para generar los valores de movimiento. Para poder hacer el movimiento se utilizó algo conocido como Cinemática Inversa, el uso de esta dinámica permite convertir a partir de coordenadas del plano cartesiano un ángulo de movimiento. La complejidad del proyecto se basa en la traducción del espacio de coordenadas delimitado por el Kinect y la traducción en el espacio del robot mismo.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/bioloidKinect
Librería Morpholoid:
Este proyecto fue desarrollado para centralizar varios aspectos utilizados en el desarrollo con el Kinect y con el Bioloid. Para la asignatura de Arquitectura de Software se desarrolló un sistema el cual utilizando el Kinect y la detección de gesturas las cuales se desarrollaron en conjunto con el proyecto permite mover cualquier tipo de robot Bioloid conforme se tenga integrado en la librería.
Al ser una librería esta permite extensibilidad tanto en el tipo de robot, como en el desarrollo de nuevas gesturas haciendo amplia su mantención y escalabilidad.
El proyecto fue desarrollado utilizando el SDK de Microsoft, pero a diferencia de proyectos anteriores ahora se utilizó el Lengua de Programación C++. Adicional a esto se desarrollo una librería de comunicación propia del robot la cual mediante directivas del sistema se envían las instrucciones a nivel de bytes al microcontrolador del robot.
Es importante destacar que todo el procesamiento del sistema se hace mediante la computadora y el robot solo recibe las instrucciones a ejecutar con la particularidad de que si el usuario por ejemplo: levanta los brazos, un robot móvil se mueve hacia adelante, mientras que un robot humanoide levanta los brazos y así respectivamente.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/morpholoid
Finalmente se muestran algunos videos de todos los proyectos los cuales han marcado el aprendizaje que hemos tenido sobre robótica, el uso del Kinect y varios lenguajes de programación. Proximamente iremos detallando como utilizamos y solucionamos ciertos problemas en cada proyecto como la comunicación en tiempo real, la cinemática inversa, las gesturas, entre otros.
Este proyecto fue desarrollado para centralizar varios aspectos utilizados en el desarrollo con el Kinect y con el Bioloid. Para la asignatura de Arquitectura de Software se desarrolló un sistema el cual utilizando el Kinect y la detección de gesturas las cuales se desarrollaron en conjunto con el proyecto permite mover cualquier tipo de robot Bioloid conforme se tenga integrado en la librería.
Al ser una librería esta permite extensibilidad tanto en el tipo de robot, como en el desarrollo de nuevas gesturas haciendo amplia su mantención y escalabilidad.
El proyecto fue desarrollado utilizando el SDK de Microsoft, pero a diferencia de proyectos anteriores ahora se utilizó el Lengua de Programación C++. Adicional a esto se desarrollo una librería de comunicación propia del robot la cual mediante directivas del sistema se envían las instrucciones a nivel de bytes al microcontrolador del robot.
Es importante destacar que todo el procesamiento del sistema se hace mediante la computadora y el robot solo recibe las instrucciones a ejecutar con la particularidad de que si el usuario por ejemplo: levanta los brazos, un robot móvil se mueve hacia adelante, mientras que un robot humanoide levanta los brazos y así respectivamente.
La liga del código de nuestro proyecto se puede encontrar a continuación :
https://github.com/rebot666/morpholoid
Finalmente se muestran algunos videos de todos los proyectos los cuales han marcado el aprendizaje que hemos tenido sobre robótica, el uso del Kinect y varios lenguajes de programación. Proximamente iremos detallando como utilizamos y solucionamos ciertos problemas en cada proyecto como la comunicación en tiempo real, la cinemática inversa, las gesturas, entre otros.