• Non ci sono risultati.

Progettazione e realizzazione di componenti per veicoli autonomi

N/A
N/A
Protected

Academic year: 2021

Condividi "Progettazione e realizzazione di componenti per veicoli autonomi"

Copied!
141
0
0

Testo completo

(1)

Università degli Studi di Pisa Facoltà di Ingegneria

Dipartimento di Sistemi Elettrici e Automazione

Tesi di Dottorato

Progetto e realizzazione di componenti

per veicoli autonomi

Dottorato di Ricerca in Automatica, Robotica e Bioingegneria Settore Scientifico Disciplinare: ING-INF/04

Ciclo XIX, 2003 – 2006

CANDIDATO Ing. Roberto Mati

TUTORE

(2)
(3)

Alla mia famiglia

Durante un percorso formativo di così lunga durata, molte sono le persone che inevitabilmente contribuiscono alla buona riuscita del risultato finale.

Un caloroso ringraziamento va al Prof. Mario Innocenti, mio tutore durante i tre anni di corso, che mi ha permesso di intraprendere questo nuovo percorso formativo, ed all’Ing. Lorenzo Pollini, con cui ho condiviso la maggior parte del mio accrescimento umano e culturale. Un grazie di cuore ad entrambi per l’autonomia e la stima dimostratami nel corso di questi anni.

Un pensiero va a tutti i miei compagni di viaggio, a Manuele e Fabio in primo luogo, compagni di lavoro ma prima di tutto amici, che con me hanno condiviso gioie e dolori di un’attività tanto complessa. Ed un ringraziamento a Paola, Raul, Luigi, Francesco, Daniele, Saverio, Nino, Massimiliano, Stefano, Alessandro, Ilaria, Tina, tutte persone che con le loro idee e i loro lavori hanno contribuito ai progressi scientifici ottenuti in questi anni. Un pensiero va a tutto il reparto tecnico del Dipartimento, a Beppe, Marco “The Speed”, Alessandro, Jean Paul e tutti gli altri.

Non posso certo dimenticare il contributo del Prof. Ubaldo Bonuccelli, che dal primo momento mi spinse a tentare questa nuova strada. Ma qui voglio ringraziare non solo il professore, ma soprattutto l’uomo, semplicemente Ubaldo, con tutta la gratitudine dovuta ad una persona che per te, e per le persone a te vicine, ha cambiato positivamente il corso degli eventi.

E chiaramente, e non potrei fare altrimenti, voglio ringraziare mia sorella, un pò perché questa tesi è arrivata in stampa grazie a lei, ma soprattutto per avermi sopportato (poco) negli anni durante i quali abbiamo vissuto insieme.

Ma questo lavoro, frutto di tre anni di studi, ricerche, e talvolta notti insonni, non può che essere dedicato alle persone che durante tutta la mia vita hanno sempre creduto in me, alle persone che con la loro presenza costante hanno permesso che io arrivassi sin qui, e che io potessi decidere di andare oltre. Grazie per avermi sempre lasciato scegliere, grazie per essermi stati vicini, anche quando i pensieri potevano essere altrove, grazie di tutto, babbo e mamma.

Ed un pensiero particolare va a Gianna, la persona che con la sua intelligenza, bellezza e semplicità, continua ad illuminare le mie giornate.

Grazie di cuori a tutti, Roberto

(4)
(5)

i

I

NDICE

1

I

NTRODUZIONE

... 1

2

S

ENSORI ED ATTUATORI

... 5

2.1 Introduzione... 5

2.2 Il golf kart Dolly ... 5

2.3 Sensori ... 6

2.3.1 Misura della velocità: encoder incrementale... 6

2.3.2 Misura dell’angolo di sterzo: encoder assoluto... 9

2.3.3 Ricevitore GPS (Global Positioning System) ... 10

2.3.4 Sistema di visione stereo ... 11

2.3.5 Altre soluzioni possibili ... 14

2.4 Attuatori... 14 2.4.1 Attuatore di trazione... 14 2.4.2 Attuatore di sterzo ... 15 2.5 Conclusioni ... 15

3

P

ROGETTAZIONE ELETTRONICA

... 17

3.1 Introduzione... 17

3.2 Scheda di controllo principale ... 19

3.3 Scheda di interfaccia encoder assoluto ... 21

3.4 Interfaccia Encoder Incrementale... 22

3.5 Scheda di interfaccia joystick ... 22

3.6 Scheda di interfaccia RS232... 23

3.7 Circuito di alimentazione... 24

3.8 Driver motore di trazione ... 28

3.9 Driver motore sterzo... 32

4

M

ODELLISTICA

... 33

4.1 Introduzione... 33

(6)

4.3 Modellistica degli attuatori ... 35

4.3.1 Modello dell’attuatore di trazione... 35

4.3.2 Modello dell’attuatore di sterzo... 38

4.4 Modellistica dei sensori ... 39

4.4.1 Modello degli encoder ... 39

4.4.2 Modello del GPS ... 40

4.5 Conclusioni ... 40

5

G

UIDA E CONTROLLO

...41

5.1 Introduzione ... 41

5.2 Controllo della dinamica dell’attuatore di trazione... 41

5.3 Controllo dello sterzo... 42

5.4 Sistemi di guida... 43

5.4.1 Guida con controllo proporzionale ... 43

5.4.2 Inseguimento di traiettoria... 46

5.4.3 Stabilità del sistema in ciclo chiuso... 49

5.4.4 Guida waypoint... 56

5.5 Controllo di missione ... 57

5.6 Conclusioni ... 57

6

N

AVIGAZIONE

...59

6.1 Introduzione ... 59

6.2 Proiezione delle coordinate geografiche sul piano... 60

6.2.1 Scelta del tipo di proiezione ... 60

6.3 Filtro di Kalman... 61

6.3.1 Inizializzazione del filtro ... 68

6.3.2 Tuning del filtro... 69

6.4 Conclusioni ... 71

7

O

BSTACLE DETECTION

...73

7.1 Introduzione ... 73

7.2 Il modello di visione stereo... 74

7.3 L’algoritmo SIFT e lo stereo matching... 76

7.4 Tracking degli waypoint ... 77

7.5 Clustering... 81

7.6 Definizione del bordo dell’ostacolo e costruzione della mappa 2D.. 84

7.7 Test sperimentali ... 86

7.8 Conclusioni ... 88

8

C

OMUNICAZIONI E SOFTWARE

...89

8.1 Introduzione ... 89

8.2 Calcolatori... 89

8.3 Implementazione del software ... 91

9

R

OBUST POSE ESTIMATION ALGORITHM

...97

9.1 Introduzione ... 97

(7)

9.3 L’algoritmo LHM... 100

9.4 Il modulo di labeling... 103

9.5 Selezione della configurazione... 106

9.6 Test sperimentali ... 108

9.6.1 Setup hardware... 108

9.6.2 Test sperimentali indoor... 109

9.6.3 Test outdoor ... 113

10

SCENARIO DI RIFORNIMENTO IN VOLO AUTOMATICO PROBE

-

AND

-

DROGUE

... 115

10.1 Introduzione... 115

10.2 Fasi di approaching e refueling ... 117

10.2.1 Fase di approaching ... 117 10.2.2 Fase di refueling... 119 10.3 Simulazioni... 119 10.4 Conclusioni... 122

11

C

ONCLUSIONI

... 123

B

IBLIOGRAFIA

... 125

(8)
(9)

v

I

NDICE DELLE FIGURE

Fig. 2.1 Il veicolo a tre ruote Dolly... 6

Fig. 2.2 Montaggio dell’encoder incrementale sulla ruota anteriore del veicolo 7 Fig. 2.3 Encoder incrementale TIW38 prodotto da Tekel Instruments S.r.l ... 9

Fig. 2.4 Encoder assoluto TKTC prodotto da Tekel Instruments S.r.l... 10

Fig. 2.5 GPS 35 LVS prodotto da Garmin International Inc. ... 11

Fig. 2.6 Videocamere a bordo di Ulisse... 12

Fig. 2.7 Vista frontale del posizionamento delle videocamere su Ulisse... 13

Fig. 2.8 Vista laterale del posizionamento delle videocamere su Ulisse ... 13

Fig. 2.9 Configurazione delle videocamere ... 13

Fig. 2.10 Driver di potenza per il controllo dell’attuatore di trazione ... 14

Fig. 2.11 Motore BCE200012MP prodotto da Mini Motor S.r.l. ... 15

Fig. 2.12 Il veicolo autonomo Ulisse ... 16

Fig 3.1 Sistema elettronico di interfaccia assemblato... 18

Fig 3.2 Package disponibili per il PIC 16f874 ... 20

Fig 3.3 Scheda elettronica di base assemblata ... 21

Fig 3.4 Circuito di interfaccia tra encoder e PIC ... 21

