Dans son ouvrage Vehicles: Experiments in Synthetic Psychology, V. Braitenberg décrit des «véhicules» doués d'un comportement extraordinairement sophistiqué basé sur quelques règles simples. On peut se reporter à http://en.wikipedia.org/wiki/Braitenberg_vehicle pour une première description.

Chaque véhicule dispose de capteurs et d'actionneurs. Il fonctionne de manière purement réactive: un ensemble de lois connecte la valeur immédiate des capteurs aux actionneurs.

Les règles tentent de reproduire des concepts comme la peur, l'agression, l'attirance, la répulsion, etc. Elles sont décrites complètement ici: http://www.psych.ucsb.edu/~beall/vehicles.pdf

Les capteurs des véhicules pourront être de différentes nature : sensibles à la proximité, ou au contact, d'un obstacle ou d'un autre robot, sensibles à la lumière de différentes couleurs, sensibles à la chaleur, sensibles aux chocs, etc… Ces capteurs pourront être localisés à droite, à gauche ou au centre de l'avant du véhicule.

Les obstacles pourront être de forme diverses (circulaires, carrés, etc…). Il pourra aussi s'agir de trous dans lesquels les robots pourront tomber.

On supposera que l'excitation de chaque moteur, d'où sa vitesse de rotation, sera donnée par un réel dans l'intervalle \([-1,1]\). Les sorties des capteurs seront aussi représentées par des réels dans l'intervalle \([0,1]\).

L'excitation de chaque moteur sera donnée par une somme pondérée (les coefficients seront réels \([-1,1]\)), par exemple :

\[ moteur\_gauche = capteur\_contact(gauche)\times 0.6 - capteur\_lum(droit)\times 0.3\]

L'information issue des capteurs pourra être transformée par des fonctions qui représenteront la sensibilité ou les particularités des capteurs. Par exemple :

\[ g(x)= \begin{cases} x \times 2 & ( si x\geq 0 et x<0.5 )\\ 2-x\times 2& ( si x\geq 0.5 et x<1 ) \end{cases} \]

Différents agencements des dispositifs de commande des véhicules pourront être essayés pour reproduire des comportements animaux (très très) simplifiés :

  • la «peur» d'un obstacle.
  • l'«attirance» vers une lumière.
  • l'«antipathie» vis à vis d'une autre classe de véhicules.
  • l'«apprentissage» de comportements simples.

Il s'agira dans ce projet d'écrire un simulateur pour des véhicules animés par ce type de règles.

On se donnera une description formelle d'un monde que l'on veut simuler. Ce monde sera décrit dans un fichier texte que le programme lira pour lancer la simulation. La spécification supportée par ce fichier texte sera évolutive et permettra de spécifier de plus en plus de paramètres de la simulation.