211service.com
Un linguaggio di programmazione per sciami di robot
Uno degli spettacoli più affascinanti di una serata autunnale è il comportamento in stormo degli storni mentre barcollano e piombano in straordinarie dimostrazioni di sincronizzazione aerodinamica.
Si scopre che questi complessi display sono il risultato di un semplice insieme di regole che regolano il modo in cui gli uccelli volano l'uno rispetto all'altro. In effetti, questo affollamento è stato relativamente semplice da simulare al computer per molti anni.
Ma non è mai stato ripetuto con i robot volanti o quelli a terra del resto, per due motivi. Primo perché nessuno ha costruito robot con la stessa agilità e velocità. Ma anche con robot meno agili, il compito è complicato per il secondo motivo: non esiste un modo semplice per controllare un tale gregge.
Il primo fattore sta cambiando rapidamente. Robot economici e capaci, volanti o meno, hanno causato un'esplosione di interesse per stormi e sciami. Numerosi ricercatori, hobbisti e artisti stanno sperimentando queste macchine e sperano di studiare e sfruttare il brulicante comportamento che generano.
Tutti questi gruppi stanno scoprendo che controllare un gran numero di robot identici è una specie di sfida. E in assenza di un linguaggio di programmazione consolidato, devono affrontare gli stessi problemi negli stessi modi. In altre parole, stanno reinventando la ruota.
Oggi Carlo Pinciroli dell'Ecole Polytechnique de Montreal in Canada e alcuni amici affermano di aver sviluppato un linguaggio di programmazione proprio per questo scopo. Presentiamo Buzz, un nuovo linguaggio di programmazione per sciami di robot eterogenei, dicono.
Ci sono due approcci opposti al controllo di uno sciame. Il primo è un metodo dal basso verso l'alto in cui ogni robot è controllato individualmente. È utile per mettere a punto l'interazione tra robot specifici, ma diventa sempre più difficile da gestire con l'aumento delle dimensioni dello sciame.
Il metodo opposto è un approccio dall'alto verso il basso in cui lo sciame è controllato nel suo insieme. È molto più efficace per sciami di grandi dimensioni, ma non consente la messa a punto dei comportamenti dei singoli robot.
Pinciroli e compagni affermano che il loro nuovo linguaggio consente entrambi i metodi. Riteniamo che un linguaggio per sciami di robot debba combinare primitive bottom-up e top-down, consentendo allo sviluppatore di scegliere il livello di astrazione più comodo per esprimere un algoritmo di sciame, dicono.
Dicono che Buzz consente anche di combinare i comandi in modi intuitivi con risultati prevedibili che lo rendono relativamente facile da usare. È anche scalabile e quindi può essere utilizzato efficacemente in sciami di varie dimensioni.
Proseguono mostrando vari esempi di come la lingua funziona nella pratica e porta a comportamenti auto-organizzati utilizzando regole relativamente semplici, proprio come veri sciami e greggi.
È un lavoro interessante che ha il potere di diventare un amplificatore tecnologico. Pinciroli e colleghi affermano che l'assenza di un linguaggio di programmazione standardizzato per gli sciami è una barriera significativa al progresso futuro perché non esiste un modo semplice per i ricercatori di condividere il proprio lavoro e costruire sulle scoperte reciproche.
Riteniamo che uno degli aspetti più importanti di Buzz sia il suo potenziale per diventare un fattore abilitante per la ricerca futura su sistemi robotici a sciame complessi e del mondo reale, afferma il team.
E hanno progetti ambiziosi per il futuro. Ad esempio, vogliono creare una libreria di noti comportamenti dello sciame che diventeranno elementi costitutivi per il lavoro futuro degli altri.
Cose interessanti che potrebbero significare che gli straordinari stormi che vedrai nelle future serate autunnali potrebbero non essere affatto storni.
Rif: arxiv.org/abs/1507.05946 : Buzz: un linguaggio di programmazione estensibile per sciami di robot eterogenei auto-organizzati