lunes, 28 de octubre de 2013

B-ROBOT: Un robot equilibrista impreso en 3D...

Bueno, ya he terminado mi primer robot totalmente diseñado e impreso con la impresora 3D (ruedas, estructura, cuerpo...  hasta los ojos!).
Se trata de un robot tipo SegWay con solo dos ruedas, que tiene que mantener el equilibrio y que se puede controlar desde un Smartphone/tablet via Wifi. También funciona en modo autónomo con un sonar para detectar obstáculos y alguna que otra sorpresa que se puede ver en el vídeo...



La verdad es que después de "pelearme" un poco con los algoritmos de control ha quedado muy suave y controlable. Inicialmente empecé probando un típico control PID que recibía como entrada el ángulo del robot (calculado con la IMU) y como salida controlaba la velocidad de los motores. El resultado no era muy bueno y sólo conseguía corregir bien en la zona cerca del equilibrio (0 grados) donde el problema parece ser más lineal. La verdadera mejora vino cuando cambié el algoritmo y probé un control PD donde la salida es la aceleración de los motores. Esto sí que permite controlar el balanceo del péndulo inverso y de hecho tiene lógica desde el punto de vista físico del sistema. El problema está en que de esta forma el robot no tiene la "obligación" de quedarse quieto, al fin y al cabo una aceleración 0 no implica velocidad 0, así que añadí un segundo control (control en cascada) PI de velocidad que gobierna al control PD interno de aceleración. Visto esquemáticamente:



La placa principal (WITA) es un diseño que realicé junto con Jordi Muñoz (de 3DRobotics) y se trata de un Arduino Leonardo con un módulo Wifi integrado (RN131 o RN171). Esta placa permite diseñar fácilmente proyectos que se controlan desde dispositivos remotos via Wifi o proyectos de Intenet of Things. En cualquier caso el proyecto podría reproducirse con una placa de Arduino Leonardo y un módulo Wifi externo (tipo RN-XV por ejemplo) o incluso modificando el código supongo que podría hacerse compatible con un Arduino Yun.



La IMU utilizada es un sensor MPU6050 con 3 acelerómetros y 3 giróscopos y usamos además el procesamiento interno DMP para conseguir una solución de actitud (ángulos del robot) a 200Hz.
Los motores empleados son Steppers de tipo NEMA17 (de los cortos) con drivers A4988 y Mircrosteping a 1/8. He montado los 2 drivers necesarios en una pequeña placa aparte añadiendo los condensadores y resistencias necesarios (ver datasheet del driver).



Las librerías de Steppers para Arduino que he podido ver permiten controlar la posición de los steppers pero no su velocidad y la mayoría de ellas son MUY ineficientes! así que me he tenido que hacer un pequeño driver en Arduino usando interrupciones para realizar un control preciso de velocidad (funciona a 25Khz).



La interfaz con los smarphone esta basada en el interfaz abierta OSC (mensajes tipo UDP). La aplicación que suelo usar (tanto para Iphone como Android) se llama TouchOSC.
Para el brazo que permite levantar al robot del suelo uso un servo tamaño mini (20gramos)
Por último el sonar empleado es un LV-MaxSonar-EZ3 que tenía libre de otros proyectos...
Todos los diseños 3D de las piezas han sido realizados en OpenSCAD.



Todo el proyecto: códigos (Open Source), librerías y diseños 3D están públicos y compartidos en un repositorio de GitHub: https://github.com/jjulio/b-robot

Llevo bastantes años dedicado a la robótica y es la primera vez que puedo partir de un lienzo totalmente en blanco y con toda la libertad para hacer lo que quiera. Lo normal (y muchos me comprenderán...) era hacer una visita a Leroy Merlin (o equivalente) ver lo que hay, planchas, varillas, etc... y diseñar condicionado por eso... Ahora cambia el paradigma, abres un OpenSCAD y ha pensar... un paso más adelante en el mundo DIY, me gusta!

Gracias a Ramon por ayudarme como el video como siempre... ;-)

Jose.

jueves, 6 de junio de 2013

Impresora 3D funcionando...

Bueno, desde hace un par de semanitas ya tengo la impresora 3D operativa!!

La verdad es que ha quedado bastante bien...  Ahi van algunas fotos de objetos que he impreso...

Es un modelo basado en la Prusa i3 box modificando algunas cosas (básicamente el marco y las dimensiones de algunas varillas,  ver post anterior).
Como esta impresora es una auténtica RepRap (maquina autoreplicante, es decir las piezas plásticas provienen de otra máquina del mismo tipo) la he inscrito en el árbol genealógico de clones (Comunidad de Clone Wars) y es una máquina de cuarta generación (clon número #210 registrado) Links: Presentación y Arbol genealógico

La verdad es que esto de la impresión 3D es adictivo, empiezas haciendo algunas pruebas y acabas imprimiendo piezas para todo el mundo.... Hay un efecto curioso y es que la gente quiere venir a ver la impresora funcionando y claro, el que viene se quiere llevar un "recuerdito" así que acabas imprimiendo un montón de tonterías para regalar ...
También he impreso algunas cosas mas "serias" como algunos añadidos para la impresora, soporte para la bobina de filamento y un ventilador, una carcasa para un proyecto de robótica... y también he impreso un modelo en miniatura de la isla de El Hierro basado en el modelo digital del terreno de la isla.
Estoy muy contento con la calidad de las piezas pero he tenido algunos problemas con algunos componentes (el carro X en concreto se me rompio!!, menos mal que lo pude arreglar) así que estoy clonando algunas piezas nuevas que estoy rediseñando (basadas en la prusa i3 single frame) para rehacer casi por completo el eje X y también alguna pieza del eje Y (belt holder). Bueno ya mostraré como queda...
Por último un vídeo de la impresora funcionando...


Jose.

domingo, 5 de mayo de 2013

Nuevo proyecto: Impresora 3D


He comenzado un nuevo proyecto para construirme una impresora 3D!. Hacia tiempo que tenía la idea de construirme una y por fin me he decidido.
Tengo muchos proyectos esperando poder construir piezas de plástico, así que creo que voy a poder darle buen uso...



En principio pensaba hacerme un impresora del tipo Printrbot, sobre todo por lo compacta que es, pero finalmente me he decidido por una Prusa i3 (modelo box), que la verdad que después de estudiarla tiene pinta de mejor máquina (mayor estabilidad y precisión).
Ya tengo todos los componentes pedidos y la verdad es que se pierde un montón de tiempo en elegir y comprar todo para evitar pagar muchos gastos de envío... En mi caso lo he comprado casi todo en España (contactando directamente con los vendedores) y me ha ido bien (no he pagado aduanas). Solamente he pedido fuera los motores y el hotbed (cama caliente donde se adhieren las piezas que se están construyendo).
Ya he construido el marco de la impresora y he hecho algunas modificaciones sobre el diseño de referencia para disminuir las dimensiones sin quitar área de impresión. Ahora las dimensiones son más parecidas al modelo de frame de aluminio de la Prusa i3.
Ayer mismo me llegaron las ultimas piezas que había pedido y ahora mismo tengo el SAV (síndrome del ansia viva) a tope ;-). De momento tengo hecho el box frame (soporte del eje Z), he cortado las varillas roscadas y lisas, tengo lista la fuente de alimentación ATX modificada, he probado la electrónica y voy a comenzar el montaje...

Aqui mando el plano del box frame (eje Z)  que he construido y alguna foto:



Las varillas lisas las he cortado a estos tamaños:
Eje X : 415mm
Eje Y : 380mm
Eje Z : 340mm
La distancia entre varillas para el eje Y la he fijado en 165mm.

Eso si, donde no me he ahorrado dinero ha sido en el hotend (parte caliente por donde sale el plastico derretido) y me he decidido por un FaryNozzle que es la versión española del Budas

Por suspuesto esta impresora (las piezas de plástico), como buena reprap (maquina replicante) es un clon fabricado con otra impresora, en este caso de un chico en Zaragoza que conocí en la comunidad de Clone Wars.

Bueno ahora tengo bastante trabajito por delante...

Paginas de referencia, por supuesto la comunidad Clone Wars:


Continuará...

miércoles, 26 de septiembre de 2012

Proyecto: Cámara térmica para Smartphone parte III


Después de las vacaciones retomamos el blog con este tercer post sobre el proyecto de cámara térmica para smartphone.

Esta vez el sistema ya esta totalmente operativo en esta primera versión con un sólo sensor térmico (1 pixel). Ya estoy trabajando en la siguiente versión (ver final del post)

En el video se aprecia que el dispositivo esta pensado para ponerlo en la parte posterior del smartphone y aprovechando la cámara del mismo nos da la temperatura de los objetos en el centro de la imagen.
Desde el punto de vista del hardware la solución tecnológica ha sido un módulo OpenPicus con WIFI para la conexión con el smartphone y el sensor térmico conectado directamente a una entrada analógica del micro. El intercambio de paquetes se ha hecho con protocolo TCP, transmitiendo en todo momento (hay un filtrado previo en el propio micro) la temperatura leida por el sensor IR térmico.

Desde el punto de vista de Software, sin duda la parte más compleja del proyecto, ha sido la programación en IOS para el Iphone, principalmente por mi inexperiencia en este terreno. La curva de aprendizaje de IOS (Objetive-C) es un poco abrupta al principio pero como todo, al final se le va cogiendo el gusto...
La aplicación en el Iphone lee el streming de video de la cámara, lo convierte a Blanco y Negro (toma únicamente el canal Y del tipo de datos YCrCb) y lo muestra en pantalla.
Constantemente se está escuchando los mensajes TCP (puerto 22) que llegan. Cuando llega un paquete se lee y se muestra la información de temperatura en la pantalla y se actualiza el color del puntero del centro de la pantalla.
Existe por ultimo una pantalla de configuración donde pueden elegirse los rangos de colores en función de la temperatura.
En cuanto al software en el OpenPicus, simplemente se lee periodicamente el sensor térmico IR (puerto analógico), se realiza un filtrado paso baja y se envia la información como paquete TCP.

El resultado del proyecto es bastante interesante pero ya estoy trabajando en la siguiente versión, mucho más potente con un sensor de array de termopilas (MLX90620). Este sensor tiene un total de 64 pixels lo que permite realmente tener una cámara térmica aunque sea de baja resolción... Bueno habrá siguiente versión y tiene buena pinta...

Post anteriores del proyecto:
Parte II

domingo, 8 de julio de 2012

Nuevas mejoras en Ferrari?

Video de este nuevo proyecto:

Hola a tod@s, hace un par de semanas viendo una carrera de Formula1 y animado por los buenos resultados de Fernando Alonso con su Ferrari se me ocurrió la idea de este proyecto. ¿Porque no darle la apariencia de un Formula1 a un quadcopter?. Estuve un par de dias pensando la mejor manera de "encajar" la forma de un coche de F1 en un chasis de quadcopter hasta que encontre una solución que me gustó y me puse manos a la obra. Usando plastico coroplast y unas tijeras le di forma a la carroceria y despues busque algunas imágenes del Ferrari de Fernando Alonso para hacerme unas pegatinas en la impresora y este es el resultado...

La verdad es que llevo bastante tiempo haciendo quadcopters y multicopters y nunca me ha gustado la forma tan simétrica que tienen, hablando claro, en general son bastante feos, así que una de las cosas que más me gusta del resultado de este proyecto es que realmente la primera vez que lo vez cuesta darse cuenta que se trata de un quadcopter.


En cuanto a la configuración, estoy usando la misma configuración que use en este proyecto pero he cambiado la electrónica por el ArduPilot Mega 2.0 (APM2) y estoy usando las hélices 5x3 (normales y contra-rotatotias) de HobbyKing con una batería 2S800. He tenido que ajustar un poco los controles PID para adaptarlos al nuevo peso y aerodinámica de este modelo. Ademas he ajustado el Yaw para que sea mucho más agresivo, permitiendo "conducir" el quadcopter de una manera mucho mas parecida a un coche (pero volando, claro)



El resultado es un proyecto francamente divertido, sin duda una mejora que Ferrari debería introducir en sus monoplazas ;-)
Gracias a Ramon por haber sido el cámara del video y ayudarme en el montaje del mismo.

Jose Julio.

lunes, 18 de junio de 2012

Información sobre Quadcopters


En varias ocasiones me han preguntado información sobre quadcopters y los proyectos en los que estoy trabajando, asi que he decidido crear este post (gracias nacho por la idea) como introducción al mundo de los quadcopters...

La página (red social de UAVs) en la que suelo postear los proyectos es http://diydrones.com. Mi perfil dentro de diydrones es jose julio
El proyecto de Multicopters de diydrones se llama Arducopter : Página principal y toda la documentación (wiki): http://code.google.com/p/arducopter/

