WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Contribution à  l'optimisation d'un comportement collectif pour un groupe de robots autonomes


par Amine BENDAHMANE
Université des Sciences et de la Technologie d'Oran Mohamed Boudiaf - Doctorat en informatique - Intelligence Artificielle 2023
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"L'ignorant affirme, le savant doute, le sage réfléchit"   Aristote