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

Ernesto Burattini » 12.Paradigma Reattivo


Paradigma Reattivo

Il Paradigma Reattivo emerse nei tardi anni ‘80. Esso è importante da studiare per almeno due motivi.

Primo, i sistemi robotici operanti in domini ristretti con compiti limitati sono ancora oggi costruiti usando architetture reattive.

Secondo, il Paradigma Reattivo è la base per il Paradigma Reattivo-Deliberativo Ibrido.

Paradigma Reattivo (segue)

Esso scaturì dall’insoddisfazione del paradigma gerarchico e dalle idee provenienti dall’etologia.

Anche se i vari sistemi reattivi possono o non possono aderire strettamente ai principi dell’intelligenza biologica, generalmente imitano alcuni aspetti della biologia.

L’insoddisfazione del Paradigma Gerarchico fu molto bene compendiata da Rodney Brooks, che evidenziò la sua struttura orizzontale.

Decomposizione orizzontale dei task nello schema 
S, P, A del paradigma gerarchico.

Decomposizione orizzontale dei task nello schema S, P, A del paradigma gerarchico.


Paradigma Reattivo (segue)

Invece, un esame della letteratura etologica suggerisce che l’intelligenza è stratificata secondo una decomposizione verticale, come mostrato nella figura a lato.

Decomposizione verticale dei task nel paradigma reattivo

Decomposizione verticale dei task nel paradigma reattivo


Paradigma Reattivo (segue)

Secondo una decomposizione verticale, un agente prevede in primo luogo behaviour di sopravvivenza primitivi ed evolve poi verso strati nuovi di behaviour che o riusano i behaviour più bassi, oppure interdicono altri behaviour, o creano in parallelo behaviour più avanzati.

Gli elementi paralleli possono essere pensati a strati, accatastati verticalmente. Ogni strato ha accesso a sensori ed attuatori indipendentemente da qualunque altro strato.

Se accade qualche cosa ad un behaviour avanzato, i behaviour di livello più basso restano ancora operativi. Questo ritorno ad un livello più basso imita il degrado di funzioni autonome nel cervello.

Le funzioni nel cervello funzionano (come il respirare) continuamente, indipendentemente da funzioni di ordine più alto (come contare, riconoscere volti, progettare), permettendo ad esempio ad una persona che ha un danno al cervello, derivante ad esempio da un incidente automobilistico, ancora di respirare, etc.

Paradigma Reattivo (segue)

Molti lavori di Arkin, Brooks e Payton si sono concentrati sulla definizione dei behaviour e sui meccanismi per manipolare correttamente situazioni quando più behaviour sono simultaneamente attivi.

Brooks propose un approccio noto ora come sussunzione e costruì degli insetti robot con behaviour inseriti direttamente nell’hardware.

Paradigma Reattivo (segue)

Arkin e Payton usarono una metodologia detta a campi di potenziale, favorendo simulazioni software.
Questi approcci sono praticamente equivalenti.

Il Paradigma Reattivo incontrò inizialmente una forte resistenza da parte dei clienti tradizionali di robotica, particolarmente i militari e le agenzie per il controllo nucleare. Questi utenti delle tecnologie robotiche erano preoccupati del modo non del tutto prevedibile in cui behaviour distinti si combinavano per formare un behaviour emergente a volte con proprietà non determinate a priori.

Paradigma Reattivo (segue)

In particolare, i behaviour reattivi non sono prevedibili grazie a dimostrazioni matematiche che mostrino la loro sufficienza e correttezza nell’eseguire un certo compito.

Dopo un certo periodo, però, i rapidi tempi di esecuzione associati coi behaviour reattivi convinsero questi utenti ad accettarli, ma questo accadeva proprio nel momento in cui la ricerca si era spostata verso il paradigma ibrido per introdurre anche elementi di intelligenza.

Paradigma Reattivo (segue)

I behaviour possono operare concomitantemente e sequenzialmente.

Di seguito le due architetture rappresentative, sussunzione e campi di potenziale, sono confrontate e valutate usando come esempio lo stesso task.

Vedremo, inoltre, in questa parte come una architettura manipola behaviour concomitanti per produrre un behaviour emergente.

Attributi del Paradigma Reattivo

L’attributo fondamentale del paradigma reattivo è che tutte le azioni sono portate a termine attraverso behaviour.

Come nei sistemi etologici, i behaviour sono un mapping diretto degli input dei sensori con un pattern di azioni motorie che sono usate poi per realizzare il compito.

Da una prospettiva matematica, i behaviour sono semplicemente una funzione di trasferimento che trasforma gli input sensoriali in comandi per gli attuatori.

Attributi del Paradigma Reattivo (segue)

Per gli scopi di questo corso, un behaviour sarà trattato come uno schema, e consisterà di almeno un schema motore ed uno schema percettivo.

Lo schema percettivo contiene l’algoritmo per estrarre il percetto e la sua forza (o valore), lo schema motore contiene l’algoritmo per generare il pattern di azione per un attuatore fisico.

Teniamo presente, però, che solo poche architetture di robot reattivi descrivono i loro behaviour in termini di schemi.

In pratica, le realizzazioni di questo tipo hanno routine motorie e percettive riconoscibili, anche se raramente sono riportate come schemi.

Attributi del Paradigma Reattivo (segue)

Il Paradigma Reattivo ha eliminato la componente di Pianificazione dalla triade Percezione, Pianificazione, Azione, come mostrato in Figura.

Parallelismo dei behavior

Parallelismo dei behavior


Percezione e Azione

Le componenti di Percezione e Azione sono strettamente accoppiate nei behaviour, e tutte le attività del robot si ottengono come risultato dei behaviour che o operano in sequenza o concomitantemente.

L’organizzazione S-A non specifica come i behaviour sono coordinati e controllati.

La percezione nel Paradigma Reattivo è locale in ogni behaviour, o behaviour-specifico.

Percezione e Azione (segue)

Ogni behaviour ha il suo proprio sistema percettivo dedicato.
In molti casi, esso è implementato come un sensore o schema percettivo.

In altri casi, più di un behaviour può prendere lo stesso output da un sensore e può trattarlo differentemente (tramite gli schemi percettivi dei singoli behaviour).

Un behaviour, letteralmente, non sa quello che un altro behaviour sta facendo o sta percependo. La figura seguente mostra graficamente il meccanismo percettivo del Paradigma Reattivo.

Percezione e Azione (segue)

Behavior multipli con sensori condivisi

Behavior multipli con sensori condivisi


Organizzazione S-A del Paradigma Reattivo in behaviour multipli e concomitanti

Questo paradigma, come già detto, è fondamentalmente opposto al modello di mondo globale usato nel paradigma gerarchico.

Il percetto è immediatamente disponibile per lo schema percettivo del behaviour che può fare poca o molta elaborazione secondo le necessità per estrarre il percetto prevalente.

Se è usata una affordance, computazionalmente poco costosa, allora la parte percettiva del behaviour è quasi istantanea e l’azione è molto rapida.

Come si è visto dal capitolo precedente sui fondamenti biologici del paradigma reattivo, i behaviour favoriscono l’uso di affordances.

Organizzazione S-A del Paradigma Reattivo in behaviour multipli e concomitanti (segue)

Brooks disse (rumorosamente) in una conferenza, “noi non abbiamo bisogno di rappresentazioni puzzolenti” e scrisse un lavoro dal titolo “Gli elefanti non giocano a scacchi” (1990).

Si dovrebbe notare che spesso la parte di schemi percettivi del behaviour deve usare una rappresentazione behaviour-specifica o una struttura dati per rivelatori specializzati capaci di estrarre affordances.

Per esempio, estrarre una regione rossa in un’immagine è non-banale per un computer comparato con un animale che vede il rosso.

Il punto è che mentre un programma di computer può dovere avere strutture dati per simulare un semplice funzionamento neurale, il behaviour non conta su alcuna rappresentazione centrale fornita da tutti i sensori.

Organizzazione S-A del Paradigma Reattivo in behaviour multipli e concomitanti (segue)

Nelle prime realizzazioni del paradigma reattivo, l’idea di “un sensore, un behaviour” funzionò bene.

Per behaviour più avanzati, divenne utile fondere l’output di sensori multipli all’interno di uno schema percettivo per avere maggiore precisione o una migliore misura della forza dello stimolo.

Questo tipo di fusione di sensori è permesso all’interno del paradigma reattivo finché la fusione è locale al behaviour.

Caratteristiche e connotazioni dei behaviour reattivi

Come visto precedentemente, un sistema robotico reattivo decompone le funzionalità in behaviour che accoppiano strettamente percezione ad azione senza l’uso di interposizioni di rappresentazioni astratte (globale).

Questa è una definizione ampia e vaga.

Caratteristiche e connotazioni dei behaviour reattivi (segue)

La connotazione primaria di un sistema robotico reattivo è che risponde rapidamente.

L’accoppiamento stretto di percezioni ed azioni consentono al robot di operare in tempo reale, permettendogli di muoversi a velocità abbastanza elevate (1-2 cm per secondo e più).
I behaviour possono essere implementati direttamente in hardware come circuiti, o come algoritmi di complessità computazionale bassa (0(n)).