Fig 3.5 Circuito per la determinazione del verso di avanzamento ... 22

Fig 3.6 Circuito di interfaccia tra joystick e PIC ... 23

Fig 3.7 Circuito di interfaccia RS232 ... 24

Fig 3.8 Circuito di alimentazione della scheda base ... 26

Fig 3.9 Schema complessivo della scheda base ... 27

Fig 3.10 Circuito di accoppiamento ottico tra driver motore di trazione e PIC 28 Fig 3.11 Circuito di comando del motore di trazione realizzata a relè ... 30

Fig 3.12 Scheda di interfaccia con il driver del motore di trazione ... 30

Fig 3.13 Schema della scheda di interfaccia per il motore di trazione... 31

Fig 3.14 Schema di principio del ponte di comando per il motore di sterzo .... 32

Fig 3.15 Realizzazione del ponte di comando per il motore di sterzo ... 32

Fig. 4.1 Modello geometrico del veicolo ... 34

Fig. 4.2 Caratteristica tensione - velocità per l’attuatore di trazione ... 36

Fig. 4.3 Caratteristica velocità – tensione per l’attuatore di trazione... 37

Fig. 4.4 Risposta ad un’onda quadra del modello del motore di trazione... 37

(10)

Fig. 4.6 Risposta del motore di trazione e del suo modello... 39

Fig. 4.7 Stime GPS fornite in un’ora con veicolo fermo... 40

Fig. 5.1 Struttura del controllore di velocità... 42

Fig. 5.2 Risposta ad un gradino del sistema reale e simulato... 42

Fig. 5.3 Scenario di guida proporzionale... 44

Fig. 5.4 Schema a blocchi del controllo con guida proporzionale... 46

Fig. 5.5 Scenario di riferimento nell'inseguimento di traiettoria... 47

Fig. 5.6 Confronto della risposta al gradino del modello lineare e del modello non lineare dello sterzo... 51

Fig. 5.7 Schema a blocchi del controllo a ciclo chiuso del sistema linearizzato51 Fig. 5.8 Risposta in frequenza dei modelli lineari dello sterzo ottenuti per gradini di diversa ampiezza ... 52

Fig. 5.9 Inseguimento di un target con guida proporzionale (0.5 m/s)... 54

Fig. 5.10 Inseguimento di un target con inseguitore di traiettoria (0.5 m/s) ... 54

Fig. 5.11 Inseguimento di un target con guida proporzionale (2.5 m/s)... 55

Fig. 5.12 Inseguimento di un target con inseguitore di traiettoria a (2.5 m/s)... 55

Fig. 5.13 Guida waypoint realizzata con il controllo di guida proporzionale ... 56

Fig. 5.14 Guida waypoint realizzata con il controllo di path following... 57

Fig. 6.1 Confronto su larga scala tra proiezione di Flamsteed e Gauss... 61

Fig. 6.2 Esempio di stima del percorso seguito... 68

Fig. 6.3 Confronto tra stime con diverso angolo iniziale di heading... 68

Fig. 6.4 Andamento temporale della stime dell’heading... 69

Fig. 6.5 Traiettoria stimata dall’EKF su due giri di pista ... 70

Fig. 6.6 Traiettorie stimate su un giro di pista con nuovi e vecchi parametri ... 70

Fig. 7.1 Il modello geometrico della visione stereo ... 74

Fig. 7.2 Definizione dei sistemi di riferimenti corpo, camera e inerziale ... 75

Fig. 7.3 Esempio di feature extraction e matching con SIFT ... 77

Fig. 7.4 Incertezza sulla triangolazione: la retta di regressione... 83

Fig. 7.5 Procedura di semplificazione del contorno dell'ostacolo ... 85

Fig. 7.6 Rilevamento di un ostacolo (risoluzione 160x120)... 87

Fig. 7.7 Rilevamento di un ostacolo (risoluzione 320x240)... 87

Fig. 7.8 Confronto del numero di keypoint a risoluzioni 160x120 e 320x240.. 88

Fig. 7.9 Manovra simulata di obstacle avoidance ... 88

Fig. 8.1 Dispositivi di comunicazione di Ulisse... 89

Fig. 8.2 Scheda di comunicazione COM1270... 90

Fig. 8.3 La libreria Simulink per la gestione di Ulisse ... 92

Fig. 8.4 Esempio di schema Simulink per una missione del veicolo Ulisse ... 92

Fig. 8.5 Pocket PC Mio 168 prodotto da Mio Tecnology Corp. ... 94

Fig. 8.6 Alcuni shot prelevati dal software di gestione del PocketPC... 96

Fig. 9.1 Sistemi di riferimento camera-frame e object-frame ... 99

Fig. 9.2 Scenario simulato del volo in formazione vision-based, con i marker distinguibili posizionati sull' YF22... 104

(11)

Fig. 9.4 Finestra di analisi utilizzata per i test indoor ... 110

Fig. 9.5 Grafici degli errori sui valori ricostruiti di X, Y, Z (in metri)... 111

Fig. 9.6 Grafici degli errori sui valori ricostruiti di roll, pitch, yaw (in gradi) 111 Fig. 9.7 Il robot KUKA utilizzato per i test indoor... 112

Fig. 9.8. Zoom sul modello in scala dell’aereo utilizzato ... 112

Fig. 9.9 Finestra di analisi per i test outdoor... 113

Fig. 9.10 Il processo di ricostruzione della posizione dell’aereo... 114

Fig. 9.11 Ricostruzione della posizione con un LED non identificato ... 114

Fig. 10.1 Esempio di rifornimento Boeing Flying Boom ... 116

Fig. 10.2 Esempio di rifornimento probe-and-drogue ... 117

Fig. 10.3 Scenario complessivo del rifornimento probe-and-drogue... 118

Fig. 10.4 Esempio di marker posizionati sul drogue... 119

Fig. 10.5 Architettura dell'ambiente di simulazione ... 120

Fig. 10.6 L'YF-22 utilizzato come UAV nello scenario simulato... 120

Fig. 10.7 Posizione relativa stimata tra probe e drogue ... 121

Fig. 10.8 Numero di marker visibili e flag di validità del sistema di visione . 121 Fig. 10.9 Posizione relativa reale tra probe e drogue... 122

(12)
(13)

1

1

I

NTRODUZIONE

Nel corso degli ultimi anni, molti sforzi sono stati compiuti per progettare e realizzare veicoli con un alto grado di autonomia. Scenari di recupero ostaggi, sorvolo di zone off-limit, perlustrazione di zone ad alto rischio incendi o frane sono solo alcuni esempi di applicazioni condotte da veicoli in cui l’incolumità della presenza umana a bordo può essere seriamente messa a rischio.

Un notevole impulso e incentivazione alla realizzazione di veicoli autonomi terrestri è stato recentemente dato dal DARPA (Defence Advance Research Projects Agency). Nel 2004 e nel 2005 DARPA ha promosso una competizione aperta a tutti i centri di ricerca nel mondo, con selezioni a periodi prefissati dell’anno ed una competizione finale. Il primo anno nessun veicolo riuscì a percorrere le 170 miglia del percorso con partenza in California ed arrivo in Nevada, attraversando il deserto americano. Gli sforzi compiuti, le conoscenze acquisite nel Darpa Grand Challenge 2004, e probabilmente i 2 milioni di dollari messi in palio per il vincitore del 2005, hanno evidenziato notevoli miglioramenti nelle dotazioni tecniche dei veicoli. Nel 2005 ben 5 veicoli sono riusciti a completare le 132 miglia del percorso ufficiale nel tempo prestabilito. Il 3 novembre 2007 si terrà una nuova competizione, lo Urban Challenge, con la quale il DARPA si prefigge il nuovo obiettivo di far percorrere ai veicoli 60 miglia all’interno di città abitate. I veicoli saranno immersi nel traffico cittadino, e rispetteranno il codice stradale, effettuando sorpassi, gestendo gli incroci, evitando collisioni ed effettuando manovre in parcheggi predisposti.

Nel settore aeronautico, sforzi simili sono portati avanti da alcuni anni per realizzare UAV (Unmanned Aerial Vehicle) in grado di svolgere compiti sempre più precisi ed evoluti. Allo stato attuale, gli UAV vengono utilizzati per monitoraggio incendi, mappatura e controllo del territorio, per la gestione programmata della semina in agricoltura, per l’avvistamento di truppe nemiche ecc. Molte delle soluzioni proposte in questi ultimi anni richiedono comunque grossi investimenti finanziari. Il lavoro di questi tre anni di dottorato si è incentrato quindi sulla soluzione di alcune problematiche relative ai veicoli autonomi, sia aerei che terrestri, con il vincolo dell’applicabilità a veicoli di basso costo.

In particolare, l’attività è stata rivolta sia verso una trattazione a livello teorico sia verso uno sviluppo a livello pratico, ponendo le basi per la realizzazione finale di prototipi funzionanti.

(14)

Nel primo anno è iniziata la progettazione e realizzazione del veicolo autonomo terrestre Ulisse. Il veicolo originale, un kart da golf pilotato manualmente, è stato in buona parte disassemblato. Sono stati scelti sensori ed attuatori, interfacciati, assieme al sistema di controllo, attraverso schede elettroniche realizzate appositamente. Sono stati realizzati i controllori di basso livello (controllo dell’angolo di sterzo e della velocità), e successivamente i sistemi di navigazione e guida. Per rispettare il vincolo del basso costo di realizzazione, ed evitare ad esempio l’utilizzo di laser (dispendiosi sia dal punto di vista economico che energetico), si è preferito studiare ed implementare un modulo di obstacle detection basato su visione stereo, utilizzando le ben più economiche webcam. Allo stadio attuale, Ulisse è in grado di muoversi autonomamente in spazi aperti, autolocalizzandosi ed identificando ostacoli. Inoltre, Ulisse può essere guidato manualmente mediante joystick o dispositivo palmare. Un modulo di obstacle avoidance è attualmente in fase di studio.

Parallelamente all’automatizzazione di Ulisse, è iniziata l’attività di ricerca basata sull’UAV Dedalo, il cui test è stato ultimato in tutte le sue parti. L’aeromodello è stato acquistato corredato di tutta la sensoristica necessaria per la navigazione e la guida autonoma nello spazio. Lo scopo del progetto Dedalo riguarda la realizzazione di un’applicazione di controllo cooperante tra il veicolo terrestre e quello aereo. Purtroppo, notevoli difficoltà sono state riscontrate in seguito alla scarsa documentazione fornita dai produttori dell’UAV riguardo al software di programmazione del microcontrollore a bordo dell’aereo. Alcuni voli in modalità semiautomatica (volo automatico, decollo e atterraggio manuali) sono già stati effettuati ed hanno riportato esito positivo. Sia Ulisse che Dedalo sono entrati a far parte del PRIN “Tecniche avanzate e valutazione sperimentale del controllo cooperativo di sistemi autonomi eterogenei”, che riguarda lo sviluppo di uno scenario di cooperazione tra veicoli aerei e terrestri, al cui sviluppo partecipano gruppi di ricerca delle università di Pisa (coordinatore nazionale), Siena, Bologna, Camerino e Politecnica delle Marche. Durante i 3 anni di attività sono state inoltre condotte ricerche su sistemi di visione per la stima di posizione ed orientamento relativi ad UAV. In particolare è stato sviluppato un sistema di visione per il volo autonomo di aerei in formazione e per il rifornimento aereo automatico. Il sistema attuale, in versione prototipale e realizzabile a basso costo, ha dimostrato di poter funzionare in condizioni reali, ed è stato inserito in uno scenario completo simulato di rifornimento in volo autonomo.

La presente tesi è così strutturata.

I capitoli 2-7 presentano nel dettaglio la realizzazione del veicolo autonomo terrestre Ulisse. .In particolare, nel capitolo 2 viene presentata la scelta dei sensori e degli attuatori montati sul veicolo. Nel capitolo 3 viene trattata la realizzazione elettronica di tutte le schede progettate. Nel capitolo 4 viene descritta la modellistica del veicolo e dei sensori utilizzati, mentre nei capitoli 5 e 6 vengono presentati rispettivamente i sistemi di guida e navigazione. Nel capitolo 7 è illustrato un innovativo sistema di obstacle detection basato su visione stereo, e la trattazione del veicolo Ulisse si conclude nel capitolo 8 con la presentazione degli strumenti software, di comunicazione e di calcolo utilizzati a bordo del veicolo.

(15)

Nei capitolo 9 viene descritto il sistema di stima di posizione e orientamento, mentre nel capitolo 10 viene presentato uno scenario completo simulato di rifornimento in volo autonomo, di cui il sistema di visione progettato è il nucleo centrale.

(16)
(17)

5

2

S

ENSORI ED ATTUATORI

2.1 Introduzione

Nella realizzazione di un veicolo autonomo la scelta dei sensori e degli attuatori ricopre un ruolo di fondamentale importanza. I sensori misurano quantità provenienti dal veicolo o dall’ambiente circostante, e quindi forniscono al veicolo una visione d’insieme dello scenario attuale. Gli attuatori permettono al veicolo di muoversi all’interno dello scenario.

L’affidabilità delle misure dipende in gran parte dai sensori scelti: accuratezza, precisione, risoluzione e non linearità sono parametri critici nella scelta degli strumenti di misura.

Come per i sensori, anche gli attuatori devono essere dimensionati in maniera ottimale, al fine di garantire le performance richieste in fase progettuale Nei motori rotanti, la coppia trasmessa e il numero di giri al minuto sono parametri tipici. Sia nella scelta dei sensori che degli attuatori è necessario prestare particolare attenzione all’assorbimento di corrente, all’ingombro e all’usura di ciascun componente; ed ovviamente, è fondamentale trovare il giusto compromesso tra prezzo e qualità dei dispositivi.

Nei prossimi paragrafi verrà descritto il setup di sensori ed attuatori installati sul veicolo Ulisse. In particolare saranno descritte nel dettaglio le motivazioni che hanno portato alla scelta di ogni singolo dispositivo, in modo da evidenziarne pregi e difetti e valutarne possibili alternative.

2.2 Il golf kart Dolly

Il veicolo preso in considerazione è un veicolo a tre ruote adibito al trasporto di persone ed attrezzature in campi da golf, prodotto dalla ditta Golf Accessory Producer S.r.l. La ruota anteriore, collegata direttamente allo sterzo, non è attuata. Le ruote posteriori, al contrario, sono collegate ad un motore in corrente continua capace di erogare una potenza di 400W con una tensione di alimentazione di 24V, fornita da due batterie da 12V collegate in serie. Il

(18)

conducente controlla il veicolo attraverso lo sterzo solidale alla ruota anteriore ed alla manetta, collegata ad un potenziometro che fornisce una tensione da 0 a 5V. Il riferimento di tensione viene inviato al motore, che converte il riferimento in una coppia. Una volta rimosso lo sterzo, inutile se il veicolo viene automatizzato, il riferimento di tensione viene fornito da un computer collegato al veicolo.

Fig. 2.1 Il veicolo a tre ruote Dolly

2.3 Sensori

Per rendere un veicolo terrestre completamente autonomo un set di sensori è necessario. Il set non è univoco, e dipende preliminarmente dall’ambiente nel quale il veicolo dovrà muoversi, dalle risorse economiche disponibili, dalla dimensione del veicolo e dalla potenza massima erogabile dal sistema di alimentazione. In particolare, Ulisse è stato dotato di un encoder per la misura della velocità, di un encoder per la misura dell’angolo di sterzata, di un GPS per la misura della posizione assoluta, e di due webcam in configurazione stereo per rilevare ostacoli.

2.3.1 Misura della velocità: encoder incrementale

Una prima quantità da misurare è la velocità lineare del veicolo. Per motivi di semplicità d’uso, di robustezza e affidabilità la scelta è ricaduta su un encoder incrementale. In generale due sono le diverse disposizioni di encoder su un veicolo a tre ruote[1]:

1. L’encoder viene montato direttamente sulla ruota anteriore, tipicamente non attuata. In caso di slittamento delle ruote attuate le misure dell’encoder sono consistenti con la velocità del veicolo.

(19)

2. Due encoder vengono montati ciascuno su una delle due ruote attuate. Dato che il veicolo è dotato di differenziale, i due encoder possono misurare velocità diverse tra loro. Le misure delle due velocità devono essere quindi mediate per ottenere la velocità del veicolo. Il vantaggio nell’utilizzo di questa configurazione rispetto a quella precedente consiste nella possibilità di continuare a misurare la velocità di una ruota in presenza di una rottura di uno dei due sensori.

L’utilizzo di un encoder per ogni ruota, se da una parte è più affidabile delle precedenti, ha comunque lo svantaggio di portare ad un aumento dell’assorbimento di corrente complessivo, ad un numero maggiore di informazioni da gestire, e ad un aumento del costo totale del veicolo.

Valutati pregi e difetti delle singole configurazioni, e rimanendo in linea con la specifica di minimizzare il costo complessivo del veicolo, l’encoder incrementale è stato posizionato sulla ruota anteriore.

Fig. 2.2 Montaggio dell’encoder incrementale sulla ruota anteriore del veicolo

L’encoder è stato fissato al mozzo della ruota anteriore tramite una molla in lamiera. Una ruota gommata fissata al rotore dell’encoder permette una perfetta aderenza con il perno della ruota del veicolo, in modo da evitare slittamenti relativi delle due ruote, che porterebbero ad un’errata misurazione della velocità del veicolo.

