Home
Accesso / Registrazione
 di 

Un Robot alla Guida - Strumenti Elettronici per la Navigazione

Immagine_Articolo_01

In questo articolo Vi illustrerò alcuni esperimenti e prototipi, che ho voluto realizzare per esplorare le funzionalità dei sistemi dedicati alla Navigazione e al controllo dell’Assetto e della Posizione, di un veicolo generico, sia esso terrestre, marino o aereo. Dopo una breve introduzione del concetto di Navigazione, sarà presentato uno schema a blocchi generale, comprendente i vari sottosistemi che ho realizzato nel tempo e, poi, seguirà la descrizione dei singoli elementi. Premetto che è un sistema che presenta qualche complessità, esso è il frutto di anni di ricerca e lavoro, ma al termine della lettura, spero che tutto risulti più chiaro. Questo articolo è inedito, ma include anche risultati che sono stati in parte già divulgati attraverso internet e una pubblicazione scientifica. Questa è comunque l’occasione per aggiungere nuovi componenti e apportare una revisione generale all’intera documentazione. Infine, al termine dell’articolo, troverete una essenziale bibliografia, che potrà risultare utile a coloro che intendono approfondire le basi teoriche sottostanti. Nell'articolo troverete anche il link al video YouTube che mostra il funzionamento dell'intero sistema. Per il momento vi chiedo di seguirmi ...venite a navigare con me e buona lettura!

 

Cenni sulla Navigazione:
L’esigenza di conoscere con la massima precisione possibile la posizione geografica propria o di un proprio mezzo, rispetto alla superficie terrestre, nasce da un problema antico quanto la civiltà umana e la sua innata voglia di esplorare e conoscere l’ambiente circostante. Sin dalle sue prime migrazioni, la specie umana ha sperimentato le più disparate forme di navigazione. I primi passi furono computi senza particolari mezzi, basandosi sulla memoria di posizioni note (teodoliti) o sulla disseminazione di segni riconoscibili sul territorio esplorato (es. Landmark). Mediante questi rudimentali strumenti la specie umana si diffuse sulle terre emerse colonizzando ogni possibile territorio. L’esigenza di raggiungere ulteriori territori venne soddisfatta solo quando si riuscì a dominare, con altrettanta sicurezza, i mari che la separavano dalle nuove terre. Inizialmente, la navigazione umana sul mare avveniva sottocosta, garantendo, con il continuo contatto visivo della terraferma, quei riferimenti visuali che avevano contraddistinto le modalità di navigazione dei suoi antenati. Solo successivamente vennero ideate e sperimentate nuove e sempre più sofisticate tecniche di navigazione.

