PROGRAMANDO ROBOTS CON SOFTWARE LIBRE
1/2 El software libre en general, y GNU/linux en particular, son opciones habituales para la programación de aplicaciones en ordenadores personales o grandes sistemas, pero también son una plataforma de desarrollo muy popular para la programación de sistemas empotrados, en particular para la programación de robots.
De hecho, en la comunidad de investigación en robótica el software libre se ha convertido en estándar.
PROGRAMANDO SISTEMAS
Esto probablemente no sea muy importante para el usuario medio de informática a día de hoy, pero lo será a corto plazo por la aparición de robots en nuestras vidas. Hoy en día ya podemos comprar cortacésped autónomos, por ejemplo, el modelo RL-500; carritos domésticos como Cye, capaz por ejemplo de llevar una bandeja de una habitación a otra; mascotas robóticas como el famoso perrito AlBO del que Sony ha vendido varios centenares de miles de unidades; o la muy barata (por menos de 200 euros) aspiradora robótica Roomba, que ha sido el regalo tecnológico de moda el año pasado en los EE.UU. etc. Sin embargo, ninguno de ellos ha alcanzado los miles de unidades vendidos por LEGO MindStorms, el juguete programable que permite hacer diversas construcciones y en el que me centraré en este artículo.
Como es lógico, todos estos robots están controlados por un ordenador, o al menos un microcontrolador, lo que los hace susceptibles de ser "programados". Es aquí donde aparece la importancia del software libre. Una vez más querremos poder inspeccionar qué hacen nuestros robots, que estarán conectados a la red, tendrán cámaras, etc. Además, querremos poder modificar sus programas, adaptarlos, etc. Es decir, nos interesa disponer de software libre también para nuestros robots. Un ejemplo claro de que el software libre está también incorporándose a este mundo, es la gran cantidad de este tipo de software desarrollado alrededor de los LEGO Mindstorms, como decía antes, el robot más difundido hasta la fecha.
LEGO MINOSTORMS, TU PRIMER ROBOT
LEGO Mindstorms es un "juguete" diseñado como un producto de consumo, lo que le dota de una gran calidad y además de una enorme flexibilidad. Permite construir una amplia variedad de robots, desde un brazo hasta un robot recolector, sin necesitar ninguna soldadura. Además, permite una gran libertad a la hora de colocar los sensores y los motores de los robots. El "cerebro" de estos robots está basado en un microprocesador Hitachi H8/300 con 32 Kbytes de RAM. Dispone de tres puertos de salida para conectar motores y tres puertos de entrada para conectar sensores, además de un puerto de infrarrojos para comunicarse con el ordenador que sirve de plataforma de desarrollo. Los sensores disponibles son el de luz ambiente, luz reflejada, colisión, temperatura y rotación.
Los dispositivos LEGO Mindstorms se venden como kits completos formados por más de 700 piezas de LEGO, los tradicionales "ladrillitos" de plástico. Cada kit además incluye dos motores, dos sensores de contacto, uno de luz y el bloque del microprocesador que se denomina habitualmente ladrillo o RCX (con la memoria y los puertos de entrada/salida). Además, viene con un entorno gráfico de desarrollo y el equipo necesario para descargar el software desde un ordenador personal al ladrillo.
El entorno para el desarrollo de programas del kit Mindstorms 1.5 es un lenguaje gráfico de programación pensado fundamentalmente para niños o adultos sin ninguna preparación informática. Se trata de un entorno muy limitado, y que además no es software libre. Afortunadamente, los LEGO Mindstorms han recibido mucha atención por parte de la comunidad de software libre, con lo cual han aparecido varias opciones diferentes para su programación. Entre ellas destacan dos, NQC y BrickOS, que analizamos a continuación.
Creo que LEGO Mindstorms constituye uno de los primeros intentos de difundir el mundo de la robótica a escala doméstica. De hecho, se pueden considerar equivalentes en cuanto a difusión, a lo que fue la familia ZX de Sinclair en su día en el mundo de los ordenadores. Entonces ya habían aparecido computadores que se vendían en forma de kit, como por ejemplo el MIT Altair 8800 (basado en el Intel 8080). Igualmente han existido otros robots "en kit" que han tenido difusión comercial, como por ejemplo el RugWarrior, que todavía se comercializa, y que está basado en el chip 68HC11 de Motorola. Otro ejemplo también basado en el chip 68HC11 es la tarjeta Handyboard, diseñada específicamente para la construcción de robots, o la tarjeta española de Mibrobótica que usa el mismo chip. De igual forma, han existido y siguen apareciendo muchos otros robots en kit basados en éste y en otros chips, y ya se pueden comprar colecciones de este tipo en los quioscos.
Todos estos robots comparten con los primeros ordenadores el "espíritu de garaje", es decir, el programador tiene que montar su hardware y luego hacer sus programas. Este espíritu es atractivo para muchos de nosotros, pero a la vez hace que potenciales usuarios queden fuera del mundo de la robótica por la complejidad y dedicación que implica. En general, tener que usar un soldador, un polímetro, etc. son condiciones inaceptables para el gran público.
Por supuesto, existen robots móviles programables que se venden como productos comerciales finales. Éstos generalmente están destinados a los centros de investigación y su precio es tan elevado (casi siempre por encima de los 10.000 euros) que los hacen inalcanzables para el consumidor en general. Ejemplos típicos de estos robots son los de Real World Interface con robots como 821, Magellan o la familia ATRV; o los de ActiveMedia Robotics con productos como Pioneer, Peoplebot, o Amigobot. En esta categoría de robots para centros de investigación también encontramos algunos más pequeños y asequibles (alrededor de los 3.000 euros) como los suizos de K-Team (Khepera y Koala) oel australiano Eye-8ot, pero aún así prohibitivos para el usuario medio.
El siguiente estadio tras los garajes, en la evolución del mercado de los robots dirigido al gran público, es el paso del kit de auto-montaje al producto final, el equivalente a ZX en el mundo de los ordenadores. Aquí el caso de LEGO Mindstorms puede resultar engañoso, ya que de hecho es un producto comercial que precisamente está pensado para que los usuarios "construyan" sus modelos. Sin embargo, el aspecto electrónico del dispositivo es el de producto final, es decir, no hay que soldar ningún elemento, simplemente comprar unas pilas y encenderlo.
De la misma forma, la parte de programación del robot es un producto final, se entrega un entorno de programación completamente visual muy orientado a los niños, que hace que cualquier usuario, sin ninguna formación informática, pueda programarlo fácilmente. Sin embargo, se trata de un software propietario.
Siguiente >
|