La velocità lineare del posteriore è ricavabile utilizzando la velocità angolare della ruota rilevata dall’encoder e la posizione angolare dello sterzo. Se identifichiamo con Renc il raggio della ruota gommata montata sull’encoder, e con Rwheel il raggio del mozzo della ruota, si può dimostrare facilmente che la

velocità angolare della ruota è pari a:

wheel enc enc wheel R R ⋅ ω = ω (2.1)

Due strategie possono in pratica essere utilizzate per ricavare la velocità angolare dell’encoder:

(20)

1. Si può misurare il tempo che intercorre fra un impulso ed il successivo (misure più accurate per basse velocità).

2. Fissato un tempo di misura, si può contare il numero di impulsi inviati dall'encoder (misure migliori per velocità elevate).

Per semplificare la programmazione del software di gestione dell’encoder è stato utilizzato il secondo metodo a conteggio di impulsi.

Supponendo di voler rappresentare la velocità angolare della ruota anteriore su 8 bit (numero di piedini di I/O generalmente messi a disposizione dai microcontrollori commerciali a basso costo), all’interno di ogni passo di campionamento il massimo numero di impulsi Nenc per giro non deve essere superiore a 256. Fissato un tempo di campionamento pari a Ts=100 ms, valutato che la velocità massima raggiungibile dal veicolo è pari a 10 Km/h (circa 2,7 m/sec), e considerato che la ruota del veicolo ha un raggio pari a

21 . 0 =

R m, si deve perciò verificare:

256 2 max π ⋅ ⋅ enc enc wheel N R R R V (2.2)

Sostituendo i valori numerici si verifica che un encoder con 1024 impulsi per giro rispetta la (2.2). L’encoder scelto è il modello TIW38 prodotto da Tekel Instruments S.r.l. La risoluzione che si ha nella misura della velocità è di 20 mm/sec. Encoder con valori più elevati di impulsi per giro, sono più ingombranti e costosi [ 2, 3, 4, 5]. Di seguito sono riportate le caratteristiche più significative:

Diametro 38 mm

Altezza 40 mm

Risoluzione fino a 1024 PPR

Alimentazione 5V

Assorbimento max di corrente 100 mA

Temperatura di lavoro -10° C a 70° C

Vibrazioni 10 g (da 10 a 2000 Hz)

Peso 0,1 Kg

Tab. 2.1 Caratteristiche tecniche dell'encoder Tekel TIW38

Si noti che una volta rilevata la velocità angolare della ruota anteriore del veicolo, è possibile calcolarne banalmente la velocità lineare tramite la relazione:

R vwheelwheel

Tale velocità è ovviamente affetta da errori di natura diversa: • Un errore di misura sul raggio della ruota

(21)

• Un errore di quantizzazione introdotto dall’encoder. • La ruota potrebbe essere sgonfia o usurata.

Allo scopo di ricavare la posizione del veicolo è necessario integrare la misura della velocità fornita dall’encoder. Se questa è affetta da errore, l’integrazione può portare ad errori che si propagano nel tempo. Per questo motivo un encoder non viene quasi mai utilizzato da solo (ad esempio ai fini di un controllo di posizione del veicolo) per lunghi periodi temporali.

Fig. 2.3 Encoder incrementale TIW38 prodotto da Tekel Instruments S.r.l

2.3.2 Misura dell’angolo di sterzo: encoder assoluto

La misurazione dell’angolo di sterzo è necessaria per permettere al sistema di controllo di mantenere il veicolo sull’orientamento desiderato. Per misurare l’angolo di sterzo è stato installato a bordo del veicolo un encoder assoluto. Mentre un encoder assoluto permette di rilevare posizioni angolari assolute, un encoder relativo permette di misurare incrementi di posizioni angolari [6]. Nel dimensionamento e nella scelta del modello commerciale si è tenuto di conto che risoluzioni dell’ordine del grado sono accettabili.

L’encoder utilizzato è il modello TKTC prodotto da Tekel Instrument S.r.l, dotato di 512 tacche con uscita dati binaria su 9 fili.

In conseguenza delle tolleranze meccaniche sul veicolo, e del fatto che il microcontrollore scelto per l’acquisizione dai sensori ha 8 piedini per le operazioni di I/O, il bit più significativo dei 9 costituenti il corpo dati risulta inutilizzato. La risoluzione è dunque pari a 360 256 1, 40= ° gradi.

Diametro 50 mm

Altezza 90 mm

Risoluzione 256 CPR

Alimentazione 5V

Assorbimento max di corrente 30 mA

Temperatura di lavoro -10° C a 70° C

Vibrazioni 10 g (da 10 a 2000 Hz)

Peso 0,3 Kg

(22)

La risoluzione del sensore è stata aumentata considerando che lo sterzo ha una saturazione fisica a ±45° gradi. Sono stati utilizzati degli ingranaggi di riduzione con rapporto pari ad 1 2 , portando la minima variazione dell’angolo rilevabile a 180 256 0, 70= ° . In Tab. 2.2 sono riportate le principali caratteristiche del modello TKTC.

Due fine corsa di sicurezza a molla sono stati installati per evitare che eccessivi angoli di rotazione dello sterzo portino alla collisione della ruota con il telaio del veicolo. I fine corsa, una volta urtati, attivano un modulo dell’elettronica di controllo che arresta il motore di sterzo.

Fig. 2.4 Encoder assoluto TKTC prodotto da Tekel Instruments S.r.l

2.3.3 Ricevitore GPS (Global Positioning System)

Per limitare il problema della deriva degli errori di posizione nel tempo dovuti all’utilizzo di un encoder, il veicolo è stato dotato di un dispositivo GPS per il rilevamento della posizione e della velocità in un sistema di riferimento assoluto. Le informazioni ottenute separatamente da encoder e GPS saranno successivamente filtrate in modo da ottenere stime di posizione affidabili anche su lunghi intervalli temporali.

La stima può essere eseguita utilizzando due distinte possibilità operative, diverse sia concettualmente che per il grado di precisione conseguibile:

• La tecnica del point positioning (posizionamento assoluto di un punto singolo nel sistema di riferimento assegnato), con la quale si determina la posizione con un’incertezza dell’ordine di decine di metri; si tratta di una tecnica di precisione sufficiente per la navigazione o per tracciamenti speditivi (con i cosiddetti apparati “pathfinder”), ma non per le applicazioni topografiche.

La tecnica del differential positioning o relative positioning, (DSPG) con la quale si determina la posizione di un punto rispetto a un altro considerato noto.

Informazioni dettagliate riguardo il funzionamento del sistema GPS posso essere rintracciate in [7,8,9].

Per ragioni di semplicità, di un basso costo di realizzazione, e per ottenere un sistema totalmente autonomo ed indipendente da qualsiasi altro, il sistema di

(23)

navigazione è stato implementato basandosi sull’approccio point positioning nonostante i vantaggi ottenibili in termini di accuratezza della posizione con l’utilizzo di un sistema differenziale.

Il dispositivo utilizzato è il modello 35 LVS prodotto da Garmin International Inc..

Fig. 2.5 GPS 35 LVS prodotto da Garmin International Inc.

Dai dati di targa si evidenziano le seguenti caratteristiche:

Dimensioni 56 x 96 x 26 mm

Peso 124.5 g

Antenna Integrata nel ricevitore

Temperatura di lavoro -30° C a +90° C

Tensione di alimentazione Da 3,6 a 6,0Vcc.

Max assorbimento corrente 150 mA

Frequenza di aggiornamento 1 Hz

Accuratezza della posizione (GPS) 15 m RMS

Accuratezza della posizione (DGPS) 5 m RMS Accuratezza della velocità 0,2 m/sec RMS

Tab. 2.3 Caratteristiche del ricevitore GPS Garmin LVS35

Il dispositivo è dotato di due uscite di tipo seriale. Sulla prima escono le informazioni in codice ASCII nello standard NMEA [10,11], mentre sulla seconda le stesse informazioni sono fornite in binario.

2.3.4 Sistema di visione stereo

Oltre ai sensori descritti sino ad ora, sono presenti a bordo del veicolo due videocamere, montate rigidamente ad una staffa parallela al terreno e solidale con lo sterzo del veicolo. Le videocamere vengono utilizzate per la rilevazione di ostacoli.

Le videocamere utilizzate sono due webcam Quickcam PRO 4000 prodotte da Logitech Inc.

Il posizionamento è stato effettuato svolgendo alcune semplici considerazioni riguardo le caratteristiche fisiche del veicolo e i vincoli determinati dalle caratteristiche delle videocamere [12].

(24)

Fig. 2.6 Videocamere a bordo di Ulisse

Le due videocamere sono state regolate in configurazione di tipo parallel

