La variabilité dans le domaine de la robotique

La robotique mobile désigne l’étude des robots à base mobile qui, par opposition aux robots marcheurs, aux robots manipulateurs ou encore aux robots aériens, sont des robots ayant pour moyen de locomotion des roues. Les définitions du terme robot dans la littérature sont diverses, quelquefois très générales comme la définition de Brady [17] ”[…] une connexion intelligente entre la perception et l’action”. Arkin [1], quant à lui, a donné une définition plus spécifique ”Un robot intelligent mobile est une machine capable d’extraire des informations sur son environnement et d’utiliser les connaissances sur son monde afin de se déplacer de manière significative et en toute sécurité”. Par sa définition, Arkin explique qu’il existe une connexion entre la perception et l’action ; deux concepts fondamentaux en robotique qui varient d’un robot à l’autre. Cette connexion n’est autre que le système de contrôle du robot qui définit un ensemble de fonctions permettant au robot d’atteindre le but de sa mission. La perception, l’action et le système de contrôle forment une application de robotique. On peut parler alors de plusieurs types de variabilités : la variabilité liée à la perception, à l’action et au contrôle du robot qui concerne les aspects architecturaux d’une application.

Définitions

En raison de la diversité des définitions présentes dans la littérature, nous nous proposons dans cette section de présenter les définitions des concepts que nous utiliserons tout au long de cette thèse. Nous nous plaçons dans le contexte de la robotique mobile non humanoïde où les robots sont équipés de capteurs et d’effecteurs afin d’intéragir avec leur environnement.

Definition 1 (Robot mobile autonome). Un robot mobile autonome est un robot intelligent capable d’exécuter une tâche sans l’intervention des humains, il est capable de percevoir l’état de son environnement et de se déplacer dans celui-ci afin d’accomplir une tâche particulière (définition adaptée de la définition d’Arkin [1]).
Definition 2 (Perception). La perception est l’extraction d’informations sensorielles, à partir des capteurs, indiquant l’état du robot dans son environnement.
Definition 3 (Action). L’action est l’interprétation des données sensorielles ou de directives envoyées par le système de contrôle du robot en commandes envoyées aux effecteurs du robot.
Definition 4 (Tâche). Une tâche est constituée d’un ensemble d’actions permettant au robot d’accomplir un but ou un sous-but.
Definition 5 (Planification). La planification est l’analyse d’une séquence d’actions primitives afin de réduire l’écart entre l’état actuel du robot et le but qu’il doit atteindre. (définition adaptée de Nilsson [18] et du paradigme General Problem Solver [19]).
Definition 6 (Système de contrôle). Le système de contrôle du robot est le système responsable de coordonner les parties perception et action du robot afin de réaliser une tâche particulière.
Definition 7 (Paradigme). Un paradigme est une philosophie ou un ensemble d’hypothèses et/ou de techniques qui caractérisent une approche pour une classe de problèmes [20].
Definition 8 (Architecture). Une architecture de robotique est une discipline consracrée à la conception de robots hautement spécifiques et individuels à partir d’une collection de modules logiciels communs [1]. Une architecture est un pattern pour l’implémentation d’un paradigme [20].
Definition 9 (Middleware). Un middleware est une couche d’abstraction entre le système d’exploitation et l’application [21].
Definition 10 (Variabilité). La variabilité désigne l’étendue des différentes catégories que peut prendre un concept. En robotique, on trouve de la variabilité dans les capteurs, dans les effecteurs, dans les algorithmes, dans les architectures, etc.

La variabilité dans le domaine de la robotique

Dans cette section, nous présentons la variabilité dans les concepts présentés dans la section précédente. La variabilité désigne la diversité des catégories ou des classifications pour un concept donné (une tâche, un capteur, un effecteur, un environnement, etc).

La variabilité des capteurs

La perception, comme nous l’avons définie précédemment, est l’extraction d’informations de l’environnement du robot à travers ses capteurs. Le choix des capteurs dépend de la nature des informations dont le robot a besoin pour accomplir sa tâche. Les capteurs sont des dispositifs qui répondent à un signal ou à un stimulus. Un stimulus est une quantité, une propriété ou une condition détectée et convertie en un signal électrique [22]. À la différence des transducteurs qui convertissent un type d’énergie en un autre type d’énergie, les capteurs convertissent une énergie en un signal électrique. Dans la littérature, les capteurs sont généralement regroupés selon deux principales catégories : proprioceptifs ou exteroceptifs.
– Les capteurs proprioceptifs mesurent l’état interne du robot. Comme par exemple, la vitesse du moteur, le niveau de batterie, etc.
– Les capteurs exteroceptifs récupèrent les informations à partir de l’environnement du robot. Par exemple, l’intensité de la lumière, une mesure de distance, etc. Les capteurs sont également classés relativement à la nature de leur fonctionnement :
– Les capteurs passifs mesurent l’énergie présente dans l’environnement, par exemple les microphones, les sondes de température, etc.
– Les capteurs actifs émettent une énergie dans l’environnement et mesurent la réaction de l’environnement à celle-ci.

Une autre classification des capteurs dans la littérature dépend des données que les capteurs peuvent mesurer (stimulus), leurs spécifications, le mécanisme de conversion qu’ils utilisent et le matériel à partir duquel ils sont conçus [22]. Par exemple dans le cas des capteurs à portée (appelés aussi capteurs à rayons), nous notons une variabilité par rapport à la portée des capteurs, aux nombres de rayons, à la largeur du (ou des) rayons dont ils disposent, au champs de vision (Field of view) des capteurs, etc.

Typiquement, le cas du GPS et de l’odométrie qui tous deux, servent à la localisation du robot mais ne sont pas de la même nature. La localisation consiste à indiquer la position du robot et son orientation.
– l’Odométrie : Les roues motrices d’un robot sont habituellement associées à un servomoteur. Celui-ci est équipé d’un dispositif de mesure de rotation, il s’agit d’un capteur proprioceptif appelé odomètre. L’odométrie est le moyen de localisation le plus simple qui permet d’estimer la position d’un robot mobile en mouvement. À une position donnée correspondent une multitude d’orientations possibles du robot. L’orientation du robot ne peut s’obtenir qu’en connaissant son orientation de départ ainsi que son évolution sur sa trajectoire. L’utilisation de l’odométrie est basée sur l’hypothèse de roue sans glissement (contrainte non holonomique que nous présenterons dans la section suivante) et sur la supposition que les paramètres géométriques du robot sont parfaitement connus.
– Global Positionning System (GPS) : est un système de géolocalisation qui effectue des émissions synchronisées dans le temps à des satellites. A l’aide des messages émis aux satellites, le récepteur peut calculer sa position. Le principe de calcul de la position s’appuye sur le principe de la triangulation (calcul de la distance par rapport à 3 satellites). Néanmoins, des imprécisions de la mesure du temps peuvent se produire résultant du décalage entre les horloges des satellites (très précises) et les horloges des récepteurs (moins précises). Un quatrième satellite est donc nécessaire afin d’assurer la robustesse de la mesure. Le GPS permet une localisation approximative (à quelques mètres près). En robotique, une méthode différentielle est utilisée pour obtenir des résultats plus précis. La localisation se fait alors à l’aide de deux récepteurs dont l’un est statique et positionné avec précision dans l’environnement. La précision devient alors meilleure. L’utilisation du GPS impose la navigation à l’extérieur en raison de la présence de satellites.

Les applications de robotique sont implémentées en fonction des capteurs qu’elles utilisent. La variabilité des capteurs rend ces applications fragiles aux changements du matériel. D’un point de vue conceptuel, séparer l’acquisition des données du traitement de celles-ci est une étape importante pour assurer la pérennité et la consistence des applications de robotique.

La variabilité des effecteurs

Un robot agit sur son environnement à travers ses effecteurs. Dans la littérature, un effecteur (appelé aussi actionneur), à l’opposé d’un capteur, convertit un signal électrique en une énergie non électrique ou un phénomène physique [22]. Par exemple, un moteur convertit un signal en une action mécanique. L’étude détaillée des effecteurs, qui relève à la fois de la cinématique, de la mécanique et l’électronique ne sera pas présentée ici. Nous nous intéresserons dans cette section aux mouvements des robots mobiles. Les robots mobiles sont généralement équipés par des roues. Chaque roue contribue au mouvement du robot et impose des contraintes sur le mouvement de celui-ci. Par conséquent, les contraintes définies sur les roues combinent les contraintes définies sur chaque roue individuelle [8]. Les mouvements des robots sont traditionnellement classés en deux catégories : les robots holonomes et les robots non-holonomes [23].

