[Concours] SqueakBot sur le XO

(SqueakBot est un des projets retenus par le jury d’OLPC France pour son concours d’idée. Dans ce post, Séverin Lemaignan nous présente l’avancement du projet)

Suite à l’appel à projet pour le XO lancé par l’association OLPC France durant l’été 2008, Planète Sciences a été retenu avec l’idée de porter et d’adapter l’environnement dédié à la robotique pédagogique SqueakBot sur le XO. (une présentation détaillée du projet Boite à Bots dont fait partie SqueakBot est disponible en ligne – en anglais).

Le projet, durant les 4 derniers mois, a avancé dans plusieurs directions : développement de SqueakBot lui-même (avec en particulier l’adaptation de SqueakBot à l’image OLPC de Squeak nommée Etoys), adapation de SqueakBot sur la plateforme Linux et développement et test de la Boite à Bots, l’outil plus général dans lequel s’inscrit SqueakBot.

Développement de SqueakBot

SqueakBot était en version 1.6 au moment où le projet avec OLPC France a démarré, et une quantité importante de travail a été réalisée depuis pour adapter l’environnement au contexte du XO.

Ce dernier dispose d’une interface utilisateur tout à fait originale, Sugar. Son originalité tient d’une part à sa charte graphique particulière, et d’autre part à une organisation des données centrée sur l’activité et la collaboration. Ces particularités se retrouvent dans la version spécifique de Squeak disponible sur le XO. Il s’agit d’une image Squeak modifiée, intitulée Etoys. Son interface est plus simple et son apparence est harmonisée avec les autres applications du XO.

Le premier travail a donc consisté à porter le code de SqueakBot de l’image standard Squeak-3.8 à Etoys-3.0 puis récemment Etoys-4.0, et à intégrer SqueakBot à l’interface. On peut ainsi voir, sur la capture d’écran ci-dessous, une petite tête de robot dans la barre de menu. Quand on clique dessus, on fait apparaitre un tiroir dans lequel les différents modules électroniques de commande du robot sont accessible.

À côté du portage du code, le processus continu d’amélioration de l’application s’est poursuivi, avec le refactoring de portions importantes du code, et une gestion désormais nettement améliorée de la connection et de la déconnection des modules électroniques. Il est aussi maintenant beaucoup plus facile d’installer SqueakBot sur une image quelconque de Squeak (via SqueakSource par exemple).

Portage sous Linux

SqueakBot permet de s’interfacer avec des modules de commande électroniques (cartes Smec, Aspic et Porképic) basés sur des micro-contrôleurs PIC. Ces derniers utilisent l’USB pour communiquer avec l’ordinateur, et sont reconnus comme des ports de communication série virtuels. Ainsi, une carte Aspic se verra par exemple affecté le port COM4 sous Windows quand on la branche.

Ceci fonctionne aussi parfaitement sous Linux (et MacOS), au détail près que ces systèmes d’exploitation nomment les périphériques de communication de manière plus précise en fonction de leur nature (le nom par défaut du port COM 4 est /dev/ttyS4, mais dans le cas de la carte Aspic, il serait plutôt reconnu comme /dev/ttyACM0). Cette subtilité n’étant pas prise en compte par la machine virtuelle Squeak sous Linux, une version patchée de cette machine virtuelle a été écrite (le patch est en cours de soumission pour être inclus dans les prochaines versions de la VM). Ceci devrait permettre l’utilisation effective des modules de commande sous Linux et Mac OS.

Développements de la Boite à Bots

Parallèlement aux efforts directement consacrés à SqueakBot, l’équipe de bénévoles de Planète Sciences continue à faire avancer le projet Boite à Bots qui fournit un ensemble cohérent pour monter des ateliers d’initiation à la robotique : environnement logiciel, donc (SqueakBot), interfaces électroniques, actionneurs et capteurs, et un livret complet de séquence d’animation.

Il est a noter, en particulier, qu’un nouveau module, la carte Porképic, devrait voir le jour dans les prochains mois (le premier prototype est en cours de réalisation). Il se base sur l’expérience acquise avec les modules SMEC et Aspic, en les rendant plus polyvalents et plus simples d’utilisation.

L’ensemble de ces outils sont diffusés sous des licences libres qui autorisent une large diffusion.

Et pour la suite…
Les prochaines étapes du projet sont :

  • Valider le portage sous Linux avec des tests intensifs,
  • Tester l’ensemble sur le XO lui-même (pour l’instant, tous les développements ont été réalisés sur un autre portable sous Linux),
  • Affiner les interactions avec les utilisateurs et la gestion des erreurs pour les rendre simples, intuitives et robustes.
  • Une démonstration du système aura très probablement lieu durant la “St Groin”, la fête annuelle du secteur robotique de Planète Sciences, ouverte à tous. Elle aura lieu courant juin 2009.

    Pour plus d’information, n’hésitez pas à me contacter à severin.lemaignan@planete-sciences.org.