ETD

Archivio digitale delle tesi discusse presso l'Università di Pisa

Tesi etd-06302020-095558


Tipo di tesi
Tesi di laurea magistrale
Autore
DELLA TORRE, LORENZO
URN
etd-06302020-095558
Titolo
Sviluppo di un sistema di guida e navigazione autonoma di un Rover per esplorazione e monitoraggio di un ambiente agricolo
Dipartimento
INGEGNERIA DELL'INFORMAZIONE
Corso di studi
INGEGNERIA ROBOTICA E DELL'AUTOMAZIONE
Relatori
relatore Prof.ssa Pallottino, Lucia
relatore Ing. Caporale, Danilo
relatore Ing. Settimi, Alessandro
relatore Ing. Pacini, Matteo
Parole chiave
  • sensor fusion
  • rover
  • pianificazione
  • mapping
  • localizzazione
  • guida e navigazione autonoma
  • controllo
  • simulazione
Data inizio appello
16/07/2020
Consultabilità
Completa
Riassunto
Il presente lavoro di tesi si colloca all’interno di un progetto di ricerca e sviluppo finanziato dalla Regione Toscana, denominato “BMI Focus”, il cui obiettivo riguarda la realizzazione di un sistema di neuro-stimolazione integrato in una piattaforma di addestramento per astronauti. Lo sviluppo di questa piattaforma, prevede tra l’altro, la realizzazione di un Rover a pilotaggio remoto. Il lavoro è stato svolto in collaborazione con un'altra candidata, Elisa Stefanini, durante un tirocinio svolto presso la ditta Sigma Ingegneria S.r.l. di Lucca, vincitrice del suddetto bando ed incaricata di sviluppare proprio il modulo Rover.
Grazie alle risorse messe a disposizione, Sigma Ingegneria ha collocato il progetto Rover nella direzione di sviluppo di un prodotto industrializzabile. Tra i vari impieghi sono stati ipotizzati quello viticolo e, più in generale, tutti quegli impieghi in cui la presenza umana possa ritenersi pericolosa, come lo spegnimento di incendi o la pulizia di silos contenenti inquinanti o potenzialmente esplosivi. Per rispettare i vari requisiti operativi e normativi il Rover, pilotabile da remoto, è stato dotato di un modulo di guida e navigazione autonome, oggetto del presente lavoro di Tesi.
Il veicolo è dotato di quattro ruote sterzanti indipendenti. Tutti i giunti sono attuati da motori dedicati rispettivamente alla propulsione ed alla sterzata degli elementi forcella, tali da determinare l’orientazione delle ruote e, di conseguenza, la direzione di moto del veicolo.
Il Rover è dotato di ruote di tipo "Airless" aventi degli elementi radiali in poliuretano che, per bassi valori di velocità, funzionano come elementi smorzanti, tali da evitare l’aggiunta di un eventuale sistema di sospensione.
Per poter implementare il sistema di guida autonoma sono stati scelti in primo luogo i sensori ed il PC industriale da integrare a bordo del veicolo. Dopo una ricerca bibliografica sulle varie tecnologie disponibili, il Rover è stato equipaggiato nella sua prima versione prototipale con due sensori Lidar 2D, quattro telecamere stereoscopiche, un’IMU, due antenne GPS ed un magnetometro. Oltre a questi, il Rover dispone di vari dispositivi dedicati alla gestione della sicurezza, quali fari, avvisatori acustici e pulsanti di emergenza. Infine, è stato scelto un PC fanless per la gestione del sistema di guida autonoma e due moduli supplementari per il controllo delle telecamere.
Nella fase successiva del lavoro è stata sviluppata la parte software utilizzando il framework ROS.
Particolare attenzione è stata data ai moduli fondamentali che costituiscono un robot mobile autonomo quali mapping, localizzazione, percezione, pianificazione, navigazione e controllo.
Sono stati testati quindi vari algoritmi di mapping per poter scegliere quello avente i risultati migliori.
È stata successivamente implementata la localizzazione, utilizzando le misure provenienti dalla piattaforma inerziale. In un secondo momento, tramite un filtro di Kalman Esteso messo a disposizione da uno specifico pacchetto ROS, sono stati corretti i dati provenienti dall’IMU con il segnale GPS tramite una tecnica di “Sensor Fusion”. Sono stati quindi confrontati e discussi i risultati delle due soluzioni.
Il modulo di navigazione è stato costruito sfruttando il navigation stack di ROS. La traiettoria globale è stata pianificata utilizzando l’algoritmo di Dijkstra per la ricerca di cammini minimi su grafi, mentre per la traiettoria locale è stato adottato un approccio basato sul DWA (Dynamic Window Algorithm). Come fonte di osservazione per le costmaps del navigation stack sono state collezionate le misure provenienti dai LIDAR e dalle telecamere.
Infine, è stata implementata la strategia di controllo in simulazione, sia tramite un joystick che in modalità autonoma, andando a controllare la velocità angolare delle ruote del Rover e l’angolo di sterzata. Sono stati analizzati i principali movimenti che il veicolo può compiere, realizzati tramite il software ROS dedicato che associa il movimento desiderato in simulazione ad un comando proveniente da un joystick. I controllori di basso livello sono stati tarati opportunatamente in modo da ottenere una dinamica ottimale e rispettare i limiti imposti dai dati di targa dei motori installati sul Rover.
Per la parte di guida autonoma, le simulazioni prevedono di inviare al Rover i waypoints desiderati sia in coordinate cartesiane che coordinate GPS, come destinazioni da raggiungere.
Per la fase finale dei test solo i moduli di mapping e di localizzazione sono stati testati con un setup sperimentale costruito per l’integrazione dei sensori mentre tutte le altre parti dell’applicativo sono state testate in simulazione attraverso il software Gazebo, sia in ambiente indoor che outdoor.
In conclusione, le simulazioni ed i test preliminari eseguiti hanno portato allo sviluppo e alla messa a punto di un sistema di navigazione dinamico, grazie al quale il Rover è in grado di localizzarsi all’interno di una mappa costruita sulla base dei sensori a bordo e di raggiungere un qualsiasi punto dato, evitando gli ostacoli in tempo reale grazie alla reattività degli input sensoriali percepiti.
File