scieee AI-readable full text Open interactive document viewer

PJE - Robotique mobile

Dehesa Rodríguez, Javier

Abstract

Departamento de Ciencias de los Materiales e Ingeniería Metalúrgica, Expresión Gráfica en la Ingeniería, Ingeniería Cartográfica, Geodesia y Fotogrametría, Ingeniería Mecánica e Ingeniería de los Procesos de Fabricación

Full text

UNIVERSIDAD DE VALLADOLID ESCUELA DE INGENIERIAS INDUSTRIALES Grado en Ingeniería de Organización Industrial PJE - ROBOTIQUE MOBILE Autor: Javier Dehesa Rodríguez Responsable de Intercambio en la Uva: Marta Herráez Sánchez Ecole Nationale Supérieur d’Arts et Métiers Campus Lille DEHESA Javier TETRA ENSAM LILLE 1 12/2021 Valladolid, septiembre 2022. TFG REALIZADO EN PROGRAMA DE INTERCAMBIO TÍTULO: PJE - ROBOTIQUE MOBILE ALUMNO: Javier Dehesa Rodríguez FECHA: 12/01/2022 CENTRO: Campus de Lille UNIVERSIDAD: Ecole National Supérieur d’Arts et Métiers TUTOR: Adel Olabi DEHESA Javier TETRA ENSAM LILLE 2 12/2021 Resumen: Este proyecto consiste en tomar la plataforma Turtlebot3 y estudiar los modelos que le permiten desplazarse mediante el mapeo del entorno, para acabar generalizando las estrategias de navegación a las plataformas móviles industriales. Para ello, se estudiará la plataforma, se pondrán en marcha las herramientas de simulación asociadas y se probarán los algoritmos disponibles en la plataforma para adaptar y optimizar su funcionamiento. Esta plataforma está equipada con una interfaz principal que acepta comandos en lenguaje ROS (Robot Operating System). Palabras claves: ROS, SLAM, TurtleBot3, LiDAR, Raspberry Pi. Abstract: This project consists of taking the Turtlebot3 platform and studying the models that allow it to move by mapping the environment, in order to generalise the navigation strategies to industrial mobile platforms. To do this, the platform will be studied, the associated simulation tools will be implemented and the algorithms available on the platform will be tested in order to adapt and optimise its operation. This platform is equipped with a main interface that accepts commands in ROS (Robot Operating System) language. Keywords: ROS, SLAM, TurtleBot3, LiDAR, Raspberry Pi. DEHESA Javier TETRA ENSAM LILLE 3 12/2021 Table des matières 1 Mise en cohérence des objectifs du projet : ................................................................................... 4 2 Planification du projet : ................................................................................................................... 4 3 Les robots d’avant et d’aujourd’hui : .............................................................................................. 7 4 ROS (Robot Operating System) : ..................................................................................................... 9 4.1 Objectifs du ROS : .................................................................................................................... 9 4.2 Philosophie de ROS : .............................................................................................................. 10 4.3 Systèmes d'exploitation compatibles. ................................................................................... 11 4.4 Nouvelles bibliothèques : ...................................................................................................... 11 4.5 Niveaux du système ROS : ..................................................................................................... 11 4.6 Fonctionnement du système : ............................................................................................... 13 4.6.1 Structure : ...................................................................................................................... 13 4.6.2 Computation dans ROS : ................................................................................................ 14 5 SLAM (Simultaneous Locating And Mapping) : ............................................................................. 16 5.1 L’évolution du problème de SLAM : ...................................................................................... 17 5.2 Classification des différents types de SLAM : ........................................................................ 18 5.3 Applications habituelles et potentielles : .............................................................................. 19 5.4 Extraction des points caractéristiques : ................................................................................ 20 5.5 Calcul des trajectoires : ......................................................................................................... 20 6 LiDAR : ........................................................................................................................................... 22 7 Raspberry Pi : ................................................................................................................................. 22 8 Les Méthodes de SLAM : ............................................................................................................... 23 8.1 Gmapping : ............................................................................................................................ 23 8.2 Hector SLAM : ........................................................................................................................ 24 8.3 Karto : .................................................................................................................................... 25 8.4 Cartographer SLAM : ............................................................................................................. 25 9 Configuration et lancement du robot ........................................................................................... 27 9.1 Description du fonctionnement daemon de ROS ................................................................. 27 9.2 Installation de ROS et des modules de SLAM ........................................................................ 28 9.3 Configuration réseau du PC et du robot................................................................................ 28 9.4 Mise en œuvre d’un algorithme de SLAM ............................................................................. 30 10 Comparaison des résultats pour trois types de SLAM différents .............................................. 31 11 Conclusion ................................................................................................................................. 31 12 Bibliographie : ............................................................................................................................ 32 DEHESA Javier TETRA ENSAM LILLE 4 12/2021 1 Mise en cohérence des objectifs du projet : Le projet d’expertise « Robotique mobile » consiste à prendre en main la plateforme Turtlebot3 et à étudier les modèles qui lui permettent de se déplacer en cartographiant l’environnement, afin de pouvoir éventuellement généraliser les stratégies de navigation à des plateformes mobiles industrielles. Pour cela, il faudra étudier la plateforme, mettre en place les outils de simulation qui lui sont associés, et tester les algorithmes disponibles sur la plateforme afin de les adapter et d’optimiser leur fonctionnement. Cette plateforme est munie d’une interface principale acceptant les commandes en langage ROS (Robot Operating System). Une première étape a été de réaliser un état de l’art des techniques de SLAM (Simultaneous Localization And Mapping), permettant au robot de réaliser la tâche mentionnée ci-dessus. Le groupe du projet est constitué de : ▪ Yannis FAKIR ▪ Javier DEHESA RODRIGUEZ Pendant le projet nous nous sommes partagé les tâches afin de mener le projet le plus efficacement possible. Notre professeur encadrant est : ▪ Adel OLABI Nos remerciements vont à Mr BELLE et Mr DESCHODT, qui nous ont apporté leur aide et leurs connaissances tout au long de la réalisation de ce projet. 2 Planification du projet : Pour l’organisation du travail à faire nous avons proposé une planification pour être conscient des situations suivantes : ✓ Établir les étapes de travail ✓ Prendre conscience des délais ✓ Faire face aux imprévus en étant conscient des conséquences ✓ Coordonner le travail ✓ Fournir des outils pour suivre les progrès de l’extérieur Nous avons établi le planning provisionnel pour le déroulement de notre projet. Pour cela nous avons pris en compte toutes nos séances prévues pour le PJE et ensuite nous avons fait la première répartition des tâches entre les séances. On a essayé d’organiser le travail de façon que le développement du projet soit cohérent avec le déroulement de notre PJE. Le diagramme de Gant suivant illustre cette organisation, qui a été adaptée selon l’avance du projet à cause des difficultés découverts. Pour pouvoir bien regarder et analyser le diagramme de Gantt vous pouvez cliquer sur le lien suivant : • https://sharing.clickup.com/g/h/kg3vq-28/954977713a0b6aa DEHESA Javier TETRA ENSAM LILLE 5 12/2021 Les taches de notre PJE que nous avons fixés au début du projet sont les suivantes : 1. Appréhender ROS/ TurtleBot (TB) /SLAM 2. Introduction au calcul de position, au mapping et à la navigation 3. Rechercher sur LiDar 2D et Caméra 4. Différentes méthodes de SLAM 5. Recherche du Linux et ROS associé et installation 6. Qualifier les technologies des capteurs 7. Apprendre sur l’utilisation de la machine (TB) 8. Faire naviguer le TB dans une salle où des objets sont en mouvement 9. Tester les algorithmes fournis dans le TB 10. Analyses ou conclusion des résultats sur les algorithmes sur le TB 11. Ouverture sur véhicules autonomes et intelligence artificielle 12. Préparer soutenance et rapport final 13. Soutenance finale. Cependant, en raison au retard de l’arrivée du robot, nous avons été contraints de modifier les taches du projet. Ce retard a affecté et retardé notre organisation. Nous avons finalement reçu et pu manipuler notre plateforme TurtleBot 3, montée par Mr Olabi, fin novembre. Par conséquent notre planning a été modifié et nous avons réorganisé les taches á réaliser : Figure 1 Planification initiale Figure 2 Planification adaptée DEHESA Javier TETRA ENSAM LILLE 6 12/2021 Pour pouvoir consulter les détails du diagramme de Gantt modifié et adapté vous pouvez cliquer sur le lien suivant : • https://sharing.clickup.com/g/h/kg3vq-88/a17fe21bfc0b491 Les nouvelles taches sur lesquelles nous allons travailler sont alors les suivantes : 1. Installation de la plateforme TurtleBot et du ROS associé. 2. Apprendre sur l’utilisation de la machine (TB) 3. Faire naviguer le TB dans une salle où des objets sont en mouvement 4. Tester les algorithmes fournis dans le TB 5. Analyses ou conclusion des résultats sur les algorithmes sur le TB 6. Préparer soutenance et rapport final 7. Soutenance finale. Cahier des charges en situation de fonctionnement : Les fonctions identifiées sont proprement définies dans le CDCF. Les critères pour vérifier la réalisation des fonctions sont aussi définies. En plus, on estime les actions et les niveaux pour évaluer les critères, ainsi que leur flexibilité. Problématique Actions Niveau Flexibilité FP1 : explorer l’environnement L’algorithme doit permettre de parcourir efficacement l’environnement Limiter les passages au même endroit et les croisements de la trajectoire avec elle-même FP2 : cartographier l’environnement L’algorithme doit permettre de cartographier l’environnement Le bruit de cartographie devra être limité grâce au couplage entre l’odométrie et le lidar FP3 : s’adapter aux variations de configuration de l’environnement L’algorithme doit pouvoir faire contourner les obstacles Le robot ne doit pas s’arrêter au moindre obstacle FP4 : garantir la sécurité des utilisateurs L’algorithme doit s’adapter à la présence de murs ou de piétons Le robot doit contourner les piétons et changer de direction s’il va vers un mur, voire s’arrêter si besoin. Aucune 1. Contraintes applicables Le travail dans un atelier doit être possible. La présence de personnes et de machines dans le champ de travail du robot ne doit pas l’empêcher d’avancer, il doit être en mesure de contourner la personne sans arrêt prolongé. 2. Cadre de réponse On proposera des algorithmes fonctionnels, les parties commande et communication entre les sous-systèmes étant gérée par le turtlebot. Les sous-ensembles doivent pouvoir communiquer entre eux selon la même norme. DEHESA Javier TETRA ENSAM LILLE 7 12/2021 3 Les robots d’avant et d’aujourd’hui : Un robot est une machine contrôlée par un ordinateur et programmable pour se déplacer, manipuler des objets et effectuer des travaux au même temps qu’elle interagi avec son environnement. Son utilité principale est de remplacer les personnes dans les tâches répétitives, difficiles, désagréables et dangereuses. Il permet de les effectuer d’une forme sécure rapide et précise. Définitions du robot : « Dispositif multifonctionnel reprogrammable conçu pour manipuler et/ou transporter des matériaux à l'aide des mouvements programmés pour effectuer une variété de tâches. » « Machine ou dispositif électronique programmable, capable de manipuler des objets et d'effectuer des opérations préalablement réservées aux humains. » Un robot doit respecter trois critères clés : ➢ Programmable, ce qui signifie disposer des capacités computationnelles et de manipulation des symboles (le robot est un ordinateur) ➢ Capacité mécanique, qui le capacite pour réaliser des actions dans son environnement et pas être un seul processeur des données (le robot est une machine). ➢ Flexibilité, puisque le robot peut fonctionner selon une vaste gamme des programmes et manipuler des matériaux des différents manières. Avec tout ça, nous pouvons considérer un robot comme une machine complémentée par un ordinateur ou comme un ordinateur avec des dispositifs d’entrée et de sortie sophistiqués. L’idée plus acceptée du robot est associée à l’existence d’un dispositif de contrôle digital qui, grâce à l’exécution d’un programme enregistré dans la mémoire, dirige les mouvements d’un bras ou d’un système mécanique. Le concept des machines automatisées provient de l’antiquité. Les automates, ou machines apparaissent sur les horloges des églises médiévales ou sur les horloges du siècle XVIII qui étaient connus par leurs ingénieuses créatures mécaniques. Le contrôle par rétroaction, le développement d'outils spécialisés et la division du travail en tâches plus petites pouvant être exécutées par des ouvriers ou des machines ont été les ingrédients essentiels de l'automatisation des usines au 18e siècle. Au fur et à mesure que la technologie s'est améliorée, des machines spécialisées ont été développées pour des tâches telles que la pose de bouchons sur des bouteilles ou le versement de caoutchouc liquide dans des moules à pneus. Les machines les plus proches de ce que nous comprenons aujourd'hui comme des robots étaient les "téléopérateurs", utilisés dans l'industrie nucléaire pour la manipulation de substances radioactives. Il s'agissait essentiellement de servomécanismes qui, au moyen de systèmes mécaniques, répétaient les opérations effectuées simultanément par un opérateur. L'inventeur américain George C. Devol a mis au point en 1954 un dispositif de transfert programmé articulé (selon sa propre définition) ; un bras primitif qui pouvait être programmé pour effectuer des tâches spécifiques. En 1958, Devol s'associe à Joseph F. Engelberger et, dans le garage de ce dernier, ils construisent un robot qu'ils appellent Unimate. Il s'agissait d'un dispositif qui utilisait un ordinateur et un manipulateur pour former une "machine" à laquelle on pouvait "enseigner" à effectuer diverses tâches automatiquement. DEHESA Javier TETRA ENSAM LILLE 8 12/2021 Au cours des années 1960, un nouveau concept est apparu par rapport aux développements précédents. En vue d'une plus grande flexibilité, le retour sensoriel devient nécessaire. En 1962, Tomovic et Boni ont mis au point une main dotée d'un capteur de pression pour la détection des objets, qui fournissait un signal de retour au moteur. Les premières applications industrielles en Europe, des applications de robots industriels dans les chaînes de production automobile, datent des années 1970 et 1971. En 1971, Kahn et Roth ont analysé le comportement dynamique et la commande d'un bras manipulateur. Au cours des années 1970, la recherche en robotique s'est largement concentrée sur l'utilisation de capteurs externes pour les tâches de manipulation. C'est également au cours de ces années que la présence des robots sur les chaînes de montage et dans les installations industrielles du monde entier s'est définitivement consolidée. En 1982, le robot Pedesco est utilisé pour nettoyer une fuite de combustible dans une centrale nucléaire. L'accent est également mis sur les domaines de la vision artificielle, de la détection tactile et des langages de programmation. En 2000, le robot ASIMO a été présenté à la société, un robot humanoïde capable de se déplacer de manière bipède et d'interagir avec les gens, créé par Honda Motor Co. Ltd, qui, après plusieurs mises à jour en 2011, a réussi à fonctionner à une vitesse de 9 km/h, à faire la différence entre 3 personnes parlant en même temps et à accomplir des fonctions telles que prendre un gobelet en papier et le remplir d'eau sans en renverser une seule goutte. Selon leur chronologie, nous pouvons faire la suivante classifications des robots : 1ère génération. Manipulateurs. Il s'agit de systèmes mécaniques multifonctionnels dotés d'un système de commande simple, soit manuel, soit à séquence fixe, soit à séquence variable. 2ème génération. Les robots d'apprentissage. Ils répètent une séquence de mouvements qui a été préalablement exécutée par un opérateur humain. Cela se fait au moyen d'un dispositif mécanique. L'opérateur effectue les mouvements requis tandis que le robot les suit et les mémorise. 3ème génération. Robots à commande sensorisée. Le contrôleur est un ordinateur qui exécute les ordres d'un programme et les envoie au manipulateur pour qu'il effectue les mouvements nécessaires. 4ème génération. Des robots intelligents. Ils sont semblables aux précédents, mais ils possèdent également des capteurs qui envoient des informations à l'ordinateur de contrôle sur l'état du processus. Cela permet une prise de décision intelligente et un contrôle en temps réel du processus. DEHESA Javier TETRA ENSAM LILLE 15 12/2021 Les Topics : Les Topics ou thèmes sont les noms qui identifient le contenu d'un message, et ceux-ci sont acheminés de deux manières, un éditeur et un abonné. Un nœud qui s'intéresse à un certain type de données s'abonne au sujet correspondant. Il peut y avoir plusieurs éditeurs et abonnés simultanés au même topic, et un seul nœud peut publier et/ou s'abonner à plusieurs topics. En général, les éditeurs et les abonnés ne connaissent pas l'existence de l'autre. Vous pouvez considérer un sujet comme un bus de messages. Chaque bus a un nom, et n'importe qui peut s'y connecter pour envoyer ou recevoir des messages, à condition qu'ils soient du bon type. Les structures de données des requêtes et des réponses : Figure 5 Structure de données des requêtes et des réponses Messages : Les nœuds communiquent entre eux en se transmettant des messages. Un message est simplement une structure de données, comprenant des types de champs. Les messages peuvent inclure des structures et des tableaux arbitrairement imbriqués (tout comme les structures C). Le Master : Le Master fournit l'enregistrement et la recherche de noms pour le reste des nœuds. Sans le maître, ils ne seraient pas en mesure de trouver les messages de l'autre, d'échanger ou d'invoquer des services, ce qui le rend totalement indispensable lors de l'exécution de tout type de programme. Bags : Les sacs sont un format de stockage et de relecture des données de messages ROS, qui nous permet de stocker une série de commandes et de les répéter séquentiellement. Les sacs constituent un mécanisme important pour le stockage de données, telles que les données de DEHESA Javier TETRA ENSAM LILLE 16 12/2021 capteurs, qui peuvent être difficiles à collecter, mais qui sont nécessaires pour développer et tester des algorithmes. 5 SLAM (Simultaneous Locating And Mapping) : Le SLAM (Simultaneous Localisation And Mapping) est un processus par lequel un robot peut construire une carte d'un environnement donné et en même temps naviguer dans cet environnement. Pour ce faire, il faut identifier ou connaître à l'avance un certain nombre de points caractéristiques qui seront utilisés comme points de référence par le système. La figure 1 montre rapidement le comportement réel d'un robot avec une certaine imprécision dans ses capteurs, ce qui génère une incertitude dans la position observée des points caractéristiques et donc dans l'idée que le robot se fait de sa position. Même si les capteurs étaient idéaux, cette incertitude existe toujours car la position de départ du robot n'est pas connue. Le fait de ne pas connaître cette position de départ est précisément ce qui distingue le SLAM des autres stratégies de localisation, car le fait de ne pas avoir besoin d'un protocole d'initialisation est à la fois un grand avantage et une difficulté supplémentaire. Une autre des qualités les plus importantes du SLAM est que les estimations de la position des minuties s'améliorent au fur et à mesure que les minuties sont réobservées, ce qui rend l'algorithme plus efficace et plus fiable dans le temps. Figure 6 Fonctionnement basic du SLAM DEHESA Javier TETRA ENSAM LILLE 17 12/2021 Le SLAM sera appelé "le système" et non "l'algorithme", car le processus se compose de plusieurs étapes, chacune ayant ses propres algorithmes. La solution au problème du SLAM n'est donc pas unique, et de nombreuses approches différentes peuvent être adoptées pour trouver une solution, comme nous le verrons plus loin. Afin de créer les cartes, l'algorithme a besoin d'informations provenant des capteurs appropriés. Au minimum, il est nécessaire de disposer de données sur la profondeur et la commande de mouvement effectuée sur le robot. L'odométrie a été pendant de nombreuses années la méthode la plus courante parce que la moins chère, basée sur la lecture des révolutions des roues du robot et l'utilisation de capteurs inertiels pour estimer les virages. Aujourd'hui, cependant, le SLAM est un problème souvent résolu par la vision par ordinateur. 5.1 L’évolution du problème de SLAM : La nécessité de résoudre ce problème découle du désir d'une plus grande autonomie des robots mobiles. Une fois qu'ils peuvent se déplacer de manière autonome dans un environnement donné, on peut compter sur eux pour des tâches de plus en plus complexes. À partir de la décade des 90, les mondes de la robotique et de l'intelligence artificielle commençaient à fusionner, grâce à la première application des méthodes d'estimation probabiliste aux problèmes de robotique. Le plus grand risque lié à l'hypothèse d'une incertitude élevée est non seulement d'obtenir une fausse trajectoire, mais aussi de confondre des détails, ce qui peut conduire à des inexactitudes fatales. Au cours des années suivantes, des études clés ont été publiées dans ce domaine, qui ont atteint l'objectif de manipuler l'incertitude géométrique de manière statistique, ce qui signifie que l'incertitude est réduite au fil des scans successifs. La solution la plus fréquemment adoptée est basée sur la modélisation avec le filtre de Kalman étendu (EKF). La dernière décennie a vu une énorme croissance des performances des solutions SLAM qui ont été développées. Alors que la plupart des propositions visaient à améliorer l'efficacité des calculs en essayant de maintenir la précision de la cartographie, beaucoup d'autres ont trouvé la solution dans l'amélioration de la source de données. L'incorporation de l'odométrie visuelle dans le système, c'est-à-dire l'obtention de la variation de la position du point de vue à partir d'images successives, est particulièrement importante. En général, une bonne mise en œuvre de l'odométrie visuelle est plus fiable que l'odométrie classique. Ce type de capteur a été mis en œuvre avec succès pour la première fois en 2003. Il est aujourd'hui le plus utilisé dans la recherche grâce à la réduction du prix des caméras et à l'apparition de capteurs avec lecture intégrée des couleurs et de la distance à un coût raisonnable. D'un point de vue conceptuel et théorique, le SLAM est un problème qui peut être considéré comme résolu. Cependant, il existe encore des domaines qui peuvent être largement améliorés, comme la construction de la carte et son utilisation, ou le manque de polyvalence et d'adaptabilité dans le choix des points caractéristiques. Ce dernier point est particulièrement important, car il existe plusieurs critères pour les localiser. Logiquement, un robot entraîné à détecter des points de repère basés sur la couleur ne pourra pas s'orienter correctement dans une pièce monochromatique. Un autre problème pour lequel il n'existe pas de solution stable, même aujourd'hui, est la reconnaissance des changements de l'environnement. DEHESA Javier TETRA ENSAM LILLE 18 12/2021 5.2 Classification des différents types de SLAM : Il existe une grande variété de caractéristiques permettant de classer les systèmes SLAM. Les critères que nous avons choisis pour classer les systèmes SLAM sont basés sur les types de sous-systèmes qui composent un système SLAM complet, la disponibilité des capteurs ou les fonctionnalités qu'il offre. 2D ou 3D : Les systèmes de cartographie 2D SLAM ne sont utiles que dans les environnements plats et basent leurs observations sur des capteurs de distance ou de profondeur. L'algorithme le plus populaire pour résoudre ce problème est connu sous le nom de Grid Mapping (cartographie à grille ou quadrillé), qui divise la zone de travail en une grille de la résolution souhaitée, où chaque cellule a une probabilité de 0 à 1 d'être occupée. En combinant l'observation et les méthodes probabilistes, chacune de ces cellules est déchiffrée. Figure 7 Exemple de SLAM 2D Basé sur les points caractéristiques ou points directs : Les points caractéristiques sont des références que le système utilisera pour se localiser. Il peut s'agir de données manuelles, de balises détectées par un certain capteur ou créées par le système. Ce dernier cas est le plus délicat et le moins robuste, car ces points crées sont déjà associés à une incertitude. Comme nous le verrons plus loin, il existe plusieurs critères visuels pour choisir les points caractéristiques, tels que la détection des coins, les formes ou les couleurs. Selon le type de camera utilisée : En SLAM 3D, nous aurons toujours une image en entrée, presque toujours en couleur. À partir de ces informations, il est encore possible d'aborder le problème de différentes manières. Le SLAM monoculaire est connu comme un SLAM que grâce à la simplicité et le prix de son matériel le rendent idéal pour les applications où la robustesse n'est pas une priorité, même si la complexité de sa mise en œuvre sera beaucoup plus grande. Traditionnellement, il était essentiel d'utiliser un filtre de Kalman étendu pour suivre les minuties extraites, comme pour les prédictions de profondeur d'un système 2D. Cependant, l'utilisation de plusieurs images consécutives pour trianguler un point et prédire sa profondeur devient populaire. L'inconvénient majeur est l'erreur qui s'accumule dans leurs estimations, ainsi que le fait que plusieurs images consécutives sont traitées et fournissent peu de nouvelles informations. À l'extrême opposé, on trouve l'utilisation de caméras stéréo. De la même manière que les yeux humains font la mise au point, ils sont capables de calculer la distance des objets à partir DEHESA Javier TETRA ENSAM LILLE 19 12/2021 des images. C'est pourquoi ils permettent des applications commerciales où il y a un intérêt à remplacer les humains, comme les voitures autonomes ou les drones. Une dernière combinaison de capteurs, moins courante, consiste à utiliser une seule caméra assistée par un capteur inertiel. De cette manière, une estimation des tours est obtenue et l'incertitude des minuties est réduite de manière drastique. Online/Offline : Le SLAM Online, est celui qui fonctionne en temps réel, la pose du point de vue est principalement calculée à chaque instant. Le calcul de la trajectoire n'est pas quelque chose d'intéressant à la volée, car le but est de déduire comment la pose de la caméra évolue. Cependant, dans les applications où l'objectif principal est d'enregistrer une séquence et de l'analyser ensuite pour voir si elle est optimale (hors ligne), l'objectif principal est généralement d'obtenir la trajectoire du robot comme produit final. Le grand avantage de la conception d'un système hors ligne est la liberté de mettre en œuvre des ressources qui le rendent plus puissant, puisqu'un temps d'exécution plus long n'est pas un problème. 5.3 Applications habituelles et potentielles : Bien que depuis sa création, le SLAM ait été largement utilisé dans les robots mobiles pour accélérer et automatiser les tâches industrielles, au cours de la dernière décennie, les domaines d'application de cette technologie se sont multipliés grâce à l'évolution du matériel et à l'apparition sur le marché de nouveaux besoins, tant industriels que domestiques. • Cartographie 2D : La variante la plus simple du SLAM, qui utilise le mappage 2D, est suffisante pour les applications de pièces plates où l'information de distance est la seule source nécessaire. Il s'agit d'une application relativement primitive qui est utile dans les robots domestiques tels que les aspirateurs autonomes ou dans les chaînes de montage où des chariots automatisés sont utilisés pour transporter des pièces. • La cartographie comme alternative aux autres méthodes de localisation : Le potentiel de la SLAM dans les grands espaces est considérable si les bons capteurs sont en place. Il est donc possible d'automatiser des tâches pour lesquelles le GPS n'est pas une option, comme dans l'exploration des fonds marins, les mines, les tunnels et même sur d'autres planètes. Sa mise en œuvre dans des robots et des drones pour de telles tâches est déjà une réalité. D'autre part, et de manière similaire, il existe une variété d'expériences dans lesquelles le SLAM est appliqué à la voiture autonome. Les capteurs utilisés ne ressemblent guère à ceux que nous utiliserons dans des applications de recherche dans des espaces confinés, nécessitant plusieurs caméras, un LIDAR ou des capteurs similaires et le support d'un GPS et d'une odométrie. • Réalité augmentée : les informations de profondeur sont utilisées pour localiser les éléments numériques, complétées par un algorithme SLAM pour garder le point de vue cohérent avec ces éléments. Ce type d'application commence à être utilisé par les entreprises des secteurs de la technologie médicale, de l'aérospatiale et de l'automobile pour former leurs travailleurs dans des scénarios semi-virtuels, car il permet de réaliser d'importantes économies de coûts et, surtout, de risques. • Applications en médecine : Il existe de nombreuses procédures chirurgicales qui peuvent bénéficier du SLAM. En particulier celles dans lesquelles une DEHESA Javier TETRA ENSAM LILLE 20 12/2021 caméra examine l'intérieur d'une cavité. Dans ces cas, l'inclusion du SLAM permet de cartographier les cavités à examiner et de les étudier ultérieurement, réduisant ainsi le temps nécessaire à l'examen du patient. • Scannage d'objets en 3D : Cela a plusieurs applications possibles dans le monde de la réalité augmentée, car cela permet d'introduire dans l'univers virtuel des objets préalablement scannés par l'utilisateur, par exemple en mettant le visage de l'utilisateur sur un personnage de jeu vidéo. Une technique similaire a été utilisée pour inclure des bâtiments réels dans des cartes virtuelles telles que Google Maps ou dans des effets spéciaux vidéo. 5.4 Extraction des points caractéristiques : Dans les systèmes SLAM basés sur les points caractéristiques, il est courant que les points doivent être identifiées à la volée. Cela sera compliqué par une complexité croissante, d'où l'importance de reconnaître ces points une fois qu'ils ont été créés. Par conséquent, les approches adoptées pour résoudre ce problème comprennent toujours une approximation calculée à l'aide de détecteurs et de descripteurs. Un détecteur est simplement un algorithme qui détecte des formes, des textures ou des couleurs dans une image, en renvoyant des coordonnées 2D. Idéalement, un détecteur est complété par un descripteur, qui analyse également la zone autour du point détecté afin d'optimiser l'échantillonnage ou de reconnaître l'orientation du point. Une autre façon d'aborder le problème consiste à détecter des arêtes au lieu de points. Les algorithmes de Canny, Sobel, Harris ou Prewitt appliquent de manière similaire une réduction gaussienne, en recherchant la direction du gradient de chaque pixel et en filtrant ainsi les zones non texturées. 5.5 Calcul des trajectoires : Scan Matching : La façon la plus populaire de calculer ces trajectoires est en utilisant Scan Matching qui consiste à trouver une transformation rigide de translation et de rotation qui aligne deux images successives. Afin d'analyser ces images, les points caractéristiques visibles dans les deux images sont pris comme données d'entrée. Soit donc deux ensembles de points : Figure 8 Ensemble de points La procédure est d'appliquer les minimes carrés pour trouver la ligne reliant les cadres. Dans ce cas, nous voulons obtenir la rotation R et la translation t telles que l'expression des moindres carrés soit minimisée : Où xi et pi sont le même point dans les deux images. Figure 9 Expression de Reduction par des minimes carrés DEHESA Javier TETRA ENSAM LILLE 21 12/2021 Cette méthode est simple à mettre en œuvre mais est très sujette aux erreurs de précision, car elle prend en compte des points qui peuvent ne pas être pertinents pour la transformation. Cela peut influencer radicalement le résultat si trop de fausses références sont détectées. Pour résoudre ce problème, il existe plusieurs façons de filtrer les points que l'on ne veut pas prendre en compte. Le plus populaire est l'algorithme RANSAC (RANdom SAmple Consensus). RANSAC est une méthode itérative pour estimer les paramètres d'un modèle mathématique d'un ensemble de données observées contenant des valeurs aberrantes. Il s'agit d'un algorithme non déterministe dans le sens où il ne produit un résultat raisonnable qu'avec une certaine probabilité, qui augmente avec le nombre d'itérations autorisées. Filtro de Kalman : Le filtre de Kalman est un outil probabiliste. Son but dans le SLAM est, étant donné une observation et une action de mouvement, de fournir la nouvelle position des points de référence et la trajectoire qui a été suivie. En d'autres termes, si nous définissons l'état du robot comme sa position par rapport aux points caractéristiques, nous obtiendrons les états successifs. Pour ce faire, une stratégie de prédiction plus correction est suivie. C'est-à-dire que lorsque nous observons un point caractéristique, nous voulons être sûrs de ne pas le confondre avec un autre, donc une prédiction est faite et c'est cette incertitude qui est corrigée. En résumé, l'algorithme suit 5 étapes : o Prévision de l'État o Prédiction des mesures o Observer la mesure o Associer les données o Mettre à jour la prédiction avec l'observation. Figure 10 Algorithme du filtre de Kalman Dans l'algorithme de la figure 20, μt est l'état et zt l'observation. On voit apparaître la matrice de covariance Σ, qui joue un rôle fondamental puisqu'elle comporte des informations sur l'incertitude. Kt est un paramètre qui prend en compte les incertitudes et les observations pour quantifier le degré de certitude du robot quant à ses conclusions. Plus le K est élevé, plus l'incertitude est faible. DEHESA Javier TETRA ENSAM LILLE 22 12/2021 6 LiDAR : C'est l'acronyme de "Light Detection and Ranging", c'est-à-dire la détection par la lumière et la distance. Il s'agit d'un système laser qui nous permet de mesurer la distance entre le point d'émission de ce laser et un objet ou une surface. Le temps que met le laser pour atteindre et revenir de sa cible est ce qui nous permet de calculer la distance entre les deux points. L'un des avantages de ce capteur par rapport à d'autres qui peuvent remplir une fonction similaire car ils ont la capacité de recevoir des mesures simultanées dans plusieurs directions en même temps avec un taux d'échantillonnage élevé. L'utilisation de cette technologie est de plus en plus mise en œuvre dans les voitures autonomes. La réception étant basée sur le laser, elle est beaucoup plus rapide et moins sujette au bruit, ce qui en fait une option beaucoup plus précise que le sonar. Toutes les données sont transmises par USB au Raspberry Pi. Le type de sortie des données est un tableau qui comprend les valeurs de distance détectées autour du LiDAR. 7 Raspberry Pi : La Fondation Raspberry Pi elle-même le définit comme un PC à faible coût, de la taille d'une carte de crédit, qui se connecte à un écran ou à un téléviseur et s'utilise avec un clavier et une souris. Quel que soit ton âge, il te permet d'explorer le monde de l'informatique et d'apprendre les langages de programmation Scratch et Python. Le Raspberry Pi est un petit ordinateur peu coûteux qui tient dans la paume de votre main, mais vous pouvez y connecter un téléviseur et un clavier pour interagir avec lui comme n'importe quel autre ordinateur. On peut attendre d'un Raspberry Pi la même utilisation qu'un PC : naviguer, utiliser Microsoft Office, lire des vidéos, jouer à des jeux vidéo (légers), etc. Ce sont des appareils qui ont connu un grand succès grâce à leur faible coût et à leur grande accessibilité, ainsi qu'à la communauté qui se cache derrière le monde des Raspberry Pi. Le Raspberry Pi est une simple carte informatique composée d'un SoC, d'un CPU, de RAM, de ports d'entrée et de sortie audio et vidéo, d'une connectivité réseau, d'un slot SD pour le stockage, d'une horloge, d'une prise d'alimentation, de connexions pour les périphériques de bas niveau, de... c'est à peu près la même chose que si vous regardez l'arrière d'une tour d'ordinateur, car le Raspberry est un ordinateur. Il n'y a pas d'interrupteur pour l'allumer ou l'éteindre, cependant. Pour le rendre opérationnel, nous devons connecter des périphériques d'entrée et de sortie pour pouvoir interagir avec lui, comme un écran, une souris et un clavier, et enregistrer un système d'exploitation pour Raspberry Pi sur la carte SD. Il ne reste plus qu'à le connecter à l'alimentation électrique et nous sommes prêts à partir. De quoi a-t-elle besoin pour fonctionner ? La Fondation Raspberry elle-même explique très facilement en cinq étapes ce dont un Raspberry Pi a besoin pour fonctionner : 1. Insérez une carte SD comme mémoire de stockage avec un système d'exploitation 2. Connexion de la carte mère à un moniteur ou à un téléviseur DEHESA Javier TETRA ENSAM LILLE 23 12/2021 3. Connecter un clavier et une souris 4. Connectez-vous au réseau via Ethernet (ou WiFi - ceci est optionnel). 5. Connectez le Raspberry Pi à l'alimentation électrique. 8 Les Méthodes de SLAM : 8.1 Gmapping : L'un des algorithmes les plus connus pour la mise en œuvre du SLAM est connu sous le nom de Gmapping. Ce logiciel met en œuvre une adaptation de la bibliothèque OpenSLAM pour la rendre compatible avec l'environnement ROS. Le programme reçoit le système de coordonnées associé à la base du robot et le système de coordonnées associé à l'odométrie du robot. Suite à l'application du filtre à particules, un nouveau système de coordonnées lié à la carte sera généré. Il sera également nécessaire de fournir au nœud les informations recueillies par le capteur. Cela se fait en indiquant le sujet contenant les messages de type sensor_msgs::LaserScan. Concernant la carte, la position de l'odométrie indiquera la position initiale où le robot est apparu et l'image de la base sera l'estimation de la position du robot. Le système de coordonnées odométriques est généré par le robot lui-même à partir des commandes de vitesse qui lui sont envoyées. En l'absence de carte, sa relation avec la base sert à estimer sa position. En résumé, on peut inclure que, conformément à la théorie, le système de coordonnées de la carte est une correction d'image purement odométrique dans l'estimation de la pose du robot. Gmapping est l'algorithme SLAM le plus intégré qui puisse être utilisé dans ROS aujourd'hui. Il utilise un nœud appelé slam_gmapping pour créer une carte d'occupation 2D au format grille, grâce aux informations du laser et à la position accumulée du robot mobile. Les algorithmes SLAM intègrent souvent des filtres d'optimisation et le cas du Gmapping ne fait pas exception. Cette méthode utilise le filtre à particules RaoBlackwellisé. Rao-Blackwellised suppose que, étant donné la trajectoire de l'observateur, chaque particule peut porter une carte individuelle de l'environnement. Le nombre de particules est réduit par calcul grâce à une distribution probabiliste qui prend en compte le mouvement du robot et les observations les plus récentes fournies par les capteurs. Par conséquent, l'incertitude sur la position du robot est considérablement réduite. Gmapping utilise l'algorithme Split-and-merge, une technique de traitement d'images. La procédure est illustrée dans l'image ci-dessous. DEHESA Javier TETRA ENSAM LILLE 24 12/2021 Figure 11 Split-and-merge algorithme de Gmapping Tout d'abord, une ligne d'estimation reliant le point de départ au point d'arrivée est établie. Ensuite, le point le plus éloigné est joint à la ligne reliant le point de départ et le point d'arrivée, si la longueur de la ligne est supérieure à un seuil prédéfini, la ligne est divisée en deux, reliant le premier et le dernier point au point le plus éloigné. Cette procédure est répétée jusqu'à ce que la longueur de la ligne normale soit inférieure au seuil donné. • Avantage du Gmapping: o Documentation suffisante sur les sites Web des développeurs. o Le paquetage est facile à configurer et à utiliser. o Odométrie suffisamment précise. • Desavantages : L'utilisation de ce package est limitée uniquement aux cas où le robot dispose de données d'odométrie. Comme nous pouvons seulement générer une carte en 2D ceci va supposer un problème pour la mise en œuvre ultérieure dans le véhicule autonome, qui vise à utiliser les informations Lidar en 3D pour saisir davantage d'informations sur un environnement complexe. 8.2 Hector SLAM : L'algorithme Hector de localisation et de cartographie simultanées Hector est un système SLAM 3D, qui combine un balayage lidar 2D avec des informations provenant d'un IMU à l'aide d'un filtre de Kalman (KF). Il est composé de trois modules différents : - hector_mapping : le nœud SLAM. - hector_geotiff : où sont stockées la carte et la trajectoire du robot. - hector_trajectory_server : stocke les transformées de Fourier (FFT) des trajectoires. Le système n'est pas conçu pour nécessiter des informations d'odométrie, il s'appuie donc uniquement sur les données fournies par le capteur laser et un IMU. En combinant la position avec l'unité de tangage/roulement, le laser est capable de se stabiliser, ce qui rend le système capable de travailler dans des environnements qui ne sont pas nécessairement plats. L'un des nœuds du paquet fusionne le filtre de Kalman étendu (EKF) avec les informations de l'IMU et l'erreur de position du laser 2D. Le filtre est basé sur un modèle de mouvement générique pour les véhicules terrestres et est amélioré par l'IMU, sans avoir à se fier aux DEHESA Javier TETRA ENSAM LILLE 31 12/2021 10 Comparaison des résultats pour trois types de SLAM différents La carte créée par le package Gmapping décrit le mieux décrit le mieux l'environnement réel. Les murs de l'environnement rendus ont le moins de bruit et la surface de la carte n'est en aucun cas déformée. Ce type de carte est tout à fait suffisante pour une localisation et la navigation. Gmapping utilise la méthode du filtre à particules. Cette méthode nécessite des modèles stochastiques de capteurs et d'odométrie. Le site valeurs prédéfinies de ces modèles ne décrit pas précisément le comportement du capteur sur le robot. Par conséquent, il était nécessaire de créer un modèle des capteurs utilisés pour améliorer les résultats du processus de cartographie. Pour l'application gmapping dans ROS, une valeur spécifique est à définir. Cette valeur caractérise le modèle stochastique et elle sera représentée par l’argument d'entrée. Cette valeur a été déterminée pour une distance de 2,5 m, car en termes de multiplicité, cette valeur était la plus élevée dans l'environnement donné. Valeur était la plus élevée dans l'environnement donné. L'écart de référence pour cette distance est de 0,0041 m. 11 Conclusion Nous l’avons vu, la technologie exigée par le slam est complexe. Nous avons réussi à la mettre en place malgré les difficultés techniques, ce qui permettra aux futurs groupes travaillant sur le sujet d’approfondir sur des bases saines, fonctionnelles. Nous avons cependant été freinés par des difficultés aussi bien techniques qu’organisationnelles :il nous est arrivé d’avoir des cours pendant les heures de projet, ce qui n’a pas aidé à aller au bout de toutes nos missions. L’élargissement du sujet serait d’arriver à généraliser les algorithmes du turtlebot à d’autres robots, et de généraliser les algorithmes d’autres robots au turtlebot. Une automatisation du parcours réalisé en SLAM serait également étudiable en acquérant les connaissances nécessaires pour programmer un script exécutable sur ROS. Figure 17 comparaison des methodes Gmapping, Karto et Hector DEHESA Javier TETRA ENSAM LILLE 32 12/2021 12 Bibliographie : www.wikipedia.org https://www.ros.org/ https://www.generationrobots.com/blog/en/ros-robot-operating-system-2/ wiki.ros.org https://youtu.be/yWtGUk3PBms Introduction to ROS – Robot Operating System – Daniel Serrano http://lsi.vc.ehu.es/pablogn/investig/ROS/ROS_an_introduction.pdf SLAM: Simultaneous Localization and Mapping - Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz An Introduction to Robot SLAM (Simultaneous Localization And Mapping) - Bradley HiebertTreuer Simultaneous Localisation and Mapping (SLAM): Part I The Essential Algorithms Hugh Durrant-Whyte, Fellow, IEEE, and Tim Bailey https://youtu.be/wVsfCnyt5jA Riisgaard, S., & Blas, M. R. (2003). SLAM forutorial Approach to Simultaneous Localization and Mapping, 22(1-127) Sarah Kudan (2016). An Introduction to Simultaneous Localisation and Mapping. Hugh Durrant-Whyte and Tim Bailey. Simultaneous localization and mapping: part I. IEEE Robotics Automation Magazine. CONCEPTION ET INTEGRATION D’UN CAPTEUR LIDAR 3D POUR LA NAVIGATION AUTONOME DES ROBOTS MOBILES EN TERRAIN INCONNU JEAN-PHILIPPE ROBERGE https://www.raspberrypi.org/ https://www.jmest.org/wp-content/uploads/JMESTN42353033.pdf https://google-cartographer-ros.readthedocs.io/en/latest/algo_walkthrough.html https://buildmedia.readthedocs.org/media/pdf/google-cartographer-ros/latest/googlecartographer-ros.pdf https://linklab-uva.github.io/autonomousracing/assets/files/SLAM.pd