CHAPITRE 3
Python est un langage de programmation
interprété, créé avec l'intention d'offrir une
syntaxe simple et facile à apprendre. Toutefois, ceci ne réduit
en rien sa puissance puisqu'il est versatile et peut être utilisé
pour créer des plateformes web, logicielles, applications mobiles, et
systèmes embarqués. Son interpréteur permet
d'exécuter le même code sur des systèmes d'exploitation
différents sans nécessiter une modification dans le code source
ou sa recompilation.
L'utilisation de Python pour développer un outil de
recherche nous permet de tirer profit de la puissance des librairies
disponibles pour le calcul scientifique. Afin de respecter les objectifs
définis par l'architecture globale du système, nous avons
réduit l'utilisation des dépendances externes aux trois
librairies suivantes:
-- Numpy : Est la librairie Python de référence
lorsqu'il s'agit de calcul scientifique et manipulation de tableaux
multidimensionnels. Elle offre une multitude de routines pour les calculs
d'algèbre linaires, opérations de tri, statistiques, nombres
aléatoires, manipulation de dates...etc. Nous utilisons Numpy dans notre
plateforme pour gérer toutes les opérations de calcul matriciel
nécessaires pour les opérations de cartographie et la
manipulation des populations.
-- Matplotlib : Est une librairie destinée à la
création de visualisations scientifiques, telles que les graphes, les
histogrammes, les nuages de points...etc. Elle permet de générer
des figures interactives hautement personnalisables, et exporter les
résultats sous différents formats. Nous utilisons Matplotlib dans
notre projet pour la génération de l'interface utilisateur
permettant de visualiser la position des robots, les obstacles
détectés, les chemins planifiés, ainsi que les
différentes statistiques et cartes d'exploration
générées par les robots.
-- Pygmo2 [19] : Est une librairie réalisée par
l'Agence Spatiale Européenne offrant une interface pour
implémenter des algorithmes d'optimisation massivement
parallèles. Elle supporte des fonctionnalités avancées
telles que la parallélisation des métaheu-ristiques, le tri de
populations, la visualisation des solutions non dominées (Pareto
front)...etc. Nous utilisons cette librairie pour uniformiser
l'implémentation des mé-taheuristiques que nous utilisons pour
résoudre les problèmes d'exploration et de planification de
trajectoires. Cette uniformisation est un aspect important pour notre projet
puisqu'elle permet de s'assurer que la différence entre les
résultats expérimentaux des algorithmes n'est pas causée
par une différence entre les techniques d'im-plémentation
utilisées à bas niveau par les librairies.
L'intégration d'un nombre réduit de libraires
Python permet de faciliter la portabilité du code et minimiser les
dépendances. Ceci offre les avantages suivants:
-- Facilité à comprendre, déboguer ou
modifier le code source de la plateforme d'afin d'y intégrer les
changements souhaités.
-- Facilité d'installation et de configuration,
à la différence de nombreux simulateurs qui sont plus
concentrés sur des environnements Linux et les systèmes de type
UNIX.
-- Possibilité d'intégration avec les librairies
d'apprentissage machine populaires, pour
l'ajout de fonctionnalités additionnelles tel que le Deep
Learning par exemple.
89
-- Possibilité de déployer rapidement le projet en
tant que service web dans un serveur Cloud pour une utilisation ouverte au
public.
-- Facilité à ajouter un nouvel algorithme et
comparer ses performances avec les autres algorithmes déjà
implémentés sur la plateforme.
Nous pensons que ces caractéristiques sont un atout pour
permettre son adoption par les étudiants et les enseignants comme outil
pédagogique et de recherche.
3.2.5 Les scénarios de bechmarking
La plateforme de benchmarking proposée permet de simuler
les scénarios suivants:
-- Path Planning : Planification de trajectoires.
-- Exploration : Découverte, balayage, surveillance,
détection d'intrus.
-- Target Searching : Rechercher une personne ou un objet.
-- Foraging : Déplacement et tri d'objets.
-- Map Decomposition : décomposition d'environnement en
plusieurs régions.
-- Formation Control : Coordination pour le déplacement en
formation de plusieurs robots.
3.3 Modélisation géométrique des robots
Le simulateur PyRoboticsLab se base sur une représentation
géométrique en 2 dimensions des robots mobiles. Il simule les
robots terrestres à commande différentielle ainsi que
(a) Robot P3DX utilisé (b) Schéma
géométrique [68]
FIGURE 3.4 - Modélisation géométrique du
robot et des différents repères utilisés pour la
détection d'obstacles
90
|