cameras [13], ovvero:

• I due piani immagine sono disposti in orizzontale e sono coplanari nello spazio.

• Le due videocamere hanno identica lunghezza focale (le due videocamere sono dello stesso tipo) e risultano traslate solo lungo l’asse di moto del veicolo.(Fig. 2.6).

L’asta su cui sono fissate le due videocamere è stata posizionata in modo da risultare incernierata sulla lastra d’acciaio che sovrasta la ruota anteriore del veicolo. L’altezza h dell’asta rispetto al suolo è circa 55 cm; in questo modo è possibile inquadrare un oggetto che si trova al suolo a circa 1.6 metri.

Frame rate 30 frame/sec

Risoluzione video 640x480g

Risoluzione foto 1280x960

Campo visivo orizzontale ~40°

Campo visivo verticale ~30°

Tab. 2.4 Caratteristiche della webcam Logitech Quickcam Pro 4000

La baseline B, distanza tra le due videocamere lungo l’asse X del riferimento sul piano immagine delle videocamere, è stata fissata a 30 cm. La scelta è frutto di un compromesso: una baseline più elevata comporterebbe una minor porzione di immagine comune alle due telecamere, creando problemi agli algoritmi di image processing presentati più avanti, mentre una baseline inferiore darebbe luogo a problemi in fase di triangolazione per la ricostruzione della posizione 3D dello scenario. In Fig. 2.7, Fig. 2.8 e Fig. 2.9 vengono raffigurati la configurazione e i parametri descritti.

(25)

Fig. 2.7 Vista frontale del posizionamento delle videocamere su Ulisse

La distanza d indicata in Fig. 2.9 corrisponde alla distanza (rispetto alle due videocamere) alla quale i coni dei campi visivi orizzontali delle due videocamere si sovrappongono. Tale distanza può essere calcolata come:

( )

20 40 2

B

dctg o ≈

cm (2.3)

Fig. 2.8 Vista laterale del posizionamento delle videocamere su Ulisse

(26)

2.3.5 Altre soluzioni possibili

A bordo del veicolo Ulisse è stato inoltre preparato l’alloggio per una piattaforma inerziale Crossbow IMU 400CC-100. Tuttavia, dato che i risultati ottenuti con il set di base di sensori scelto risultano affidabili, la IMU stessa non è stata utilizzata. Molte altre tipologie di sensori potrebbero essere installati su Ulisse. Per permettere al veicolo di conoscere immediatamente, con una risoluzione e accuratezza scelta in fase di progettazione, la propria posizione angolare rispetto al nord terrestre potrebbe essere utilizzata una bussola. Altri sensori di uso comune nei veicoli autonomi terrestri sono i LIDAR (Laser Imaging Detection and Ranging) [14,15,16], che permettono di identificare la distanza dagli oggetti puntati da un raggio laser, ed i radar [17,18,19]. Benché sensori di sicura utilità, questi non sono stati installati per mantenere bassi i costi complessivi del veicolo.

2.4 Attuatori

In questo paragrafo saranno descritte brevemente le caratteristiche tecniche e la tipologia degli attuatori montati sul kart.

2.4.1 Attuatore di trazione

Per effettuare il minor numero possibile di modifiche alla struttura originale del veicolo, l’attuatore di trazione ed il relativo driver di potenza montati dalla casa costruttrice sono stati mantenuti. Il motore eroga una potenza di 400W ed è alimentato da due batterie da 12V in serie. Il driver di potenza è alloggiato sotto la sella del conducente il veicolo, e pilota il motore in coppia convertendo la tensione di input in una corrente di controllo sul circuito di armatura del motore. Sul veicolo originario la tensione di input arriva al driver da un potenziometro solidale con la manetta di controllo posta sul manubrio. Eliminando lo sterzo, e mantenendo lo stesso driver, è stato sufficiente realizzare una scheda di interfaccia con il driver di potenza del motore.

(27)

2.4.2 Attuatore di sterzo

La presenza di un motore di azionamento dello sterzo si è resa necessaria per la movimentazione autonoma della ruota anteriore Il motore è stato scelto sulla base della tensione di alimentazione d’ingresso e della massima coppia erogabile. Il motore scelto è il motore in corrente continua a magneti permanenti BCE200012MP prodotto da Mini Motor S.r.l..

Rapporto di riduzione 125

Potenza resa 32W

Giri in ingresso a vuoto 2800 rpm

Giri in uscita a vuoto 22,4 rpm

Coppia nominale 11,5 Nm

Tensione 12V

Corrente

Peso 1,990 Kg

Tab. 2.5 Caratteristiche del motore Mini Motor BCE200012MP

Per permettere di ottenere coppie in uscita maggiori della coppia in ingresso il motore monta all’interno un meccanismo di riduzione con un rapporto ingresso-uscita pari a 125. Le caratteristiche tecniche del motore sono descritte in Tab. 2.5. La trasmissione tra motore ed albero dello sterzo avviene per mezzo di ruote dentate, con rapporto di riduzione pari ad 0.5. La coppia massima sviluppabile sull’asse di rotazione dello sterzo è perciò il doppio di quella nominale e pari a 23 Nm. La scelta di tale motore ha il vantaggio di poter sviluppare velocità di rotazione abbastanza elevate, ma lo svantaggio di sviluppare coppie piuttosto basse.

Fig. 2.11 Motore BCE200012MP prodotto da Mini Motor S.r.l.

2.5 Conclusioni

In questo capitolo sono stati descritti i sensori e gli attuatori montati su Ulisse. Poichè l’insieme di attuatori e sensori non è univoco, la scelta è ricaduta su alcuni componenti a basso costo e vasta reperibilità commerciale. In particolare, sono stati scelti sensori di posizione assoluta (GPS) e di velocità (encoder

(28)

incrementale), sensori angolari per la misura dell’angolo di sterzata (encoder assoluto), ed infine sensori per la rilevazione dell’ambiente circostante (webcam).

(29)

17

3

P

ROGETTAZIONE ELETTRONICA

3.1 Introduzione

La progettazione e la realizzazione dell’elettronica a bordo del veicolo è un punto delicato dell’intera progettazione di un veicolo autonomo. Scelte errate nel dimensionamento dei componenti possono portare al malfunzionamento del sistema complessivo, e addirittura al suo danneggiamento. Componenti troppo ingombranti possono limitare l’area fisica utilizzabile sul veicolo, e componenti con elevati assorbimenti di corrente e tensioni di funzionamento possono riscaldarsi troppo, necessitando quindi di dissipatori costosi e di notevole ingombro, e contribuire notevolmente ad una rapida scarica delle batterie di alimentazione del veicolo. La scelta del protocollo di comunicazione hardware con i dispositivi esterni deve essere oculata: si dovrà tener sempre conto dell’affidabilità, della diffusione commerciale di dispositivi che sfruttano tale protocollo (per una garanzia di scalabilità), e dei costi indotti in un’eventuale applicazione.

L’elettronica su Ulisse è stata progettata rispettando le seguenti specifiche: 1. Massimo spazio utilizzabile: 180 x 210 x 130 mm. La limitazione è

dovuta alle dimensioni dell’alloggio predisposto per l’elettronica, posizionato sotto il seggiolino del conducente.

2. Assorbimento di corrente basso. Minore è l’assorbimento di corrente, maggiore è la durata delle batterie a bordo del veicolo. La scarica delle batterie principali del veicolo durante una missione può portare al completo fallimento della missione stessa.

3. Comunicazione mediante UART RS232. La scelta del protocollo di comunicazione è stata effettuata sulla base della diffusione commerciale di dispositivi che ne fanno uso, della semplicità di gestione del protocollo, e della robustezza dei dati in presenza di disturbi esterni.

(30)

La circuiteria complessiva (scheda di interfaccia) è composta di sette elementi principali:

1. Circuito di alimentazione 2. Circuito di interfaccia RS232 3. Circuito di interfacciamento sensori 4. Circuito di interfaccia joystick 5. Circuito di controllo

6. Driver per motore di avanzamento 7. Driver per attuatore di sterzo

In linea generale, separare i driver dalla scheda base conferisce scalabilità e semplicità di manutenzione all’intero sistema elettronico: un’eventuale sostituzione di uno o più attuatori, infatti, si concretizza nella sostituzione dei relativi driver, senza dover modificare la scheda principale. La separazione meccanica introduce inoltre la possibilità sia di posizionare i driver di potenza in modo da ottimizzare la dissipazione di calore, sia di diminuire i disturbi dovuti ai dispositivi di potenza, generalmente alimentate con tensioni diverse rispetto a quella della scheda sulla quale sono posizionati.

Al fine di rendere il sistema di interfaccia più compatto possibile, e di sfruttare anche in altezza il vano adibito all’elettronica, le schede dei due driver sono state fissate sopra la scheda base.

