• Aucun résultat trouvé

Cette section est consacrée à la description des expérimentations qui ont été réalisées afin de valider le système dans la réalité. En premier lieu, nous allons donner les détails relatifs à la conception et à la construction des dispositifs qui ont été utilisés pour prendre des mesures de poses relatives entre eux. En second lieu, nous allons présenter le système OptiTrack, qui a servi à mesurer la vérité terrain pour estimer les performances réelles de notre approche. En troisième lieu, nous expliquerons la série d’expérimentations qui ont été réalisées et nous analyserons les résultats obtenus.

2.3.1 Conception des prototypes

Afin de valider les calculs démontrés précédemment, nous avons construit deux prototypes qui ont la capacité de s’observer mutuellement pour estimer leur position relative. Les paragraphes qui suivent expliquent en détail en quoi consistent ces dispositifs.

Chaque dispositif possède une caméra Logitech C905. Une de ces caméras est présentée à la figure 2.10. Celle-ci est compacte et a un faible coût. De plus, une caméra C905 peut afficher des images de grande résolution, soit 1600 pixels de côté par 1200 pixels de haut. De surcroît, la caméra C905 bénéficie d’une très faible distorsion dans ses images. Cependant, lors de la capture d’image, elle utilise le balayage progressif des pixels (Rolling Shutter), ce qui provoque des distorsions importantes au niveau des objets qui sont en mouvement dans l’image. Par conséquent, afin d’éliminer toute erreur lors de l’estimation des positions par nos prototypes, choisir ces caméras nous a contraints à prendre des images pour des positions fixes, sans mouvement. Dans le but d’utiliser notre approche en temps réel, il est donc préférable d’utiliser une caméra qui expose tous ses pixels en même temps lors de la capture, technologie appelée le Global Shutter.

Figure 2.10 – Logitech C905 [Logitech,2013]

Des diodes émettant de la lumière (DEL) dans le spectre visible servent de marqueurs lumineux pour les caméras C905. Ces diodes projettent la lumière dans un côte de 40 deg d’angle et requièrent une alimentation de 3.3 V à 60 mA. Ces marqueurs ont été alimentés par une pile 9 V pour chaque prototype, selon le schéma présenté à la figure2.11. Aussi, afin d’exciter tous les pixels de la caméra, nous avons utilisé des diodes ayant un spectre proche de la lumière blanche.

Figure 2.11 – Schéma électronique de l’assemblage des marqueurs lumineux sur le RobotA

Les paramètres d’exposition, de gain et de luminosité des caméras C905 ont été ajustés afin de permettre à celles-ci de voir uniquement ces marqueurs lumineux dans un environnement sombre. Ainsi, un simple calcul de centre de masse des pixels blancs permet de retrouver la position de marqueurs lumineux dans une image.

par prototype. L’un des prototypes, qui correspond au RobotA, a été immobilisé sur une table à un mètre du sol. Le second prototype, qui correspond au robot mobile RobotB, a été posé sur un trépied d’appareil photo puis placé au centre de la zone observable par le système OptiTrack. Ce trépied possède une tête articulée permettant de faire pivoter le dispositif dans toutes les directions et orientations souhaitées. Des marqueurs OptiTrack ont été ajoutés au dispositif RobotB de manière asymétrique afin de suivre sa position réelle avec une erreur en dessous du millimètre et son orientation avec une erreur avoisinant les 0.001 rad. L’image2.12

montre l’apparence du prototype RobotB une fois assemblé, où l’on voit que la caméra a été placée entre les deux marqueurs de sorte que l’œil de la caméra soit colinéaire avec les DEL. Ce positionnement était nécessaire afin de respecter les contraintes décrites à la section 2.1.

Figure 2.12 – Image du prototype RobotB. Le prototype est fixé sur un trépied afin de permettre de

le déplacer et puis de le maintenir en place pour faire de l’image par image.

Dans le but d’évaluer les paramètres intrinsèques des caméras C905, un outil de calibration de caméra sous Matlab a été employé [voirBouguet,2010]. Nous avons pris plusieurs images sous différents angles d’un échiquier avec des cases de trois centimètres de côté (voir la figure2.13), et cela nous a permis d’estimer la longueur focale f, le point principal et les différents para- mètres de distorsion de chaque caméra C905.

