Le simulateur d'atomes robotiques

Dernière mise à jour : 28/03/2005

Vidéos

Documentation en ligne du simulateur

Installation du Simulateur

Téléchargement du simulateur

Projets IUT de Vannes DUT INFO 2ième année 2003/2004

Liste de diffusion sur le projet MAAM

Projet IUP de Vannes Licence 2003/2004

Développements récents

Vidéos :

Un atome isolé :

Une rangée essayant de marcher (en construction) :

Une chenille en construction :

Un cube de 125 atomes (en construction) :

Documentation en ligne du simulateur :

La documentation générée par Doxygen est accessible ici.

Version 0.2 du 25/03/2004 :

Ceci est une version pré alpha du simulateur.
Il s'agit de la deuxième version disponible.
Elle est développée et uniquement testée sur les distributions Mandrake 9.1 (gcc 3.2.2) et Redhat 9.
Elle semble fonctionner sur la distribution Redhat 7.3 (gcc 2.96). Elle compile avec gcc 2.95.
Elle a été développée à l'aide de Kdevelop 2.1.5.
Il faut au moins les outils suivants :
- autoconf 2.13-17;
- automake 1.4p5-4;
- aclocal ;
- autoheader ;
- makeinfo ;
- gcc 3.2.
Cependant la distribution inclus maintenant des fichiers Makefile indépendants pour éviter de devoir installer toute la suite kdevelop.


Installation du Simulateur :

Pour l'installation sur un ordinateur personnel, en mode mono utilisateur :

- Créer un utilisateur simulatom

- se connecter en tant qu'utilisateur simulatom

- tar -zxvf Dependencies-0.2.tar.gz

- tar -zxvf Simulatom-release-0.2.tar.gz

- cd simulatom-0.2/.outil

- ./make_all.sh

Pour tout autre installation, voir le fichier README à l'intérieur de la distribution.

Dépendances du simulateur :

Actuellement, le simulateur dépend fortement d'ODE (Open Dynamics Engine : http://opende.sourceforge.net) et d'Übersim (http://www-2.cs.cmu.edu/~coral/ubersim.html). Suite à des modifications par rapport aux versions officielles, ces dépendances sont maintenant fournies sur ce site.

Programmes et paquetages supplémentaires (optionnels) :
* smpeg-player (smpeg-player-0.4.4-18mdk.rpm & libsmpeg-0.40.4.4-18mdk.rpm distrib Mandrake 9.1) :
Simple MPEG player based on smpeg library (Main library for smpeg).
Visualisation des films encodes en MPEG-1. Fournit les utilitaires gtv et plaympeg.
Pour l'installer :
rpm -ivh --nodeps libalsa-data-0.9.0-0.14rc7mdk.i586.rpm
rpm -ivh libalsa2-0.9.0-0.14rc7mdk.i586.rpm
rpm -ivh libsmpeg0.4-0.4.4-18mdk.i586.rpm
rpm -ivh smpeg-player-0.4.4-18mdk.i586.rpm

* netpbm et libnetpbm9 (netpbm-9.24-4mdk.rpm & libnetpbm9-9.24-4mdk.rpm distrib Mandrake 9.1) :
Tools for manipulating graphics files in netpbm supported formats and a library for handling different graphics file formats.
Manipulation des images au format ppm générées par le simulateur.

* mpeg_encode de Berkley (ftp://mm-ftp.cs.berkeley.edu/pub/mpeg/encode pour les sources et http://speakeasy.rpmfind.net/linux/RPM/sourceforge/amide/mpeg_encode-1.5b-4.i386.html ou http://cyberboticspc1.epfl.ch/cdrom/linux/lib/mpeg_encode-1.5b-4.i386.rpm pour le fichier rpm)
Encodeur de séquences JPEG et PPM en MPEG-1. Pour l'installer : rpm -ivh mpeg_encode-1.5b-4.i386.rpm

* Plusieurs viewers d'images peuvent être utilisés
- xnview de Pierre E Gougelet (freeware pour linux http://www.xnview.com/) mais les sources ne sont pas disponibles)
Pour voir les images PPM. Pour l'installer : rpm -ivh XnView-static.i386.rpm
- electronic eyes de Redhat Inc sous GPL avec les sources disponibles
Pour voir les images PPM. Pour l'installer : rpm -ivh ee-0.3.12-11mdk.i586.rpm
- xv de John Bradley (shareware ftp://ftp.trilon.com/pub/xv/binaries/xv-3.10a-13.i386.rpm)
Pour voir les images PPM. Pour l'installer : rpm -ivh xv-3.10a-13.i386.rpm

Lorsque l'on a pas les privilèges root, il est très difficile d'installer des fichiers rpm qui peuvent ne pas être relogeables. Aussi une distribution des sources modifiées (pour que cela compile bien) pour EE, SMPEG et MPEG_ENCODE est fournie (Optional-dependencies-0.2.tar.gz). Les autres utilitaires sont installés dans les distributions.
 

Mise en conformité des outils de kdevelop (developpeur de l'API) :

Les fichiers dans le répertoire ./kdevelop ne marchent pas avec toutes les versions de autoconf et automake

Ils marchent bien avec les outils disponibles avec la Mandrake 9.1 mais pas avec la Redhat 9.

Voici ce qu'il a fallu faire avec la Redhat 9. Ceci est peut être nécessaire aussi pour la Debian

A noter que le compilateur doit être gcc 3.2 (pas encore adapte pour gcc 3.3).

AUTOCONF

rpm -ev --nodeps autoconf

rpm -ivh autoconf-2.13-17.noarch.rpm

AUTOMAKE

rpm -ev --nodeps automake

rpm -ivh automake-1.4p5-4.noarch.rpm

DOXYGEN et Doxywizard (doxygen installe avec la redhat 9 n'a pas doxywizard)

rpm -ev doxygen

rpm -ivh doxygen-1.2.18-3mdk.i586.rpm

ou rpm -ivh doxygen-1.3.3-1.i386.rpm (http://dentrassi.de/download/doxygen)

GRAPHVIZ (pour faire des graphes avec Doxygen : http://dentrassi.de/download/doxygen)

rpm -ivh graphviz-1.10-1.i386.rpm

rpm -ivh graphviz-graphs-1.10-1.i386.rpm

rpm -ivh graphviz-tcl-1.10-1.i386.rpm

rpm -ivh graphviz-devel-1.10-1.i386.rpm

 

Téléchargement du simulateur :

Pour télécharger les sources du simulateur, cliquez ici.

Pour télécharger les docs du simulateur, cliquez ici.

Pour télécharger les dépendances obligatoires (ODE et ÜBERSIM), cliquez ici.

Pour télécharger le paquetage des sources des dépendances optionnelles (EE, MPEG_ENCODE, SMPEG), cliquez ici.

Les fichiers RPM disponibles sur ce site (compatibles REDHAT 9) :

autoconf-2.13-17.noarch.rpm

automake-1.4p5-4.noarch.rpm

doxygen-1.3.3-1.i386.rpm

graphviz-1.10-1.i386.rpm

graphviz-graphs-1.10-1.i386.rpm

graphviz-tcl-1.10-1.i386.rpm

graphviz-devel-1.10-1.i386.rpm

mpeg_encode-1.5b-4.i386.rpm

 

Projets IUT de Vannes DUT INFO 2ième année 2003/2004 :

Deux groupes de quatre étudiants ont travaillés sur des algorithmes de marche du simulateur.

Les deux groupes ont eu le même sujet.

Exemple de production du projet pi2a14 : codage d'une molécule araignée

Exemple de production du projet pi2d14 : interface graphique et autres algoritmes

Pour télécharger le code source :

- groupe de projet pi2a14;

- groupe de projet pi2d14.

Pour l'installation, il faut lire les fichiers README.pi2a14 et README.pi2d14.

Notamment, pour construire les exécutables, il faut faire :

tar -zxvf pi2?14-0.2.tar.gz
cd simulatom-0.2
source setup.bash
cd .outil
./make_pi2?14_all.sh
.

Pour télécharger leur documentation :

- groupe de projet pi2a14;

- groupe de projet pi2d14.

 

Liste de diffusion sur le projet MAAM :

Serge Stinckwich (Université de Caen) a mis en place une liste de diffusion.

Voici ce qu'il m'a envoyé :

"

Pour regrouper ceux qui développent du code dans le projet MAAM et notamment autour de SimulAtom, je vous propose de rejoindre notre liste
de diffusion. Cela facilitera l'échange entre nous, notamment pour partager les problèmes que nous avons pour utiliser SimulAtom.

Pour vous inscrire a la liste de diffusion maam, envoyez un message a :
<maam-subscribe@info.unicaen.fr>

"

 

Projet IUP de Vannes Licence 2003/2004 :

Un groupe de trois étudiants a travaillé sur des algorithmes de marche du simulateur. De plus, l'étude de faisabilité d'un pont JNI pour le simulateur a été demandé. Le sujet peut être téléchargé ici.

Ils ont proposé des algorithmes pour une molécule ayant cette topologie :

Leurs productions peuvent être téléchargées ici.

 

Développements récents :

Les développements cette année autour du simulateur ont eu plusieurs objectifs :

- Lever certaines limitations dues à la bibliothèque de simulation du monde physique. La limitation la plus notable était celle des 8 atomes maximum pour une simulation. Nous avons réussi à simuler 125 atomes inter-connectés.

- Faciliter l'installation du simulateur dans plusieurs contextes, y compris celui de l'enseignement. Pour permettre à des étudiants de travailler en projet, un mode d'installation multi-utilisateurs en environnement linux a été implanté. Il permet une installation centralisée des binaires volumineux. Les étudiants n'ont sur leur compte que les programmes de contrôle qu'ils ont à développer et les liens symboliques vers les autres fichiers. Le répertoire /tmp permet de faire les manipulations qui exigent un espace disque important  (par exemple la capture des images) hors quota.

- Adapter le simulateur à différentes distributions. Des groupes d'étudiants de l'IUT de Vannes et de l'IUP de Vannes ont utilisé le simulateur. Chaque organisme ayant des distributions différentes, il a fallu adapter le simulateur dans ces différents contextes.

- Compléter et tester l'implémentation de l'API. L'utilisation par les étudiants a permis de faire émerger de nouveaux besoins notamment concernant les classes utilitaires pour construire l'état initial des molécules. Par exemple,  Attachement dans l'espace des atomes en l'air pour pouvoir construire les topologies cycliques (chenille, roue).

Les développements à venir portent sur une nouvelle architecture du simulateur en mode client-serveur et la simulation plus fine des capteurs, ce qui implique une redéfinition d'un atome robotique sous Open Dynamics Engine. Une étude est est en cours pour trouver le meilleur compromis entre précision et performance.

Une présentation du simulateur faite le 18 juin 2004 au groupe  MAAM est disponible ici.

Un plugin MAAM pour NetLogo est en cours de développement à l'aide de OdeJava, pont JNI pour Open Dynamics Engine. Un atome sera considéré comme une tortue qui aura les caractéristiques d'un atome robotique dans un monde prenant en compte les contraintes physiques. La description de l'atome provient du simulateur. Une API adaptée en facilitera le contrôle. Le simulateur vise la simulation la plus proche de la réalité pour faciliter le portage des programmes de contrôle de la simulation vers les atomes réels. Le plug-in doit permettre l'étude de comportements émergeants de colonies d'agents à l'aide de modèles de simulation. NetLogo offre une bibliothèque de modèles qui peuvent servir de base à la construction de modèles ad hoc.