211service.com
Un lenguaje de programación para enjambres de robots
Una de las vistas más fascinantes de una tarde de otoño es el comportamiento de bandada de los estorninos mientras se tambalean y se lanzan en picado en extraordinarias demostraciones de sincronización aerodinámica.
Resulta que estas exhibiciones complejas surgen como resultado de un conjunto simple de reglas que rigen cómo las aves vuelan relativamente entre sí. De hecho, este flocado ha sido relativamente sencillo de simular en la computadora durante muchos años.
Pero nunca se ha repetido con robots voladores o terrestres, por dos razones. Primero porque nadie ha construido robots con la misma agilidad y velocidad. Pero incluso con robots menos ágiles, la tarea es complicada debido a la segunda razón: no existe una manera fácil de controlar tal rebaño.
El primer factor está cambiando rápidamente. Los robots baratos y capaces, voladores o no, han provocado una explosión de interés en bandadas y enjambres. Numerosos investigadores, aficionados y artistas están experimentando con estas máquinas y esperan estudiar y explotar el comportamiento de enjambre que generan.
Todos estos grupos están descubriendo que controlar un gran número de robots idénticos es un desafío. Y en ausencia de un lenguaje de programación establecido, tienen que abordar los mismos problemas de la misma manera. En otras palabras, están reinventando la rueda.
Hoy, Carlo Pinciroli de la Ecole Polytechnique de Montreal en Canadá y algunos amigos dicen que han desarrollado un lenguaje de programación solo para este propósito. Presentamos Buzz, un novedoso lenguaje de programación para enjambres de robots heterogéneos, dicen.
Hay dos enfoques opuestos para controlar un enjambre. El primero es un método ascendente en el que cada robot se controla individualmente. Eso es útil para ajustar la interacción entre robots específicos, pero se vuelve cada vez más difícil de manejar a medida que aumenta el tamaño del enjambre.
El método opuesto es un enfoque de arriba hacia abajo en el que el enjambre se controla como un todo. Eso es mucho más efectivo para grandes enjambres, pero no permite el ajuste fino de los comportamientos de los robots individuales.
Pinciroli y compañía dicen que su nuevo lenguaje permite ambos métodos. Creemos que un lenguaje para enjambres de robots debe combinar primitivos de abajo hacia arriba y de arriba hacia abajo, lo que permite al desarrollador elegir el nivel de abstracción más cómodo para expresar un algoritmo de enjambre, dicen.
Dicen que Buzz también permite combinar comandos de manera intuitiva con resultados predecibles que lo hacen relativamente fácil de usar. También es escalable y, por lo tanto, se puede usar de manera efectiva en enjambres de diferentes tamaños.
Continúan mostrando varios ejemplos de cómo funciona el lenguaje en la práctica y conduce a un comportamiento autoorganizado utilizando reglas relativamente simples, como enjambres y bandadas reales.
Ese es un trabajo interesante que tiene el poder de convertirse en un amplificador de tecnología. Pinciroli y compañía dicen que la ausencia de un lenguaje de programación estandarizado para enjambres es una barrera importante para el progreso futuro porque no hay una manera fácil para que los investigadores compartan su trabajo y se basen en los avances de los demás.
Creemos que uno de los aspectos más importantes de Buzz es su potencial para convertirse en un habilitador para futuras investigaciones sobre sistemas robóticos de enjambre complejos del mundo real, dice el equipo.
Y tienen planes ambiciosos para el futuro. Por ejemplo, quieren crear una biblioteca de comportamientos de enjambre bien conocidos que se convertirán en componentes básicos para el trabajo futuro de otros.
Cosas interesantes que pueden significar que las extraordinarias bandadas que verás en las futuras tardes de otoño pueden no ser estorninos en absoluto.
Ref: arxiv.org/abs/1507.05946 : Buzz: un lenguaje de programación extensible para enjambres de robots heterogéneos autoorganizados