En cuanto al frame pequeño para vuelo indoor, proviene de este proyecto:
http://diydrones.com/profiles/blogs/indoor-fun-with-a-tiny
En este post hay un link a un documento en google docs con las instrucciones para construir el frame, que usa basicamente varillas y conectores de cometas (se pueden conseguir en decathlon)
Recientemente le he hecho algunas modificaciones que no están en este documento. Basicamente ahora uso estas hélices: http://www.hobbyking.com/hobbyking/store/__22753__5030_Propellers_Black_3xCW_and_3xCCW_6pcs_per_bag.html que ya no necesitan inclinar los motores y ahora uso una bateria 2S800.
En cuanto a la electronica lo que estoy usando últimamente es el Ardupilot Mega 2.0 (https://store.diydrones.com/APM_2_0_Kit_p/br-ardupilotmega-03.htm) Si solo lo quieres para indoor se puede comprar sin GPS. Esta electrónica no es barata pero hay que tener en cuenta que sirve para construir un sistema UAV completo. De hecho ahora mismo dentro de los proyectos de Diydrones se puede construir un piloto automático para aviones, multicopters, barcos y coches (proyectos ArduPilot, ArduCopter, ArduBoat y ArduRover).

En cualquier caso también nombrar que hay otros proyectos opensource de quadcopters, lógicamente yo nombro primero en el que estoy metido ;-), algunos conocidos:
http://aeroquad.com/   (conozco al desarrollador de este proyecto porque estuvo un tiempo metido en arducopter)
http://www.multiwii.com/  (proyecto basado originalmente en los sensores de la wii)
http://www.openpilot.org/

En cuanto a equipamiento de radio control el mejor sitio para pedir y más barato es : http://www.hobbyking.com
Aqui tienes un apartado de multi-rotores donde conseguir incluso frames, quadcopters ready to fly, helices, motores, emisoras...
En concreto tiene algun pequeño frame para vuelo indoor que tiene buena pinta y una electronica muy básica pero muy barata (todo esto en la sección multi-rotores)

Si alquien quiere mas información que me lo comente...

miércoles, 6 de junio de 2012

Porque seguimos sin coches eléctricos?



Más allá de las supuestas confabulaciones de las multinacionales del petroleo, los gobiernos y demás argumentos sensacionalistas (desde mi punto de vista poco realistas a día de hoy) la verdadera razón por la que no ha llegado la revolución del coche eléctrico está en dos números:

13300 y 160

13.300 Wh/Kg es la densidad energética de la gasolina (el diesel un poco menos), es decir, que un 1Kg de gasolina es capaz de generar 13.300 Wattios durante una hora.
Bien, la mejor tecnología de baterías que tenemos hasta la fecha (Baterias de Litio, en sus dos sabores de iones de litio o de polímeros de litio) tienen una densidad energética de 160 Wh/Kg, esto es, 83 VECES MENOS que la gasolina!. O sea, para poder generar los mismos 13.300 Wattios durante una hora necesitamos no un kilo de gasolina, sino una batería de 83 kilos!

Pero todo no es tan malo... la eficiencia de los motores eléctricos para convertir la electricidad en energía mecánica es muy superior a los motores de gasolina de nuestros coches (un motor eléctrico tiene eficiencias entorno al 85% y uno de combustion interna entorno al 20-25%). Si tenemos en cuenta este factor (85/20) a favor de la electricidad, todavia nos quedamos con un factor de 20 veces a favor de la generación de energía mecánica a partir de la gasolina... Por otro lado los motores eléctricos son bastante más ligeros que los de combustión pero aun así los datos no son muy optimistas, sigue habiendo demasiada diferencia. Nuestra tecnología de almacenamiento esta aún lejos de ser adecuada.


En otro orden de cosas siempre me ha resultado curioso que en general pensamos que los motores de explosión son más potentes que los eléctricos. Si hicieramos una encuesta con la siguiente pregunta  ¿porque los camiones y los trailers no son eléctricos? la mayoría de la gente diría que porque necesitan mucha potencia, dudo que la gente contestara que el peso y el tamaño de las baterías necesarias lo haría inviable...
Pero, quien nos enseño de chicos que los motores de explosión son mas potentes? Yo soy aeromodelista desde hace bastante tiempo y la pregunta de la gente siempre es la misma: ¿Es eléctrico o de explosión? Si es eléctrico (como en mi caso) lo toman como un juguete frente a los verdaderos modelos con motor de explosión... Leche!, que neurona es la culpable de esto?
A ver, de toda la vida los trenes han sido eléctricos. El AVE es eléctrico, transporta a 320 pasajeros, pesa casi 400 toneladas y llega a alcanzar los 300Km/h. Eso es potencia!
Nuestros problemas no están en los motores sino en las baterías...

Bueno seguiremos escribiendo sobre el apasionante mundo de la energia...