Programando robots con software libre

Vicente Matell´n Olivera a 4 de noviembre de 2004

Programando sistemas
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 o e plataforma de desarrollo muy popular para la programaci´n de sistemas empotrados, en particular o para la programaci´n de robots. De hecho, en la comunidad de investigaci´n en rob´tica el software o o o libre se ha convertido en est´ndar. a Esto probablemente no sea muy importante para el usuario medio de inform´tica a d´ de hoy, a ıa pero lo ser´ a corto plazo por la aparici´n de robots en nuestras vidas. Hoy en d´ ya podemos a o ıa comprar corta-c´sped aut´nomos, por ejemplo, el RL-5001 ; carritos dom´sticos como el Cye2 capaz e o e por ejemplo de llevar una bandeja de una habitaci´n a otra; mascotas rob´ticas como el famoso o o perrito AIBO3 del que Sony ha vendido varios centenares de miles de unidades; o la muy barata (por menos de 200 Euros) aspiradora rob´tica Roomba4 , que ha sido regalo tecnol´gico de moda el o o a˜o pasado en los EE.UU. etc. Sin embargo, ninguno de ellos ha alcanzado los miles de unidades n vendidos por LEGO MindStorms, el juguete programable que permite hacer diversas construcciones y en el que me centrar´ en este art´ e ıculo. Como es l´gico, todos estos robots est´n controlados por un ordenador, o al menos un microcono a trolador, lo que los hace susceptibles de ser “programados”. Es aqu´ donde aparece la importancia ı del software libre. Una vez m´s querremos poder inspeccionar que hacen nuestros robots, que estar´n a a conectados a la red, tendr´n c´maras, etc. Querremos poder modificar sus programas, adaptarlos, a a etc. Es decir, nos interesa disponer de software libre tambi´n para nuestros robots. Un ejmplo claro e de que el software libre est´ tambi´n incorpor´ndose a este mundo es la gran cantidad de software a e a libre desarrollado alrededor de los LEGO Mindstorms, como dec´ antes, el robot m´s difundido ıa a hasta la fecha.

LEGO Mindstorms, tu primer robot
LEGO Mindstorms es un “juguete” dise˜ado como un producto de consumo, lo que le dota de n una gran calidad y adem´s de una enorme flexibilidad. Permite construir una enorme variedad de a robots, desde un brazo hasta un robot recolector, sin necesitar ninguna soldadura. Adem´s, permite a
1 http://friendlyrobotics.com/ 2 http://www.personalrobots.com 3 http://www.sony.com/aibo 4 http://www.irobot.com

1