Compiendo ora un balzo di millenni, procederò nel descrivere sinteticamente le principali modalità di navigazione:

  • Navigazione a vista – Consiste nel mantenere un continuo contatto visivo con punti di riferimento noti generalmente situati sul terreno. Ad esempio, nell’ambito aeronautico, le cosiddette Visual Flight Rules (VFR) contraddistinguono il pilotaggio non strumentale basato su precise regole di condotta, spesso definite “minime visuali”.  Ai giorni nostri le tecniche di navigazione a vista possono essere suffragate e migliorate, mediante l’utilizzo di sensori Elettro-ottici di immagine quali: i sensori CCD oppure gli array CMOS, entrambi definiti Area Pixel Sensor (APS) proprio per la loro capacità di restituire un immagine bidimensionale del campo visivo verso cui sono direzionati.

 

  • Dead reckoning – Termine difficilmente traducibile che ha il significato di “navigazione alla cieca”. Consiste nel conoscere la posizione di partenza e stimare quella di arrivo mediante la determinazione della prua o heading e nello stimare la velocità di marcia, spesso in modo indiretto (es. numero di giri del motore), oppure il tempo di percorrenza. Tale modalità ha fornito, inoltre, grande impulso allo sviluppo dei Cronometri di Precisione nella nautica tardo-rinascimentale.

 

  • Navigazione astronomica – E’ tra le forme più antiche di orientamento e navigazione. Sin dall’Antica Grecia lo studio della posizione degli Astri ha trovato applicazione nel campo della navigazione marittima. Bussola, Sestante e Cronometro, Almanacchi e Carte Stellari, costituiscono di fatto gli strumenti basilari per orientarsi correttamente, ancora oggi, sulle rotte terrestri e marine.

 

  • Radionavigazione – Di più recente introduzione, essa utilizza le onde elettromagnetiche come mezzo per diffondere segnali da sorgenti georeferenziate. Le fonti possono essere localizzate sulla superficie terrestre oppure nello spazio. Le più comuni applicazioni sono i radiofari, tra cui si evidenziano i sistemi Long Range Aid to Navigation (LORAN), Non Directional Beacon (NDB) e VHF Omnidirectional Range (VOR). In questa categoria rientrano anche i sistemi orbitanti GPS, GLONASS e GALILEO, basati sulla multilaterazione (una sorta di triangolazione).

 

  • Navigazione Inerziale – Consiste nello stimare la posizione mediante i dati di assetto e la  velocità, a partire da una posizione nota. E’ la sola forma di navigazione che non richiede alcuna forma di comunicazione con l’esterno e, pertanto, ciò la rende unica ed insostituibile per tutte quelle applicazioni ove risulta difficile se non impossibile scambiare informazioni con altre entità remote. La navigazione inerziale ha mosso i suoi primi passi proprio come tecnologia militare strategica, divenendo, poi, disponibile anche per una moltitudine di applicazioni civili. Gli elevati costi specifici, uniti alla complessità di implementazione, rendono le tecniche inerziali un significativo bacino di indagine e di sperimentazione, per le nuove tecnologie emergenti, soprattutto per estenderne l’impiego alle applicazioni low-cost.

Per concludere questa introduzione, riporto nell'immagine seguente un icona della radionavigazione, vero e proprio pioniere di un affascinante mondo ...l'inventore di una nuova epoca!

 

