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
Scarica

Genghis