Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Ernesto Burattini » 15.Architetture a Campi di Potenziale e Sussunzione


I campi di potenziale comparati con la sussunzione

Come possiamo formare un behaviour emergente più complicato dei semplici behaviour?

Alla stessa maniera dei campi di potenziale più complicati che sono costruiti da campi primitivi: combinando instanziazioni multiple di behaviour primitivi.

Questo può essere visto rivisitando il behaviour di esempio che descriveva l’architettura a sussunzione.

Nel caso del Livello 0 nella sussunzione, se non ci sono ostacoli all’interno del raggio d’azione, il robot non sente la forza repulsiva ed è immobile. Se un ostacolo entra all’interno del raggio d’azione ed è rivelato da più di un sonar, ognuna delle letture sonar crea un vettore, puntando il robot nella direzione opposta.

I campi di potenziale comparati con la sussunzione (segue)

Nell’esempio della sussunzione , si può immaginare, che questi vettori vengano sommati nel modulo GENERAZIONE_MOTO come in figura. In un sistema a campi di potenziale, ciascuna lettura sonar rilascia un’istanza del behaviour GENERAZIONE_MOTOpf (“pf” è usato per rendere chiaro quale GENERAZIONE_MOTO è assegnato). Il behaviour di GENERAZIONE_MOTOpf usa un campo di potenziale repulsivo. I vettori di output sono quindi sommati, e il vettore risultante è usato per guidare la svolta e l’avanzamento del motore.

Livello 0 con i campi di potenziale.

Livello 0 con i campi di potenziale.


I campi di potenziale comparati con la sussunzione (segue)


I campi di potenziale comparati con la sussunzione (segue)

Il modulo RILEVATORE_DI_COLLISIONI nella sussunzione non coincide con un behaviour nella metodologia a campi di potenziale.
Si ricordi che lo scopo di RILEVATORE_DI_COLLISIONI è fermare il robot se tocca un ostacolo; e questo accade se il behaviour GENERAZIONE_MOTO fallisce.

Questa descrizione va bene per la definizione di behaviour, cioè:
ha un input sensorio (distanza dall’ostacolo = 0) ed un pattern riconoscibile dell’attività motoria (si ferma).

Ma non produce un campo di potenziale, a meno che un campo uniforme di vettori di ampiezza 0 non sia considerato lecito. Se fosse trattato come un behaviour, il vettore a cui esso contribuisce sarebbe sommato con gli altri vettori prodotti dagli altri behaviour. Ma un vettore di ampiezza 0 è la funzione identità per la somma dei vettori, così un vettore RILEVATORE_DI_COLLISIONI non avrebbe alcun impatto. Invece le collisioni sono spesso trattate come situazioni di “panico”, provocando una risposta di emergenza fuori della struttura del campo di potenziale.

I campi di potenziale comparati con la sussunzione (segue)

Alcune differenze più sottili tra campi di potenziale e sussunzione appaiono quando è considerato il caso del Livello 1. La stessa funzionalità può essere portata a termine aggiungendo un solo blocco di behaviour VA_IN_GIRO, come mostrato in figura.

Livello 1 con i campi di potenziale.

Livello 1 con i campi di potenziale.

Behavior primitivi del livello 1 con i campi di potenziale.

Behavior primitivi del livello 1 con i campi di potenziale.


I campi di potenziale comparati con la sussunzione (segue)

Come prima, il behaviour genera una direzione nuova per muoversi ogni n secondi. Questo potrebbe essere rappresentato da un campo di potenziale uniforme dove il robot sente la stessa attrazione ad andare in una certa direzione, incurante di dove si trova, per n secondi. Comunque, combinando l’output di VA_IN_GIRO con l’output dei vettori di GENERAZIONE_MOTOpf, il bisogno di un nuovo behaviour EVITA è eliminato. Il vettore VA_IN_GIRO è sommato al vettore repulsivo e di conseguenza, il robot si allontana contemporaneamente dagli ostacoli e va verso la direzione desiderata. Questo è mostrato nella figura a lato.

Esempio di combinazione di campi di potenziale.

Esempio di combinazione di campi di potenziale.


I campi di potenziale comparati con la sussunzione (segue)

