miércoles, 16 de febrero de 2011

Proyecto de fin de carrera


Hoy os hablaré del proyecto de fin de carrera con el que terminé mis estudios universitarios.

Lo titulé "Diseño control y programación de un brazo robotizado con visión artificial basado en sistema Bioloid"

El proyecto se compone de un brazo robótico de 4 grados de libertad con pinza, una cinta transportadora y todo ello incluido en un maletín que permite su facil transporte y almacenamiento, ya que en principio mi idea fue que se utilizara para prácticas en mi carrera.

Toda la electrónica está basada en Bioloid. Es un sistema de robótica modular. Posee una unidad de control CM-5 basada en un microcontrolador atmel 128 programable por puerto serie y unos servomotores "inteligentes" los AX-12+ con los que se comunica por un bus de 3 hilos y topología estrella.

La verdad es que los AX-12+ son los mejores actuadores con los que he trabajado. Tienen una relación estupenda tamaño-torque. Mas o menos como un servo estándar, pero moviendo 16kg en el eje. Tienen un micro interno que se comunica por serie y entiende 50 comandos. Proporcionan información como corriente drenada, temperatura, velocidad, posición... Además de integrar un sistema configurable PID para el control del movimiento.

En la parte de enlaces tenéis mas info sobre el sistema Bioloid;)

Como accesorio al sistema, utilicé un módulo HaViMo. Este módulo es el que se ocupa de la visión artificial para el reconocimiento de las piezas. Después de programarlo devuelve la posición de los tipos de objeto reconocidos. Esto hace que el conjunto CM-5/AX-12+/HaViMo pueda ser independiente del ordenador por completo ya que el CM-5 ya posee una potente batería. Para el proyecto tuve la suerte de tratar directamente con Hamid Moballegh, creador de este módulo de la universidad de Berlín.


Realmente la parte mas complicada del proyecto fué la programación del sistema. Esta fué realizada en código C con winavr. También programé un menú para comunicarse con la célula desde el ordenador y poder darle ordenes a través de una consola.

Pasemos al hardware...


Para la realización de la pinza barajé primero la posibilidad de hacerla con lego por su flexibilidad, pero al final esta idea la deseche por voluminosidad y peso. Asi es como quedaba:

Imagen Imagen Imagen

Al final se me ocurrio que uniendo las partes de bioloid de manera poco ortodoxa quedaba mejor y con menos peso (algo muy importate por la longitud del brazo). Poco después fije los dos servos de la pinza con un par de chapitas de aluminio con agujeros perforados y atornilladas a los laterales para que no se movieran (lo siento pero no tengo fotos). Quedaria de esta manera:

Imagen



 El "AX-12+" de la izquierda realmente es el módulo de visión artificial HaViMo.

El único problema que tenía es que con el brazo montado no se podía cerrar la maleta, por lo que diseñé en autocad un conjunto base-soporte central que se realizarian en metacrilato. 
Este soporte queda libre y fijado a el brazo, se encaja en la base que esta fijada a la superficie y asi se puede montar y desmontar muy fácil y rapido. 
Posee tambien unos pasadores que fijan el conjunto, resultando una construcción muy robusta. 

Asi queda el conjunto una vez desmontado:

Imagen



Dentro del maletín queda la mitad del espacio libre, de manera que se puede utilizar como un area de trabajo reconfigurable, pudiendo incluir contenedores alimentadores de piezas etc. Toda la superficie útil de la maleta es alcanzada por el robot gracias a la situación del soporte central y la orientación del servo de la base.

Soporte y Base antes del montaje.

Imagen Imagen



Esta es la cinta transportadora, la diseñé como el soporte en autocad. 
Se mueve gracias a un AX-12 montado en uno de sus laterales. 
Dispone de dos cajetines laterales cuya función es que al devolver las piezas a la cinta estas caigan de manera aleatoria.

Imagen


A continuación los videos del sistema funcionando con las rutinas principales:


Recogida de figuras con visión
Esta rutina coloca el brazo en posición de captura. Si no detecta una figura mueve la cinta y cuando la detecta calcula la cinemática inversa para alcanzar la pieza (recordamos que esta aparece de manera aleatoria). Después la recoje y la devuelve a la cinta(también descuidada y aleatoriamente).




Rutina "Captura y haz"
En esta rutina el usuario coloca el brazo en varias posiciones, el sistema las memoriza y luego las reproduce consecutivamente
.



Rutina "Pinza ON/OFF"
Simple rutina de apertura y cierre de la pinza para demostración del potente agarre.


Calibración del módulo de visión HaViMo
Proceso de calibración para el reconocimiento de figuras rojas.



Bueno, resumidamente este fué mi proyecto. ¿Que os parece??
Si tenéis alguna pregunta o duda estaré encantado de responderla:)





Enlaces: Info Bioloid Info HaViMo Wiki HaViMo

6 comentarios:

Gustavo Sanchez dijo...

muuuy bueno. me encantaria poder llegar a hacer algo asi algun dia :) te felicito, no se por que nadie comentó pero está muy bueno.
que estudiaste?

TCRobotics dijo...

Gracias por tu interés.

Tuve la suerte de poder trabajar con este sistema gracias a la Universidad de La Coruña:)

Estudié Ingeniería técnica industrial, especialidad de electrónica:)

Manuel RD dijo...

Excelente trabajo y excelente blog, soy asiduo visitante de Bricogeek y alli tuve la oportunidad de conocer su blog, lo cual es un muy buen hallazgo y ya esta en mis favoritos, gracias por los aportes, mucho éxito y felicitaciones!!!

TCRobotics dijo...

Gracias Manuel!

Me esforzaré en mantenerme en vuestros favoritos:)

robert`s blog dijo...

Muy bueno tu proyecto felicidades, yo este mes inicio mi proyecto final de carrera, voy a trabajar con un bioloid y voy a usar la camara hamivo pero te queria preguntar como montar la cámara al robot usas algun modulo extra? ojala y puedas ayudarme me puedes contactar en el sig correo: hmlroberto@gmail.com

de todas formas estare al pendiente de tu blog

Klaatu dijo...

Podrias por favor compartir el codigo de tu proyecto? gracias