2.3.2 Le système OptiTrack

Pour avoir accès à la vérité terrain, nous avons choisi d’utiliser le système de positionnement OptiTrack, de la compagnie NaturalPoint [2013]. Ce système permet de localiser des objets dans un volume et de donner la position et l’orientation de ceux-ci avec une très grande précision. Le système comprenait cinq caméras V100 :R2 (voir la figure 2.14) ainsi que le logiciel OptiTrack Tracking Tools. Afin de repérer des objets, de petites sphères réfléchissant l’infrarouge, comme celles présentes dans la figure2.12, sont utilisées. Les caméras V100 :R2, qui sont dotées d’un système d’éclairage actif à infrarouges, illuminent ces sphères, ce qui les rend facilement discernables en leur donnant une apparence circulaire dans l’image. En dispersant plusieurs caméras aux extrémités d’un espace à trois dimensions, le système peut ainsi évaluer la position et l’orientation d’objets définis par ces marqueurs à infrarouges.

Figure 2.14 – Caméra V100 :R2 d’OptiTrack [NaturalPoint,2013]

Étant donné que nous disposions de cinq caméras V100 :R2, nous en avons positionné une à chaque coin du plafond de notre espace de vol et nous avons placé la cinquième sur un trépied, qui s’orientait vers le centre de la pièce à partir d’un des côtés de notre espace carré. Ainsi, peu importe la position du RobotB, celui-ci était observé par au moins deux caméras V100 :R2, condition nécessaire pour la traque. Nous avons ensuite connecté ces caméras à un ordinateur avec l’aide de deux OptiHubs(voir la figure 2.15), qui s’occupent de la synchronisation des données envoyées par chaque caméra. La figure2.16illustre le diagramme de branchement des hubs avec le poste de travail et les caméras V100 :R2.

La calibration du système est effectuée à l’aide du logiciel OptiTrack Tracking Tools. Pour minimiser le bruit lumineux pendant la calibration, les lumières sont éteintes. Ensuite, il

Figure 2.15 – L’OptiHub, servant à synchroniser les caméras d’OptiTrack et à gérer le flot de données.

suffit de lancer le programme de calibration et de balayer la baguette de calibration, nommée OptiWand, dans tout l’espace de vol. Cette baguette, qui est affichée à la figure 2.17, a une largeur de 500mm et possède trois marqueurs de plus petite taille que les marqueurs courants. Pendant le déplacement de la baguette, le logiciel accumule les données des caméras et les affiche à l’écran (voir la figure 2.18) afin d’aider l’utilisateur à bien remplir tout le volume couvert par les caméras V100 :R2. Par la suite, celles-ci sont utilisées pour effectuer des calculs d’optimisation servant à trouver la pose relative des caméras entre elles. Finalement, la position du sol est définie à l’aide de l’équerre de calibration, qui est présentée à la figure2.19, et le système OptiTrack est fin prêt à utiliser.

Afin d’obtenir la vérité terrain avec ce système lors de nos expérimentations, il est possible de définir des objets à traquer par l’interface graphique du logiciel OptiTrack Tracking Tools. Ces objets sont identifiés par plusieurs marqueurs infrarouges, permettant ainsi de déterminer avec précision l’orientation et la position de chaque objet observé par les caméras OptiTrack. Il est ensuite possible d’exporter ces données en temps réel dans Matlab. Le lecteur peut également noter que le système d’exploitation pour robots (ROS) offre également des librairies pour utiliser les données diffusées en temps réel dans un réseau par le logiciel OptiTrack Tracking Tools. Ainsi, nous pouvons connaître la vérité terrain et la comparer avec nos estimations, qui ont été générées par notre système.

Cependant, l’espace couvert par le système OptiTrack ne couvre que trois mètres de côté. Afin de pouvoir faire des expérimentations sur de plus grandes distances, nous avons placé le dispositif de référence RobotA sur une table à l’extérieur de cette zone, et nous n’avons traqué que la position du prototype RobotB. Ce faisant, le système de coordonnées de la vérité terrain n’était plus le même que celui de notre RobotA. Afin d’aligner ces référentiels tout au long des expérimentations qui ont été réalisées, nous avons fait appel à l’algorithme Iterative Closest Point(ICP). Cet algorithme permet d’aligner des modèles tridimensionnels en se basant strictement sur la géométrie des données de ces modèles. L’algorithme, qui a été