Le differenze principali in questo esempio sono che i campi di potenziale esplicitamente incapsulano percezione e azione in behaviour primitivi, e non devono sussumere nessun behaviour più basso. Come con la sussunzione, il robot diventa più “intelligente” quando il behaviour VA_IN_GIROpf viene aggiunto al behaviour GENERAZIONE_MOTOpf.

Ora vediamo, per il Livello 2, come sarebbe implementato SEGUI IL CORRIDOIO in un sistema a campo di potenziale.

In questo caso si vede bene la differenza concettuale tra i due approcci.
Il robot avrebbe due behaviour concorrenti: GENERAZIONE_MOTOpf e SEGUI IL CORRIDOIO. GENERAZIONE_MOTOpf rimarrebbe lo stesso di prima, ma VA_IN_GIRO potrebbe essere scartato.

In termini di campi di potenziale, il task di seguire un corridoio richiede due behaviour simili, mentre il task di vagare richiede due behaviour diversi.

Behaviour follow-corridor

Esempio di Follow_corridor

Esempio di Follow_corridor


Behaviour follow-corridor (segue)

Il behaviour SEGUI IL CORRIDOIO è interessante, perché richiede un campo di potenziale più complesso.
Sarebbe desiderabile per il robot stare nel mezzo del corridoio. Questo può essere fatto usando due campi di potenziale: un campo uniforme perpendicolare al confine sinistro fig. a) e che punta al centro, ed un campo uniforme perpendicolare al confine destro fig. b) che punta al centro. Si noti che entrambi i campi hanno un decremento lineare in ampiezza non appena il campo si avvicina al centro del corridoio. In pratica questo abbassamento impedisce al robot di oscillare al centro.

Campo perpendicolare.

Campo perpendicolare.


I campi di potenziale comparati con la sussunzione (segue)

Si noti anche che i due campi uniformi non sono sufficienti perché non permettono al robot di muoversi in avanti; il robot si muoverebbe nel mezzo del corridoio e si fermerebbe là. Perciò si aggiunge un terzo campo uniforme che è parallelo al corridoio. Questi tre campi combinati producono un campo smussato che spinge il robot nel mezzo del corridoio secondo una funzione di prossimità al muro, mentre contemporaneamente il robot va spostandosi in avanti. La figura sotto mostra i campi coinvolti. Si ricordi, in questo esempio, che il robot non sta proiettando confini passati o futuri del corridoio; la visualizzazione del campo lo fa apparire come in fig. c)

Campi di potenziale combinati: perpendicolare e orizzontale.

Campi di potenziale combinati: perpendicolare e orizzontale.


Behaviour follow-corridor (segue)

Il behaviour di SEGUI IL CORRIDOIO usa gli stessi dati dei sonar di EVITA; perciò i muri produrranno un campo repulsivo che generalmente spingerebbe il robot verso il mezzo del corridoio.
Perché non usare un solo campo parallelo uniforme per SEGUI IL CORRIDOIO?

Prima di tutto i behaviour sono indipendenti. Se c’è un behaviour SEGUI IL CORRIDOIO, esso deve essere capace di seguire i corridoi senza dipendere da effetti collaterali dagli altri behaviour. Secondo, la simmetria polare dei campi repulsivi può causare oscillazioni, così c’è un vantaggio pratico ad avere un behaviour separato.

Behaviour follow-corridor (segue)

L’uso di conoscenza di behaviour-specifico del dominio (data al momento dell’instanziazione come un parametro di inizializzazione opzionale) può migliorare ulteriormente il behaviour complessivo del robot. Se il robot conosce l’ampiezza del corridoio a priori, SEGUI IL CORRIDOIO può sopprimere le istanze di EVITA perché per gli ostacoli sa che quella è la forma del confine del muro. Quindi eviterà solamente gli ostacoli che sono nel corridoio. Se non ci sono ostacoli, follow-corridor produrrà una traiettoria diritta. Se gli ostacoli sono prossimi ad un muro, il SEGUI IL CORRIDOIO tratterà il profilo dell’ostacolo come un muro e si sposterà più vicino al centro.

Behaviour di docking

