Upload
cirillo-bernasconi
View
227
Download
2
Embed Size (px)
Citation preview
UNIVERSITA’ DEGLI STUDI DI NAPOLIUNIVERSITA’ DEGLI STUDI DI NAPOLI
FEDERICO IIFEDERICO IIA.A 2003-2004A.A 2003-2004
GENGHIS
Dario Romano, matr. 50/957Alessandro Senatore, matr. 50/749Giovanni Tessitore, matr. 50/810
22
IntroduzioneIntroduzione
Il robot Genghis è stato sviluppato e creato Il robot Genghis è stato sviluppato e creato da Brooks e rappresenta un esemplare di da Brooks e rappresenta un esemplare di sistema reattivo capace di camminare sia sistema reattivo capace di camminare sia su superfici regolari, sia su superfici su superfici regolari, sia su superfici accidentate.accidentate.
33
Passi di progettazionePassi di progettazione
44
Describe the taskDescribe the taskGenghis deve essere in grado di fare le Genghis deve essere in grado di fare le
seguenti cose:seguenti cose:
Stare in piediStare in piediTenersi in equilibrioTenersi in equilibrioCamminare su superfici regolariCamminare su superfici regolariCamminare su superfici accidentateCamminare su superfici accidentateSeguire un oggetto in movimentoSeguire un oggetto in movimento
55
Describe the robotDescribe the robot6 zampe 6 zampe
rigiderigide2 motori per zampa: alpha e beta motors2 motori per zampa: alpha e beta motors
6 IR sensors frontali6 IR sensors frontali
2 inclinometri per rilevare inclinazioni 2 inclinometri per rilevare inclinazioni longitudinali e trasversalilongitudinali e trasversali
2 vibresse (wiskers)2 vibresse (wiskers)
66
Describe the environmentDescribe the environment
Ambiente con:Ambiente con:
Superficie piana o irregolareSuperficie piana o irregolare
Presenza di ostacoli: altezza massima di 5 Presenza di ostacoli: altezza massima di 5 cmcm
Presenza di oggetti in movimentoPresenza di oggetti in movimento
77
Le specifiche dell’ambiente impediscono di Le specifiche dell’ambiente impediscono di utilizzare semplici manovre per gli spostamenti.utilizzare semplici manovre per gli spostamenti.
Bisogna definire dei movimenti di base da Bisogna definire dei movimenti di base da comporre per ottenere capacità motorie più comporre per ottenere capacità motorie più complesse:complesse:
Movimenti orizzontali delle zampe (Alpha)Movimenti orizzontali delle zampe (Alpha)Movimenti verticali delle zampe (Beta)Movimenti verticali delle zampe (Beta)
Describe how the robot should act Describe how the robot should act in response to its environmentin response to its environment
88
MOVIMENTI ALPHAMOVIMENTI 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
99
MOVIMENTI BETAMOVIMENTI 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.
1010
Movimenti Alpha e BetaMovimenti Alpha e Beta
Tutti questi movimenti sono ottenuti coordinando i movimenti semplici (orizzontali e verticali) di ciascuna zampa.
1111
Beta_pos Alza/abbassa zampe
BehaviorBehavior
Up/DownAlpha_pos Sposta avanti/indietro le zampe
Backward/Forwardinclinometer Alza e abbassa zampe
Rollinclinometer Alza e abbassa zampePitchIR_sensor Sposta avanti e indietro le zampeSteer
1212
Livelli di competenzaLivelli di competenzaLivello 0 : il robot deve stare in “piedi” Livello 0 : il robot deve stare in “piedi” S Stand_Uptand_Up
Livello 1 : semplice camminata Livello 1 : semplice camminata WalkWalk
Livello 2 : camminata con ostacoli Livello 2 : camminata con ostacoli Walk difficileWalk difficile
Livello 3 : seguire oggetto in movimento Livello 3 : seguire oggetto in movimento FollowFollow
Questi livelli sono ottenuti combinando i behaviors definiti Questi livelli sono ottenuti combinando i behaviors definiti precedentementeprecedentemente
1313
Livello 0 – Livello 0 – Stand_UPStand_UP
Lo Lo Stand_Up Stand_Up può essere ottenuto dal behavior può essere ottenuto dal behavior down. down. Si stabilisce un valore di default per i beta e gli alpha motors in 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 modo tale che all’accensione portino le zampe in una posizione tale da sollevare il robottale da sollevare il robot
1414
Livello 1 – Livello 1 – WalkWalk (1/2)(1/2)
Il robot ha sei zampe, come bisogna muoverle?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.
1515
Livello 1 – Livello 1 – Walk Walk (2/2)(2/2)
Rispettando la condizione per cui una zampa si può Rispettando la condizione per cui una zampa si può sollevare soltanto se quelle “vicine” sono poggiate sollevare soltanto se quelle “vicine” sono poggiate per terra, il behavior astratto che si occupa della per terra, il behavior astratto che si occupa della camminata è ottenuto dall’interazione dei behaviors camminata è ottenuto dall’interazione dei behaviors forward, backward, up e downforward, backward, up e down..
1616
Livello 2 – Livello 2 – Walk difficileWalk difficile
Per superare gli ostacoli c’è bisogno di controllare la Per superare gli ostacoli c’è bisogno di controllare la stabilità del robot. Per far questo vengono aggiunti i stabilità del robot. Per far questo vengono aggiunti i behaviors che si occupano delle rotazioni sull’asse behaviors che si occupano delle rotazioni sull’asse longitudinale e trasversale :longitudinale e trasversale :
1717
Livello 3 - Livello 3 - FollowFollow
Il Follow è ottenuto aggiungendo il behavior steer Il Follow è ottenuto aggiungendo il behavior steer ai precedentiai precedenti
1818
AutomaAutoma
StartStart
Down/Backward
Down/Backward
Up/Forward
Up/Forward
Pitch_ControlPitch_Control
Stand_UpStand_Up
Roll_ControlRoll_Control
ON
NOT IR_ACTIVITY
IR_ACTIVITY
LEG_COLLIDE
LEG_UP
LEG_DOWN
HI_PITCH
LEG_UP
LEG_UP
HI_PITCH
NOT LEG_UP AND
HI_ROLL
Stand_Up:
down
Down/Backward:
down
backward
steer
Up/Forward:
up
forward
steer
Up/Forward:
up
forward
collide
steer
Roll_Control:
down
up
steer
Pitch_Control:
up
down
steer
NOT HI_PITCH AND NOT HI_ROLL
NOT HI_PITCH AND HI_ROLL
1919
Implement & refine each behaviorImplement & refine each behavior
Prima di analizzare in dettaglio lo schema Prima di analizzare in dettaglio lo schema a sussunzione, chiariamo meglio cosa a sussunzione, chiariamo meglio cosa rappresenteranno le figure dello schema:rappresenteranno le figure dello schema:
Modulo che interagisce direttamente con gli attuatori,uno per ogni zampaModulo unico comune a tutte le zampeModulo comune a più di una zampa ma non a tutteModulo che interagisce direttamente con i sensori,uno per ogni zampaModulo interno, uno per ogni zampa
MODULE
ss
y
x y
ii
y
x
dd
y
x
x
Soppressione - Inibizione - Defaulting
Soppressione
Inibizione
Default x
x
y
2121
beta posbeta pos
alpha posalpha pos
up leg triggerup leg trigger
leg downleg down alpha advance
alpha advance
ss
walkwalk
ss
alpha balance
alpha balance
IRsensor
IRsensor prowlprowl
steersteer
ii dd
for/bakpitch
for/bakpitch
beta forcebeta force beta balance
beta balance
feelerfeeler
alphacollidealphacollide
ss
dd
ii
Livello 0: Stand_UpLivello 0: Stand_UpStruttura a Struttura a SussunzioneSussunzione
Comunica direttamente con
i beta motors
Comunica direttamente con
i beta motors
Comunica direttamente con
gli alpha motors
Comunica direttamente con
gli alpha motors
2222
beta posbeta pos
alpha posalpha pos
up leg triggerup leg trigger
leg downleg down alpha advance
alpha advance
ss
walkwalk
ss
alpha balance
alpha balance
Livello 1: WalkLivello 1: Walk
Tiene la zampaabbassata
Tiene la zampaabbassata
Fa alzare la zampaFa alzare la zampa
Fa muovere la zampa in avanti
Fa muovere la zampa in avanti
Compensa il movimentoorizzontale delle zampeCompensa il movimentoorizzontale delle zampe
Invia i segnaliper far
muovere lezampe
Invia i segnaliper far
muovere lezampe
2323
beta posbeta pos
alpha posalpha pos
up leg triggerup leg trigger
leg downleg down alpha advance
alpha advance
ss
walkwalk
ss
alpha balance
alpha balance
Livello 2: Walk Livello 2: Walk difficiledifficile
Quando beta force è troppo
alto fa alzare o fermare
la zampa
Quando beta force è troppo
alto fa alzare o fermare
la zampa
Rileva la collisione della
zampa con un ostacolo
Rileva la collisione della
zampa con un ostacolo
Rileva collisioni
attraverso i wiskers
Rileva collisioni
attraverso i wiskers
Monitorizza il bilanciamento
orizzontaledel robot
Monitorizza il bilanciamento
orizzontaledel robot
dddd
for/bakpitch
for/bakpitch
beta forcebeta force beta balance
beta balance
feelerfeeler
alphacollidealphacollide
ss
ii
Monitorizza laforza verso il
basso applicata sulla zampa
Monitorizza laforza verso il
basso applicata sulla zampa
2424
beta posbeta pos
alpha posalpha pos
up leg triggerup leg trigger
leg downleg down alpha advance
alpha advance
ss
walkwalk
ss
alpha balance
alpha balance
IRsensor
IRsensor prowlprowl
steersteer
ii
Livello 3: Livello 3: SteerSteer
dd
Sensore a infrarossi
che rileva la presenza di
oggetti in movimento
Sensore a infrarossi
che rileva la presenza di
oggetti in movimento
Se non riceve attività da IR
sensor mandaun segnale di Inibizione per
walk
Se non riceve attività da IR
sensor mandaun segnale di Inibizione per
walk
Fa girareIl robot nella
direzionedove IR
sensor è piùforte
Fa girareIl robot nella
direzionedove IR
sensor è piùforte
for/bakpitch
for/bakpitch
beta forcebeta force beta balance
beta balance
feelerfeeler
alphacollidealphacollide
ss
dd
ii
Struttura aStruttura asussunzionesussunzione
2525
Learning taskLearning task
Normalmente il controllo dei behaviors è stabilito Normalmente il controllo dei behaviors è stabilito mediante un flusso di controllo precompilatomediante un flusso di controllo precompilato
La coesistenza di molti behaviors rende difficile La coesistenza di molti behaviors rende difficile la progettazione di questo flusso di controllola progettazione di questo flusso di controllo
L’obbiettivo è quello di fare in modo che il L’obbiettivo è quello di fare in modo che il controllo dei behaviors si stabilisca a run-time controllo dei behaviors si stabilisca a run-time mediante un processo di learningmediante un processo di learning
2626
Learning TaskLearning Task
Algoritmo che consente al robot di Algoritmo che consente al robot di “apprendere” il controllo dei behaviors.“apprendere” il controllo dei behaviors.
In accordo con le architetture behavior-In accordo con le architetture behavior-based, l’algoritmo è completamente based, l’algoritmo è completamente distribuitodistribuito
ciascun behavior apprende quando deve ciascun behavior apprende quando deve attivarsiattivarsi
2727
Condizioni da soddisfareCondizioni da soddisfare
L’algoritmo deve essere:L’algoritmo deve essere:
distribuitodistribuito
computazionalmente poco costosocomputazionalmente poco costoso
riadattabileriadattabile: se l’ambiente cambia, il robot è in : se l’ambiente cambia, il robot è in grado di adattarsi alla nuova stuazionegrado di adattarsi alla nuova stuazione
2828
PrecondizioniPrecondizioniDato un robot, esso deve avere:Dato un robot, esso deve avere: Un vettore binario di condizioni percettive (perceptual Un vettore binario di condizioni percettive (perceptual
conditions), che possono essere soddisfatte o non, ad conditions), che possono essere soddisfatte o non, ad ogni istante di tempoogni istante di tempo
Un insieme di behaviors, ognuno dei quali ha una lista di Un insieme di behaviors, ognuno dei quali ha una lista di precondizioni (precondition list) che è soddisfatta o meno precondizioni (precondition list) che è soddisfatta o meno a seconda delle perceptual conditions. Una precondition a seconda delle perceptual conditions. Una precondition list soddisfatta permette al relativo behavior di eseguire il list soddisfatta permette al relativo behavior di eseguire il proprio compitoproprio compito
Un generatore di feedback positivo. Ad ogni istante di Un generatore di feedback positivo. Ad ogni istante di tempo tutti i behaviors possono ricevere o meno un tempo tutti i behaviors possono ricevere o meno un feedback positivofeedback positivo
Un generatore di feedback negativoUn generatore di feedback negativo
2929
Come funzionaCome funziona
L’algoritmo modifica la lista di precondizioni L’algoritmo modifica la lista di precondizioni associate a ciascun behaviorassociate a ciascun behavior
In ogni momento vengono scelti solo i behaviors In ogni momento vengono scelti solo i behaviors “rilevanti” e “attendibili”“rilevanti” e “attendibili”
L’algoritmo è distribuito:L’algoritmo è distribuito: ciascun behavior modifica la propria lista di ciascun behavior modifica la propria lista di
precondizioniprecondizioni
3030
Come funzionaCome funzionaOgni behavior inizia con una lista di Ogni behavior inizia con una lista di
precondizioni “minimale”precondizioni “minimale”
Ciascun behavior mantiene una statistica dei Ciascun behavior mantiene una statistica dei feedback mediante feedback mediante l’usol’uso di due tabelle (una di due tabelle (una per quello positivo ed una per quello negativo):per quello positivo ed una per quello negativo):
ActiveActive Not activeNot active
Positive feedbackPositive feedback jj kk
No positive feedbackNo positive feedback ll mm
3131
Come funzionaCome funziona
Per misurare la “rilevanza” si usano gli Per misurare la “rilevanza” si usano gli operatorioperatori
Corr(P,A),Corr(N,A)Corr(P,A),Corr(N,A)
-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.
)(*)(*)(*)(
**),(
ljkjkmlm
klmjAPcorr
3232
RilevanzaRilevanza
La rilevanza viene calcolata con:
-2 <= Corr(P,A) - Corr(N,A) <= 2
Determina la possibilità per un behavior di Determina la possibilità per un behavior di divenire attivodivenire attivo
Permette di stabilire quale behavior è di Permette di stabilire quale behavior è di maggior interesse (rilevanza)maggior interesse (rilevanza)
3333
AttendibilitàAttendibilità
L’attendibilità del behavior viene invece calcolata con:
Gli indici P ed N si riferiscono ai feedback positivo e negativo. Il valore d’affidabilità varia tra 0 e 1
)),max(),,min(max(NN
N
NN
N
PP
P
PP
P
lj
l
lj
j
lj
l
lj
j
L’attendibilità permette di decidere se un behavior dovrebbe provare ad eseguire il proprio compito
3434
Strategia di controlloStrategia di controllo
I behavior sono organizzati in gruppi, ciascuno dei quali I behavior sono organizzati in gruppi, ciascuno dei quali controlla gli stessi attuatoricontrolla gli stessi attuatori
Quando necessario, tra i componenti del gruppo viene Quando necessario, tra i componenti del gruppo viene scelto al più un behaviorscelto al più un behavior
Il behavior selezionato ha il valore più alto di rilevanza, Il behavior selezionato ha il valore più alto di rilevanza, attendibilià e le sue precondizioni sono tutte soddisfatteattendibilià e le sue precondizioni sono tutte soddisfatte
Ogni volta che viene generato un feedback vengono Ogni volta che viene generato un feedback vengono modificate le tabellemodificate le tabelle
3535
Applicazione a GenghisApplicazione a Genghis
Aggiunta di due touch sensors ed un Aggiunta di due touch sensors ed un sensore che misura l’avanzamentosensore che misura l’avanzamento
Il Feedback negativo è generato dai touch Il Feedback negativo è generato dai touch sensors sensors
Il Feedback positivo è generato dal Il Feedback positivo è generato dal sensore di avanzamentosensore di avanzamento
3636
ConsiderazioniConsiderazioni
L’algoritmo di apprendimento consente di L’algoritmo di apprendimento consente di programmare il behavior del robot programmare il behavior del robot selezionando un numero di behaviors da selezionando un numero di behaviors da una libreria, connettendoli ai sensori e agli una libreria, connettendoli ai sensori e agli attuatori, definendo funzioni di feedback attuatori, definendo funzioni di feedback negativo e positivo, e rendendo cascun negativo e positivo, e rendendo cascun behavior capace di apprendere, in base behavior capace di apprendere, in base all’esperienza, quando è giusto attivarsiall’esperienza, quando è giusto attivarsi
3737
RiferimentiRiferimenti1. “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.