Biorobótica, FPGAs y microcontroladores ¿De qué va todo esto?

En la primera entrada te conté quién soy. Ahora toca contarte por qué estamos aquí. Como te comenté estoy estudiando un Master en Robótica y Automática en la Universidad Politécnica de Madrid. Uno de los momentos más difíciles es cuando empiezas a pensar sobre tu trabajo final. Si tienes suerte algún profesor tendrá alguna propuesta que te interese, si no, lo mejor es que busques en el cajón de tus propias inquietudes. Porque, a pesar de que al final debes ser práctico y reducirlo a un “me lo quito de encima y ya”, el trabajo final existe por un motivo claro: para hacerte aplicar lo estudiado y aprender algo nuevo por ti mismo.

Trabajo rodeado de placas Arduino, impresoras 3D y electrónica básica. Gran parte de mi trabajo consiste en crear pequeños diseños de robots y otras máquinas simples para enseñar a otros a programar. Gracias a ello he conocido el trabajo realizado por Juan Gonzalez y Jesús Arroyo. Te contaré más tarde con detalle en que consiste todo lo que han hecho, pero por ahora te lo voy a resumir con dos palabras: FPGAs libres.

IceZUM-rev1-1607-img4

La idea en sí misma es atractiva, más para un Ingeniero electrónico como yo, pero, desde el punto de vista de mi trabajo, no le veía ventajas. Quiero decir: ¿programar hardware para crear robots simples? ¿Donde está la ventaja? ¡Para eso tenemos microcontroladores como Arduino! Más sencillo de programar, muchos menos dolores de cabeza.

Sí, me encantaba la idea, FPGAs libres, por fin programar FPGAs podía ser más simple y accesible para todos, una gran oportunidad para repasar lo aprendido en la carrera. Lo malo es que no le encontraba utilidad directa. Y yo tenía muchas ganas de encontrársela…

Fue entonces cuando descubrí esta charla TED:

Alucinante ¿no? Hay muchas cosas interesantes en esta charla. Una de ella es la propia Biorobótica, el inspirarse en el mundo animal para conseguir mejores robots y, al mismo tiempo, entender mejor el mundo que nos rodea. Otra es el ejemplo de estructura básica de locomoción animal:

Cpgcat

En la charla lo explica muy bien, pero, en resumen, tenemos cuatro partes que definen la locomoción en un animal. La primera es la propia mecánica del animal, el cómo se mueve, cuanto miden sus patas, sus articulaciones, peso, en definitiva, su cuerpo.

Dentro de la espina dorsal/sistema nervioso central tenemos dos partes: uno son los movimientos reflejos, que nos salvan, o no, de llevarnos un balonazo en la cara.

balonazo

Los movimientos reflejos son muy importantes, nos permiten actuar rápido, sin pensar, en pos de nuestra propia supervivencia. Otra parte es algo que, para mí, es absolutamente genial: los CPG o Central pattern generator. A grosso modo no son más que pequeños generadores de movimientos rítmicos, pequeños osciladores que controlan movimientos básicos como por ejemplo el caminar.

Piensa en lo que ocurre cuando sales de casa al trabajo o comprar el pan. Mientras andas ¿estás pensando en que ahora tienes que flexionar la rodilla, adelantar la pierna y apoyarla sobre el suelo? La respuesta es no. Tú vas pensando en tus cosas. ¿Y si te dijera que quién controla el caminar es, en gran medida, tu sistema nervioso? Simplificando mucho (lo siento por los expertos en el tema) la última orden que dio tu cerebro fue un simple camina.

Son millones de años de selección natural, perfeccionamiento y evolución para cada ser vivo del planeta… y nosotros pretendemos imitarlo, de momento, con más caídas que éxitos.

Y es que no es fácil conseguir que un robot ande como un animal o, peor aún, un ser humano. Hace falta una mecánica muy buena y, sobretodo, un sistema de control extraordinario.

El cerebro de nuestros robots son microprocesadores, ordenadores que realizan cálculos e imparten ordenes de una forma secuencial, de una en una. Esto significa que si tu robot tiene cuatro patas hay que controlar las articulaciones de cada pata de forma secuencial, tomar los valores de los sensores de forma secuencial, y tomar decisiones de forma secuencial… muchas acciones que se acumulan y que solo se pueden realizar una detrás de otra ¿el resultado? Muchas ordenes a ejecutar en muy poco tiempo y robots con menos estabilidad que un niño de 4 años.

Obviamente la solución pasa por tener más de un microprocesador, si tengo uno que hace de cerebro como control de alto nivel (anda, para, gira), y pongo otro por pierna como control de bajo nivel (mueve la articulación, estira esta otra), cada uno se encargará de su propio trabajo y todo irá mucho mejor. Para que lo entiendas, lo que se hace en muchas ocasiones, es poner un cerebro por extremidad.

Y es aquí de donde surge la idea de mi TFM: ¿Y si en vez de usar un microprocesador para controlar las ordenes de bajo nivel de un robot, utilizará algo más rápido, más físico? ¿Y sí el movimiento no estuviera programado, si no que fueran circuitos lógicos simples, hardware? ¿Cual es la mejor forma de diseñar hardware de forma rápida y sencilla? La respuesta son las FPGAs.

Así que, en resumen, el objetivo de mi TFM es investigar sobre una estructura de control formada por un microprocesador como cerebro o sistema de control de alto nivel y una FPGA que controle los elementos de bajo nivel, como el movimiento de cada pierna en un robot. Para ello investigaré sobre la biorobótica y locomoción básica animal, realizaré pruebas en diversos robots para comprobar las ventajas y desventajas de esta estructura de control frente a sistemas más convencionales y crearé un prototipo de robot modular, escalable y, esperemos que bioinspirado, que demuestre la utilidad de la arquitectura que planteo.

Pero decirlo es muy fácil, ahora toca hacerlo. Ya te iré contando…

9 comentarios


  1. Me gusta tu proyecto… AL verdad es que a mi me ha pasado lo mismo que a tí con las FPGAs… He visto al gran obijuan soltando sus pildoras sobre FPGA y decía sí es chulo pero … Ahora entiendo su utilidad. Espero que te vaya muy bien tu proyecto. Tienes suerte de trabajar con esos compañeros. Espero poder seguir tus aventuras con las FPGAs… Gracias por compartir tus impresiones.

    Responder

  2. Hola Julián, me parece muy interesante tu proyecto. Tengo un proyecto desde hace años que va muy en la línea de lo que comentas en esta entrada. Me encantaría invitarte a mi taller/laboratorio y debatir posibles colaboraciones. Si estás interesado, ponte en contacto conmigo. Un saludo!

    Responder

  3. La verdad es que yo también estoy muy interesado en esos temas. Si OS parece podíamos hacer un grupito para intercambiar ideas y aprender.

    Responder

  4. Fantástico proyecto, Julián, no me cabe la menor duda, que conseguirás lo que te propones y además nos harás aprender a los demás.
    Un saludo y suerte

    Responder

    1. Gracias Sebastian, está todo en pañales, pero la idea de compartirlo era precisamente esa, que se pueda leer como se acaba pariendo algo como ésto.

      Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *