research

Implementazione di un algoritmo di obstacle avoidance e object tracking tramite un sistema di visione monoculare

Abstract

Con il termine di image processing si intende la processazione di immagini utiliz- zando operazioni matematiche in cui l'input è un'immagine, come ad esempio un frame di una fotografia o di un video. L'output può essere ancora un'immagine o un set di caratteristiche o parametri relazionati all'immagine. Questa parti- colare tecnica è molto importante, in quanto può essere applicata a molteplici campi, dall'automazione industriale all'intrattenimento, alla videosorveglianza. Scopo di questa tesi è realizzare un sistema composto da una macchini- na dotata di una webcam che, tramite image processing, raggiunge un target (identificato in una pallina arancione) parzialmente nascosto da un ostacolo, che è in grado di aggirare con un angolo di sterzata più o meno ampio in base alle informazioni relative alla distanza dell'ostacolo ed alla visibilità della regione di incertezza creata intorno al target, entrambe fornite dall'algoritmo creato. La regione di incertezza rappresenta tutte le probabili posizioni in cui il target si potrebbe trovare, con una probabilità che aumenta all'aumentare della visibilità. Il livello di visibilità di un oggetto in un punto può essere inizialmente de- finito come l'esistenza o meno di una linea, detta Line Of Sight (LOS), che congiunge il suddetto punto e l'oggetto. La presenza di un ostacolo tra questi due determinerà la non esistenza della LOS. Questo modo però è troppo sempli- cistico per rappresentare il livello di visibilità necessario per lo scopo di questa tesi; per questo motivo è stata definita una regione di incertezza attorno all'og- getto, nel caso in questione la pallina, che dia un'informazione probabilistica sul livello di visibilità. Ad esempio, nel caso in cui non ci sia la presenza di ostacoli, tutte le LOS relative alla regione di incertezza varranno 1, garantendo così una piena visibi- lità, che avrà valore unitario; al contrario, se la pallina è parzialmente dietro ad un ostacolo, che la copre nella sua parte destra, le LOS di destra varranno 0, ed il valore della visibilità sarà compreso tra 0 ed 1, in base al grado di copertura della pallina. Se si definiscono delle possibili posizioni della webcam, a sinistra, a destra, in alto o in basso di 20 cm, si potranno sfruttare ulteriori informazioni riguardanti la visibilità della pallina: in questo caso, spostandosi sulla sinistra, si avrà un aumento della visibilità. Si determina così un gradiente di visibilità che sarà maggiore o minore quando la visibilità sarà maggiore o minore. Il gradiente si traduce in una variazione di angolo che indica in maniera proporzionale di quanto la macchinina dovrà girare per evitare l'ostacolo ed ottenere una piena visibilità della pallina. Tramite calibrazione della webcam si avranno a disposizione i suoi parametri instrinseci, quali il field of view e l'angle of view, che serviranno per una stima in real time della distanza tra la webcam e la pallina, e tra la webcam e gli ostacoli che risiedono nell'ambiente circostante. Il punto di forza di questa tesi sta nel fatto che viene utilizzato un sistema di visione monoculare, grazie al quale si riesce ad avere una buona stima della distanza e si riesce a determinare una mappa di visibilità in real-time che stabi- lisce se si è in presenza o meno di un ostacolo, permettendo alla macchinina di aggirarlo. L'algoritmo creato riceve, tramite seriale collegata al microcontrollore principale, dei pacchetti di dati contenenti gli effettivi valori degli angoli di roll, pitch e yaw dovuti agli ammortizzatori, che vengono stimati dalla IMU montata sulla macchinina. Questi valori compenseranno quelli errati che non tengono conto degli angoli, che fornirebbero così una stima non fedele della distanza. Infine sarà possibile effettuare il tracking della pallina arancione grazie al- l'aiuto della libreria OpenCV, elaborando ogni singolo frame del flusso video

    Similar works