Figure 2.16 – Diagramme de branchement des OptiHubs. Chaque OptiHub est connecté à trois caméras. L’un des OptiHubs joue le rôle de maître et se charge de la synchronisation avec l’OptiHub esclave via un câble de synchronisation. Les données sont transmises à un ordinateur via l’OptiHub maître.

introduit parYang and Medioni[1992] et parBesl and McKay[1992], a été dérivé en plusieurs variantes. Pour nos expérimentations, nous avons utilisé une variante qui est disponible dans Matlab et qui a été développée parBergström[2013].

2.3.3 Expérimentations et résultats

Les expérimentations que nous avons réalisées avaient pour objectif d’analyser la précision de notre solution au problème de la localisation relative à six degrés de liberté, pour un système réel.

Premièrement, il est nécessaire de déterminer la précision de notre vérité terrain, qui nous est fournie par le système OptiTrack. Le tableau2.1 présente la précision en pixels qui a été obtenue après avoir calibré les cinq caméras V100 :R2 utilisées. Comme le lecteur peut le constater, toutes ces caméras ont une erreur sous les 0.08 pixel. De plus, lors de la calibration, nous avons obtenu que l’erreur sur le positionnement de la baguette de calibration OptiWand (illustrée à la figure2.17) était en moyenne de 0.663 mm avec un écart-type de 0.13 mm. Puisque la position des marqueurs sur l’OptiWand est connue par le système OptiTrack, il fal-

Figure 2.17 – L’OptiWand, la baguette de calibration d’OptiTrack.

Figure 2.18 – Calibration des caméras V 100 : R2. Un affichage montrant en temps réel la zone couverte par l’OptiWand, lors de la calibration, pour chaque caméra.

Caméra Moyenne Erreur 2D Écart-type Caméra #1 0.077 pixel 0.056 pixel Caméra #2 0.056 pixel 0.038 pixel Caméra #3 0.076 pixel 0.048 pixel Caméra #4 0.074 pixel 0.044 pixel Caméra #5 0.077 pixel 0.056 pixel

Table 2.1 – Précision des caméras OptiTrack

lait s’assurer que la précision sur le positionnement des marqueurs OptiTrack placés sur notre prototype mobile RobotBétait similaire. Pour ce faire, nous avons utilisé l’interface graphique du logiciel OptiTrack Tracking Tools pour définir un objet traqué à partir de notre prototype mobile RobotB. Celui-ci était identifié grâce à cinq marqueurs réfléchissants positionnés de façon asymétrique telle qu’illustrée à la figure 2.12. À l’aide de ce logiciel, nous avons affecté au prototype RobotB une orientation initiale ainsi qu’un centre de masse correspondant ap-

Figure 2.19 – Équerre de calibration du système OptiTrack. Trois marqueurs y sont apposés.

proximativement à la position de la caméra C905 sur le dispositif. Nous avons obtenu une précision en dessous du millimètre en définissant les marqueurs OptiTrack placés sur RobotB comme une structure solide à partir de l’interface graphique du logiciel OptiTrack Tracking Tools.

Deuxièmement, il a été établi que la précision de notre solution dépend fortement de la ré- solution des caméras utilisées. À des distances très éloignées, un mouvement des marqueurs lumineux dans les images IA et IB de moins d’un pixel a un impact important sur notre approche. En effet, dans la technique d’estimation de la position en deux dimensionsGiguere et al. [2012] que nous employons dans notre solution, l’erreur sur l’estimation de la position est :

σx∝ lσϕ (2.43)

et

σy ∝ l2σϕ (2.44)