Rispettando quanto appena esposto, i circuiti di alimentazione, interfaccia e comando sono stati realizzati su un'unica scheda base, mentre i driver sono stati montati su schede indipendenti.

(31)

3.2 Scheda di controllo principale

Il circuito di comando a microcontrollore è il cuore della scheda base, ed ha il compito di acquisire i dati provenienti dai sensori, comandare gli attuatori, gestire la comunicazione seriale con un PC, fornire il tempo di campionamento all’intero sistema e gestire il funzionamento manuale del veicolo.

Un microcontrollore è un dispositivo elettronico programmabile composto da un processore di tipo RISC (Reduced Instruction Set Computer) ad alta efficienza e da una serie di circuiti di interfaccia, comunicazione e temporizzazione. Utilizzando un microcontrollore è possibile minimizzare il numero di componenti da montare sulla scheda base diminuendo in tal modo disturbi, complessità circuitale e dimensioni di ingombro. Caratteristiche tipiche di un microcontrollore sono:

• Assorbimento ridotto

• Frequenza di funzionamento fino a 40 MHz • Tempi di esecuzione delle istruzioni noti • Pin di I/O configurabili

• Timer ed interfacce di comunicazione integrate

Le specifiche richieste al microcontrollore per la realizzazione del sistema di interfaccia sono le seguenti:

• Una periferica di comunicazione UART per la comunicazione col sistema di controllo

• Una periferica di comunicazione SPI per la gestione del driver di avanzamento del veicolo

• Almeno 2 ingressi analogici per l'acquisizione dei segnali provenienti da un joystick per la movimentazione manuale del veicolo

• Almeno 10 ingressi digitali per l'acquisizione dei segnali provenienti dai sensori

• Almeno 4 uscite digitali per la gestione dei driver degli attuatori-

• Un contatore ad 8 bit con segnale di conteggio esterno per il rilevamento della velocità di avanzamento del veicolo

(32)

Il microcontrollore utilizzato è un PIC16f874, un RISC a basso consumo ad 8 bit molto versatile prodotto da Microchip. I PIC della famiglia 16xXXX sono divisi in due categorie: gli OTP, programmabili una sola volta, nei quali il programma viene caricato su EPROM (16cXXX), e quelli programmabili più volte, in cui il codice risiede su memorie di tipo FLASH (16fXXX). Il codice numerico individua il modello, le periferiche contenute nel microcontrollore e la quantità di memoria RAM, ROM ed E2PROM,.

Il PIC16f874, viene fornito in tre package diversi: 40 pin PDIP, 44 pin TFQP o 44 pin PLCC.

Fig 3.2 Package disponibili per il PIC 16f874

Il formato PDIP è stato utilizzato per tre motivi fondamentali:

1. Per realizzare il prototipo con questo tipo di package può essere usata una scheda millefori standard.

2. La realizzazione di un circuito stampato con dispositivi PDIP è meno costoso rispetto agli altri due.

3. In fase di realizzazione del software il PDIP è il package più comodo per riprogrammare il dispositivo.

Futuri sviluppi della scheda base potranno prevedere un circuito di programmazione per il PIC 16f874 potendo così usare un package tipo PLCC più compatto rispetto al PDIP (è sconsigliabile usare un dispositivo TFQP perché non è estraibile e per essere rimosso deve essere dissaldato).

Sulla scheda base sono stati montati tre led di segnalazione per indicare lo stato di funzionamento del microcontrollore.

1. Un led verde indica l'attivazione del funzionamento manuale del veicolo (movimentazione tramite joystick)

2. Un led rosso indica l'avvenuta trasmissione di un pacchetto dati verso un PC collegato al microcontrollore attraverso una porta seriale

(33)

Fig 3.3 Scheda elettronica di base assemblata

3.3 Scheda di interfaccia encoder assoluto

Il circuito di comando a microcontrollore prevede, oltre al microcontrollore stesso, una serie di componenti necessari ad interfacciare i sensori. Le uscite degli encoder scelti sono di tipo Open Collector, ed è stato quindi necessario inserire una resistenza di pull-up per fornire al BJT dell'encoder la corrente necessaria al funzionamento.

Fig 3.4 Circuito di interfaccia tra encoder e PIC

La corrente massima sopportabile dal transistore NPN di uscita degli encoder è 5mA, ed il resistore RPU dovrà avere un valore di resistenza non inferiore a 1KΩ. Quando il transistore si interdice la corrente massima è quella che può essere assorbita dalla porta di ingresso del microcontrollore. La massima corrente che il PIC può assorbire attraverso un ingresso digitale è pari a 25mA, superiore rispetto a quella dell'encoder. La resistenza minima è quindi determinata dall'encoder. cc DSAT PU DMAX V V R I − ≥ (3.1)

(34)

La resistenza effettivamente utilizzata è pari a 2.2KΩ. La corrente con la quale viene pilotato l'ingresso digitale del PIC determina la velocità di commutazione. In particolare, durante il passaggio dalla saturazione all'interdizione del BJT, la corrente all'ingresso viene fornita dalla RPU.

3.4 Interfaccia Encoder Incrementale

I segnali provenienti dall'encoder incrementale sono due onde quadre a frequenza variabile sfasati fra loro di 1/4 di periodo. La frequenza massima con la quale commutano i segnali è espressa nell’equazione (3.2):

max max 1.4 2 wheel enc enc V R N f R R π ≃ = ⋅ ⋅ kHz (3.2)

In questo caso è stato verificato che una resistenza di pull-up pari a 1 kΩ offre un tempo di risposta breve per la corretta acquisizione della velocità rientrando nei limiti di corrente dell'ingresso digitale.

Per il rilevamento del senso di rotazione della ruota anteriore è stato inserito un circuito elettronico, il cui nucleo è un D Flip-Flop.

Fig 3.5 Circuito per la determinazione del verso di avanzamento

Il circuito svolge le funzioni di memoria ad un bit, campionando il segnale di ingresso sul terminale D in presenza di un fronte di salita del segnale in ingresso al terminale di clock.

3.5 Scheda di interfaccia joystick

Una delle specifiche iniziali consisteva nella possibilità di guida del veicolo in modalità automatica o manuale. La gestione dell'avanzamento manuale del kart è stata effettuata tramite un joystick posizionato accanto al sedile di guida. Il joystick utilizzato è un Logitech WingMan USB. Al joystick è stata tolta tutta l'elettronica di gestione del protocollo USB, ed i segnali analogici provenienti dai potenziometri sono convertiti dall' ADC all’interno del PIC.

(35)

Dal momento che i potenziometri montati sul joystick hanno una resistenza pari a 10 KΩ, mentre la massima resistenza consigliata in ingresso all’ADC del microcontrollore è pari a 2.5 KΩ, è stato inserito un adattatore di impedenza tramite amplificatore operazionale in configurazione buffer.

Fig 3.6 Circuito di interfaccia tra joystick e PIC

L'amplificatore operazionale è alimentato con una tensione di 5V.

Fra i dispositivi in commercio è stato scelto il Max492, prodotto da Maxim. Per evitare che un’accidentale disconnessione del connettore del joystick durante il funzionamento provocasse seri danni al veicolo e all’ambiente circostante, un ingresso del microcontrollore è stato collegato ad un pin del connettore, e tenuto a potenziale nullo da un collegamento col terminale di massa realizzato sul joystick. Finchè il joystick è connesso, l'ingresso rimane a livello basso; quando il connettore viene disconnesso, una resistenza di pull-up sulla scheda porta alto l'ingresso, indicando che i dati provenienti dall’ADC non sono corretti e provocando l’arresto immediato del veicolo.

3.6 Scheda di interfaccia RS232

La comunicazione fra la scheda a microcontrollore ed il PC di comando è stata realizzata tramite interfaccia seriale RS232.

Lo standard seriale RS232 impone i livelli di trasmissione seriale a ±10 Vcc per ridurre disturbi dovuti alla lunghezza della linea. Si è reso quindi necessario utilizzare un circuito di interfaccia che adatti i livelli dello standard RS232 allo standart TTL del microcontrollore e viceversa. Il circuito scelto per svolgere questo compito è l’integrato Max232 di Maxim che, con l'aggiunta di 5 condensatori, innalza la tensione proveniente dal microcontrollore secondo lo standard RS232 ed attenua la tensione in ingresso portandola allo standard TTL.

(36)

Fig 3.7 Circuito di interfaccia RS232

3.7 Circuito di alimentazione

Il circuito di alimentazione della scheda base è uno fra i più ingombranti e, senza dubbio, il più delicato dal punto di vista della dissipazione di calore. Il veicolo è alimentato da due batterie da 12V e capacità di 60Ah collegate in serie in modo da fornire 24Vcc al driver di potenza del motore. Il compito del circuito di alimentazione è quello di trasformare la tensione di una delle batterie montate sul veicolo in una tensione stabilizzata a 5Vcc con un ripple massimo di ±0.5V (standard TTL).