Les robots de type holonomes n’ont pas de restriction sur le déplacement contrairement aux robots de type non-holonomes qui possèdent des contraintes cinématiques sur leurs mouvements. Lorsque le contact entre le robot et le sol est ponctuel et que les roues sont indéfomables, celà se traduit mathématiquement par une vitesse nulle entre le sol et la roue. Il s’agit de contraintes de roue sans glissement. Ces contraintes sont des contraintes non holonomes. L’existence de contraintes non-holonomes implique que le robot ne peut pas effectuer certains mouvements instantanément, il doit manoeuvrer. Les robots mobiles à roues sont typiquement des systèmes nonholonomes. Cette contrainte représente aussi une variabilité car la vitesse de rotation ou d’avancement des effecteurs diffère non seulement selon l’environnement dans lequel se trouve le robot mais aussi selon le chemin que ce dernier doit suivre. De même que pour les capteurs, les applications de robotique sont généralement écrites en fonction des effecteurs du robot. Par conséquent, un découplage du code de l’application des détails des effecteurs du robot rendrait les applications résistantes aux changements des robots plus généralement et des effecteurs plus particulièrement.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction générale
1 Contexte et problèmatique
2 Contributions
3 Plan de la thèse
I Etat de l’art
La variabilité dans le domaine de la robotique
1 Introduction
2 Définitions
3 La variabilité dans le domaine de la robotique
3.1 La variabilité des capteurs
3.2 La variabilité des effecteurs
3.3 La variabilité dans les architectures de robotique
3.3.1 Les architectures délibératives
3.3.2 Les architectures réactives
3.3.3 Les architectures hybrides
3.4 La variabilité dans les algorithmes de robotique
4 Conclusion
1 Introduction
2 La gestion de la variabilité dans les middleware de robotique : abstraction du matériel
2.1 Player
2.1.1 Description
2.1.2 Les abstractions du matériel dans Player
2.1.3 Discussion
2.2 Robot Operating System (ROS)
2.2.1 Description
2.2.2 Les abstractions du matériel dans ROS
2.2.3 Discussion
2.3 Middleware for Robots (MIRO)
2.3.1 Description
2.3.2 Les abstractions du matériel dans MIRO
2.3.3 Discussion
2.4 Python Robotics (PyRo)
2.4.1 Description
2.4.2 Les abstractions du matériel dans PyRo
2.4.3 Discussion
3 Conclusion
Langages de modélisations spécifiques à la robotique
1 Introduction
2 Langages de Modélisation Spécifiques aux domaines (DSML)
2.1 Les techniques d’ingénierie dirigée par les modèles
2.1.1 Les niveaux de modélisation
2.1.2 Les transformations
3 Cycle de vie d’un DSML
3.1 Analyse du domaine
3.1.1 Les ontologies
3.2 Conception des DSML
3.2.1 Définition de la syntaxe abstraite
3.2.2 Définition de la syntaxe concrète
3.3 Intégration des plateformes : Transformations et Génération de code
3.4 Utilisation
4 Les DSML pour la robotique
4.1 Exigences des langages de domaine pour la robotique
4.2 Travaux existants
4.2.1 BRICS Component Model (BCM)
4.2.2 Open Robot Controller Computer Aided Design (ORCCAD)
4.2.3 SmartSoft
4.2.4 The 3 View Component Meta-Model (V3CMM)
4.2.5 GenoM3
4.2.6 Robot Technology Component (RTC)
4.3 Synthèse
5 Conclusion
II Contributions
Robotic Modeling Language (RobotML)
1 Introduction
2 Vue d’ensemble sur le cycle de vie de RobotML
3 Analyse du domaine
4 Conception de RobotML
4.1 Syntaxe abstraite
4.1.1 Le modèle de domaine RobotML : méta-modèle
4.1.2 Le profil RobotML
4.2 Syntaxe concrète : L’éditeur graphique de RobotML
5 Intégration du middleware OROCOS : génération de code
5.1 Génération du squelette d’un composant
5.2 Génération de la communication entre les composants
5.3 Génération du comportement d’un composant
6 Utilisation : chaîne d’outillage RobotML
7 Validation et Expérimentations
7.1 Scénario de l’AIROARP
7.2 Conception du scénario avec RobotML
7.3 Génération de code vers OROCOS
8 Discussion
9 Conclusion
Approche Top-down pour la gestion de la variabilité dans les algorithmes de robotique
1 Introduction
2 Approche pour la gestion de la variabilité dans les algorithmes de robotique
2.1 Identification des abstractions
2.2 Identification de l’algorithme générique
2.3 Organisation de l’implantation
2.3.1 Implantation des abstractions non algorithmiques
2.3.2 Implantation des abstractions algorithmiques et de l’algorithme générique
3 Application sur la famille d’algorithmes Bug
3.1 La famille d’algorithmes Bug
3.1.1 Bug1
3.1.2 Bug2
3.1.3 Alg1
3.1.4 Alg2
3.1.5 DistBug
3.1.6 TangentBug
3.2 Identification des abstractions de la famille Bug
3.3 Identification de l’algorithme générique de la famille Bug
3.4 Organisation de l’implantation de la famille Bug
3.5 Expérimentations et Validation
3.5.1 Environnement de simulation : Stage-ROS
3.5.2 Configurations des environnements et des capteurs
3.5.3 Résultats
4 Discussion
5 Conclusion
Conclusion générale

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *