Résultats de la première estimation de position avec les FPFH moyennés

Télécharger le fichier pdf d’un mémoire de fin d’études

Pyrène, le premier robot de la série TALOS

Pyrène est un robot humanoïde d’1 mètre et 75 centimètres (voir sur la figure 1.3), de série TALOS [7] [8], qui est construit et fourni par PAL Robotics – une entreprise siégeant à Barcelone en Espagne et développant des robots comme Tiago et Solo.
L’équipe de Gepetto a modifié la tête du robot pour lui apporter de nouveaux capteurs visuels (voir figure 1.4).
On y trouve un LiDAR, une caméra stéréovision et une caméra de profondeur. Le LiDAR pour « Light Detection And Ranging » est une technique de détection et d’estimation de la distance par la lumière. Autrement dit, le LiDAR va produire des données de la forme d’un nuage de points 3D qui sera les résultats des mesures obtenues autour du capteur. Cette technique permet de s’affranchir des contraintes d’illuminations qu’on retrouve sur des techniques basées sur la caméra. L’intérêt d’utiliser la caméra serait d’apporter une information supplémentaire, comme l’information de la texture et de l’apparence.
Néanmoins, cette information de texture et d’apparence, dans le contexte du projet de Gepetto, est quasi inexistante dû à l’environnement industriel dans lequel évoluera le robot. En effet, les travaux sur Pyrènes s’inscrivent dans une collaboration avec Airbus, dénommé ROB4FAM, et qui a pour conséquence d’avoir des exigences industrielles.

ROB4FAM, une collaboration LAAS-Airbus

ROB4FAM pour Robots For the Future of Aircraft Manufacturing est une collaboration entre le LAAS et Airbus visant à développer des technologies et un savoir faire autour de la robotique. Notamment en permettant à des robots de travailler de manière autonome. Pour mener à bien cet objectif, ROB4FAM divise ses activités de recherches en 4 axes :
— La planification réactive
— Le contrôle en couple
— Le SLAM
— L’équilibre et la marche
Mon stage s’intègre dans la partie SLAM où la localisation au démarrage permettra au robot de se localiser par la suite grâce au SLAM [5] [6]. Gepetto collabore avec les équipes de l’université d’Oxford en utilisant un algorithme ICP (pour Iterative Closest Point) [8] qu’ils ont développé, nommés AICP (pour Auto-tuned ICP) [9]. Cet algorithme s’intègre dans la méthode de localisation et nécessite de connaître la position initiale du robot au démarrage à une précision de 50 centi-mètres. L’ICP est un algorithme qui a pour but de comparer deux nuages de points 3D et d’en trouver la transformation 3D qui les relie, cela en minimisant itérativement la distance entre ces points. Ainsi, en ayant connaissance de la position du robot avec le nuage de points acquis au dé-marrage, il est possible, avec la transformation obtenue, de trouver la position suivante ayant acquis le deuxième nuage de points. À noter, que le problème qui vise à trouver la transformation entre deux nuages de points 3D s’appelle le problème de la registration 3D.
Ce contexte industriel dans lequel nous place le projet de ROB4FAM implique que l’on connaît l’environnement dans lequel le robot évolue, et justifie l’utilisation principale du LiDAR plutôt que des caméras.

Outils utilisés

Durant ce stage, une modélisation 3D de la carte était à disposition (voir la figure 1.5). De plus qu’une simulation du capteur LiDAR utilisée.
Ces modélisations et simulation peuvent être utilisées grâce à deux logiciels, Gazebo et ROS. Gazebo est un simulateur 3D. Quant à ROS, c’est un middleware qui met à disposition des outils informatiques pour le développement de logiciel en robotique. Ainsi, grâce à ROS on peut mani-puler et consulter des informations sur Gazebo. Cela permet d’automatiser des simulations et par exemple construire des datasets.
Les programmes et scripts développés ont été majoritairement écrits en Python à l’aide de Visual Code. De plus, on trouve aussi un variant de XML et du BASH pour d’autres scripts utilisés et développés.
Présentation du Master IARF
Ce stage s’inscrit dans le programme du Master Informatique en Intelligence Artificielle et Reconnaissances des Formes (IARF) de l’Université Paul Sabatier de Toulouse [10] [11]. Ce Master en informatique de deux années forme ces étudiants aux domaines des systèmes informatiques, de vision par ordinateur, du traitement de la parole, de la robotique, de raisonnement et de la décision par ordinateur.
Contexte
Cette partie permet de se familiariser avec le problème de localisation, et d’en apprendre plus sur les domaines qui le traitent. On effectuera une description mathématique du problème, ainsi que des formulations algébriques et probabilistes. Pour finir, on exposera quelques travaux trouvés dans la littérature qui nous permettrons d’en savoir plus sur le sujet et de mieux comprendre les techniques utilisées pendant le stage.
Description du problème
Nous cherchons à localiser le robot Pyrène dans un environnement intérieur, à savoir la salle Bauzil du LAAS, à l’aide de différents capteurs visuels, comme un LiDAR et une caméra stéréo-vision. On convient que la hanche du robot est son repère de base. Comme le modèle utilisé par Fallon [12] et Ramenazi et al. [13], le robot est considéré comme un système mécanique flottant. Ainsi, nous définissons TB;W 2 SE(3) comme la matrice de transformation de la position et de l’orientation de la hanche dans le repère monde : TB;W = 45RB;W  PB;W (2.1) avec SE est le groupe Spécial Euclidien en 3D. Avec RB;W 2 SO(3) et PB;W 2 R3 sont respec-tivement la matrice de rotation et la matrice de translation.
Étant donné que Pyrène a un LiDAR et une caméra stéréovision au niveau de la tête, on définit TL;B 2 SE(3) et TC;B 2 SE(3), respectivement les matrices de transformations du LiDAR et de la caméra dans le repère base. 2 3 RL;B  PL;B (2.2)
TC;B = 4 RC;B  PC;B 5 (2.3) en utilisant la transformation TL;C étant donné la position et la matrice de rotation TC;B de la caméra dans le repère base, la position et la rotation TL;B du LiDAR sont données par : TL;B = TC;B  TL;C (2.4) où l’opérateur est utilisé de la même manière que Jo et al. [14] et signifie l’opérateur de composition de position comme le défini Smith et al [15].
Ainsi, le vecteur d’état s au temps k, sk à estimer, est défini comme ci-dessous : h i sk = R(k) P(k) (2.5)
De même que Fallon [12], on peut estimer la vélocité angulaire et linéaire du repère base pour définir le vecteur de contrôle u : h i uk+1 = v(k+1) w(k+1) (2.6) avec vB;B 2 R3 et wB;B 2 R3 signifiant respectivement les vitesses linéaires et angulaires estimées au niveau de la hanche du robot. Ainsi, on peut définir un ensemble de vecteurs d’état s et un ensemble de vecteurs de contrôle u : n o S0:k =  s0; s1; : : : ; sk (2.7)
Revues des méthodologies
Le problème de reconnaissance de lieu est très important en robotique. De nombreuses mé-thodes ont été développées depuis des dizaines d’années. Une revue partielle de ces méthodes va être présentée dans cette partie. Ces méthodes peuvent être différenciées de différentes manières, elles dépendent notamment du type de capteur, du type de robot, et du type de scène. Par exemple, on trouve des méthodes basées sur la caméra, et des méthodes basées sur le LiDAR. L’une va uti-liser des connaissances en vision 2D par ordinateur, tandis que l’autre va utiliser des méthodes de perception 3D. On trouve des méthodes différentes en fonction du type de scènes (extérieure ou intérieure).
Dans notre cas, on souhaite trouver la localisation d’un robot en intérieur, dans une salle. Il est équipé d’un LiDAR et de deux caméras. Il sera préférable d’utiliser le LiDAR du robot qui présente un gros avantage comparé à la caméra. En effet, le LiDAR s’émancipe des contraintes  d’illuminations et une caméra perd de son utilité dans un milieu industriel à cause du manque d’information sur l’apparence.
La notion de descripteurs
Un descripteur est une propriété spéciale d’une image dans son ensemble ou d’un objet dans l’image. Il peut s’agir d’une propriété locale ou d’une caractéristique globale de l’image. Ils per-mettent de caractériser, et de décrire une image pour pouvoir la comparer avec d’autres. On peut aussi dire qu’un descripteur est une représentation qui peut permettre d’identifier un point 3D par-ticulier dans 2 mesures différentes (ok, ol ). Initialement un point 3D peut être identifié par son apparence extraite de (Pk et de Pl ) ou de sa géométrie (Zk ou Zl ). Le descripteur permet de résoudre un problème discret : associer deux mesures ensemble – par exemple dans Zk et Zl , un point (xk, yk, zk) et un point (xl , yl , zl ) correspondent au même point 3D mi dans le monde réel. (Voir le schéma figure 2.1
Une méthode pour faire de la localisation à l’aide des descripteurs est de résoudre le problème (à la manière d’une base de données – clé, valeur, requête) avec un ensemble d’images (clé) associé
à une position (valeur), et avec une image acquise (requête). Où les images sont représenté par des descripteurs.
Il y a plusieurs types de descripteurs :
— les descripteurs basés sur des points clés sont calculés autour des singularités d’une image. Il y a potentiellement un grand nombre de descripteurs calculés pour une seule image dé-pendant du nombre de points d’intérêts.
— les descripteurs basés sur les histogrammes sont calculés en tout point de l’image. Il n’y a donc qu’un seul histogramme par image.
Parmi les descripteurs basés sur des points clés, on peut citer ORB [16], BRIEF [17], ou SIFT [18]. Dans ce cas, le nombre de points clés peut changer et la quantité peut être trop importante en fonction de l’image. Il est donc parfois difficile de comparer des images entre elles (dû au trop grand nombre de descripteurs). C’est pourquoi Jégou et al. [19] propose en 2010 l’encoding VLAD qui peut être vu comme un descripteur global de l’image, autrement dit comme une représentation encodée de l’image.
VLAD – Vector of Locally Aggregated Descriptors
La représentation VLAD proposée par Jegou et al. [19] et améliorée par Arandjelovic et Zisser-man [20] a son importance dans ce stage, pour cette raison, on explique brièvement son principe. VLAD pour Vector of Locally Aggregated Descriptors est comparable aux BoF pour Bag of Fea-tures (aussi connu sous le nom de Bag of Words ou Bag of Visual Words).
On a un ensemble C de mots appelés codebook. Ces mots sont des descripteurs types. Ce co-debook est le dictionnaire de tous les descripteurs types qui permettent de décrire une image. Il est souvent appris avec l’algorithme des k-moyennes (aussi connu sous le nom de k-means) et où un mot peut être vu comme le centre d’un cluster.
Le principe du BoF est de compter le nombre d’apparitions dans l’image de chaque mot. Ainsi étant donné un codebook de K mots, on associe à chaque descripteur d de dimension D de l’image son plus proche voisin ci du codebook : ci = NNC(d) (2.27) avec NNC(:) la fonction des plus proches voisins (Nearest Neighbor) appliquée sur le codebook. Finalement, on calcule les occurrences des associations pour chaque mot. Pour l’image x, la représentation BoF est  avec Nci le nombre d’occurrences où le descripteur d appartient au type du ieme mot ci de C dans x. De plus, K est le nombre total de mots présents dans le codebook et BoF(x) 2 RK .
Le principe de VLAD est le suivant : pour chaque association ci, d que vérifie l’équation (2.27), on accumule la différence de ci et de d sur chacune des j dimensions. La dimension d’une repré-sentation VLAD est K D. Ainsi, pour calculer l’élément vi; j de V LAD(x) pour le ieme mot et le jeme composant du descripteur, on a : vi; j = å d j   ci; j (2.29)
Reconnaissance de lieux à grande échelle
On trouve dans la littérature, des méthodes de localisation à grande échelle qui peuvent être intéressantes.
Certains vont utiliser des méthodes basées sur des grandes bases de données GPS/images comme Zamir et Shah [21]. Le but de leur méthode est de trouver la localisation GPS d’une image utilisant la base de données de « Google Maps Street View ». Le principe est d’extraire les descrip-teurs SIFT des images de la base de données et de les indexer dans un arbre. Ensuite, ils trouvent les meilleures correspondances avec les SIFT d’une image requête et un plus proche voisin. Fina-lement, le résultat est donné à l’aide d’un schéma de vote accumulé.
Certains, au lieu d’utiliser des descripteurs « fait main » (comme le SIFT, l’ORB ou le BRIEF) proposent des méthodes d’apprentissages de descripteurs. C’est ce que propose Arandjelovic et al
[22] avec NetVLAD qui est une couche entraînable de réseau de neurones qui apprend une repré-sentation VLAD de l’image. La couche NetVLAD se branche à la sortie d’un réseau de neurones à convolution et donne en sortie un descripteur global permettant une récupération d’images dans une large base de données. La principale différence entre VLAD et NetVLAD est que NetVLAD assigne les descripteurs de manière douce (contrairement à VLAD) et utilise directement les des-centes de gradients et les réseaux de neurones pour déterminer le codebook (contrairement à VLAD qui utilise un k-moyennes).
Méthodes basées sur le LiDAR
Les méthodes basées sur le LiDAR ont l’avantage de donner des informations géométriques sur la scène et de ne pas être affectées par les conditions d’illuminations. Ce qui rend l’approche intéressante quant à la robustesse. Dans cette partie, nous allons introduire des méthodes basées LiDAR utile pour la reconnaissance de lieux.
Méthodes de localisation basées sur les segments
Le concept de la localisation 3D par segments est présenté par Douillard et al dans [23] et dif-férentes méthodes ont émergé par les travaux de Dubé et al dans [24] et dans [25] et aussi par les travaux de Tinchev et al dans [26]. Ces méthodes sont basées sur l’extraction de segments dans un nuage de points 3D. Un segment est le produit d’un processus de segmentation. L’avantage d’utiliser les segments est la compression du nuage de points 3D en un ensemble d’éléments dis-criminants. De plus, un segment 3D est un bon compromis entre un descripteur local (sur un point clé) et un descripteur global (sur l’ensemble de la scène).
Par exemple, Ramezani et al. dans [13] présentent une manière robuste de faire de la registration et de la détection de fermeture de boucle. Ils utilisent l’état estimé initial de l’odométrie pour initialiser leur auto-tuned ICP [9] pour la registration. Ensuite, ils utilisent la méthode de Tinchev et al. [26] pour détecter la fermeture de boucle. La fermeture de boucle consiste à détecter la même position dans le monde après un déplacement très grand. Par exemple, détecter que l’on est revenu à un point de départ après avoir fait un circuit.
Méthodes basées sur l’intensité LiDAR
La plupart des méthodes basées LiDAR reposent uniquement sur les informations géométriques données par le LiDAR. Ceci dit, ces méthodes manquent de la forte et discriminante information qu’offre la texture que les caméras peuvent offrir. Quelques travaux proposent de coupler les in-formations géométriques du LiDAR avec son intensité calibrée retournée. Guo et al. [27] propose un nouveau descripteur appelé ISHOT qui est basé sur l’intensité retournée. Cette intensité est in-fluencée par la réflectance de l’objet nous donnant une information sur sa nature des objets de la scène.
Barsan et al. [28] nous font savoir que la calibration du LiDAR pour effectuer une carte d’in-tensité est un procédé très laborieux et que de nombreux problèmes sont connus. Pour surmonter ce problème, ils proposent un modèle deep-learning qui inclut l’intensité LiDAR ainsi que les scans LiDAR dans un espace où la calibration n’est pas nécessaire.
Shan et al [29] proposent d’utiliser un descripteur basé sur la vision (ORB) pour l’appliquer à une image d’intensité LiDAR et ainsi prendre l’avantage des informations géométriques et vi-suelles. Méthodes basé sur des nuages de points 3D
Certains travaux sur les nuages de points 3D peuvent servir aux problèmes de localisation. On trouve notamment des travaux pour des descripteurs comme les FPFH proposés par Rusu dans [30] qui est un histogramme local à un point 3D qui par le calcul de paramètres angulaires et de normals de surfaces va représenter une relation entre un point 3D et ses voisins afin de donner le contexte dans lequel ce point se trouve. Par exemple, s’il se trouve dans un coin, sur un plan, sur un cercle, etc.
De plus, certains travaux tentent d’apprendre les descripteurs d’un nuage de points 3D comme le réseau PointNet [31] proposé par Qi et al. qui étant donné un nuage de points 3D va donner en sortie une classification et segmentation qui peut servir de descripteur global.
Depuis les précédents travaux présentés comme NetVLAD [22] et de PoinNet [31] a émergé PointNetVLAD présenté par Uy et al. [32] qui est une adaptation de NetVLAD au contexte des nuages de points 3D et appliqué à la représentation donnée par PointNet pour finalement donner un descripteur global.
De PointNetVLAD a émergé les travaux de Komorowski [33] qui propose MinkLoc3D reposant essentiellement sur un réseau de neurones basé sur une représentation voxelisée parcimonieuse du nuage de points 3D et sur des architectures convolutives parcimonieuses pour l’extraction de signatures.
Elbaz et al. [34] proposent l’algorithme LORAX qui divise le nuage de points 3D en un en-semble de super-points grâce à l’algorithme RSCS et représente ces super-points dans un nouvel espace utilisant un auto-encoder pour permettre la localisation.
Kim et Kim [35] proposent un nouveau descripteur basé sur le LiDAR : Scan Context où il en- registre directement la structure 3D de l’espace visible depuis le capteur. Ce descripteur est adapté pour des nuages de points bruités. Cette approche permet de calculer la similarité entre deux Scan Context afin de pouvoir détecter une fermeture de boucle, notamment.
À propos de fermeture de boucles, Chen et al dans [36] propose OverlapNet, un réseau de neurones siamois qui est spécialisé dans la détection de fermeture de boucles. Il estime le chevau-chement et l’angle yaw entre deux scans. Ce réseau extrait les informations du scan du LiDAR incluant la profondeur, les normales, et l’intensité notamment.
Méthodes basées sur l’attention
Zhang et Xiao [37] ont développés PCAN pour Point Cloud Contextual Attention Network étant un réseau de neurones qui, étant donné un contexte, apprend la représentation d’un nuage de points en utilisant une carte d’attention. Ils utilisent PointNet [31] pour extraire les signatures locales et produire une carte d’attention qui estime les poids d’attentions, basés sur l’information contextuelle, pour chaque point. Finalement, il applique une couche NetVLAD [22] pour avoir les descripteurs globaux.
Xia et al proposent SOE-Net [38], un réseau de neurones qui implémente un module d’encoding de l’orientation et une unité d’auto-attention qui se branche au NetVLA

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 chatpfe.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

1 Introduction 
1.1 Présentation du laboratoire
1.2 Présentation du Master IARF
2 Contexte 
2.1 Description du problème
2.2 Formulation du problème
2.3 Revues des méthodologies
3 Solutions proposées 
3.1 Gestion des données
3.2 Description de la stratégie proposée
4 Résultats 
4.1 Résultats de la première estimation de position avec les FPFH moyennés
4.2 Résultats de la première estimation de position avec VLAD-FPFH
4.3 Résultats de l’estimation finale de l’état avec VLAD-FPFH
5 Discussion et Conclusion 
5.1 Discussion sur les problèmes rencontrés
5.2 Conclusion
Références

Té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 *