I dispositivi presenti sulla scheda base che necessitano di essere alimentati dal circuito di alimentazione sono indicati in Tab. 3.1.

Componente Assorbimento (mA) Quantità

Microcontrollore Pic 16f874A 300 1 Adattatore RS232 Max 232 15 1 OpAmp RailToRail Max 492 0.25 2

Relè Finder 30.22S 5 2

Pull up encoders 2.2 10

Tab. 3.1 Dispositivi alimentati sulla scheda base

Nel dimensionamento del circuito di alimentazione è buona prassi dimensionare il circuito in modo tale da erogare il 25 ÷ 50% circa in più della corrente massima stimata. Per permettere successivamente di aggiungere altri circuiti non previsti nelle specifiche iniziali, tale valore è stato raddoppiato. L'assorbimento totale stimato è pari a circa 500 mA, e l'alimentatore è stato quindi dimensionato affinchè riesca ad erogare una corrente di almeno 1A.

E’ stato preso in esame sia la realizzazione di un alimentatore lineare, sia di un alimentatore switching [20].

Un regolatore di tensione lineare è un dispositivo di ridotte dimensioni e poco soggetto a disturbi, ma con una grande dissipazione di energia e quindi di calore. Un regolatore switching è un circuito ad alto rendimento, ma con una sensibilità

(37)

ai disturbi più alta rispetto ad un alimentatore lineare; proprio a causa della sensibilità ai disturbi, i componenti che compongono l'alimentatore devono essere generalmente posizionati con una topologia particolare, incrementando lo spazio occupato dal circuito rispetto ad un alimentatore lineare. La dissipazione di un alimentatore switching è dovuta solamente alla potenza dissipata durante le commutazioni del transistore di switch. Per determinare la resistenza termica massima del dissipatore da usare è necessario calcolare la potenza dissipata dal circuito durante il funzionamento.

Per regolare la tensione sono stati selezionati sia un Lm317, un regolatore lineare di tensione variabile capace di erogare 1.5 ÷ 2.2A, sia un regolatore switching integrato Maxim Max748, che con l'aggiunta di pochi componenti è in grado di erogare una corrente di 5A.

Utilizzando un Lm317, dato che la corrente erogabile dal regolatore è vicina alla corrente massima, si dovrebbe utilizzare un dissipatore appropriato. La potenza dissipata può essere calcolata come:

(

)

max

max

I 7

diss in out in out

P =PP = VV ⋅ = W (3.3)

La massima resistenza termica del dissipatore viene calcolata sfruttando i parametri termici dell’Lm317 come mostrati in Tab. 3.2. Si ottiene:

(

max

)

max max 0.85 j a ca jc diss T T R R P − = − ≃ °C/W (3.4)