Fig. 1 - Guglielmo Marconi a bordo della nave Elettra. Sono visibili alcuni apparati radio-elettrici progettati e costruiti dallo stesso Marconi. Nel video allegato (http://youtu.be/Jm_3JygljO4) potrete ascoltare la "voce" antica dei radiofari NDB.

 

Sistema automatico di controllo e guida
Il sistema di controllo e guida di un veicolo è costituito da un gruppo di sensori, idonei a rilevare la posizione e l’assetto del veicolo in regime dinamico; una sistema centralizzato di elaborazione, completato eventualmente da una interfaccia utente (es. display, tastiera, joystick, uscite audio, ecc.); una serie di attuatori che hanno il compito di regolare la traiettoria del veicolo. Un esempio per tutti: pensiamo all’autopilota di un velivolo oppure di una imbarcazione, ma anche al cruise-control di una moderna autovettura. In funzione dell’ambiente nel quale il veicolo opera, troveremo degli attuatori specifici (es. alettoni, timone, servomeccanismi idraulici, motori elettrici, ecc.).
Nella figura seguente è illustrato lo schema generale del sistema, suddiviso nei suoi blocchi fondamentali.
 

Fig. 2 - Schema generale del Navigatore/Autopilota

 

Nel seguito vi riporto una descrizione sintetica delle funzionalità svolte dai singoli blocchi. Tutti i componenti sono stati da me realizzati e provati, se pur a livello sperimentale e spesso, home-made. Il funzionamento dei componenti è visibile nel video allegato (http://www.youtube.com/watch?v=Jm_3JygljO4).

Sul lato sinistro troviamo i sensori:

  • GPS, Ricevitore GNSS – E’ un radio ricevitore multicanale in grado di processare il segnale radio trasmesso da una costellazione di satelliti per navigazione. La sigla GNSS sta per Global Navigation Satellite System e si riferisce genericamente al sistema americano GPS, al sistema russo GLONASS e al futuro sistema europeo GALILEO, oppure ad una combinazione dei tre. In questo progetto ho utilizzato esclusivamente moduli OEM collegandoli mediante porta seriale RS-232 e utilizzando il protocollo NMEA-0183.

 

  • IMU, Inertial Measurement Unit – E’ il cuore inerziale del nostro sistema. Dal modulo IMU ricaveremo le accelerazioni e le velocità angolari, cui è sottoposto il nostro veicolo. Per certi versi ricorda alcuni organi dell’orecchio interno. Esso è costituito da tre Giroscopi MEMS e da tre Accelerometri MEMS, e per tale ragione si definisce un sistema a Sei Gradi di Libertà (6DoF). I sensori sono montati in configurazione Strapdown. Le uscite analogiche dei sensori inerziali sono state digitalizzate mediante convertitore Sigma-Delta a 16/24bit. La CPU di controllo per questa unità è un micro NXP LPC2129 basato su core ARM7-TDMIS.

 

  • MAG, Geo-Magnetometro Triassiale – E’ una componente fondamentale della cosiddetta “bussola elettronica”. Questo prototipo è stato realizzato mediante l’impiego di sensori AMR (Anisotropic Magneto Resistive). Grazie al modulo MAG saremo in gradi di conoscere sempre la posizione del Nord magnetico e, quindi, tutti gli altri punti cardinali. Il modulo MAG lavora congiuntamente al modulo IMU e, quindi, la nostra bussola sarà adatta a restituirci le corrette informazioni, indipendentemente dall’assetto del veicolo e dalle accelerazioni che agiscono su di esso (Nota: una tradizionale bussola magnetica non possiede generalmente tale importante proprietà). Per questo blocco è stato utilizzato un modulo OEM Honeywell HMR-2003.

 

  • NDB RCV, Ricevitore NDB – E’ fondamentalmente una radio AM (Amplitude Modulation) sintonizzabile sulle frequenze comprese tra 250KHz e 450KHz. Il segnale trasmesso dai radiofari NDB è costituito da un codice Morse triletterale (es. GRA, POM, SOR) che ricorda il nome della località su cui è installata la stazione trasmittente (es. Grazzanise, Pomigliano, Sorrento). Grazie all’impiego di una antenna direttiva (es. un antenna Loop) è possibile individuare con buona approssimazione l’azimut del trasmettitore. Basterà, quindi, puntare verso il radiofaro per giungere nella destinazione prescelta. Un ricevitore multicanale potrà ricevere contemporaneamente più segnali e consentirci di operare una sorta di triangolazione. In effetti, qualunque altra stazione trasmittente può essere utilizzata come radiofaro, la peculiarità di questi ultimi, però, consiste nel trasmettere in continuazione il proprio identificativo e di essere ubicati in punti georeferenziati ben noti. (Nota: la radio che ho recentemente aggiunto al sistema è un classico ricevitore in Supereterodina a BJT. Devo dire che è un oggetto piuttosto intrattabile e spero presto di passare ad uno schema SRD (Software Defined Radio), ma occorrerà del tempo!) 

Fin qui ho descritto i sensori impiegati nel prototipo, ma ricordate che vengono anche utilizzati sensori di pressione (es. Altimetro barometrico), velocità (es. Ruota fonica, Tubi di Pitot), ecc. In futuro aggiungerò altri sensori e ciò garantirà anche alcuni miglioramenti nelle stime della posizione e dell’assetto.

Adesso, guardando il lato destro dello schema a blocchi, troviamo:

  • CPU Linux – E’ il centro nevralgico dell’intero sistema. Mediante uno o più task software, è possibile calcolare tutti i parametri utili alla corretta navigazione, controllare e gestire la coppia Display TFT e Touch Screen, generare i messaggi audio automatici, istruire gli attuatori che regolano il moto del veicolo (es. funzione Autopilota) e interrogare il data base SRTM (Shuttle Radar Topography Mission) per ottenere informazioni sul terreno circostante. Trattiamo ora separatamente questi ultimi due blocchi funzionali. La CPU è basata sul microcomputer embedded Portux-G20, di cui ho già scritto in passato su queste pagine ai link http://it.emcelettronica.com/portuxg20-embedded-linux-getting-started e http://it.emcelettronica.com/portuxg20-embedded-linux-getting-started-parte-2, a cui è stato interfacciato un display a colori dotato di microcontrollore ARM Cortex-M3.

 

  • Database SRTM – E’ una collezione di file altimetrici distribuita pubblicamente dai server NASA e da alcuni mirror. Il progetto SRTM è da considerarsi uno sforzo colossale, organizzato dalla NASA e da altre Agenzie spaziali (ASI compresa) e finalizzato alla realizzazione di un Data Base in 3D dell'intera superficie del nostro pianeta Terra. I dati SRTM3 (formato .hgt) sono raggruppati in una miriade di file, detti TILE, perfettamente georeferenziati, che riportano in formato numerico l'altezza sul livello del mare (S.l.m.) di ogni rilievo, collina, montagna (isole e isolette, comprese), sparse per il nostro globo. La risoluzione per il blocco EURASIA è di 3’’ (secondi d’arco) corrispondente a circa 90 metri alle nostre latitudini. I file sono allocati nel flash file system della CPU Linux.

 

  • ACTUATOR, I servo-meccanismi – Questo blocco funzionale è stato realizzato sotto forma di simulatore. Essendo, infatti, il presente progetto rivolto ad una moltitudine di veicoli (es. autoveicoli, imbarcazioni, aeromobili, etc.) le funzioni di Autopilota possono essere le più disparate. Vi faccio qualche esempio: in un automobile può essere utile un controllo della frenata, della sterzata e del pattinamento, mentre su di un aeromobile sarà l’azione delle superfici mobile (es. flap, timone, stabilizzatori verticali e orizzontali) a determinare le leggi di controllo. Il  simulatore che ho realizzato implementa tre gradi di libertà e, come vedrete, sembra essere rivolto a veicoli che si muovono rispetto ad un fluido. Potreste provare, così, ad immaginare l’escursione dei piani mobili durante la marcia di un natante oppure di un aereo. E’ un lavoro certamente parziale e non esaustivo di tutte le potenzialità del sistema, ma rende bene l’idea di fondo di cosa è un attuatore per Autopilota. E’ interessante notare che l’intero microcomputer è stato realizzato su FPGA (Field Programmable Gate Array) mediante un processore software (soft-core) Microblaze programmato in linguaggio ANSI C.

Il prototipo dimostratore

Diamo ora uno sguardo all'intero sistema, esso è costituito da varie parti e, in totale, ho contato sei CPU, ciascuna con il proprio software ANSI C e con un minimo di protocollo per dialogare con l'unità centrale. In effetti, vedrete due display in quanto il software di controllo è stato suddiviso tra "Gestore delle Mappe Georeferenziate SRTM" e "Gestore dell'Assetto". Si tratta di due Task che, in futuro, verranno incorporati in un'unica CPU Linux. Da notare, inoltre, che le funzioni hard real-time vengono gestite non dal Sistema Operativo, ma dai singoli processori distribuiti all'interno dei moduli.

 

Fig. 3 - Foto del Dimostratore - Fai click sul link http://youtu.be/Jm_3JygljO4 per vederlo funzionare.

 

Bibliografia essenziale
Strapdown Inertial Navigation Technology, 2nd Ed. - D.H. Titterton J.L. Weston
Global Positioning Systems Inertial Navigation and Integration, 2nd Ed. - Grewal, Weill,  Andrews
Applied Satellite Navigation - Ramjee Prasad and Marina Ruggieri
Applied Mathematics in Integrated Navigation Systems - Robert M. Rogers
Guidance and Control of Ocean Vehicles - Thor I. Fossen
Kalman filtering Theory and practice using MATLAB - Grewal, Andrews
RF and Baseband Techniques for Software Defined Radio - Kenington
RF Circuit Design: Theory and Applications -Ludwig

 

Pubblicazione
A Low-Cost Marine Integrated Navigation System - Franco Garofalo, Giovanni Mancini, Sabato Manfredi, Umberto Montanaro, Michele Pugliese, Stefania Santini, Ciro Tranchino – European Navigation Conference (ENC-GNSS), Naples, Italy, May 2009

 

Conclusioni

Realizzare questo sistema è stato un lavoro "ciclopico", almeno per una singola persona. Hardware, firmware, meccanica; tutto è stato curato al meglio di quanto potessi fare da solo e senza il supporto industriale. Pubblico, quindi, questo articolo in occasione del Contest Make4Cash, non solo per competere, ma anche per condividere con voi questa splendida esperienza. Un viaggio nella conoscenza, ma anche uno scontrarsi quotidiano con i propri limiti (...e sono tanti, ho scoperto!).

Tutto il Codice Sorgente, gli Schemi a Blocchi e quelli Esecutivi, sono disponibili per coloro che vorranno condividere con me le tappe future di questo periglioso viaggio, per dirla alla Dante Alighieri.

 

Vi ringrazio per la lettura, a presto. Ciro.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Emanuele

Ottimo lavoro Ciro

Ottimo lavoro Ciro,
ho apprezzato molto anche l'introduzione iniziale necessaria per chi non è esperto in materia.

ritratto di Ciro Tranchino

Grazie

Grazie Emanuele.

Vorrei aggiungere che Aprile è stato il mese delle celebrazioni di Guglielmo Marconi, nato a Bologna il 25 Aprile 1874. Egli sarebbe rimasto affascinato nel vedere quali e quante applicazioni delle sue scoperte, sono possibili con le odierne tecnologie.

Allora mi chiedo: quanti giovani "Marconi" sono presenti tra Voi?
Elettronica Open Source è il luogo ideale per scoprirlo!

Un saluto,
Ciro.

ritratto di F.SCO D'ANGELO

6 UN GRANDE 1 AMICO CHE TI

6 UN GRANDE 1 AMICO CHE TI STIMA E TI APPREZZA COMPLIMENTI TI ASPETTO X 1 CAFFE SARA' 1 PIACERE COME SEMPRE.

ritratto di Bazinga

Anche io seguo i tuoi

Anche io seguo i tuoi progetti Ciro, complimenti!

ritratto di Livio Cicala

Complimentoni

Davvero un progetto interessante, un gran lavoro, io gli ho dato tre punti ma ne meriterebbe altri.

Una curiosita', come si chiama e quanto costa il computerino su cui gira LinuX, forse lo hai scritto ma mi e' sfuggito.

ciao
Livio

ritratto di Ciro Tranchino

Grazie Livio, il computer

Grazie Livio,
il computer Linux si chiama PortuxG20 (la sola scheda nuda la trovi sul sito TaskIT), poi il display è basato sul RDK IDM-L35, un kit di T.I. con ARM Cortex-M3. Tutta la meccanica è "dai-da-te" partendo da moduli per subrack 19 pollici.

Un saluto,
Ciro.

ritratto di Livio Cicala

Urka quanto costano!

Mi par davvero molto... 449 euro, 199 euro, 249 euro...
l'hai pagato cosi' tanto ?

ritratto di Ciro Tranchino

Il kit di sviluppo Portux-G20

Il kit di sviluppo Portux-G20 l'ho pagato 180 EUR + IVA, comprende cavi, Micro-SD, CDROM con codice e tool. La sola scheda dovrebbe costare 150 EUR se non ricordo male.

Per un solo pezzo non mi è sembrata una cifra folle ...e si impara tantissimo.
Ci sono schede più economiche, ma occorre verificare quale sia la reale curva di apprendimento per un sistema che è piuttosto complesso.
Comunque la Portux l'ho scelta perché ha un fattore di forma compatibile con lo standard IEC-297 che è quello dei subrack 19'' e presenta un bus di espansione con connettore DIN41612 che ricorda il VME a 16 bit.

ritratto di Livio Cicala

Portux-G20

Si, si, sono belle schede,
ti ringrazio di avermele fatte conoscere.

In ogni caso, se si tratta di costruire un solo pezzo, non vale la pena di pensare al prezzo. Altrimenti potresti dare un'occhiata al RaspBerry che dovrebbe costare circa 25 euro, chissa' se andrebbe bene per le tue operazioni?

ritratto di Ciro Tranchino

RaspBarry andrebbe benissimo

RaspBarry andrebbe benissimo come prezzo, però non è pensato per uso industriale.
a mio avviso ha più un target da PC desktop ...molto interessante, ma non lo puoi mettere su di un veicolo rispettando requisiti di vibrazione, shock termici, alimentazione, ecc.
La differenza è nel tipo di applicazione piuttosto che nella tecnologia, ma un pò alla volta ci arriveremo anche come prezzo.

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 68 visitatori collegati.

Ultimi Commenti