UNIVERSITA’ DEGLI STUDI DI NAPOLI FEDERICO II A.A 2003-2004 GENGHIS Dario Romano, matr. 50/957 Alessandro Senatore, matr. 50/749 Giovanni Tessitore, matr. 50/810 Introduzione Il robot Genghis è stato sviluppato e creato da Brooks e rappresenta un esemplare di sistema reattivo capace di camminare sia su superfici regolari, sia su superfici accidentate. 2 Passi di progettazione 3 Describe the task Genghis deve essere in grado di fare le seguenti cose: Stare in piedi Tenersi in equilibrio Camminare su superfici regolari Camminare su superfici accidentate Seguire un oggetto in movimento 4 Describe the robot 6 zampe rigide 2 motori per zampa: alpha e beta motors 6 IR sensors frontali 2 inclinometri per rilevare inclinazioni longitudinali e trasversali 2 vibresse (wiskers) 5 Describe the environment Ambiente con: Superficie piana o irregolare Presenza di ostacoli: altezza massima di 5 cm Presenza di oggetti in movimento 6 Describe how the robot should act in response to its environment Le specifiche dell’ambiente impediscono di utilizzare semplici manovre per gli spostamenti. Bisogna definire dei movimenti di base da comporre per ottenere capacità motorie più complesse: Movimenti orizzontali delle zampe (Alpha) Movimenti verticali delle zampe (Beta) 7 MOVIMENTI ALPHA • Spostamento orizzontale, ottenuto muovendo nello stessa direzione e con la stessa forza tutte le zampe • Rotazione lungo l’asse verticale, ottenuto muovendo con la stessa forza ma in direzione opposta le due file di zampe 8 MOVIMENTI BETA • Spostamento verticale, ottenuto muovendo tutte le zampe verso il basso o verso l’alto • Rotazione sull’asse longitudinale, ottenuto alzando le zampe di un lato e abbassando quelle dell’altro lato • Rotazione sull’asse trasversale, ottenuto alzando (abbassando) le zampe anteriori e abbassando (alzando) quelle posteriori e centrali. 9 Movimenti Alpha e Beta Tutti questi movimenti sono ottenuti coordinando i movimenti semplici (orizzontali e verticali) di ciascuna zampa. 10 Behavior inclinometer Alpha_pos inclinometer Beta_pos IR_sensor Pitch Roll Backward/Forward Up/Down Steer Alza eeabbassa Sposta Alza Sposta abbassa avanti/indietro avanti zampe ezampe zampe indietro le zampe le zampe Alza/abbassa 11 Livelli di competenza Livello 0 : il robot deve stare in “piedi” Stand_Up Livello 1 : semplice camminata Walk Livello 2 : camminata con ostacoli Walk difficile Livello 3 : seguire oggetto in movimento Follow Questi livelli sono ottenuti combinando i behaviors definiti precedentemente 12 Livello 0 – Stand_UP Lo Stand_Up può essere ottenuto dal behavior down. Si stabilisce un valore di default per i beta e gli alpha motors in modo tale che all’accensione portino le zampe in una posizione tale da sollevare il robot 13 Livello 1 – Walk (1/2) Il robot ha sei zampe, come bisogna muoverle? Relazione di vicinanza Nello spostamento, una zampa può essere sollevata soltanto se le altre due sono poggiate a terra. In questo modo, in ogni istante il robot si poggia su tre zampe. 14 Livello 1 – Walk (2/2) Rispettando la condizione per cui una zampa si può sollevare soltanto se quelle “vicine” sono poggiate per terra, il behavior astratto che si occupa della camminata è ottenuto dall’interazione dei behaviors forward, backward, up e down. 15 Livello 2 – Walk difficile Per superare gli ostacoli c’è bisogno di controllare la stabilità del robot. Per far questo vengono aggiunti i behaviors che si occupano delle rotazioni sull’asse longitudinale e trasversale : 16 Livello 3 - Follow Il Follow è ottenuto aggiungendo il behavior steer ai precedenti 17 Automa Start Stand_Up: Down/Backward: Up/Forward: Roll_Control: Pitch_Control: ON Stand_Up down up backward forward up down IR_ACTIVITY collide steer NOT IR_ACTIVITY steer LEG_COLLIDE Up/ Forward LEG_UP Down/ Backward LEG_DOWN NOT LEG_UP AND LEG_UP LEG_UP HI_ROLL Roll_Control HI_PITCH HI_PITCH NOT HI_PITCH AND HI_ROLL NOT HI_PITCH AND NOT HI_ROLL Pitch_Control 18 Implement & refine each behavior Prima di analizzare in dettaglio lo schema a sussunzione, chiariamo meglio cosa rappresenteranno le figure dello schema: MODULE Modulo interno, unicointeragisce comune che comune uno a piùper di adirettamente ogni una tuttezampa zampa le zampe ma connon iglisensori, attuatori, a tutte uno per ogni zampa 19 Soppressione - Inibizione - Defaulting y Soppressione yx x s y Inibizione x x i y Default yx x d IR sensor prowl Struttura a Livello 0: Stand_Up Sussunzione for/bak pitch beta balance beta force walk i up leg trigger leg down steer feeler i Comunica direttamente s con alpha i beta motors d collide s beta pos alpha advance alpha balance Comunica direttamente con gli alpha motors s alpha pos 21 Livello 1: Walk Invia i segnali per far muovere le zampe Compensa il movimento orizzontale delle zampe Fa alzare la zampa walk Tiene la zampa abbassata Fa muovere la zampa in avanti up leg trigger leg down s beta pos alpha advance alpha balance s alpha pos 22 Monitorizza la Monitorizza forza verso il il bilanciamento basso applicata orizzontale sulla zampa del robot beta force beta balance Livello 2: Walk difficile for/bak pitch feeler i Rileva collisioni attraverso i wiskers s walk Quando beta force è troppo alto fa alzare o fermare la zampa up leg trigger leg down alpha collide d s beta pos Rileva la collisione della zampa con un ostacolo alpha advance alpha balance s alpha pos 23 IR sensor Sensore a infrarossi che rileva la presenza di oggetti in movimento Struttura a sussunzione prowl for/bak pitch beta balance beta force feeler i s walk i Fa girare Il robot nella direzione dove IR sensor è più forte steer up leg trigger leg down Se non riceve attività da IR sensor manda un segnale di Inibizione per walk alpha collide d s beta pos Livello 3: Steer alpha advance alpha balance s alpha pos 24 Learning task Normalmente il controllo dei behaviors è stabilito mediante un flusso di controllo precompilato La coesistenza di molti behaviors rende difficile la progettazione di questo flusso di controllo L’obbiettivo è quello di fare in modo che il controllo dei behaviors si stabilisca a run-time mediante un processo di learning 25 Learning Task Algoritmo che consente al robot di “apprendere” il controllo dei behaviors. In accordo con le architetture behaviorbased, l’algoritmo è completamente distribuito ciascun behavior apprende quando deve attivarsi 26 Condizioni da soddisfare L’algoritmo deve essere: distribuito computazionalmente poco costoso riadattabile: se l’ambiente cambia, il robot è in grado di adattarsi alla nuova stuazione 27 Precondizioni Dato un robot, esso deve avere: Un vettore binario di condizioni percettive (perceptual conditions), che possono essere soddisfatte o non, ad ogni istante di tempo Un insieme di behaviors, ognuno dei quali ha una lista di precondizioni (precondition list) che è soddisfatta o meno a seconda delle perceptual conditions. Una precondition list soddisfatta permette al relativo behavior di eseguire il proprio compito Un generatore di feedback positivo. Ad ogni istante di tempo tutti i behaviors possono ricevere o meno un feedback positivo Un generatore di feedback negativo 28 Come funziona L’algoritmo modifica la lista di precondizioni associate a ciascun behavior In ogni momento vengono scelti solo i behaviors “rilevanti” e “attendibili” L’algoritmo è distribuito: ciascun behavior modifica la propria lista di precondizioni 29 Come funziona Ogni behavior inizia con una lista di precondizioni “minimale” Ciascun behavior mantiene una statistica dei feedback mediante l’uso di due tabelle (una per quello positivo ed una per quello negativo): Positive feedback No positive feedback Active Not active j k l m 30 Come funziona Per misurare la “rilevanza” si usano gli operatori Corr(P,A),Corr(N,A) corr ( P, A) j*m l *k (m l ) * (m k ) * ( j k ) * ( j l ) -1 <= Corr(P,A) <= 1 Corr(P, A) ( Corr(N,A) ) fornisce una misura statistica circa il verificarsi o meno di feedback positivo (negativo) per quel behavior. 31 Rilevanza La rilevanza viene calcolata con: -2 <= Corr(P,A) - Corr(N,A) <= 2 Determina la possibilità per un behavior di divenire attivo Permette di stabilire quale behavior è di maggior interesse (rilevanza) 32 Attendibilità L’attendibilità del behavior viene invece calcolata con: jN lN jP lP min(max( , ), max( , )) jP lP jP lP jN lN jN lN Gli indici P ed N si riferiscono ai feedback positivo e negativo. Il valore d’affidabilità varia tra 0 e 1 L’attendibilità permette di decidere se un behavior dovrebbe provare ad eseguire il proprio compito 33 Strategia di controllo I behavior sono organizzati in gruppi, ciascuno dei quali controlla gli stessi attuatori Quando necessario, tra i componenti del gruppo viene scelto al più un behavior Il behavior selezionato ha il valore più alto di rilevanza, attendibilià e le sue precondizioni sono tutte soddisfatte Ogni volta che viene generato un feedback vengono modificate le tabelle 34 Applicazione a Genghis Aggiunta di due touch sensors ed un sensore che misura l’avanzamento Il Feedback negativo è generato dai touch sensors Il Feedback positivo è generato dal sensore di avanzamento 35 Considerazioni L’algoritmo di apprendimento consente di programmare il behavior del robot selezionando un numero di behaviors da una libreria, connettendoli ai sensori e agli attuatori, definendo funzioni di feedback negativo e positivo, e rendendo cascun behavior capace di apprendere, in base all’esperienza, quando è giusto attivarsi 36 Riferimenti 1. “A Robot that Walk; Emergent Behaviors from a Carefully Evolved Network”, R.Brooks 2. “New Approaches to Robotics”, R.Brooks 3. “Learning to Coordinate Behaviors”, P.Maes,R.Brooks 4. “Control of a Six-Legged Robot Walking on Abrupt Terrain”, E.Celaya,J.Porta 5. “Introduction to AI robotics” - MIT Press – 2000 Murphy R.R. 37