530 likes | 768 Views
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
E N D
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 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Subroutine • Il programma che consente a Cart di spostarsi all’interno dell’ambiente è organizzato in più subroutine: • Interest Operator • Correlator • Camera Solver • Navigator Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Acquisizione delle immagini (2) 1 2 3 4 5 6 7 8 9 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Interest Operator (1) • L’interestoperator 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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Interest Operator (3) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Slider Stereo (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esperimenti Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esempio di un percorso di Cart (1) Goal Campo Visivo 60° Features Cart Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esempio di un percorso di Cart (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Cart Testing Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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 Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Pluto: Specifiche (1) • 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. • 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. • 90 Kg • ≈ 1 metro • ≈ 55 cm Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Pluto: Specifiche (2) • Rover è assemblato su 3 livelli: • Ruote • Motori e Sensori • 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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Architettura di Rover • Nell’organizationlevel saranno eseguiti i compiti a più alto livello: pianificazione, interpretazione delle immagini, rappresentazione del mondo e pianificazione dei percorsi. • Il coordinationlevel 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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Unità elementari (2) • 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. • Proximitygestisce l’ultima linea di difesa contro le collisioni utilizzando i sonar IR a corto raggio e i bumper. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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: • II primi cinque minuti sono necessari per digitalizzare, pre-trattare e inviare alla base fissa le nove immagini acquisite dalla TV camera. • 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. • 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”. I tre intervalli di elaborazione sono ora ridotti rispettivamente a meno di un secondo, circa tre secondi e a pochi secondi, per un tempo totale di circa 10 secondi contro i quindici minuti di Cart. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Considerazioni sull’architettura Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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°. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Architettura Reattiva • Alla luce di queste condizioni sembra adeguata un’architettura reattiva, i cui behavior sono coordinati adoperando i campi di potenziale. Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Descrizione Behavior (1) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Descrizione Behavior (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Descrizione Behavior (3) Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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; Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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; Mariarosaria Ambrosino di Miccio – Domenico Perfetto
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; Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esempi (1) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esempi (2) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto
Esempi (3) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto