Original version (French): RobotCollaboratifs
Proposal v.1.0-en
A team of 4 robots is under participants' control to start an ore prospection mission on Mars [Well… for instance!
]. Particpants split in 4 teams, each of them in charge of one robot. The first part of the workshop is dedicated to get the robots to be individually operational, and during the second part, the whole group has to set up a common strategy to coordinate the different robots for them to autonomously find, extract and bring back ore to the space base.
We have 4 robots: the Explorer Robot, responsible for ore discovery, the Driller [?] Robot, the Conveyor Robot, responsible for bringing back ore at the base and a Communicator Robot. Those robots are provided by the organisators (cf technical details) and will be easily controlled from the SqueakBot environment.
The teams must program the motion of their robots to fulfill the individual missions and allow the most effective collective gathering of ore. The main constraints are limited robot autonomy (they have to regularly reload on (virtual) power station) and the global time allowed for the mission (about 10 min). At the end of the mission, the complete quantity of collected ore is mesured.
The playground is a grid of about 8×8 cells (cf schematic). Some of these cells are “special”:
[TRANSLATION NOT YET FINISHED!]
Les robots démarrent avec 30 points d'énergie.
Chaque déplacement d'une case à une autre coûte 1 point, et chaque action spéciale du robot coûte 2 points. Quand un robot envoie un message, ça lui coûte 1 point d'énergie. Les messages doivent tous passer par le robot communication, et celui-ci doit être à 2 cases ou moins pour entendre le message.
Ainsi, le robot explorateur a pour mission de détecter les gisements de minerai. Chaque déplacement lui coûte 1 point d'énergie. Faire un test de gisement lui coûte 2 points d'énergie. Quand un gisement est détecté, il peut le communiquer au robot communication. L'envoi d'un message coûte 1 points d'énergie, et le robot communication doit être à 2 cases (y compris en diagonale) ou moins pour entendre le message.
Le robot foreur doit aller sur les gisements pour extraire le minerai. Une fois sur place, il extrait une unité de minerai toutes les 10 sec, et ça lui coûte chaque fois 1 point d'énergie.
Le robot convoyeur va sur les gisements d'où le minerai a été extrait et ramène le minerai à la base. Le chargement d'un tas de minerai (quelque soit le nombre d'unité de minerai) lui coûte 1 point d'énergie.
Et le robot communication, lui, sert à relayer les différents messages. Il est le seul à toujours connaitre la position de tous les autres robots et doit toujours être à 2 cases ou moins pour échanger un message. Les autres robots ne connaissent que la position du robot communication.
Il y a seulement 3 types de messages possible : - “gisement trouvé à la case X Y” - “X unités de minerai disponible à la case X Y”
For 3 hours, ie 180 min
Les robots seront probablement des robots iCreate que nous connaissont bien à Planète Sciences via Robotcité. Ce sont des robots sur batteries d'une vingtaine de centimètre de diamètre. Les cartes d'extension permettant de les contrôler à distance sont en cours de développement au sein du secteur. On pourra donc facilement les contrôler via Wifi.
En plus des robots, l'atelier nécessite 4 ordinateurs (un par équipe) susceptible de faire tourner Squeak avec, de plus, une connection Wifi opérationnelle.
Afin de rendre l'atelier plus attrayant, un terrain d'évolution pourra être réalisé, avec la contrainte de rester plat sur les zones où les robots évolueront (on peut imaginer l'équivalent de tapis pour les petites voitures, qui soit un peu joli et facilement déroulable sur le sol). Il devrait faire environ 3X3m, à vérifier en fonction de la taille des robots.
Les jeunes disposent de commandes simples permettant de déplacer leur robots d'une case dans la direction qu'ils souhaitent. Ils ont aussi à disposition l'information du nombre d'actions permises par leur réserve d'énergie et une carte de la zone avec les positions de la base, des stations de recharge et des gisements de minerai au fur et à mesure de leur découverte. Ils peuvent, enfin, décider d'envoyer un message si certaines conditions sont remplies.
Fonctions à disposition des jeunes dans SqueakBot : - tourneDroite (tourne et avance d'une case) - tourneGauche (idem) - avance (d'une case) - recule (d'une case) - positionStationRechargeLaPlusProche - positionBase - positionRobotCommunication - positionLaPlusProchePourCommuniquer (puisqu'il suffit d'être à deux cases du robot communication pour envoyer un message) - attend (avec un nombre de secondes)
Fonctions spécifiques à certains robots : - positionRobotExplorateur - positionRobotForeur - positionRobotConvoyeur - envoieMessageGisementTrouvéIci - envoieMessageMineraiDispoIci (avec le nb d'unités)
Fonctions que les jeunes doivent créer dans la première partie de l'atelier - distanceJusquA (avec les coordonnées d'une case) - vaA (avec les coordonnées d'une case)
Le projet est assez ambitieux (donc intéressant !)
Pour ne pas rendre le projet trop complexe, voici les limites à la simulation : - les robots sont là pour illustrer et donner une dimension concrête à l'expérience, mais toute la “logique de jeu” est gérée par SqueakBot. - recharge, tests de gisements, chargement du minerai instantanés. - la gestion des collisions est réalisée par le logiciel, et fait “attendre” un robot si risque de collision. - pas de “forage” ou récupération réelle. L'animateur dépose à la main un nombre de boulons (ou autre chose pour représenter le minerai) proportionnel au temps que le robot de forage reste sur une zone de forage.
- C'est ambitieux… ah non, ça je l'ai déjà dit. - Une version light (sans les aspects collaboration) peut facilement être mise en place pour des plus jeunes. On peut y ajouter quelques jeux sympas pour comprendre l'idée de programmation. - Pas de petit objet que les enfants peuvent ramener chez eux, si ce n'est Squeak qu'on peut leur graver sans problème.