000 Euros) que los hacen inalcanzables para el gran p´blico. Igualmente han existido otros robots que han tenido difusi´n comercial. con lo cual han aparecido varias opciones diferentes para su programaci´n. dise˜ada espec´ n ıficamente para la construcci´n o de robots. Dispone de tres a puertos de salida para conectar motores y tres puertos de entrada para conectar sensores.k-team. son condiciones inaceptables para el gran p´blico. existen robots m´viles programables que se venden como productos comerciales o finales.microbotica.edu/projects/handy-board/ 6 http://www. Peoplebot. Magellan o la familia ATRV.uwa. muchos otros robots “en kit” basados en este y en otros chips.edu. uno de luz y el bloque del micro-procesador que se denomina habitualmente “ladrillo” o RCX (con la memoria y los puertos de entrada/salida). Cada kit adem´s incluye dos motores. Este esp´ ıritu es atractivo para muchos de nosotros. u ı 5 http://el.mit. El “cerebro” de estos robots est´ basado en un microprocesador Hitachi H8/300 con 32 Kbytes de RAM. En general tener que usar un o o soldador. Adem´s. como o por ejemplo el RugWarrior que todav´ se comercializa. los tradicionales ladrillitos de pl´stico. Creo que el LEGO Mindstorms constituye uno de los primeros intentos de difundir el mundo de la rob´tica a escala dom´stica.000 euros) como los suizos de K-Team9 a n (Khepera y Koala) o el australiano Eye-Bot10 . De hecho. De hecho se pueden considerar equivalentes en cuanto a difusi´n. El entorno para el desarrollo de programas incluido en el kit Mindstorms 1.irobot. NQC y BrickOS. En esta categor´ de robots para centros de investigaci´n tambi´n hay ıa o e algunos m´s peque˜os y asequibles (alrededor de los 3. es decir. de temperatura y de o rotaci´n. de luz reflejada. pero a la vez hace que muchos potenciales usuarios queden fuera del mundo de rob´tica por la complejidad y dedicaci´n que implica. un pol´ ımetro. los LEGO Mindstorms han recibido mucha atenci´n por parte de la comunidad de software o libre. como por ejemplo el MIT Altair 8800 (basado ıan en el intel 8080). se pueden comprar colecciones de este tipo en los kioskos.com/ 8 http://www.com/ 9 http://www. Afortunadaa a mente. De igual forma. o Los LEGO Mindstorms se venden como kits completos formados por m´s de 700 piezas tradia cionales de LEGO.activrobots.com 10 http://www. y que adem´s no es software libre. pero a´n as´ prohibitivos para el consumidor medio. Se trata de un entorno muy limitado. Ya hab´ ıa ıan existido computadores que se vend´ en forma de kit. o la tarjeta espa˜ola de Mibrob´tica6 que usa el mismo chip. a a dos sensores de contacto. Ejemplos t´ u ıpicos de estos robots son los de Real World Interface7 con robots como el B21. u Por supuesto. y que est´ basado en el chip 68HC11 de ıa a Motorola. o los de ActiveMedia Robotics8 con productos como el Pioneer.au/~braunl/eyebot/ 2 .una gran libertad a la hora de colocar los sensores y los motores de los robots.es 7 http://www.media.5 es un lenguaje gr´fico de programaci´n pensado fundamentalmente para ni˜os o adultos sin ninguna preparaci´n a o n o inform´tica. que se analizan en las siguientes secciones. el kit incluye un a entorno gr´fico de desarrollo y el equipo necesario para descargar el software desde un ordenador a personal al ladrillo. Otro ejemplo es la tarjeta Handyboard5 . adem´s a de un puerto de infra-rojos para comunicarse con el ordenador que sirve de plataforma de desarrollo. Estos robots generalmente est´n destinados a los centros de investigaci´n y su precio es a o tan elevado (casi siempre por encima de los 10. etc. Entre ellas destacan o dos.ee.www. de colisi´n. o Amigobot. han existido n o y siguen apareciendo. o e o a lo que fue la familia de los ZX de Sinclair en su d´ en el mundo de los ordenadores. Los sensores disponibles son el de luz ambiente. Todos estos robots comparten con los primeros ordenadores el “esp´ ıritu de garaje”. el programador tiene que montar su hardware y luego hacer sus programas.

lo que hace que no se trate de un entorno libre “completo”. debido sobre todo a su simplicidad. Es decir. se entrega un o entorno de programaci´n completamente visual muy orientado a los ni˜os. Sin embargo. Programando el LEGO Mindstorms ¿Cu´l es el motivo de la gran cantidad de software desarrollado para el LEGO Mindstorms? a El factor principal ha sido la permisividad de LEGO. etc. de hecho n es un producto comercial que precisamente est´ pensado para que los usuarios “construyan” sus a modelos. distribuido bajo la Licencia MPL (Mozilla Public License). o simplemente que sean m´s grandes. se o a a trata de un software propietario. La m´s extendia es a NQC. el aspecto electr´nico del producto es el de producto final. Ada. o bien porque creen que no hay m´s remedio que permitir que a los hackers modifiquen tus productos sin son susceptibles de hacerlo. En este paso el caso de los LEGO Mindstorms puede resultar enga˜oso. con lo que puede que en alg´n momento surga una alternativa libre. desde luego.) lo cual obliga a o cambiar el sistema operativo del ladrillo y en consecuencia a usar BrickOS. pero tambi´n a la abundante documeno a e taci´n y a la existencia de herramientas como el RCX Command Center para MS-Windows(TM) o que facilitan el desarrollo y la descarga de programas. Un hacker public´ las llamadas al sistema o a o de su sistema operativo propietario (OPEN-R).com/robotics/rcx/legos/ 12 http://www. el equivalente al del ZX en el mundo de u los ordenadores. Sin embargo. que traducido es algo as´ como “Un C no compleo ı to”.noga. C++. pudiendo utilizarse como o editor cualquiera que edite texto ASCII. o a Algo parecido sucedi´ con el perro-m´scota de Sony. dise˜ado e implementado n fundamentalmente por Markus Noga. la alternativa m´s sencilla al lenguaje de programaci´n a o basado en iconos arrastrables que proporciona LEGO. es decir. BrickOS11 es un sistema operativo libre para el LEGO Mindstorms. usa el sistema operativo original de LEGO. se trata de un lenguaje sencillo con una sintaxis muy similar a C que se puede usar para programar el ladrillo. NQC es software libre. En este caso Sony no ha liberado o su sistema operativo. la realidad es que LEGO ha consentido la ingenier´ inversa necesaria para que se pueda desarrollar software libre para su ıa plataforma.com. En el caso de GNU/Linux. del hardware. por ejemplo crear un mapa. que hace que cualquier o n usuario.El siguiente estadio tras los garajes en la evoluci´n del mercado de los robots dirigido al gran o p´blico es el paso del kit de auto-montaje. A pesar de estas limitaciones. es decir. Sin embargo. no hay o que soldar ning´n elemento. NQC es un lenguaje muy popular entre los usuarios de baja formaci´n inform´tica.aibo. Bien porque su mercado es la venta de sus “piezas”. u Pero volvamos a las alternativas para programar el LEGO Mindsotorms. u De la misma forma. Forth. simplemente comprar unas pilas y encenderlo.lugnet. y que inicialmente se llam´ LegOS12 . cuyo acr´nimo NQC significa Not Quite C. la parte de programaci´n del robot es un producto final. Sin embargo. Es. al producto final. NQC no es la opci´n m´s adecuada a o a y hay que utilizar un lenguaje de programaci´n real (C. pero si se est´ constituyendo una comunidad de desarrolladores alrededor de a sus robots. lo cual fue inicialmente perseguido por Sony hasta que decidi´ publicar un entorno de desarrollo: openr. Los entornos de programaci´n m´s extendidos son NQC y BricKOs. sin ninguna formaci´n inform´tica pueda programar f´cilmente el robot. Comparado con el o 11 http://www. si se quieren realizar programas que requieren cierto almacenamiento de datos.de/legOS/ 3 . se dispone de un compilador que produce c´digo directamente descargable en el robot.

escomposlinux. y los a robots no son una excepci´n.csc.ldraw. . as´ como varios ejemplos. haciendo incluso animaciones. o a Firefox u OpenOffice.sourceforge. Pronto podemos encontrarnos al robotito de Bilo16 . para lo que hace falta usar las binutils. ofrece muchas ventajas adem´s de mejores prestaciones y a mayor flexibilidad y lo que es m´s importante desde mi punto de vista: se trata de software libre. otro simulador.com a Se otorga permiso para copiar y distribuir este documento completo en cualquier medio si se hace de forma literal y se mantiene esta nota.ncsu. o c 2004 Vicente Matell´n Olivera. La distribuci´n para GNU/Linux de LegOS incluye varias o herramientas que permiten descargar el c´digo de forma din´mica. de forma ı que es muy sencillo de instalar.sistema operativo original de LEGO. de la genial tira o c´mica de Javier Malonda en nuestra mesa ejecutando software libre. el software libre no s´lo est´ colonizando los ordenadores personales con GNU/Linux. Existen tambi´n herramientas que no son para programadores. Existen paquetes Debian. . que permite simular las entradas y salidas. . e como por ejemplo LDraw15 que permite crear escenas virtuales de piezas LEGO y renderizarlas.edu/~mueller/legosim/ 15 http://www. est´ entrando con mucha fuerza en todos los entornos programables.org 4 . El entorno de programaci´n bajo ıas o GNU/Linux incluye el compilador de C de GNU (gcc) compilado como cruzado para el Hitachi H8. En resumen. lo que quiere decir que se necesita el soporte ´ de un compilador capaz de generar c´digo para el H8 a partir del lenguaje de programaci´n que o o deseemos y para el que existan las librer´ adecuadas de BrickOS. LegoSim14 . . descargar el firmaware o sistema o a operativo. 13 http://emulegos. Alrededor del sistema operativo BrickOS se han desarrollado m´ltiples herramientas auxiliares.. a BrickOS es unicamente el sistema operativo.net/ 14 http://moss. Ejemplos de estas herramientas son emulegos13 . vmo@barrapunto. etc. y de otras distribuciones. u como por ejemplo simuladores que hacen m´s f´cil la depuraci´n al permitir ejecutar programas en la a a o propia plataforma de desarrollo usando un depurador tradicional de GNU/Linux como por ejemplo gdb.org/ 16 http://tira..

Sign up to vote on this title
UsefulNot useful