DuckietownHS

Duckietown High School

…un progetto Open Source di robotica per le scuole superiori

 

Il progetto nasce all’interno del laboratorio xLab.

Guardando il video promozionale del progetto Duckietown, nato al MIT come corso per gli studenti interessati alle sfide che propone la programmazione di auto a guida autonoma, si è pensato ad una versione che non facesse uso di computer vision ma esclusivamente di sensori montati a bordo del veicolo.

Il progetto, sottoposto all’attenzione dei componenti del team che ha ideato il progetto Duckietown, che era promosso dal MIT come progetto educational duckietown.mit.edu, fu accolto da questi con entusiasmo, e dopo una prima proposta per il nome “Duckietown light”, fu deciso di chiamarlo “DuckietownHS” per indirizzarlo alle High School.

Attualmente il progetto DuckietownHS è  realizzabile seguendo le istruzioni riportate di seguito.

La versione per le scuole medie, arriverà dopo l’estate e si chiamerà DuckietownGS (Grade School) . Ci stiamo lavorando con l’Università Federico II di Napoli ed il Toyota Technological Institute at Chicago attivamente coinvolto nel progetto Duckietown.

 

Obiettivi

DuckietownHS, consiste nella costruzione e la programmazione dei veicoli che chiamiamo Duckietbot e che dovranno muoversi autonomamente sulle strade di Duckietown, una città in miniatura. L’obiettivo del progetto è fornire una esperienza educativa per l’apprendimento della robotica affrontando un tema attuale, quello dei veicoli a guida autonoma, avvicinando i ragazzi alla programmazione dei microcontrollori. Il Duckiebot è provvisto di sensori avanzati di STMicroelectronics, che lo rendono un laboratorio utile a sperimentare quanto appreso in classe sui libri.

 

La missione base

La missione base del duckiebot, per la quale il veicolo dovrà essere programmato, consiste nel muoversi autonomamente per le strade di duckietown, rispettando la segnaletica disposta orizzontalmente ed i semafori, anch’essi disposti orizzontalmente e costituiti da una striscia di led RGB. La missione base prevede che il veicolo agli incroci scelga in maniera casuale la direzione da prendere tra quelle possibili delle quali viene a conoscenza leggendo il cartello stradale che anticipa la presenza di un incrocio, sempre gestito da un semaforo.

Pubblicato da Perlatecnica su sabato 17 marzo 2018

 

La scheda a microcontrollore

Il duckiebot è controllato da una scheda Nucleo-F401RE che monta un microcontrollore STM32 di STMicroelectronics.

Il microcontrollore viene programmato in C++. Le istruzioni per installare una toolchain, ossia l’insieme dei software necessari ad editare e compilare il codice, sono descritte in questo articolo pubblicato sul nostro sito. In questa sezione sono inoltre disponibili dei tutorial indipendenti dal progetto, ma utili a prendere confidenza con la programmazione della scheda Nucleo.

Una introduzione utile alla scheda Nucleo, è disponibile sul sito mbed di ARM. Mbed  è il supporto di librerie di driver e di sistema operativo, consigliato per lo sviluppo del progetto.

 

Perception

La perception del duckiebot è basata sui sensori MEMS montati sulla scheda di espansione dell’ecosistema xNucleo, la IKS01A2  e sui sensori di prossimità basati su tecnologia Time of Flight 53L0A1. Tutte le schede di espansione sono impilate l’una sull’altra e comunicano con il microcontrollore SMT32 attraverso una interfaccia I2C.

 

Il duckiebot inoltre è dotato di tre sensori IR utili a restare in corsia e ad individuare e leggere il cartello stradale. Due di questi sensori sono montati lateralmente ed anteriormente sullo chassi. Uno è montato frontalmente e nella missione base viene utilizzato per l’individuazione del cartello stradale.

 

Infine sulla base dello chassis, di fianco al sensore IR, viene montato un sensore di colore per la lettura del colore rosso oppure verde. Nella missione base, a ciascun incrocio, un solo semaforo per volta diventa verde.

Il controllo dei motori

Il controllo dei due motori in corrente continua, avviene attraverso la scheda di espansione IHM12A1di STMicroelectronics.

 

La specifica

Nel documento di specifica disponibile qui, viene introdotto il progetto, gli obiettivi e la lista del materiale. Il codice sorgente rilasciato nell’archivio ufficiale è quello della demo presentata alla MakerFaire Rome2017.

Si tratta di un progetto che implementa solo alcune funzionalità ma che costituisce un buon punto di partenza per cimentarsi nella programmazione del duckiebot.

 

Il software per partire

Per facilitare lo start-up dello sviluppo del codice, abbiamo rilasciato qui un workspace compatibile con l’ambiente di sviluppo consigliato più su in questo articolo.

In questo workspace è disponile il progetto “duckietownhs_start” che contiene tutte le librerie necessarie al completamento del progetto.

Il progetto  duckietownhs_start va scaricato, decompresso localmente sul PC e copiato nella cartella che stiamo utilizzando come workspace.