Questo vuole dire che i behaviour reagiscono non solo rapidamente rispetto al processo di elaborazione, ma sono particolarmente veloci se comparati alle velocità di esecuzione di Shakey e di altri robot legati al paradigma gerarchico.

Una connotazione secondaria è che i sistemi robotici reattivi non hanno nessuna memoria, limitandosi, i behaviour reattivi, a quello che i biologi chiamerebbero riflessi stimolo-risposta puri.

Caratteristiche e connotazioni dei behaviour reattivi (segue)

In pratica, molti behaviour esibiscono un pattern di risposta di azione prefissato, laddove il behaviour persiste per un breve periodo di tempo senza la presenza diretta dello stimolo.

Il punto principale è che i behaviour sono controllati da quello che sta accadendo nel mondo, riproducendo in tal modo il meccanismo dei releasing innati, senza memorizzare e ricordare quanto accaduto nel recente passato.

Caratteristiche di quasi tutte le architetture reattive

Le cinque caratteristiche di quasi tutte le architetture reattive sono:

1) I robot sono agenti situati che operano in una nicchia ecologica. Come visto nella prima parte, agente situato vuole dire che il robot è parte integrante del mondo. Un robot ha le sue proprie “mete” ed “intenzioni”. Quando un robot agisce, cambia il mondo, e riceve una reazione immediata dal mondo attraverso i sensori. Quello che il robot percepisce influenza le sue mete e, il tentativo di soddisfarle, genera un nuovo ciclo di azioni.

Si noti che la situatedness è definita da un ciclo Azione-Percezione di Neisser.

Similmente, le mete del robot, il mondo nel quale opera e come esso può percepire il mondo formano la nicchia ecologica del robot.

Per enfatizzare questo, molti ricercatori di robotica dicono che loro stanno lavorando in robotica ecologica.

Caratteristiche di quasi tutte le architetture reattive (segue)

2. I behaviour servono come fondamenti di base per le azioni del robot, ed il behaviour complessivo del robot è quello che emerge.

I behaviour sono entità computazionali indipendenti, ed operano concomitantemente. Il behaviour complessivo emerge di conseguenza: non c’è nessun modulo “controllore” esplicito che determina quello che sarà fatto, o funzioni che chiamano altre funzioni.
Ci può essere un programma di controllo coordinato nello schema di un behaviour, ma non c’è nessun controllore esterno di tutti i behaviour per un dato compito.

Caratteristiche di quasi tutte le architetture reattive (segue)

Come con gli animali, l’”intelligenza” del robot è nell’occhio dell’osservatore, piuttosto che in un specifico pezzo di codice. Poiché il behaviour complessivo di un robot reattivo emerge dal modo con cui i suoi behaviour individuali interagiscono, le maggiori differenze tra le architetture reattive risiedono di solito nello specifico meccanismo per le interazioni.

Ricordiamo che questi meccanismi includono combinazione, soppressione, e cancellazione.

Caratteristiche di quasi tutte le architetture reattive (segue)

3. Sono permessi solo behaviour-specifico locali.

L’uso di rappresentazioni della conoscenza astratte esplicite nel trattare la percezione, anche se è behaviour-specifico, è evitato.

Qualunque percetto che richiede rappresentazione è espresso mediante coordinate ego-centriche (robot-centriche).

Per esempio, si consideri l’evitare un ostacolo. Una rappresentazione ego-centrica vuole dire che non è importante che un ostacolo è alle coordinate (x,y,z) rispetto al mondo, ma solamente dove è relativamente al robot.

I dati sensoriali, con l’eccezione del GPS, sono inerentemente ego-centrici (ad esempio, un range finder ritorna una distanza dall’oggetto più vicino al transducer), questo elimina l’elaborazione necessaria per creare un modello del mondo, mentre estrae solo la posizione degli ostacoli relativamente al robot.

Caratteristiche di quasi tutte le architetture reattive (segue)

4. Questi sistemi seguono i buoni principi della progettazione software.

La modularità dei behaviour favorisce la decomposizione di un task in behaviour componenti.

I behaviour sono esaminati indipendentemente, e possono essere assemblati a partire da behaviour primitivi.

Caratteristiche di quasi tutte le architetture reattive (segue)

5. Modelli di behaviour ispirati ad animali sono spesso citati come una base per questi sistemi o per un particolare behaviour.

Diversamente dai primi giorni della robotica AI, dove c’era un sforzo consapevole di non imitare l’intelligenza biologica ma di ricorrere alla matematica e alla logica, nel paradigma reattivo è accettabile usare gli animali come ispirazione per una collezione di behaviour.

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

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93