REALIZZAZIONE HARDWARE E SOFTWARE DI UN ROBOT MOBILE DI SERVIZIO
1. REALIZZAZIONE
HARDWARE E SOFTWARE
DI UN ROBOT MOBILE DI
SERVIZIO
Tesi di Laurea in
SISTEMI OPERATIVI
Laureando:
Basilio Marco Matessi
Relatore:
Chiar.mo Prof. Enzo
Mumolo
Anno Accademico 2009-2010
2. Introduzione
Scopo di un robot mobile di servizio:
sviluppare un sistema autonomo che realizzi un servizio utile
all'uomo.
In questa tesi è stato sviluppato un robot prototipale.
Obbiettivo: realizzare una flotta di robot mobili per provare
algoritmi di coordinazione.
Software realizzato: movimento casuale del robot, schivando
gli ostacoli.
Architettura cognitiva a priorità.
3. Parte meccanica
2
4
5
6
motoreB
motoreA
LEGENDA:
███ Base del robot
███ Sonar collegati
███ Sonar non collegati
███ Ruote motrici
███ Ruote Pivot
Struttura a quadriciclo:
2 route fisse motorizzate
2 ruote pivottanti
Piattaforma a più livelli:
Livello 1: batterie, logica di controllo
Livello 2: sensori ad ultrasuoni
4. Scheda di controllo
Piattaforma di sviluppo
Scheda a microprocessore TS-7250 (ARM9)
Linux 2.4 + estensione RTAI
Periferiche
Porte Digital I/O
SPI
ADC 5 canali
Ethernet
2 porte seriali
2 porte USB
Bus PC104
32Mb di memoria flash
5. Sensori
Ultrasuoni SRF-05
Logica integrata nel modulo
Accesso tramite Digital I/O (pin LCD)
Odometrici Heds-5505
Accesso tramite Digital I/O (pin DIO)
Funzionamento in quadratura
Specifiche:
Frequenza 40kHZ
Range massimo: 4 metri
Range minimo: 3 metri
7. Parte software
Sistema operativo real-time con Linux+RTAI:
Generazione segnali PWM con thread periodici real time
Lettura dai sonar con thread periodici real time
Lettura odometri con thread periodici real time
Comunicazione con programma utente tramite FIFO
Task
Sonar 1
Task
Sonar 2
Task
Motori
FIFO
Programma di gestione
Task
Sonar 3
Task
Sonar 4 RTAI
Scheduler
Task
Odometria
LINUX
Scheduler
Kernel
space
User
space
9. Due segnali in quadratura per rilevare velocità e
direzione
Una lettura per ogni possibile variazione
Problema!
Frequenza di campionamento troppo elevata
(320kHz)
Soluzione?
● Contatore esterno HCTL-2016 (non implemetato)
Task odometria
ARM
ARM
Prima
Dopo
10. Debug dei task
Debug dei sonar:
Task che periodicamente:
Legge il valore dei sensori
Stampa su terminale le distanze
Debug motore:
Invio manuale di comandi alla FIFO dei motori
Da terminale:
Debug odometria:
Task che periodicamente:
Legge lo stato dei sensori
Verifica se ci sono state variazioni
Conta la distanza percorsa
Stampa su terminale dei valori
echo -n "comando" > /dev/rtf/"fifo_motori"
12. Test Robotici
Programma implemetato Random Walk
Struttura reattiva a due livelli:
Esplora, priorità 0
Evita ostacolo, priorità 1
Sensori
Esplora
Ostacolo Accettazione
14. Conclusioni
E' stato realizzato un prototipo che usa i sensori ad ultrasuoni per
evitare ostacoli.
Il controllo dei motori è stato realizzato dalla scheda ARM utilizzata.
E' stato usato Linux con un patch Real Time.
La lettura degli odometri e' stata progettata ma non realizzata in
questa tesi.
E' stato realizzato un programma di movimento casuale
nell'ambiente.
Il prototipo funziona correttamente ed è pronto per essere duplicato
in diversi esemplari.