Simulateur/environnement de test

Le but est de fournir une base simple dans laquelle plusieurs stratégies d'ordonnancement/calcul de vitesses peuvent être testées. Un approche modulaire est privilégiée.

La dynamique est très simple, et les véhicules sont “collés” à la trajectoire (ce n'est pas le suivi de trajectoire qui nous intéresse ici, mais la vitesse à laquelle elle est suivie).

Module simulator dans le SCM du projet GForge (gforgesvn).

Pour récupérer rapidement la dernière version :

$ svn checkout svn://scm.gforge.inria.fr/svn/mehani/simulator/trunk simulator

ou l'ensemble de l'arbo de développement (en remplaçant LOGIN par votre login GForge) :

$ svn checkout svn+ssh://LOGIN@scm.gforge.inria.fr/svn/mehani/simulator

Algorithme global du simulateur

Boucle:

  1. Initialiser et introduire nouveaux véhicules ;
    1. Déterminer origine et destination ;
    2. Déterminer la trajectoire à suivre.
  2. Trouver les points critiques (intersections) ;
  3. Calcul des profils de vitesse des véhicules ;
  4. Pour chaque véhicule ;
    1. Mise à jour de la vitesse ;
    2. Mise à jour de la position.
  5. Mise à jour du rendu.

Modules

  • Calcul des trajectoires actives ;
    • Travaux d'Hayet.
    • ← Point d'entrée, point de sortie ;
    • → Points de la trajectoire, points critiques de la trajectoire.
  • Ordonnancement ;
    • Vitesse/Distance ;
    • Temps écoulé depuis l'entrée dans le carrefour ;
    • Appartenance à un platoon ;
    • Manoeuvre entamée ;
    • Code de la route.
  • Optimisation des vitesses.
    • Gradient.
  • Élément central ;
  • Visualisation 2D.
    • Carrefour ;
    • Position des véhicules sur leur trajectoire (abscisse curviligne) ;
    • Représentation visuelle du temps/vitesse planifié sur toute la trajectoire.

UML

Une description UML représentant la structure courante1) du programme. (Dernière version disponible dans le SVN), ou une version nettement plus lisible en PDF.

Screenshots

Révision 119 dans le SCM

Un affichage 2D basique, mais efficace. Il faut encore travailler sur le générateur de trajectoire, et définitivement sur l'algorithme d'ordonnancement, Pour l'instant, beaucoup d'accidents (;.

Révision 261 dans le SCM

Les points critiques en conflit sont maintenant affichés. Ce n'est pas visible, mais les véhicules ne sont toujours pas à l'abri d'un accident.

Révision 314 dans le SCM

Les véhicules font maintenant attention à éviter (tant bien que mal) les collisions en maintenant leur vitesse de telle manière que leur zone de freinage soit vide d'autres véhicules. Avec un système de carrefour à base de polling simple (basic-polling), on ne constate pas d'accident. Le temps passé en moyenne dans le carrefour est cependant encore améliorable (SVN tag basic-sensible-vehicles).

Révision 339 dans le SCM

Un embryon de réservations, sans gestion de priorité autre que l'ordre d'arrivée. Les SensibleVehicles étant trop simplifiés dans leur gestion des vitesses et la prévention des collisions, on constate encore des accidents. Un comportement plus intelligent et plus efficace émerge cependant (SVN tag basic-reservations).

Révision 608 dans le SCM

Les trajectoires sont maintenant des traces bi-dimensionnelles à base de clothoïdes auxquelles sont ajoutées des informations temporelles. Les véhicules suivent cette trajectoire en abscisse curviligne après l'avoir demandée auprès du gestionnaire du carrefour, qui vérifie que les points critiques demandées ainsi que les points critiques proches sont libres aux instants voulus. Les véhicules ne se cognent plus dans le carrefour. Mais toujours un peu avant… Les tailles des véhicules et du carrefour sont plus proches de la réalité. En prime: une petite vidéo (SVN tag reservations).

Révision 608 (tag Eurocast2007) dans le SCM

Une version du simulateur séparant le compte des collisions dans le carrefour et autour, ainsi que la possibilité d'insérer plusieurs types de véhicules (camions ?) dans le traffic, et de changer la loi d'introduction. L'algorithme se comporte parfaitement dans le carrefour, mais ne gère pas les collisions avant et après. Ce n'est pas son rôle. (tag eurocast2007 et source releasée).

1) au rythme des mises à jour du Wiki
 
users/oliviermehani/2006internship/simulateur.txt · Last modified: 2011/02/10 14:08 (external edit)
Recent changes · Show pagesource · Login