Raffaele Grandi homepage
Post-Doc Research Fellow in
Advanced Multirobot Systems

Simulazione



La simulazione ricopre nella ricerca un ruolo fondamentale. Solamente negli ultimi anni si è osservata una sua applicazione, in continua crescita, anche nell'ambito robotico. In questo modo si ha la possibilità di creare e testare modelli matematici e algoritmi prima della validazione fisica su robot reali. In ambito robotico la simulazione consente di aver accesso ad un parco virtualmente infinito di robot, sensori e dispositivi di ogni genere.

Esistono differenti simulatori propriamente creati per la robotica, oppure provenienti da un altro settore e poi adattati. Appartenenti alla prima categoria possiamo citare Stage/Player, Gazebo, USAR-Sim o WeBots. Mentre per la seconda ad esempio MORSE creato con il supporto delle librerie di Blender, un simulatore utilizzato per l'animazione grafica e cinematografica. Oppure OGRE. La loro peculiarità è quella di avere alle spalle un motore di rendering grafico particolarmente potente che incorpora una libreria per la simulazione della fisica molto evoluta e accurata.


Tra questi simulatori c'è chi incorpora direttamente dei linguaggi di programmazione per l'animazione in tempo reale degli oggetti all'interno della scena oppure chi si integra perfettamente in frame già esistenti come R.O.S. Inoltre c'è chi mette a disposizione un parco di unità robotiche comunemente utilizzate e ben studiate, chi invece non ha nulla di precostruito e lascia la possibilità all' utente di creare "from scratch" il proprio robot fin nei più piccoli particolari.


Generalmente si sceglie il simulatore in funzione del risultato desiderato. Se si è interessati a studiare un algoritmo di alto livello che interagisce in modo minimale con l'ambiente circostante si cercherà un simulatore semplice da gestire che fornisca una buona integrazione software, se invece si ha la necessità di avere un'interazione forte si cercherà un simulatore che ricrei l'ambiente tridimensionale il più fedelmente possibile. Spesso si passa dall'uno all'altro in funzione del grado di maturità dell'algoritmo o dello studio che si sta conducendo, la maggior parte delle volte con lo scopo finale di trasferirlo all'interno di un robot reale. In questo modo l'interazione fedele tra il robot simulato e l'ambiente creato virtualmente risulta fondamentale, così che gli algoritmi studiati risentano marginalmente del loro trasferimento in un ambiente reale.


Seguendo questa filosofia dell'approccio graduale mi sono appoggiato, per le mie ricerche, a quattro simulatori differenti: JUSE, MUSE, Gazebo e Blender. Per quanto riguarda gli ultimi due si rimanda alla documentazione specifica presente sul sito ufficiale relativo. Per quanto riguarda i primi due invece, di seguito sono riportate due brevi descrizioni. Per diversi motivi si è scelto di seguire un approccio custom ed entrambi sono stati completamente auto-sviluppati e in continua evoluzione.

  • JUSE - Acronimo di Java Unibot Simulation Environment. La sua struttura, completamente scritta in Java, gli consente di essere semplice e modulare, ben integrabile anche in applicazioni web-based. Il suo utilizzo di base è quello di simulare robot mobili differenzial wheeled dotati di sensori per la rilevazione degli ostacoli. La sua interfaccia di rete ne consente il controllo anche da remoto e la sua interoperabilità bidirezionale consente agli algoritmi sviluppati su JUSE di controllare robot esterni, reali o simulati tramite tecniche più accurate (es. Blender) tramite protocolli e infrastrutture di rete standard (TCP/UDP)
  • MUSE - Acronimo di Matlab Unibot Simulation Environment è un software di simulazione autocostruito, pensato per superare le limitazioni presenti in JUSE. MUSE (il cui acronimo significa Matlab Unibot Simulation Environment) è stato sviluppato come supporto per le ricerche sulla robotica mobile, espressamente legata al progettto Unibot ma non solo. Il software è scritto in un linguaggio ibrido Matlab-Java, principalmente in modo che possa sfruttare al meglio le potenzialità di calcolo del primo e le ottime capacità di networking del secondo.