1 / 52

Stanford Cart & CMU Rover

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

jalen
Télécharger la présentation

Stanford Cart & CMU Rover

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. Acquisizione delle immagini (2) 1 2 3 4 5 6 7 8 9 Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  9. 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

  10. 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

  11. 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

  12. Interest Operator (3) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  13. 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

  14. 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

  15. 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

  16. 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

  17. Slider Stereo (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  18. 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

  19. 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

  20. 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

  21. 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

  22. Esperimenti Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  23. Esempio di un percorso di Cart (1) Goal Campo Visivo 60° Features Cart Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  24. Esempio di un percorso di Cart (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  25. Cart Testing Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. Considerazioni sull’architettura Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  38. 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

  39. 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

  40. 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

  41. 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

  42. Descrizione Behavior (1) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  43. Descrizione Behavior (2) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  44. Descrizione Behavior (3) Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  45. 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

  46. 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

  47. 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

  48. Esempi (1) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  49. Esempi (2) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto

  50. Esempi (3) Goal Ostacolo Robot Mariarosaria Ambrosino di Miccio – Domenico Perfetto

More Related