ARTURo 2.0¶
Descrizione¶
ARTURo 2.0 è l'evoluzione di ARTURo: un Rover con due ruote motrici e un ball caster, capace di muoversi, guardarsi intorno con una WebCam, riconoscere i marker AR e le facce.
Nella vecchia versione il flusso video ripreso dalla telecamera a bordo veniva inviato (WiFi) ad un PC esterno che lo elaborava e inviava al Rover i comandi opportuni.
La nuova versione utilizza una Scheda con una CPU abbastanza potente (UDOO o ODROID) (MiniPC MINIX NEO Z64A) da poter elaborare direttamente le informazioni prese dai sensori e tradurle in azioni per permettere al Rover di muoversi autonomamente all'interno di un determinato ambiente. Al posto della WebCam viene utilizzato un Kinect (o in alternativa 2 ps3eye in stereoscopia) Asus Xtion Pro Live per avere informazioni relative alla profondità oltre all'immagine RGB.
La stima della posizione del Rover nel tempo (odometria) è molto più precisa per l'utilizzo di motori con encoder e sensori inerziali (IMU).
L'utilizzo del Kinect (o delle due ps3eye per visione stereoscopica) Asus Xtion permette alla nuova versione di ARTURo di ricostruire mappe in 3D dell'ambiente in cui si muove e di localizzarsi all'interno di esse (SLAM).
Come nella versione precedente è possibile controllare a distanza il Rover tramite un dispositivo collegato in WiFi (PC, NetBook, SmartPhone) e visualizzare in remoto il video catturato. La versione 2.0 permette di visualizzare sia le immagini RGB sia la mappa 3D ricostruita. All'interno della mappa è possibile impostare dei percorsi che il Rover può compiere autonomamente.
Nella scheda principale (UDOO o ODROID) (MiniPC MINIX NEO Z64A) è installato Ubuntu e il ROS (Robot Operating System). Il ROS è open source e fornisce una serie di device driver, librerie e strumenti software utili a sviluppare qualsiasi applicazione di robotica. L'applicazione di controllo del robot viene sviluppata creando una rete di nodi (processi) che comunicano con i sensori, gli attuatori e tra loro attraverso uno scambio di messaggi. Il ROS fornisce una serie di nodi organizzati in pacchetti e stack già sviluppati per le principali funzionalità. Per esempio usando lo stack relativo alla navigazione è possibile ottenere i comandi di velocità da inviare ai motori del Rover a partire dalle informazioni relative all'odometria, ai sensori (IMU) e alla posizione target. Il pacchetto gmapping consente di ottenere la mappa dell'ambiente e la localizzazione del Rover nella mappa (SLAM) usando uno scanner laser (Lidar) e l'odometria. Il pacchetto rtabmap permette di ottenere lo SLAM usando dispositivi RGB-D (esempio tipico: il Kinect).
Video¶
Nel Video la precedente versione di Arturo con a bordo un Kinect mentre costruisce una mappa.
Schema a blocchi del sistema¶
Componenti Utilizzati¶
1 Scheda quad core ARM Cortex A9 (UDOO o ODROID)- 1 MINIX NEO Z64A (MiniPC Intel Z3735F 64-bit 2GB Ram 32GBRom 802.11n Wi-Fi Bluetooth 4.0)
- 1 Arduino Due
- 1 Scheda driver dei motori (Arduino Motor Shield)
- 2 Motori DC con riduzione ed encoder
- 1 Scheda IMU 9 gradi di libertà (Arduino 9 Axes Motion Shield)
- 1
Kinect (o 2 ps3eye) - 1 Asus Xtion Pro Live
- 2 Ruote gommate
- 1 Ball Caster
- 1 Pacco batterie
La struttura del Rover è realizzata con due basi di compensato e 4 distanziatori di alluminio.