où σϕ est le bruit en pixel dans les images et où σx et σy sont respectivement l’erreur sur la coordonnée de largeur x et de profondeur y. De plus, à la section 2.2.3, nous avons simulé un bruit dans les images prises par des caméras réelles de σA = σB = 0.5 px. Il était donc important de connaître le bruit réel de nos caméras Logitech C905 afin de nous assurer qu’il ne dépassait pas cette limite. Également, la connaissance de cette précision permet d’utiliser des filtres de Kalman afin d’améliorer l’efficacité de notre solution sur de grandes distances. Pour déterminer cette précision, nous avons pris 70 photos du prototype RobotB avec la caméra CAde RobotA. Entre chaque image, afin que la distance entre les prototypes demeure sensiblement la même, nous avons bougé de seulement quelques millimètres de côté l’un des prototypes. Les photos ont été saisies dans l’obscurité avec les marqueurs DEL du RobotB, de sorte qu’il soit très facile de calculer les centres de masses de ceux-ci dans les images. Nous avons relevé la distance en pixels entre les marqueurs du RobotB. En cumulant ces valeurs de

distance, il était possible d’évaluer la précision en pixel des caméras C905 similairement à la technique employée par Pomerleau et al.[2012]. Nous avons donc développé un script avec le logiciel Matlab. Ce script est présenté à l’appendice B.

Figure 2.20 – Évaluation de la précision des caméras C905 de Logitech. La figure supérieure (A) montre la distance entre les marqueurs lumineux, en pixels, pour chaque image. La figure centrale (B) illustre la variation de cette distance d’une image à l’autre. La figure inférieure (C) est un histogramme qui présente l’erreur en pixels des images, estimée à partir de (B). D’après nos mesures, la précision de la caméra C905 est de 0.19 px.

La figure 2.20 présente les résultats de cette expérimentation. En moyenne, la distance entre les marqueurs lumineux des images était de 331.5 pixels. La sous-figure A montre que l’échan- tillon n’est pas indépendant et identiquement distribué (iid). En effet, les images ont été prises en séquence, et la distance l a varié légèrement lors de l’échantillonnage. Afin d’évaluer l’er- reur σ en pixels dans l’image, nous avons calculé, pour chaque paire d’images consécutives, la différence des distances inter marqueurs. La sous-figure B illustre cette variation de distance, d’image en image. Nous remarquons la nature aléatoire de cette variation, ce qui nous permet de considérer que l’échantillon est iid car la partie non iid est négligeable. La sous-figure C

présente l’histogramme de cette variation de la distance entre les marqueurs lumineux. Étant donné que les images n’étaient pas sélectionnées au hasard, ce qui double la variance, nous avons divisé l’écart-type de ces différences par √2. L’erreur ainsi obtenue, pour les camé- ras C905 et notre algorithme d’extraction des points lumineux, est de 0.19 pixel. Cette erreur est près de quatre fois plus élevée que pour les caméras V100 :R2 de notre vérité terrain. Troisièmement, étant donné que nos prototypes sont assemblés sur des tiges d’aluminium, nous devions nous assurer que les marqueurs réfléchissants placés sur le prototype RobotB étaient suffisamment non colinéaires pour que la vérité terrain retournée par le système OptiTrack nous retourne une orientation précise. Nous souhaitions nous assurer que la forme de notre prototype ou le positionnement asymétrique des marqueurs d’OptiTrack n’entravait pas la précision des mesures des caméras V100 :R2. En effet, étant donné que quatre des cinq caméras V100 :R2 d’OptiTrack étaient disposées au plafond, et puisque certains réflecteurs n’étaient séparés que d’une dizaine de centimètres, nous devions déterminer si le système OptiTrack risquait de confondre deux marqueurs ou en perdre de vue lorsque le prototype mobile était incliné.

Pour cette expérimentation, nous avons utilisé un téléphone de marque HTC One V doté d’une application d’inclinomètre. Tout d’abord, nous avons fixé le téléphone sur la tige d’alu- minium du prototype de sorte de connaître l’angle d’inclinaison autour de l’axe z, soit celui qui permet de mettre la tige à la verticale au lieu d’à l’horizontale. Nous avons ensuite maintenu l’inclinaison des deux autres axes à zéro et nous avons fait pivoter le RobotB par itérations de 15 degautour de l’axe z. Nous avons enfin analysé les relevés d’orientation du système Opti- Track par les résultats affichés par l’interface graphique du logiciel OptiTrack Tracking Tools, mais également à partir des modules OptiTrack utilisables dans Matlab, sous l’application de Simulink.