Gli schema motori per un behaviour possono essere ordinati in sequenza. Un esempio di questo è il behaviour di ACCOSTA. ACCOSTA (approccio) è quando un robot si deve muovere verso una specifica ubicazione (la stazione di ACCOSTA) con un certo orientamento.
Questo è utile per i robot che maneggiano materiali in una industria. Per prendere un pezzo di materiale da trasportare il robot deve, nella sua posizione finale, essere abbastanza vicino al lato giusto del nastro trasportatore e trovarsi rivolto verso di esso.
Poiché il ACCOSTA richiede una specifica posizione ed orientamento, non può essere fatto con un schema motorio attrattivo. Con questo campo il robot andrebbe in linea retta verso il nastro, anche se fosse alle sue spalle; il robot si fermerebbe nella posizione giusta con l’orientamento sbagliato. Invece, è necessario un campo di attrazione selettivo. Qui il robot “sente” solamente la forza attrattiva quando è all’interno di un certo range angolare della stazione di ACCOSTA, come mostrato in fig. a.

Campo attrattivo selettivo.

Campo attrattivo selettivo.


Behaviour di docking (segue)

Sfortunatamente l’attrazione selettiva non copre il caso di quando il robot si avvicina dalla parte posteriore o alle sue spalle. Come si può muovere un robot in un’area dove c’è un campo di attrazione selettivo? Un modo per fare questo è avere un campo tangenziale che permette al robot di orbitare attorno al MOLO finché non entra nell’area di attrazione selettiva. La combinazione dei due schemi motori produce un campo continuo che fa convergere il robot nella posizione ed orientamento corretto, come mostrato in figura.

Campo attrattivo selettivo.

Campo attrattivo selettivo.

Foto riprodotte dal testo di R.R. Murphy di MIT press.

Foto riprodotte dal testo di R.R. Murphy di MIT press.


Behaviour di docking (segue)

Un aspetto interessante del behaviour di ACCOSTA è quando il robot sta operando in prossimità del MOLO.
Il MOLO rilascia un’istanza di EVITA che impedisce al robot di andare vicino alla posizione desiderata.
In questo caso, i behaviour di ACCOSTA devono attenuare l’ampiezza (il guadagno) del vettore di output dell’ EVITA instanziato nell’area di MOLO.
Essenzialmente questo è come se inibisse in parte il behaviour di EVITA in alcune regioni selezionate.
Avremo quindi che tra attrazione e repulsione il robot si ferma dove l’attrazione selettiva del MOLO si bilancia con la repulsione.
I campi selettivi e tangenziali non sono sufficienti in pratica, a causare delle limitazioni percettive. Se il robot non può vedere il MOLO, non può istanziare i campi.

Behaviour di docking (segue)

Foto riprodotte dal testo di R.R. Murphy di MIT press.

Foto riprodotte dal testo di R.R. Murphy di MIT press.


Behaviour di docking (segue)

E’ probabile che un robot industriale sappia la direzione relativa di un MOLO molto di più di quanto un’ape ricordi la direzione del suo alveare. Perciò una forza attrattiva attira il robot vicino al MOLO, e poi quando il robot vede il MOLO, comincia l’effetto di incanalamento verso la posizione con l’orientamento corretto anche in presenza di ostacoli, come si vede in fig. a)

Architettura a campi di potenziale per il docking.

Architettura a campi di potenziale per il docking.


Behaviour di docking (segue)

Foto riprodotta dal testo di R. R. Murphy con il permesso di MIT Press.

Foto riprodotta dal testo di R. R. Murphy con il permesso di MIT Press.


Behaviour di docking (segue)

Almeno tre schemi percettivi sono necessari per il behaviour di ACCOSTA. Uno è necessario per estrarre la direzione relativa del MOLO per l’attrazione regolare.

Un altro è uno schema percettivo capace di riconoscere il MOLO in generale, anche dalla parte posteriore o dai lati, al fine di sostenere il campo tangenziale.

Il terzo schema percettivo è necessario per il campo di attrazione selettiva e deve essere capace di interagire con la parte anteriore del MOLO e valutare la distanza e l’orientamento relativo del robot.

Behaviour di docking (segue)

Behavior di docking con campi di potenziale.

Behavior di docking con campi di potenziale.


Behaviour di docking (segue)

Il behaviour di ACCOSTA è definito quindi come costituito da tre schemi percettivi e tre schemi motori (potrebbero essere raggruppati in 3 behaviour primitivi). Una rappresentazione in termini di schema-theory indica che il behaviour ha alcuni programmi di controllo per coordinare e controllare questi schemi.

Behaviour di docking (segue)

Nel caso del behaviour di ACCOSTA, una macchina a stati finiti è una scelta ragionevole per coordinare la sequenza di schemi percettivi e motori.

Essa fornisce una maniera formale per rappresentare la sequenza, ed anche ricorda al progettista di considerare transizioni di stato fuori dell’ordinario.

Il robot per esempio potrebbe stare muovendosi verso il MOLO sotto l’influenza dei campi tangenziali e dell’attrazione selettiva. Se una persona gli passa davanti, essa occluderebbe la vista del MOLO e quindi cesserebbe l’attrazione. Allora si riattiva lo schema motorio di attrazione generale, e insieme allo schema percettivo associato rivalutano la direzione del MOLO alla luce del nuovo ostacolo.
Il nuovo vettore permetterebbe al robot di evitare la persona andando in una direzione favorevole al raggiungimento del MOLO e tentare di raggiungerlo.

Behaviour di docking (segue)

Il behaviour di ACCOSTA illustra anche quale impatto hanno le capacità sensoriali del robot sui parametri dello schema motorio.

Si noti che l’ampiezza angolare del campo di attenzione selettivo è determinata dagli angoli ai quali il terzo schema percettivo potrebbe identificare il MOLO.

Similmente il raggio del campo tangenziale e di attrazione selettiva è determinato dalla distanza alla quale il robot può percepire il MOLO.

Vantaggi e svantaggi

L’architettura a campo di potenziale ha molti vantaggi.
Il campo di potenziale è una rappresentazione continua che è facile visualizzare su una grande regione dello spazio. Di conseguenza, è più facile per il progettista visualizzare il behaviour complessivo del robot.
È anche facile combinare campi, e, linguaggi come C++, forniscono strumenti per la creazione di biblioteche comportamentali.

I campi di potenziale possono essere parametrizzati: il loro range di influenza può essere limitato e una funzione continua può esprimere il cambio in ampiezza rispetto alla distanza (lineare, esponenziale, ecc.).

Inoltre un campo bi-dimensionale di solito può essere esteso ad un campo tri-dimensionale, e così behaviours sviluppati per 2D vanno bene anche per il 3D.

Vantaggi e svantaggi (segue)

Costruire un sistema reattivo con campi di potenziale non è senza svantaggi.
Il problema comunemente più citato con i campi di potenziale è quello che campi multipli possono portare ad un vettore con ampiezza 0; questo è chiamato il problema del minimo locale. Si veda il caso del box canyon. Se il robot viene attirato in un punto dentro il box canyon, il vettore attrattivo annullerebbe il vettore repulsivo ed il robot rimarrebbe fermo perché tutte le forze si annullerebbero. Il problema del box canyon è un esempio di raggiungimento di un minimo locale.

In pratica, vi sono molte soluzioni eleganti per questo problema. Una è quella di avere un schema motorio che produce vettori di piccola ampiezza a partire da rumore casuale. Il rumore nello schema motorio servirebbe a sbattere il robot fuori dai minimi locali.
Si vedano le reti neurali e il simulated annealing.

Vantaggi e svantaggi (segue)

Un’altra soluzione è quella dei template di navigazione (Navigation Templates), come quelle implementate da Mark Slack per JPL (Jet Propulsion Lab – California Inst.of Tech.).
La motivazione è che il problema dei minimi locali spesso sorge a causa di interazioni fra il behaviour di campo repulsivo di EVITA e gli altri behaviour, come quello del campo attrattivo di muovere-verso-una-meta. Il problema dei minimi scomparirebbe se il campo di potenziale EVITA fosse in qualche modo più intelligente. In NaTs, il behaviour EVITA riceve come input il vettore somma degli altri behaviour. Questo vettore rappresenta la direzione verso cui il robot andrebbe se non ci fossero ostacoli vicino. Per gli scopi di questo corso, questo sarà chiamato vettore strategico.
Se il robot ha un vettore strategico, quel vettore dice che se c’è un ostacolo esso deve essere superato sulla destra o sulla sinistra.

Vantaggi e svantaggi (segue)

Per esempio, se il robot sta attraversando un ponte (vedi fig. a), vorrà passare alla sinistra degli ostacoli che stanno a destra per stare nel mezzo. Nota che il vettore strategico definisce quello che sta a sinistra e quello che sta a destra.


Vantaggi e svantaggi (segue)

