Présentation du Projet RIGOBOT
 
Lire la proposition initiale du projet
 
Comptes rendus des réunions de travail
 
Etat actuel du projet
 
Les membres du projet
 
Screenshots
 
Liens
REUNION DU 15/10/02

Ordre du jour :

Mailing list du projet
CVS
Page Web du projet
Définition des sous-projets



Compte rendu de la réunion :

La mailing liste du projet sera mise en place par Eddy

C'est Damien qui va créer l'archive CVS, a priori sur son compte personnel à l'école. L'archive pourra éventuellement être déplacée plus tard (par exemple sur sourceforge). Il nous tiendra au courant sur la mailing liste.

Thomas se propose pour démarrer la page Web du projet. Provisoirement, cette page se trouvera en http://www.ens-lyon.fr/~tgazagna/rigobot/index.html Il sera nécessaire de trouver un meilleur hébergement pour la page (free.fr ou autre), car celui-ci n'a qu'une durée de vie de quelques années.

Il a été proposé de créer également un cannal IRC sur "fusible", un serveur de la résidence. Ceci permettrait de pouvoir dialoguer très efficacement pendant les périodes de grande activité de l'équipe (par ex la nuit qui précède la deadline :-)

Un sondage des membres de l'équipe a montré que le nom "ROGO" du logiciel ne nous plaisait pas. Cependant, comme aucune meilleure proposition de nom n'a été faite, le projet conserve provisoirement son nom "ROGO".

Choix du langage de programmation qui sera utilisé : les trois langages ayant retenu notre attention sont C++, Caml et Java. Voici un petit récapitulatif des discussions sur les avantages et inconvénients de ces langages pour notre projet :
  • C++
    avantages :
    - toute l'équipe connait le C++
    - il est certain que toutes les bibliothèques nécessaires pour le réseau, le graphisme en 3D et en 2D existent
    - Le langage est assez performant
    inconvénients :
    - déboggage, maintenance
    - attention à la portabilité
  • Caml
    avantages :
    - très performant
    - très agréable à utiliser pour la partie interprétation du langage utilisé par les enfants
    inconvénients :
    - quelques membres de l'équipe ne connaissent pas bien Caml
    - les bibliothèques graphiques (openGL) sont récentes et donc peu sûres (peut-être problemes de portabilité)
  • Java
    avantages :
    - très portable
    - bibliothèques existantes
    inconvénient :
    - mauvaises performances
Il a été décidé d'éliminer le langage Java, pour des raisons de performance et d'affinités des programmeurs de l'équipe avec ce langage.
Le C++ et Caml restent possibles. Le choix sera fait lorsqu'on saura si les bibliothèques graphiques de Caml sont performantes.

Quelle seront les concepts de la programmation objet que les élèves devront appliquer ? Les élèves se concentreront surtout sur quelques méthodes des robots. Or quand on est en train d'éditer une méthode, on fait de la programmation séquentielle. On peut donc dire que les élèves feront surtout de la programmation séquentielle dans ROGO. Cependant, il nous a semblé important de faire apparaitre (au moins de manière simplifiée) des concepts de la programmation objet. Ainsi on pourra construire un nouveau robot à partir d'un autre robot (notion d'héritage). On pourra fusionner des robots (héritage multiple).

Avant la prochaine réunion, il faut avoir réfléchi
  • à la syntaxe du langage qu'utiliseront les élèves (penser à la détection précise des erreurs de syntaxe, avec propositions de correction)
  • aux actions que devront pouvoir faire les robots
  • à comment sera le monde virtuel
  • au rôle du réseau
premières idées pour le monde virtuel :
Ce sont juste des idées, pas forcément définitives ...

Les robots sont dans un monde à 3 dimensions mais se déplacent seulement selon 2 dimensions. La 3ème dimension ne sert qu'à déplacer la caméra, zoomer ... L'univers sera ainsi plus interactif, attrayant, réaliste.

On utilisera aussi la programmation par évènement pour définir le comportement des robots : le robot aura une méthode "main" + des méthodes qui lui spécifient ce qu'il doit faire lorsqu'il rencontre certaines situations particulières

Par exemple :
méthode "main" -> le robot avance tout droit
méthode "bloqué" (appellée lorsque le robot ne peut plus avancer) -> le robot saute
Ainsi, le robot avance, et lorsqu'il est bloqué par un trou, la méthode "bloqué" est appellée et le robot saute par-dessus le trou.

Ensuite, le flot d'exécution est rendu à la méthode "main" qui reprend où elle s'était arrétée.

Pour les élèves il y aura plusieurs modes d'exécution des programmes par le robot :
  • le mode pas à pas -> l'élève entre une commande puis tape "Entrée". Le robot exécute la commande puis attend une nouvelle commande de l'élève, etc ...
  • le mode normal -> l'élève tape toute une série de commandes puis le robot les exécute séquentiellement, en utilisant automatiquement les méthodes déclenchées par évènements.


Compte rendu réalisé par David ROGER
Ceci est un message subliminal.