Abstraction
Le simulateur doit fournir une interface de programmation
(API) à haut niveau pour simplifier et abstraire les
fonctionnalités du simulateur. Cette interface doit être
conçue pour faciliter l'utilisation du simulateur en supprimant les
détails de bas niveau du fonctionnement du simulateur tels que les
modèles géométriques du robot, la simulation des faisceaux
laser, la gestion du parallélisme et la visualisation de
l'environnement.
Ceci a pour but d'augmenter la productivité des
utilisateurs en leur permettant de se concentrer sur ce qui est essentiel pour
leurs travaux de recherche.
3.2.3 L'architecture du système
Le simulateur PyRoboticsLab se base sur une architecture MVC
(Modèle-Vue-Contrôleur). Ce concept vise à séparer
le programme en plusieurs couches:
-- Le modèle représente les
caractéristiques physiques des robots, des leurs capteurs et de
l'environnement dans lequel ils opèrent.
-- La vue permet de visualiser la simulation et afficher les
données telles que les cartes, les obstacles, la position des
robots...etc.
-- Le contrôleur définit les algorithmes de
contrôle des robots pour les différentes tâches de
navigation, planification et exploration...etc.
La figure 3.2 schématise cette architecture.
Séparer la simulation en composants distincts nous
permet de créer une architecture plus modulaire et maintenable. Chaque
composant est divisé en plusieurs modules qui sont responsables de
gérer un aspect spécifique de la simulation:
-- Modèle de robot : définit les
caractéristiques physiques du robot, telles que son mode
CHAPITRE 3
FIGURE 3.2 - Architecture générale du simulateur
PyRoboticsLab
de déplacement et sa consommation d'énergie,
ainsi que toutes les routines pour lui permettre de se déplacer dans
l'environnement et se localiser.
-- Modèle de capteur: définit les
caractéristiques des capteurs montés sur les robots, tels le
LIDAR ainsi que toutes les routines pour la simulation des données
produites par ces capteurs, en incluant l'intégration du bruit
artificiel dans les mesures afin de reproduire les conditions imparfaites du
monde réel ainsi que les routines de raytra-cing.
-- Modèle de carte : définit les
caractéristiques des cartes utilisées par le robot, y compris les
cartes locales et la carte globale. Chaque carte est modélisée en
plusieurs couches pour séparer les données relatives aux
probabilités d'occupation (position des obstacles) des données
relatives à l'exploration (marquage des cellules visitées...).
-- Modèle d'environnement: définit les
caractéristiques de l'environnement dans lequel les robots se
déplacent dans la surface opérationnelle ainsi que les routines
nécessaires pour le chargement, copie et sauvegarde des modèles
d'environnement.
-- Modèle de simulation : permet de sauvegarder
l'historique de toutes les opérations réalisées et les
mesures de performances instantanées, dans le but de pouvoir retracer
l'expérience étape par étape, ou de visualiser les courbes
de convergence, de consommation d'énergie ou du temps d'exécution
des algorithmes.
-- Contrôleur du robot: inclut les routines pour
contrôler le robot en lui permettant de naviguer, planifier les
trajectoires, et choisir des points de destination. Ce module contient un
sous-module définissant toutes les routines nécessaires pour le
fonc-
86
87
tionnement des algorithmes d'optimisation et
métaheuristiques. L'utilisateur peut étendre ce module en
ajoutant ces algorithmes afin de les intégrer facilement dans le
scénario de simulation sans modifier les autres modules.
-- Contrôleur des cartes : Ce module définit les
routines nécessaires à la cartographie telles que la mise
à jour des probabilités d'occupation, la fusion de cartes ainsi
que le calcul des statistiques d'exploration.
-- Contrôleur de la simulation : inclut les routines
pour définir le scénario de simulation, et charger les
modèles d'environnement et des robots. Ce module est responsable
d'initialiser les expériences, de mesurer les performances des robots,
et d'arrêter la simulation lorsque les critères d'arrêts
sont atteints.
-- Interface visuelle : inclut toutes les routines qui
permettent l'affichage des aspects relatifs à la simulation et à
l'état des robots.
-- Générateur de graphes : inclut toutes les
routines permettant de visualiser et manipuler les courbes de statistiques.
La figure 3.3 montre quelques exemples de visualisations
générées automatiquement par le simulateur pendant les
expériences. Elles peuvent être facilement paramétrables
pour afficher différents types de cartes, statistiques, graphes et
autres informations utiles.
FIGURE 3.3 - Exemple de quelques types de
visualisations générées par le simulateur
PyRo-boticsLab
3.2.4 Les outils et technologies
Notre plateforme de simulation est entièrement
développée en Python, avec une attention particulière
portée à la réduction des dépendances afin de
permettre une portabilité facile vers tous les systèmes
d'exploitation (Linux, Windows, OS X...).
88
|