Ici, il y a deux faits intéressants que nous avons découverts et que nous souhaitons partager à toute personne souhaitant travailler avec le système OptiTrack. En premier lieu, le lecteur peut noter que les résultats retournés par l’interface du logiciel OptiTrack Tracking Tools sont sensiblement différents de ceux retournés par Matlab. Cependant, les deux voies de prise de mesures ont la même précision. Nous recommandons donc aux personnes souhaitant utiliser ce système d’utiliser l’une ou l’autre des méthodes d’acquisition de données, tout en gardant ces faits en tête. En second lieu, nous nous sommes également aperçus que le format des qua- ternions utilisés pour relever l’orientation des objets à traquer avec OptiTrack diffère d’une méthode d’acquisition à l’autre. Alors que dans le logiciel OptiTrack Tracking Tools, les qua- ternions sont de la forme [x, y, z, w], ceux retournés par OptiTrack par Matlab sont de la forme [w, −x, −y, −z].

Le tableau2.2illustre la détection des variations de l’orientation du RobotBaprès une série de rotation autour de l’axe des Z. La variation de l’orientation est en soit imprécise, puisqu’elle a

Orientation OptiTrack Notre solution Écart Écart (deg) (deg) (deg) (rad) (deg) 15 15.2324 14.7795 0.0079 0.453 30 30.8611 30.6215 0.0042 0.241 45 45.5528 45.8719 0.0056 0.321 60 60.6365 61.0393 0.0070 0.401 75 75.8958 76.2910 0.0069 0.395

Table 2.2 – Robustesse à l’orientation du système OptiTrack. La colonne d’orientation avec Opti- Track a été évaluée en utilisant l’outil OptiTrack Tracking Tools.

été réalisée à l’aide d’une application de téléphone portable, qui affichait une précision arrondie au degré près. Néanmoins, dans ce tableau, nous avons comparé la rotation déterminée par le système OptiTrack avec notre solution de localisation relative expliqués à la section 2.1. Nous avons donc un écart moyen de 0.36 deg entre nos deux systèmes. À la lumière de ces résultats, nous avons donc pu conclure que notre vérité terrain demeurait fiable peu importe l’orientation du RobotB.

Toutefois, étant donné que les marqueurs lumineux sont indissociables entre eux, notre sys- tème de localisation relative n’est pas en mesure d’estimer correctement l’angle β ni d’évaluer correctement l’orientation relative du prototype RobotBsi celui-ci est à l’envers. En effet, notre technique suppose que les marqueurs lumineux du robot opposé apparaissent toujours dans le même ordre de gauche à droite dans l’image. Ce n’est pas une contrainte du problème, mais plutôt une simplification pour nous éviter à gérer l’identification des marqueurs lumineux. Par conséquent, nous avons limité les mouvements de RobotB de sorte que son marqueur lumineux AP˙R soit toujours plus à gauche dans l’image IA que son marqueur lumineux AP˙L. Notez ce- pendant qu’il serait possible de les distinguer par un patron de clignotement, dans une phase différente de la mesure.

Quatrièmement, nous avons évalué la précision de notre système de localisation relative sur de courtes distances. Cette expérimentation s’est faite en deux étapes. Puisque le référentiel du système de caméras V100 :R2 d’OptiTrack n’était pas le même que celui du prototype de référence RobotA, la première étape a été de calculer des estimations de position et d’orienta- tion relatives du RobotB avec notre méthode tout en relevant simultanément la vérité terrain. Ensuite, afin de convertir les résultats de la vérité terrain dans le référentiel du RobotA, nous avons utilisé l’algorithme Iterative Closest Point (ICP) à partir d’un sous-échantillon aléatoire des données de l’expérimentation.

Pour le premier ensemble de données, la figure2.21montre une perspective en deux dimensions dans le plan X − Z des positions mesurées et estimées du RobotB relativement au système de coordonnées du dispositif de référence RobotA.

Figure 2.21 – Comparaison des positions réelles et estimées dans le plan X-Z avec calibration. L’algo- rithme ICP permet d’aligner les deux systèmes de coordonnées, soient celui du RobotA et le référentiel

Documents relatifs