NaTs implementa questa semplice euristica nel campo di potenziale per GENERAZIONE_MOTO, promuovendolo ad un vero EVITA. Il campo di repulsione viene completato con un campo a orbita tangenziale. La direzione dell’orbita (in senso orario o anti orario) è determinato dalla posizione del robot cioè se è a destra o a sinistra del vettore strategico.
L’output del behaviour EVITA può essere chiamato vettore tattico, perché persegue la meta strategica del robot di fronte a sfide immediate.

Una più recente soluzione al problema di minimi locali è stata quella di esprimere i campi come funzioni armoniche. I campi di potenziale implementati come funzioni armoniche sono garantiti dal non avere un minimo locale pari a 0. Lo svantaggio di questa tecnica è che è computazionalmente costosa, e deva essere implementata su un chip VLSI per operare in tempo reale per grandi aree.

Punti principali sulle architetture a campi di potenziale

Per riassumere i punti principali sulle architetture a campi di potenziale:

  • behaviour sono definiti come formati da uno o più behaviour di schemi motori e percettivi. Lo schema motorio per un behaviour deve essere un campo di potenziale;
  • tutti i behaviour operano concomitantemente ed i vettori di output sono sommati. I behaviour sono trattati alla pari e non sono stratificati, anche se ci possono essere, come vedremo, behaviour astratti che internamente ordinano in sequenza i behaviour. Il programma di controllo coordinato non è specificato; il progettista può usare la logica, oppure macchine a stati finiti, ogni qualvolta è ritenuto opportuno. L’ordinare in sequenza è di solito controllato da percezioni o affordances presenti nell’ambiente che sono viste come releasers.

Punti principali sulle architetture a campi di potenziale (segue)

  • Anche se tutti i behaviour sono trattati ugualmente, i behaviour possono dare contributi diversi all’azione complessiva del robot. Un behaviour può cambiare i guadagni rispetto a un altro behaviour, riducendo o aumentando l’ampiezza del suo output. Questo vuole dire che i behaviour possono inibire o eccitare gli altri behaviour, anche se questo è usato in pratica raramente;
  • la percezione di solito è gestita da percezioni dirette o affordances;
  • una percezione può essere condivisa da diversi behaviour. Una conoscenza a priori può essere data allo schema percettivo, per simulare un sensore specializzato che è più sensibile ad eventi come i confini di un corridoio.

La valutazione delle Architetture Reattive

Come visto dall’esempio di SEGUI IL CORRIDOIO, le due architetture, sussunzione e campi di potenziale, sono molto simili nella filosofia e nei tipi di risultati che si ottengono. Essenzialmente, sono equivalenti.

In termini di supporto alla modularità, entrambe decompongono, le azioni e le percezioni necessarie per trasformare un task in un behaviour, anche se c’è disaccordo sul livello di astrazione di un behaviour.

La sussunzione sembra favorire una realizzazione hardware, mentre i metodi dei campi di potenziale hanno interessanti proprietà per un sistema orientato al software.

La valutazione delle Architetture Reattive (segue)

Un problema ancora aperto è se queste architetture mostrano una buona trasportabilità verso altri domini. I sistemi reattivi sono limitati a applicazioni che possono essere portate a termine con behaviour riflessivi. Essi non possono essere trasferiti a domini dove il robot ha bisogno di fare pianificazione, ragionando sull’allocazione delle risorse, ecc. (questo ha portato al Paradigma Ibrido).
In pratica, veramente pochi dei livelli dell’architettura a sussunzione possono essere trasferiti a nuove applicazioni di navigazione senza fare cambiamenti. Le diverse applicazioni creano strati che hanno bisogno di sussumere differentemente gli strati più bassi.
La metodologia dei campi potenziale fa un po’ meglio nel senso che il progettista può creare una libreria di behaviour e schemi tra cui scegliere, senza un implicito ricorso ad uno strato più basso.

La valutazione delle Architetture Reattive (segue)

Nessuna architettura propone sistemi che potrebbero essere detti veramente robusti.
La stratificazione della sussunzione impone un certo degrado se un livello superiore è distrutto, ma non ha nessun meccanismo per evidenziare che c’è stato un degrado.

Come negli animali, un robot reattivo farà cose consistenti con la sua percezione del mondo, ma non sempre quelle giuste.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion