DuckietownHS

Duckietown High School

   …un progetto Open Source di robotica per le scuole superiori
   … an Open Source Project of robotic turned to high schools

 

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.

 

The project is born within the xLab laboratory.

Looking at the promotional video of the Duckietown project, born at MIT as a course for students interested in the challenges of self-driving car programming, it was thought of a version that did not use computer vision but exclusively sensors mounted on board the vehicle.

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.

 

The project, submitted to the attention of the members of the team that conceived the Duckietown project, which was promoted by MIT as an educational project duckietown.mit.edu, was welcomed by them with enthusiasm, and after a first proposal for the name “Duckietown light “, it was decided to call him” DuckietownHS “to direct him to the High School.

Currently the DuckietownHS project is achievable by following the instructions below.

The version for middle schools will arrive after the summer and will be called DuckietownGS (Grade School). We are working with the Federico II University of Naples and the Toyota Technological Institute at Chicago actively involved in the Duckietown project.

 

 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.

 

 Objectives

DuckietownHS, consists of the construction and programming of the vehicles we call Duckietbot and which will have to move autonomously on the streets of Duckietown, a tiny city. The objective of the project is to provide an educational experience for the learning of robotics by addressing a current topic, that of autonomously driven vehicles, bringing young people closer to microcontroller programming. The Duckiebot is equipped with advanced sensors from STMicroelectronics, making it a useful laboratory for experimenting with what has been learned in the classroom on books.

 

 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.

 

 The basic mission

The basic mission of the duckiebot, for which the vehicle must be programmed, consists of moving autonomously on the streets of duckietown, respecting the signs arranged horizontally and the traffic lights, also arranged horizontally and made up of a strip of RGB LEDs. The basic mission provides that the vehicle at intersections randomly choose the direction to take among those possible of which it becomes aware by reading the road sign that anticipates the presence of an intersection, always managed by a traffic light.

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.

 

 The microcontroller board

The duckiebot is controlled by a Nucleo-F401RE that mounts an STM32 microcontroller from STMicroelectronics.

The microcontroller is programmed in C ++. The instructions for installing a toolchain, thati is the set of software necessary to edit and compile the code, are described in this article published on our website. In this section are also available tutorials independent of the project, but useful to become familiar with the programming of the Core board.

A useful introduction to the Core board is available on the ARM mbed site. Mbed is the support of driver and operating system libraries, recommended for the development of the project.

 

  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.

 The perception of the duckiebot is based on MEMS sensors mounted on the expansion card of the xNucleo ecosystem, the IKS01A2 and on the proximity sensors based on Time of Flight 53L0A1 technology. All expansion cards are stacked on top of each other and communicate with the SMT32 microcontroller via an I2C interface.

 

 

 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 chassis. Uno è montato frontalmente e nella missione base viene utilizzato per l’individuazione del cartello stradale.

 

 The duckiebot has also three IR sensors useful to stay in lane and to identify and read the road sign. Two of these sensors are mounted laterally and anteriorly on the chassis. One is mounted frontally and in the basic mission is used for the identification of the road sign.

 

 

 

 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.

 

 Finally, on the base of the chassis, next to the IR sensor, a color sensor is mounted to read the red or green color. In the basic mission, at each intersection, only one traffic light turns green at a time.

 

 Il controllo dei motori DC

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

 Controlling DC motors

The control of the two DC motors, takes place through the IHM12A1 expansion card from 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.

 

 Specification

In the specification document available here, the project, objectives and material list are introduced. The source code released in the official archive is that of the demo presented at 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.

 This project that implements only some features, but it is a good starting point to try the duckiebot’s programming

 

 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.

 

 Getting started

In order to facilitate the start-up of the development of the code, we have released here a workspace compatible with the development environment recommended more on this article.

The “duckietownhs_start” project is available in this workspace. It contains all the libraries needed to complete the project.

The duckietownhs_start project should be downloaded, unzipped locally on the PC and copied to the folder we are using as a workspace.