Massima temperatura di giunzione (Tjmax 150°C

Temperatura ambiente T 25°C

Resistenza termica tra giunzione e case Rjc 17°C/W Tab. 3.2 Parametri termici per il circuito Lm317

I problemi connessi con un dissipatore con queste caratteristiche sono molteplici:

• è molto ingombrante (dimensioni tipiche: 200 x 100 mm) • è costoso (intorno ai 20 euro)

• un aumento della temperatura ambiente (considerata pari a 25°) comporterebbe un aumento della temperatura di giunzione ponendo a rischio rottura il componente

Utilizzando un altro componente lineare è possibile diminuire solamente la resistenza termica fra la giunzione e case, mentre la potenza dissipata rimane costante per ogni regolatore di tensione lineare quando i valori di tensione e corrente sono quelli descritti precedentemente.

(38)

Utilizzando invece il Max748, dal datasheet del componente si ottiene che il valore della massima resistenza termica del dissipatore necessario al Max748 è pari a max

ca

R = 90 °C/W.

(39)
(40)

3.8 Driver motore di trazione

Il driver realizzato per l’attuatore del motore interfaccia la scheda di comando a microcontrollore con il driver di potenza già installato su Ulisse.

Il driver di potenza del motore di avanzamento ha un ingresso analogico che regola la velocità e due ingressi digitali per l'individuazione del senso di marcia. Il microcontrollore comunica con il driver tramite una seriale sincrona con la quale viene impostata la velocità di avanzamento e due segnali digitali per individuare il senso di avanzamento del veicolo.

Il driver dell'attuatore trasforma il segnale seriale in una tensione compresa fra 0 e 5V, ed adatta le tensioni provenienti dal microcontrollore per comandare correttamente gli ingressi digitali del driver di potenza del motore.

In commercio esistono numerosi DAC programmabili che ricevono un dato tramite interfaccia seriale sincrona SPI e forniscono in uscita una tensione proporzionale all’ingresso. Il componente scelto è il circuito integrato Max550 di Maxim, un DAC seriale sincrono con uscita in tensione a bassa potenza. Il clock della trasmissione seriale, il bus dati seriale di ingresso e due segnali di sincronismo (uno per l'attivazione della trasmissione dati, l'altro per impostare la tensione di uscita relativa al valore di ingresso), sono i segnali che devono essere forniti al componente per poter comunicare col microcontrollore.

L’alimentazione del DAC è fornita da un alimentatore dedicato, indipendente dal microcontrollore, e separato dal resto del circuito mediante dei fotoaccoppiatori per eliminare i possibili disturbi provenienti dal driver di potenza del motore. L'introduzione di una barriera di fotoaccoppiatori rende comunque la trasmissione dati più lenta, perchè i componenti del fotoaccoppiatore (diodo LED, fototransistore) sono dispositivi a semiconduttore che introducono ritardi durante la commutazione. L'entità del ritardo dipende dal carico che il transistore deve pilotare e dalla corrente di pilotaggio del diodo LED.

Fig 3.10 Circuito di accoppiamento ottico tra driver del motore di trazione e PIC

Le resistenze di pull-up e quella di alimentazione del LED sono state dimensionate in modo da ottenere un ritardo accettabile senza danneggiare i componenti installati.

(41)

Il fotoaccoppiatore usato è un 4N27, dispositivo molto comune e a basso costo con uscita a singolo BJT.

Per fornire al Max550 dei livelli logici ben definiti sono stati utilizzati una porta NOT con Trigger di Schmitt, posizionati tra il fotoaccoppiatore ed il DAC. L'inserimento di questo componente, oltre a fornire al Max550 due livelli logici 'puliti', annulla l'effetto invertente che ha il fotoaccoppiatore nella configurazione mostrata in Fig 3.10.

La massima velocità del clock della comunicazione seriale sincrona è stata determinata mediante prove sperimentali sul circuito. I valori delle costanti di tempo di salita e di discesa sono risultati:

• Tempo di salita τLH: 10µs

• Tempo di discesa τHL: 7µs

Con queste costanti di tempo la frequenza massima di clock per la comunicazione seriale sincrona è risultata 38.4 Kbit/sec. Dal momento che il pacchetto dati necessario ad impostare l'uscita analogica è composto da due byte, il tempo necessario alla trasmissione è di:

440 n byte s baudrate µ ° ≅ (3.5)

che è molto più piccolo dei 10ms che costituiscono il tempo di ciclo della scheda a microcontrollore.

Sul veicolo originale gli ingressi analogici che determinano il senso di avanzamento del veicolo erano forniti al driver di potenza del motore tramite un deviatore elettromeccanico posto sulla manopola della manetta. Per ricreare questi segnali sono stati utilizzati due micro-relè elettromeccanici.

Il relè opera una separazione elettrica fra il segnale di comando e quello di uscita, eliminando la necessità di inserire un circuito di accoppiamento ottico fra PIC e relè (se fosse stato utilizzato un interruttore allo stato solido sarebbe stato necessario inserire un circuito di accoppiamento ottico per ogni segnale). Per poter erogare una corrente di 40 mA necessaria ad eccitare il relè, troppo alta per essere erogata dall'uscita del microcontrollore, è stato realizzato un circuito di pilotaggio realizzato con BJT.

Il BJT è polarizzato con una corrente di base di 3mA che garantisce la saturazione del dispositivo quando la corrente di collettore è quella richiesta dal relè.

Il diodo Dp è un diodo di protezione che serve a scaricare la bobina del relè

durante la commutazione on-off ed evita che questa corrente vada a danneggiare la giunzione del transistor di comando.

(42)

Fig 3.11 Circuito di comando del motore di trazione realizzata a relè

In tabella Tab. 3.3 vengono mostrati i componenti da alimentare.

Componente Assorbimento (mA)

DAC seriale Max548 5 OpAmp RailToRail Max492 5

Esa Not 74C14 3

4 x Pull Up Fotoaccoppiatore 10 Totale 23

Tab. 3.3 Assorbimento di corrente per i dispositivi sulla scheda del motore di trazione

Dal momento che la corrente totale è molto bassa è stato sufficiente realizzare un alimentatore con un regolatore lineare Lm78L05. Per stabilizzare la tensione è stato inoltre inserito un condensatore sull'uscita del regolatore.

(43)
(44)

3.9 Driver motore sterzo

Il motore di sterzo è pervenuto già corredato del relativo driver, senza comunque nessuna istruzione a riguardo. La scheda progettata è quindi un’interfaccia con il driver originale del motore.

I comandi che la scheda riceve in ingresso sono due segnali digitali che attivano la rotazione destra o sinistra dello sterzo.

Fig 3.14 Schema di principio del ponte di comando per il motore di sterzo

(45)

33

4

M

ODELLISTICA

4.1 Introduzione

Prima di realizzare un sistema fisico complesso, e comunque prima di progettarne l’eventuale sistema di controllo, è pratica comune realizzarne un modello matematico manipolabile con gli strumenti classici dell’ingegneria. Eventuali comportamenti anomali, se non addirittura distruttivi, possono essere evidenti già in una prima fase di simulazione al computer.

Lo scopo della modellistica, e successivamente dell’identificazione di un sistema fisico, è di trovare un insieme di ingressi e uscite significative ed una relazione che li leghi, in modo che il sistema matematico replichi il più fedelmente possibile il sistema reale. A partire dalla descrizione matematica del sistema è poi possibile applicare le tecniche standard per controllare e/o simulare il sistema ottenuto. In questo capitolo vengono descritte le linee guida seguite per modellare ed identificare sensori ed attuatori presenti su Ulisse.

4.2 Modello cinematico del veicolo Ulisse

Le equazioni che descrivono il modello cinematico del veicolo sono state ricavate analizzando la geometria e la cinematica del veicolo. Supponiamo che il veicolo sia inserito all’interno di un sistema di riferimento piano cartesiano, come illustrato in Fig. 4.1.

I vincoli cinematici del sistema possono essere espressi tramite la (4.1):

(

)

(

)

sin cos 0 sin cos 0 f f x y x y ϑ ϑ ϑ ϕ ϑ ϕ − + =    − + + + =   ɺ ɺ ɺ ɺ (4.1)

Le due equazioni esprimono il fatto che il veicolo non può muoversi perpendicolarmente all’asse delle ruote posteriori e anteriori.

(46)

Fig. 4.1 Modello geometrico del veicolo

A partire dalle relazioni geometriche:

(

) (

)

     + = + = = − + −

ϑ

ϑ

sin cos 2 2 2 D y y D x x D y y x x f f f f (4.2) e derivando, si ottiene:    + = − =

ϑ

ϑ

ϑ

ϑ

cos sin D y y D x x f f & & & & & & (4.3)

Si hanno quindi i due vincoli differenziali:

(

)

(

)

( )

   = + − = + + + + − 0 cos sin 0 cos cos sin

ϑ

ϑ

ϕ

ϑ

ϕ

ϑ

ϕ

ϑ

y x D y x & & & & & (4.4)

Il sistema può essere scritto nella forma A(q)⋅ q&=0, cioè

ϑ

x y D

ϕ

f x f y

(47)

(

)

cos

(

)

cos

( )

0 0 sin 0 0 cos sin =                 + + − −

ϕ

ϑ

ϕ

ϕ

ϑ

ϕ

ϑ

ϑ

ϑ

& & & & y x D (4.5)

Lo spazio di tutte le possibili velocità compatibili con il vincolo è dato dal

( )

(

)

Ker A q . Si verifica facilmente che il Ker della matrice A ha dimensione due. Una possibile base del

Ker

(

A

( )

q

)

è la seguente:

( )

( )

( )

( )

( )

            0 sin cos sin cos cos D

ϕ

ϕ

ϑ

ϕ

ϑ

,            

1

0

0

0

(4.6)

La combinazione lineare dei due vettori fornisce lo spazio delle velocità compatibili con il vincolo scritto,

( )

( )

( )

( )

( )

1 2 1 0 0 0 0 sin cos sin cos cos

λ

λ

ϕ

ϕ

ϑ

ϕ

ϑ

ϕ

ϑ

            +             =             D y x & & & & (4.7)

dove

λ

1 e

λ

2 sono rispettivamente la velocità di avanzamento e di sterzata della ruota anteriore. La prima è facilmente ricavabile conoscendo la velocità angolare della ruota ωwheel ed il raggio R tramite la relazione:

R

v

=

ω

wheel⋅ (4.8)

4.3 Modellistica degli attuatori

In questo paragrafo verrà presentata la strategia utilizzata per modellare ed identificare gli attuatori presenti sul veicolo.

4.3.1 Modello dell’attuatore di trazione

Dal punto di vista dell’identificazione, l’attuatore di trazione ed il relativo driver costituiscono un sistema unico. L’ingresso misurabile del sistema driver-attuatore è il segnale digitale, espresso su un byte, della tensione da fornire al driver. L’uscita misurabile è la velocità della ruota anteriore del veicolo. Lo scenario di raccolta dati è stato il seguente:

(48)

• Dislivello del terreno nullo • Batterie con piena carica

• Veicolo a vuoto (nessun passeggero a bordo).

La caratteristica statica è stata identificata a tratti, fornendo progressivamente valori crescenti di tensione (codificata su 8 bit) e misurando la relativa velocità a regime. Il comportamento dell’attuatore, lineare a tratti per la presenza di una dead zone, è mostrato in Fig. 4.2:

Fig. 4.2 Caratteristica tensione - velocità per l’attuatore di trazione

La zona morta, compresa tra 2.1V e 3V circa, deriva dal fatto che per tensioni corrispondenti a valori di coppia bassi, la coppia motrice generata dal motore non riesce a superare la coppia resistente dovuta principalmente alla forza di attrito tra il suolo e le ruote. Aumentando ad esempio il peso del veicolo la zona morta assumerà dimensioni maggiori, e la caratteristica riportata dovrebbe essere leggermente modificata. Per le specifiche del sistema, non è comunque previsto alcun passeggero o payload aggiuntivo durante il funzionamento automatico.

E’ stata anche introdotta un’ulteriore non linearità dovuta al comportamento assunto dal sistema driver-motore quando si richiede al motore di invertire la coppia, cioè quando il valore di tensione di riferimento passa da un valore maggiore di 2,5V ad uno minore di 2,5V e viceversa. Durante un comando di inversione di coppia si avverte infatti un ritardo di 0.5 secondi, introdotto da alcuni relè sul driver di potenza, in cui il motore tende a fermarsi per poi invertire realmente la coppia.

L’identificazione del modello dinamico è stata effettuata utilizzando la tecnica di identificazione con funzioni modulanti [21]. Il risultato ottenuto è una funzione di trasferimento del secondo ordine con due poli complessi coniugati, che lega l’ingresso digitale della tensione alla velocità della ruota anteriore:

Figura

Fig. 2.1  Il veicolo a tre ruote Dolly
Fig. 2.8  Vista laterale del posizionamento delle videocamere su Ulisse
Fig. 2.11  Motore BCE200012MP prodotto da Mini Motor S.r.l.
Fig 3.3  Scheda elettronica di base assemblata
+7

Riferimenti

Documenti correlati

‣ GIOCATORE(Codice Fiscale, Cognome, Nome, Ruolo, Città di Nascita, Squadra) con vincolo di integrità referenziale tra Squadra e la relazione SQUADRA. ‣ PARTITA(Numero,

Come si legge dall’articolo 4 dello statuto, l’associazione ha, infatti, le seguenti finalità: “promuovere e sviluppare la cultura e la pratica di un uso abituale della

A questa domanda sono state date 39 risposte differenti e una grande parte delle delle risposte (41% quindi 16 risposte su 39) conferma che le conoscenze degli

uhod{hg dqg +618, lv xvhg dv wkh uhjuhvvlrq htxdwlrq/ ihzhu iruhfdvwv duh vljqlfdqw lq h{sodlqlqj wkh iruhfdvw huuruv iurp rqh djhqf|/ vhh Wdeoh 441 Wklv fdq eh gxh hlwkhu wr

 Con lo schema di operazione si può fare una stima del costo di un’operazione contando il numero di accessi alle istanze di entità e relazioni.  Il risultato può essere riassunto

• l’entità padre partecipa con cardinalità (0, 1), anche se la generalizzazione è totale (perché, comunque, un’istanza del padre potrebbe essere associata solo ad alcune

•  la scelta fra le alternative si può fare con metodo simile a quello visto per l'analisi delle ridondanze (però non basato solo sul numero degli accessi). •  è

 le relationship diventano relazioni sulle chiavi delle relazioni che rappresentano le entita coinvolte (piu gli