Accueil > Projets, études > Nos réalisations > TaxiBot
TaxiBot
Présentation
Développé pour la Fête de la Science 2019, TaxiBot est un dispositif support à des ateliers d’initiation des plus jeunes aux bases de l’algorithmique, mais en mode 100% débranché. Aucun dispositif numérique (ordinateur, tablette...) ni même électronique n’est manipulé par les utilisateurs.
Au lieu de cela, de simples cartes disposées sur un plateau permettent de donner des instructions de route à un robot figurant un taxi évoluant dans une grande ville.
L’interprétation des programmes réalisés par les utilisateurs est confiée à une caméra et à une chaîne de traitement d’image.
Différents niveaux de lectures sont offerts par ce dispositif :
- l’initiation aux concepts de séquence, d’itération et d’appel de procédure pour les plus jeunes
- les techniques d’optimisation, en proposant des challenges consistant à réaliser un programme donné avec le moins de cartes possible
- la présentation de techniques utilisées en traitement d’image et reconnaissance de formes.
Utilisation
Le robot représente un taxi autonome, évoluant dans une grande ville. Celle-ci est matérialisée par un quadrillage à l’image des avenues New Yorkaises (ou des rues de Valbonne village 😉). L’utilisateur est un opérateur de la centrale qui coordonne et guide les taxis par radio. Il doit donner au véhicule l’itinéraire à suivre pour rallier une destination, avec le même type d’instructions que celles utilisées par un GPS, c’est à dire en indiquant ce qu’il doit faire à chaque intersection (aller tout droit, tourner à droite...).
La séquence est communiquée en disposant les cartes représentant les instructions de route sur un plateau, qui est analysé par la caméra. Si la séquence est valide, elle est transmise par radio au robot qui exécute alors l’itinéraire fourni.
Pour permettre l’introduction de notions avancées en algorithmique (itération, sous-programme), le nombre d’instructions contenues dans une séquence est limité à 5.
Des cartes de répétition peuvent être utilisées pour condenser une séquence d’instructions identiques. Elles sont introduites lorsqu’on aborde la notion d’optimisation de la taille du programme.
Par ailleurs, en plus de celle correspondant au programme principal, 3 autres lignes permettent de définir des sous-programmes, pouvant être appelés depuis n’importe où. Leur utilisation est introduite en proposant des exercices ne pouvant pas être résolus par une séquence simple et des répétitions.
L’envers du décor
TaxiBot se compose de deux sous-ensembles :
- le système de supervision, basée sur une Raspberry Pi installée dans la valise
- un robot mBot de Makeblock un peu adapté par nos soins
Les différents articles de cette rubrique détaillent la réalisation de ces éléments et présentent également les retours d’expérience (article à venir) de TaxiBot sur le terrain, ainsi que des détails sur le traitement d’image au coeur du dispositif et une approche un peu différente de la programmation de l’Arduino.