Stanford Cart & CMU Rover
Corso di Sistemi per il Governo dei Robot
Prof. E. Burattini
Mariarosaria Ambrosino di Miccio 50/54
Domenico Perfetto
50/62
Stanford Cart & CMU Rover
• Descrizione di Stanford Cart
• Esempi di esecuzione
• Discussione dei limiti e delle scelte progettuali
• Descrizione di CMU Rover
• Discussione sul progetto
• Idea di implementazione alternativa
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
2
Stanford Cart
Stanford Cart è un progetto nato nel
laboratorio di Intelligenza Artificiale
di Stanford nel 1973, il suo ideatore
fu Hans P. Moravec.
Il progetto di Cart alla nascita è stato
supportato dalla Defense Advanced
Research Projects Agency, dalla
National Science Foundation e dalla
National Aeronautics and Space
Administration e successivamente nel
1981 il progetto fu supportato dal
Carnegie-Mellon University Robotica
Institute.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
3
Nicchia Ecologica
Cart si muove all’interno di un ambiente disordinato in cui sono posti ostacoli
di varia natura.
Il suo obiettivo è quello
di raggiungere il “goal”
evitando gli ostacoli che
incontra nel suo tragitto,
sulla base di un modello
costruito grazie alle
informazioni acquisite.
Il percorso è sicuro per
cammini brevi, ma lento:
Cart si sposta di circa un
metro ogni 10 - 15
minuti.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
4
Subroutine
Il programma che consente a Cart di spostarsi all’interno dell’ambiente è
organizzato in più subroutine:
•
Interest Operator
•
Correlator
•
Camera Solver
•
Navigator
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
5
Camera Calibration
Il percorso di Cart inizia con la calibratura della camera. Il programma
digitalizza l’immagine in un array di punti, localizzando i punti e le croci, e
costruendo un polinomio bidimensionale che rappresenta la posizione dei punti
nell’immagine rispetto alla
loro posizione in un’ideale
camera di lunghezza focale
unitaria, e un altro polinomio
che converte i punti da una
camera ideale ai punti
nell’immagine.
Questi
polinomi
sono
adoperati per rettificare le
posizioni
degli
oggetti
percepiti nelle successive
immagini.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
6
Acquisizione delle immagini (1)
Ogni volta che Cart si ferma il suo computer controlla l’itinerario e attiva un
meccanismo che fa scorrere la camera catturando 9 immagini da sinistra a
destra lungo un asse trasversale di 52cm, ad una distanza di 6.5 cm di
spazio l’una dall’altra.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
7
Acquisizione delle immagini (2)
1
4
7
Giugno 2004
2
3
5
6
8
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
9
8
Memorizzazione delle immagini
Ogni immagine digitalizzata nel codice visivo di Cart, è registrata insieme ad
una piramide di immagini, formata da miniature della figura originale:
partendo dall’immagine iniziale si crea la miniatura le cui dimensioni
linearisono ridotte per potenze di due facendo la media di 4 pixel in uno, si
procede allo stesso modo partendo da questa immagine ridotta creandone una
seconda ancora più piccola, continuando fino ad arrivare al vertice della
piramide con una dimensione fissata.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
9
Interest Operator (1)
L’interest operator si occupa della localizzazione di parti di immagini
chiamate features.
Una feature è un punto in un mondo tridimensionale, che viene individuato
esaminando ampie zone di punti nelle immagini.
La feature è giudicata “buona” se può essere localizzata in modo non ambiguo
in differenti viste di una scena.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
10
Interest Operator (2)
L’interest operator sceglie 30 o più features all’interno di un’immagine: l’idea è
di selezionare un insieme di features “buone” relativamente uniformi
nell’immagine, così che alcune di esse possano essere selezionate su ogni
oggetto visibile mentre altre, le cui aree sono prive di struttura o hanno dei
bordi semplici, sono scartate.
La varianza direzionale viene misurata su piccole finestre quadrate: viene
calcolata la somma della differenza dei quadrati dei pixel adiacenti per le
quattro direzioni (orizzontale, verticale e le due diagonali) per ogni finestra,
e la misura di interesse delle finestre è il minimo di queste quattro somme.
Le features sono scelte laddove la misura di interesse ha un massimo locale.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
11
Interest Operator (3)
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
12
Interest Operator (4)
Quando una feature è scelta, il suo aspetto viene memorizzato con una serie di
immagini selezionate dalla sequenza delle immagini ridotte.
Da ogni figura ridotta viene estratta una sottoimmagine 6x6 contenete il
massimo locale della misura di interesse (la feature). Dato che le immagini
ridotte hanno un livello di risoluzione sempre meno dettagliato salendo lungo
la piramide avremo che l’immagine sul vertice copre un angolo di visuale più
ampio con una risoluzione minore rispetto a tutte le altre; scendendo di un
livello rispetto al vertice la risoluzione dell’immagine risulterà raddoppiata
avendo un livello di dettaglio maggiore. Continuando in questo modo avremo
che alla base della piramide il livello di risoluzione è molto alto e l’angolo di
visuale è diminuito, otteniamo così uno zoom della feature.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
13
Interest Operator (5)
Il risultato finale è una serie di immagini 6x6, che iniziano con una confusa
interpretazione dell’intera immagine, gradualmente zoomate in espansioni
lineari delle immagini che danno il primo piano netto della feature.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
14
Correlator
Il Correlator permette di conoscere la collocazione in tre dimensioni delle
features dalle loro posizioni in due dimensioni in due o più immagini.
Data una descrizione della feature prodotta dall’interest operator da
un’immagine, il Correlator trova il miglior match con un’immagine diversa
da quella di partenza: l’area presa in considerazione può essere sia l’intera
immagine che una piccola parte di essa.
La strategia di riduzione delle immagini inizia al livello di riduzione 16, in
questo livello la finestra 6x6 copre circa un settimo dell’area totale
dell’immagine. La zona di descrizione 6x6 è spostata pixel per pixel
sull’immagine di destinazione 16x16, ed il coefficiente di correlazione è
calcolato per ogni posizione di prova. La posizione che fa il miglior match è
memorizzata. Si prosegue trovando il miglior in tutte le immagini fino ad
arrivare all’immagine nella dimensione originale.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
15
Slider Stereo (1)
Dopo il passo di correlazione il programma “conosce” la posizione della feature
in tutte le nove immagini: esso
considera ognuna delle 36
possibili coppie di immagini (9
valori presi due alla volta) e
registra la distanza stimata della
feature in un istogramma. Ogni
misurazione aggiunge una piccola
curva normale all’istogramma. La
bontà della feature è indicata
dall’ampiezza
del
picco
nell’istogramma: se il picco è
situato sotto una certa soglia la
feature è scartata.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
16
Slider Stereo (2)
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
17
Motion Stereo
Lo slider stereo determina la distanza delle features per determinare la nuova
posizione di Cart, a questo passo il programma conosce la nuova posizione in
3D delle features relative alla camera, dalla vecchia alla nuova posizione.
Il programma elimina i match incorretti nelle correlazioni creando una matrice in
cui l’elemento (i, j) è il valore assoluto della differenza, in termini di distanza,
tra i punti i e j nel primo e nel secondo sistema di coordinate diviso per l’errore
atteso. Ogni riga di questa matrice è sommata, dando un’indicazione di come
ogni punto sia in disaccordo con tutti gli altri punti. L’idea è che le posizioni
corrette siano in accordo con tutte quelle corrette e in disaccordo solo con
quelle sbagliate.
Il punto peggiore è cancellato, e i suoi effetti sono rimossi dai rimanenti punti
nelle somme delle righe. Questo pruning si ripete fino a quando l’errore
peggiore rientra nei limiti dell’errore atteso. Dopo il pruning, il programma ha
un numero di punti che va da dieci a venti che sono memorizzati nel suo
modello del mondo
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
18
Path Planning (1)
Il sistemo visivo di Cart modella gli oggetti come un semplice insieme di
features. Se sono trovate abbastanza features su ogni oggetto questo modello è
adeguato per pianificare un percorso che gli consenta di arrivare alla
destinazione senza collisioni. Le features nel modello tridimensionale di Cart
possono essere pensate come delle ellissoidi fuzzy, le cui dimensioni riflettono
l’incertezza del programma relativa alla loro posizione. Tutti gli oggetti visibili
sono modellati come insiemi di sovrapposizioni di ellissoidi approssimate a
cerchi per semplificare il problema.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
19
Path Planning (2)
Il programma converte il problema nella ricerca di un percorso minimo
all’interno di un grafo. Un percorso ottimo consiste o nel creare un tragitto
rettilineo fra la partenza e la destinazione oppure nel realizzare una serie di
segmenti tangenziali tra i cerchi e gli archi connessi.
La distanza minima in questo spazio può essere trovata con un algoritmo la cui
complessità è O(n3).
Tale procedura spesso fa un’approssimazione rapida di ogni ostacolo in soli due
vertici: uno per ogni direzione della circumnavigazione.
Il percorso riportato sul grafo consiste di semplici linee connesse da archi
tangenti, questo tipo di percorso è adatto a Cart, che è in grado di sterzare
allo stesso modo di un’automobile.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
20
Path Execution
Una volta che il percorso per giungere alla destinazione è stato scelto, una
parte di esso viene eseguita inviando i comandi a Cart.
La routine di esecuzione del path esegue 75 cm del percorso e poi si arresta.
L’immagine vista dalla camera fa una panoramica da un lato all’altro del
campo visivo. Cart ha un ampio obiettivo angolare che copre
orizzontalmente 60 gradi. I 75 cm, combinati con il limite radiale per la
sterzata (5 m) di Cart, risulta uno spostamento massimo del campo visivo di
15 gradi, un quarto dell’intera immagine.
Alla fine il programma calcola un percorso che porta a termine questo
movimento con due archi di raggio uguale ma di differente lunghezza: la
traiettoria risultante ha generalmente una forma ad “S”. A partire da questa
traiettoria vengono generati i movimenti dei motori. Il programma poi
adopera un simulatore per prendere in considerazione la risposta motoria di
guida e di sterzata, per raffinare iterativamente la soluzione
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
21
Esperimenti
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
22
Esempio di un percorso di Cart (1)
Goal
Campo
Visivo 60°
Features
Cart
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
23
Esempio di un percorso di Cart (2)
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
24
Cart Testing
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
25
Problemi (1)
• Oggetti in movimento durante la pianificazione
• Oggetti in movimento durante lo scatto delle foto
• Oggetti lucidi o riflettenti
• Oggetti trasparenti
• Oggetti dello stesso colore parzialmente sovrapposti
• Oggetti dello stesso colore dello sfondo
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
26
Problemi (2)
•
•
•
•
•
•
•
•
•
•
•
Fallisce se gli elementi sono privi di dettagli ad alto contrasto
Evidenzia poche Features per ogni oggetto
La variazione della luminosità determina un cattivo funzionamento
Piccoli errori nelle misurazioni creano errori irreversibili
Se gli oggetti escono fuori dal campo visivo possono essere “dimenticati”
Concetto di autonomia assente
Mancanza di altri sensori
Incapacità di ripresa dopo un errore
Pochi esperimenti
Esperimenti troppo simili
Raggio di sterzata troppo elevato
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
27
CMU Rover
Dopo le scarse prestazioni ottenute da Stanford Cart, il team di Hans P.
Moravec iniziò a sviluppare un sistema di robot mobile molto elaborato
grazie a un contratto dell’Ufficio di Ricerche Navali.
Il progetto CMU Rover si focalizza quindi nel creare robots con ampie capacità
locomotive e che usassero la visione.
Rover era il nome del primo robot sviluppato dal gruppo del CMU nell’ambito
di tale programma.
Successivamente CMU Rover divenne il nome del progetto stesso e il robot fu
ribattezzato Pluto.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
28
Pluto: Specifiche (1)
≈ 1 metro
La forma, dimensione, sistema di guida e le capacità elaborative on-board e
esterne di Rover sono scelti per massimizzare la flessibilità del sistema.
• 3 ruote sterzanti individualmente per
dargli 3 gradi di libertà nel piano.
90 Kg
• Una TV Camera montata su un supporto
regolabile, basculante e scorrevole.
• Sonar a lungo raggio; Sonar a infrarosso
a corto raggio e Bumper disposti intorno
al robot.
• Shaft Encoder (uno per ogni ruota) con la
risoluzione di 1/4000 di giro.
• Una antenna radio.
• Una stazione fissa di elaborazione.
≈ 55 cm
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
29
Pluto: Specifiche (2)
Rover è assemblato su 3 livelli:
1. Ruote
2. Motori e Sensori
3. Componenti Elettronici (Processori)
Le elaborazioni on-board e il controllo dell’hardware sono
affidate a una serie di processori, ad ognuno dei quali è
affidato un compito specifico.
Ogni motore è dotato di un processore Motorola con della
RAM Hitachi (CMOS per ridurre i consumi). I motori
sono controllati operando una modulazione di fase e di
ampiezza.
La stazione di elaborazione fissa è costituita da un host
computer VAX 11/780, un array di processori ST-100 (100
milioni di op. f.p. /sec) e da un dispositivo per acquisizione
e generazione di dati analogici ad alte prestazioni
appositamente progettato.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
30
Architettura Gerarchica
La struttura elaborativa di Pluto può essere rappresentata sfruttando
l’architettura deliberativa proposta dal Rensselaer Polythecnic Istitute che
prevede una gerarchia a tre livelli: Organization, Coordination e Execution
Questo approccio è molto
interessante perché evidenzia il
principio della specializzazione
dei moduli man mano che si
discende lungo la gerarchia e
mostra il semplice schema di
comunicazione tra i moduli
appartenenti ai vari livelli.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
31
Architettura di Rover
Nell’organization level saranno eseguiti i compiti a più alto livello:
pianificazione, interpretazione delle immagini, rappresentazione del
mondo e pianificazione dei percorsi.
Il coordination level integra i
vari sottosistemi hardware e
sono eseguiti i compiti di
coordinamento dei sensori e
degli attuatori dalle unità
(Controller,
Simulator
e
Conductor).
Nell’execution level ci
sono i moduli che
gestiscono e
manovrano
direttamente
l’hardware.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
32
Unità elementari (1)
Nell’execution level ci sono le unità dedicate al controllo a più basso livello
dell’hardware.
Comunication si occupa della comunicazione con la stazione fissa che esegue le
computazioni più onerose.
Sonar controlla i sonar Polaroid
che circondano il robot
permettendo la navigazione
evitando gli ostacoli.
Camera controlla i movimenti del
supporto della Tv camera che
manda le immagini alla
stazione fissa.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
33
Unità elementari (2)
Proximity gestisce l’ultima linea di
difesa contro le collisioni
utilizzando i sonar IR a corto
raggio e i bumper.
Il modulo Utility controlla lo stato di “salute” del robot monitorando parametri
vitali come il livello di carica delle batterie e la temperatura dei motori.
Inoltre Utility controlla anche la potenza di quei sistemi che sono definiti
non essenziali come la TV camera e il trasmettitore.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
34
Elaborazioni on-board
I motori sono assistiti dal Conductor che li coordina per ottenere i movimenti
del robot desiderati.
Il Simulator accede agli shaft encoders e mantiene una stima della posizione del
robot istante per istante.
I risultati della simulazione sono
comparati nel Conductor con
la
posizione
desiderata
prodotta dal Controller. Il
Conductor
aggiusta le
velocità e le posizioni dei
motori nel tentativo di portare
il Simulator in linea con la
posizione
richiesta
dal
Controller.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
35
Elaborazioni ad alto livello
L’elaborazione ad alto livello, eseguita dalla base fissa, è effettuata in maniera
pressoché identica a Stanford Cart. A parte alcuni perfezionamenti negli
algoritmi, sono promessi progressi dovuti quasi esclusivamente all’hardware.
Cart impiegava fino a 15 minuti per pianificare l’avanzamento di circa un
metro.
Questo tempo può essere suddiviso in tre intervalli approssimativamente uguali:
1. II primi cinque minuti sono necessari per digitalizzare, pre-trattare e inviare
alla base fissa le nove immagini acquisite dalla TV camera.
2. I secondi cinque minuti sono spesi per i compiti di visione a basso livello,
riducendo e filtrando le immagini. In seguito vengono applicati gli operatori
Interest e Correlator e effettuato il pruning dei risultati.
3. Gli ultimi cinque minuti sono sfruttati per compiti di alto livello come il
mantenimento del modello del mondo, pianificazione del percorso e la
generazione della documentazione grafica di ciò che il programma “pensa”.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
36
Considerazioni sull’architettura
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
37
Analisi Condizioni (1)
TASK:
• Il compito del robot è di raggiungere un punto nell’ambiente definito “Goal”
partendo da un punto qualsiasi della sua nicchia ecologica.
• Il goal deve essere descritto in qualche modo in base alle caratteristiche
distintive riconoscibili dal sistema percettivo del robot.
• Prendendo come riferimento il progetto di Moravec verrà considerato il caso
in cui viene data al robot una posizione relativa del goal. Per un caso più
generale sarà considerato l’eventualità che ciò non avvenga, cioè che il robot
non abbia nessuna informazione sulla posizione del goal.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
38
Analisi Condizioni (2)
ROBOT:
• Piattaforma di Pluto: una TV Camera, dei sonar, dei sensori InfraRosso a
corto raggio, dei bumper e shaft encoder.
• Sistema motorio: tre motori indipendenti collegati a tre ruote.
• Moravec non ci fornisce informazioni
su come sono distribuiti i sonar e gli
altri sensori, ma dato il sistema di
movimento di cui è dotato il robot
supponiamo di disporre 8 sonar intorno
al robot (uno ogni 45°), così come i
bumper. 8 sensori IR a corto raggio
vengono disposti come i sonar ma
sfasati di 22,5°.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
39
Analisi Condizioni (3)
AMBIENTE:
• Il robot si muove in una stanza senza particolari limitazioni.
• Ostacoli presenti nell’ambiente facilmente distinguibili dal goal dato che è
previsto un sistema di elaborazione della visione a basso livello on-board.
• Se il robot conosce una stima della posizione relativa del goal, si può pensare
di provare il robot in un ambiente composto anche da stanze diverse.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
40
Architettura Reattiva
Alla luce di queste condizioni sembra adeguata un’architettura reattiva, i cui
behavior sono coordinati adoperando i campi di potenziale.
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
41
Descrizione Behavior (1)
Collide ( Sensors_Array )
Releaser: Always On
Percept:
Collision
Perceptual Schema:
Read_Collide( Sensors_Array )
Motor Schema:
Stop_Robot( Collision )
RunAway ( Sensor )
Releaser: Always On
Percept:
Obstacle_Angle
Obstacle_Strenght
Rotation__Verse
Perceptual Schema:
Extract_Obstacle( Sensor )
Rotation( MoveToGoal.GetGoalAngle() )
Motor Schema:
PFields.Repulsion( Obstacle_Angle, Obstacle_Strenght )
PFields.Tangential( Obstacle_Angle, Obstacle_Strenght, Rotation_Verse )
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
42
Descrizione Behavior (2)
NoStopping ( )
Releaser: Always On
Percept:
VObstacle_Angle
VObstacle_Strenght
Rotation__Verse
Perceptual Schema:
VObstacle( )
Rotation( MoveToGoal.GetGoalAngle() )
Motor Schema:
PFields.Tangential( VObstacle_Angle, VObstacle_Strenght, Rotation_Verse )
MoveToGoal ( Goal_Description , [Goal_Position_Valued] )
Releaser: Always On
Percept:
Goal_Angle
Goal_Strenght /* Costant */
Toward_Goal
Perceptual Schema:
Extract_Goal( Goal_Description, [Goal_Position_Valued] )
Is_Goal_Near ( Goal_Description, [Goal_Position_Valued] )
Motor Schema:
PFields.CostantAttraction( Goal_Angle, Goal_Strenght, Toward_Goal )
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
43
Descrizione Behavior (3)
Goal ( Goal_Description )
Releaser: Always On
Percept:
Goal_Achieved
Perceptual Schema:
Verify_Goal( Goal_Description )
Motor Schema:
Victory_Behavior( Goal_Achieved )
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
44
Campi di Potenziale: Repulsivo
PFields.Repulsion( Obstacle_Angle, Obstacle_Strenght )
If (Obstacle_Strenght > MINSTRENGHT)
Vector.Direction = Obstacle_Angle + 180°
Vector.Magnitude = Obstacle_Strenght – MINSTRENGHT
Else
Vector.Magnitude = 0
End If
Return Vector;
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
45
Campi di Potenziale: Tangenziale
PFields.Tangential( Obstacle_Angle, Obstacle_Strenght, Rotation_Verse )
If (Obstacle_Strenght > MINSTRENGHT)
If (Rotation_Verse = Dx)
Vector.Direction = Obstacle_Angle + 90°
Else
Vector.Direction = Obstacle_Angle - 90°
End If
Vector.Magnitude = Obstacle_Strenght – MINSTRENGHT
Else
Vector.Magnitude = 0
End If
Return Vector;
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
46
Campi di Potenziale: Attrattivo
PFields.CostantAttraction( Goal_Angle, Goal_Strenght, Toward_Goal )
If (Goal_Strenght > 0)
Vector.Direction = Goal_Angle
If (Toward_Goal =0)
Vector.Magnitude = MAXSTRENGHT
Else
Vector.Magnitude = K * MAXSTRENGHT
End If
Else
Vector.Magnitude = 0
End If
Return Vector;
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
47
Esempi (1)
Goal
Ostacolo
Robot
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
48
Esempi (2)
Goal
Ostacolo
Robot
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
49
Esempi (3)
Goal
Ostacolo
Robot
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
50
Considerazioni su Rover
• La piattaforma di Rover sembra molto adeguata per un sistema robotico
reattivo.
• Non abbiamo prove che Pluto sia stato effettivamente realizzato.
– il coordinamento dei motori e delle ruote crea problemi.
– è instabile ed è soggetto a oscillazioni incontrollate e “pericolose”.
• Contestabile la scelta progettuale di non aver nessuna gestione della visione
on-board .
• Limitata autonomia
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
51
Bibliografia
[1] “The Stanford Cart and The CMU Rover” – Hans P. Moravec – The Robotics Institute
Carnegie-Mellon University (Pittsburgh) – February 1983
http://www.frc.ri.cmu.edu/~hpm/project.archive/robot.papers/1983/ieee83.mss
[2] “Three Degrees for a Mobile robot” – Hans P. Moravec – The Robotics Institute CarnegieMellon University (Pittsburgh) – February 1984
http://www.frc.ri.cmu.edu/~hpm/project.archive/robot.papers/1984/asme84.mss
[3] “Towards Autonomous Vehicles” – H.P. Moravec et al. -The Robotics Institute CarnegieMellon University (Pittsburgh) – June 985
http://www.frc.ri.cmu.edu/~hpm/project.archive/robot.papers/1984/rr84.mss
[4] “Robots that Rove” – H.P. Moravec et al. -The Robotics Institute Carnegie-Mellon
University (Pittsburgh) – August 1985
http://www.frc.ri.cmu.edu/~hpm/project.archive/general.articles/1986/rove2.mss
[5] “Behavior-Based Robotics” – Ronald C. Arkin – The MIT Press, Cambridge
(Massachusetts) – Book 1998
[6] Appunti corso di “Sistemi per il Governo dei Robot” – Prof. Ernesto Burattini – Università
degli studi di Napoli Federico II - 2004
Giugno 2004
Mariarosaria Ambrosino di Miccio – Domenico Perfetto
52
Scarica

Stanford Cart e CMU Rover - Sistemi per il Governo dei Robot