Articoli

Robotica: sistemi reattivi

20.04.2000

per collaborazioni, commenti, critiche, e altro contattateci alla e-mail: clubinfo@libero.it risponderemo al più presto!

Modelli comportamentali

di Luca Sabatucci

Introduzione

Nello sviluppo di un robot si distinguono due possibili approcci al problema del raggiungimento di obiettivi:

  1. approccio reattivo

  2. approccio deliberativo 

In questo articolo daremo un breve ma interessante accenno al primo dei due metodi, mediante un esempio classico della letteratura robotica, quali sono i veicoli di Braitenberg.

Due possibili approcci allo stesso problema

Scopo della robotica è quello di definire tecniche e algoritmi tali da far agire un robot in un ambiente per far raggiungere uno o più scopi prefissati. Un esempio potrebbe essere quello di organizzare la pulizia di un determinato ambiente nel quale sono presenti ostacoli statici o mobili secondo determinati vincoli temporali. L'ambiente potrebbe essere un aula scolastica, mentre gli ostacoli potrebbero essere i banchi e le sedie (vincoli statici) o delle persone che si muovono all'interno (ostacoli dinamici). Il vincolo temporale potrebbe essere quello di non entrare durante la lezione per evitare di disturbare.

In genere sono possibili due strategie. Nella prima strategia il robot ha una conoscenza a priori dell'ambiente che deve pulire, dei suoi obiettivi e dei vari vincoli, ed effettua una pianificazione delle azioni che deve compiere. Questa pianificazione avviene prima che il robot inizi il suo compito, e in genere non viene più variata nel corso dell'operazione. Si tratta dell'approccio deliberativo.

La seconda strategia prevede che il robot possa interagire con l'ambiente mediante dei sensori di vario genere (sonar, sensori luminosi, telecamere) e che prenda le decisioni su come agire man mano che affronta il problema. Questo è l'approccio reattivo.

Naturalmente entrambi i due approcci sono puramente teorici e presentano entrambi vantaggi e svantaggi. Ad esempio, nell'approccio basato sulla conoscenza, come si agisce se l'ambiente ha subito dei cambiamenti? Oppure nell'approccio reattivo come si considerano gli eventuali vincoli temporali? Nella pratica non si usa un solo approccio, ma una combinazione dei due, tuttavia in questo articolo ci occuperemo di capire quali sono le potenzialità dei sistemi puramente reattivi.

Veicoli di Braitenberg

Lo studio delle meccaniche che regolano i sistemi reattivi derivano in modo molto stretto dallo studio del mondo animale (etimologia). Il comportamento di tali robot, come vedremo, è ispirato molto al comportamento istintivo di alcune specie animali. La caratteristica fondamentale di questi sistemi è il legame diretto tra percezione e azione, o da un punto di vista informatico ad un legame tra ingresso e uscita di una funzione.

Un veicolo di Braitemberg è un modello semplificato di un robot che possiede due motori elettrici, connessi a due ruote e due sensori ottici.

Il sensore ottico è un dispositivo elettrico che percepisce la quantità di luce presente in un ambiente e restituisce un segnale di ampiezza ad essa proporzionale. Il concetto di base è quello di connettere in modo diretto (senza alcuna elaborazione intermedia) i sensori ai motori.
Le connessioni si possono realizzare mediante:

Nel primo caso all'aumentare della quantità di luce nell'ambiente il motore tende ad accelerare, mentre nel secondo caso tende a frenare. Vedremo tra breve in dettaglio il significato di questa frase.

Comportamento di paura

Il primo tipo di connessione che viene in mente è quello in cui entrambi i sensori sono di tipo eccitatore. Supponiamo adesso di inserire il robot in un ambiente in cui è presente una sorgente luminosa:

Vediamo cosa succede: Entrambi i sensori sono colpiti dai raggi luminosi, ma poiché la distanza dalla sorgente è diversa, anche l'intensità luminosa è diversa (l'intensità della luce decade con la distanza dalla sorgente). Considerando la figura il segnale prodotto dal sensore destro è maggiore di quello prodotto dal sensore sinistro. Ragion per cui il motorino destro accelera di più rispetto a quello sinistro. Il robot tende quindi a girare a sinistra, ovvero a scappare dalla sorgente luminosa. Questo tipo di comportamento viene chiamato di paura. Da notare che se il robot si trova esattamente di fronte alla sorgente di luce tenderà ad accelerare verso di essa colpendola.

Comportamento di aggressione

Proviamo adesso a invertire i due sensori, in modo che il sensore destro piloti il motorino sinistro e viceversa.

Questa volta il motorino vicino alla sorgente di luce viene stimolato in misura minore rispetto a quello lontano, per cui il robot tende verso la luce finche non va a sbatterci. Questo comportamento viene chiamato di aggressione.

Comportamento d'amore

Finora abbiamo usato le connessioni sensore/motore di tipo eccitatore. Adesso sostituiamo queste con quelle di tipo inibitore. Vediamo cosa succede:

Questa volta il motorino vicino alla luce frena di più rispetto a quello lontano. Il robot tende ad orientarsi verso la luce ma vi arriva davanti a velocità via via minore finché vi si ferma, come in contemplazione. Questo atteggiamento è simpaticamente chiamato d'amore.

Comportamento di curiosità

Adesso invertiamo i collegamenti, pur mantenendo le connessioni di tipo inibitore:

Quello che accade è che i motori rallentano in prossimità della luce, ma quello vicino rallenta in quantità minore e quindi tende comunque a sfuggire (e riprende quindi velocità). Quindi è come se il robot fosse incuriosito dalla luce, ma una volta arrivato davanti ad essa continua per la sua strada.

Conclusioni

Lo scopo di questo articolo è quello di fare vedere, mediante degli esempi estremamente semplici, come utilizzando delle connessioni dirette molto semplici tra sensore e motore si è ottenuta una gamma di comportamenti base. A partire da questi è possibile effettuare delle combinazioni di vario genere ed ottenere comportamenti più complessi; nasce quindi il problema di determinare in quale modo effettuare la combinazione (problema dell'arbitraggio); affronteremo questi e altri problemi in seguito in altri articoli dedicati alla robotica.

 

 

Questo articolo è stato scaricato dal Club di informatica
Pagina curata da:
Alessandro Luparello