Stereoscopia odometrica per la navigazione autonoma
Creators: name: Bodino, Alex
Publisher: name: Scuola Universitaria della Svizzera Italiana (SUPSI)
Year: 2023

description: Questo progetto è basato sullo studio e l’applicazione della stereoscopia odometrica per la guida autonoma. Il codice è stato scritto in Python con l’uso esteso della libreria OpenCV. Il progetto sviluppato affronta diverse sfide chiave nell’ambito di computer vision, permettendo di esplorare diversi campi di sviluppo ed applicazioni. Il punto cruciale iniziale è stato il calcolo della mappa di disparità, che ci permette di calcolare la distanza tra il veicolo e i vari ostacoli nella nostra simulazione. Successivamente viene esplorata la generazione di una point cloud a partire dalla mappa di disparità. Una point cloud rappresenta una nuvola di punti che descrive l’ambiente circostante. Questo permette di descrivere, distinguere e mappare l’ambiente circostante. Per stimare il movimento del nostro veicolo, sono state implementate due tecniche: il Feature Tracking e il Feature Matching. Queste due tecniche hanno due obbiettivi diversi, il primo permette di calcolare i punti chiave della nostra applicazione in modo veloce ma con un errore molto elevato. Il secondo metodo ci permette di raffinare la nostra soluzione al costo delle prestazioni del nostro codice. Fondamentalmente nel nostro sistema viene usato un metodo robusto di computer vision per stimare il movimento tramite i dati precedentemente menzionati chiamato solvePnP Ransac. Questo algoritmo permette di stimare il movimento e l’orientamento del nostro veicolo ad ogni frame. È un passo fondamentale nella navigazione autonoma. L’obbiettivo finale del progetto è stato l’implementazione della programmazione concorrente per migliorare le prestazioni dell’applicazione, puntando ad un possibile uso real-time per progetti futuri. ___ This project is based on the study and development of a stereoscopic system aimed at providing odometric estimation for a mobile agent. This technology finds applications in various fields, such as updating images in virtual reality headsets, autonomous driving systems, and numerous mobile robotics applications. In this project, we focused on estimating the trajectory of a vehicle in urban streets. The code was written in Python, extensively utilizing the OpenCV library. The developed project addresses several key challenges in computer vision, enabling exploration in diverse development areas and applications. The initial crucial point of focus was computing the disparity map, which allows us to calculate the distance between the vehicle and various obstacles in our simulation. Subsequently, we explored generating a point cloud from the disparity map. A point cloud represents a collection of points describing the surrounding environment. To estimate the vehicle's motion, we implemented two techniques: Feature Tracking and Feature Matching. These techniques produced different outcomes. The former enables the fast computation of key points for our application but with a higher error rate, while the latter method refines our solution at the cost of slower code performance. Essentially, our system relies on a robust computer vision method to estimate motion using the aforementioned data, known as solvePnP Ransac. This algorithm estimates the movement and orientation of our vehicle at each frame. The goal of the project was to implement concurrent programming to enhance application performance, aiming for potential real-time usage in future projects.