Résumé de PFE PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Introduction Dans le domaine de la robotique, la robotique à câbles est une approche récente mais offrant des possibilités intéressantes. Notamment les robots à câbles permettent d atteindre un espace de travail très grand avec une structure simple et bon marché. Ce type de robot s avère intéressant pour parcourir une grande surface, par exemple dans la cadre de ce sujet il permettra de réaliser une fresque verticale de grande taille. La principale originalité du robot est l idée d embarquer les moteurs d enroulement sur la plate-forme mobile au lieu de les déporter à l extrémité des câbles. De même, le PC de traitement des données ou encore les capteurs sont embarqués sur la plateforme. Cette vision a permis d adopter un nouveau modèle avec des intérêts mécatroniques nouveaux, principalement de simplifier le réseau entre les actionneurs en s épargnant un bus de communication entre les moteurs avec un calcul de consigne fait sur un PC déporté. L approche d embarquer les actionneurs a en revanche l inconvénient d alourdir la plateforme du robot. 1 Description de l expérience 1.1 Structure Le robot utilisé doit réaliser une fresque verticale de grande taille sur un tableau blanc à l aide d un feutre. Il s agit d un robot qui peut glisser le long d un tableau, sur un plan. Pour cela on utilise un robot suspendu au bout de deux câbles enroulés par des moteurs embarqués (voir Figure 1). 1 de 5 Maximilian Lesellier
Résumé de PFE 1.2 Matériel utilisé Figure 1: Exemple d un robot à 2 câbles 1.2 Matériel utilisé Le matériel utilisé dans le cadre de ce travail est issu de la gamme Lego Mindstorms. Il a l avantage d être léger, petit, et bon marché. Les moteurs qui enroulent les câbles sont des moteurs Lego, qui ont l avantage d être les plus compacts et les plus légers de leur gamme de puissance, ce qui permet de ne pas avoir une plateforme trop lourde. Les actionneurs sont gérés par une brique Mindstorms EV3 qui utilise le firmware EV3.14 développé dans l équipe. Ce firmware est destiné à communiquer avec un RaspberryPi embarqué sur la plateforme qui permet d utiliser le projet RPIt (il s agit d un projet développé par Jacques Gangloff qui permet d utiliser un RaspberryPi comme cible externe de Simulink en maintenant une liaison wifi pour piloter un robot par une interface Simulink). La présence du RaspberryPi et les possibilités qu elle offre sont utilisées par ce PFE : il s agit d exécuter le traitement d images dessus. 2 Partie mécanique 2.1 Caractérisation mécanique Il est à noter que le robot n a que deux câbles mais trois degrés de liberté (les trois du plan), voir Figure 2. Le robot est donc sous-contraint. Le degré de liberté en rotation selon l axe perpendiculaire au tableau est cette mobilité surnuméraire non désirée. Cependant la rotation selon cet axe est fonction de la position du robot dans le plan ; que l on peut déduire de la position des deux moteurs. Il est possible par une résolution par les lois de la mécanique de déterminer cette rotation, et donc de modifier la consigne des moteurs afin de l éliminer. 2 de 5 Maximilian Lesellier
Résumé de PFE 2.2 Tracé en boucle ouverte B 1 α Yf Xf Figure 2: Défauts géométriques Pour cela, on doit résoudre en tout point le modèle géométrico-statique du robot. De proche en proche, on trouve la solution du modèle, c est à dire la valeur de l angle de rotation que annule l équation des efforts subis par le robot. On doit également prendre en compte que le point piloté pour réaliser la fresque est non pas le centre de gravité du robot mais la pointe du stylo. On doit donc prévoir une modification de la consigne pour compenser la position du centre du feutre et l angle de rotation. Un modèle Simulink du robot a été développé, prenant en compte tous ces paramètres. 2.2 Tracé en boucle ouverte En réalisant avec le montage précédemment décrit un tracé, on constate une distorsion. Par l expérience, on détermine que l erreur est répétable. Il est alors possible de compenser cette distorsion géométrique en boucle ouverte. L idée est de trouver l homographie entre la consigne et les résultats mesurés, puis de multiplier la consigne par l homographie inverse pour annuler l erreur ; le résultat de cette mesure est donné Figure 3. Figure 3: Expérience de mesure de la distorsion Cependant, l estimation des paramètres de l homographie ne peut être parfaite : on a choisi un modèle à 8 paramètres, certaines influences sont donc ignorées. Cette insuffisance ne peut être compensée en boucle ouverte. Pour améliorer la précision, il faut alors fermer la boucle avec un retour de position. 3 de 5 Maximilian Lesellier
Résumé de PFE 3 Asservissement visuel Le robot est déjà muni d un PC embarqué, un RaspberryPi. Or l utilisation de RPIt ne mobilise qu une faible portion de ses capacités et on peut y brancher une caméra. On peut dès lors installer une caméra embarquée sur la plateforme qui filmera la portion d espace de travail sur laquelle le robot travaille et utilisera ces images pour effectuer un recalage visuel. Les images capturées par la caméra devront être pré-traitées avant d être utilisées dans Matlab/Simulink. On penche pour la réalisation d un asservissement visuel rapide, en conséquence de quoi il va falloir dédier toute une partie du PFE à la vision, et une autre à l optimisation du programme de vision pour obtenir la fréquence la plus élevée possible de traitement d images. L objectif final est de pouvoir recaler précisément le robot à l aide de la caméra uniquement. 3.1 Vision La première partie est d imaginer un programme de vision léger qui utilise peu de calculs. Pour mesurer l erreur en position du robot, il a été décidé de détecter des points que le robot peut dessiner à l aide de son stylo. En effet, un point de stylo peut s apparenter à une ellipse, et donc son centre peut être déterminé aisément par un calcul de moyenne. Pour détecter une ellipse, on commence par seuiller l image. On peut ensuite éliminer le bruit par érosion pour ne détecter que les grandes zones, composées de suffisamment de pixels. On peut aussi se contenter de travailler avec les contours de la forme uniquement, pour alléger le calcul de détection. On peut effectuer toutes ces opérations en un seul filtre, qui est le filtre donné Figure 4. Après application de ce filtre, on détecte les contours en effectuant un seuillage par hystérésis : un pixel est considéré comme contour s il a un nombre de voisins à l état haut et de voisins à l état bas suffisant. 1 1 1 1 Figure 4: Filtre conjuguant érosion et somme Ensuite, on détecte les contours en parcourant l image pixel par pixel. Si un pixel de bord est trouvé, un algorithme de floodfill - ou algorithme du pot de peinture- permet de trouver tous les pixels de ce contour. En faisant la moyenne des coordonnées des pixels de chaque contour, on obtient les coordonnées du centre de l ellipse. 3.2 Programmation embarquée Dans un second temps, on a réfléchi à l implémentation de cet algorithme sur le PC embarqué dans le robot. Cette implémentation a dû tenir compte des limitations imposées par le matériel. En effet, pour réaliser un traitement visuel à fréquence 4 de 5 Maximilian Lesellier
Résumé de PFE 3.2 Programmation embarquée élevée, il faut réduire le temps d acquisition de l information de mesure. L étape critique car souvent la plus longue est le traitement de l image pour détecter les fonctions de l image à suivre. Au cours de ce PFE une attention particulière a été portée au traitement de l image, en particulier à la légèreté de ce traitement en terme de complexité de calcul. Ceci afin de pouvoir utiliser le RaspberryPi et son unité de traitement graphique sans ajouter de composant supplémentaire sur la plateforme. Une des difficultés de développer sur cette plateforme est l utilisation du GPU. En effet, aucune documentation de la puce n est fournie et les sources du firmware, encore propriétaires, ne sont pas publiées, ce qui a compliqué le développement. Dans l idée d adapter le programme pour le rendre le plus efficace possible deux chemins peuvent être empruntés. Premièrement, prendre avantage du multicœur, le système d exploitation Linux répartit la charge d un programme multithreadé à raison d un thread par cœur donc le programme a été écrit en quatre thread pour effectuer le traitement au mieux quatre fois plus vite. Enfin, le RaspberryPi est muni d une puce graphique. Il est possible d utiliser cette puce pour effectuer des calculs à la place du processeur ; le filtre décrit Figure 4. Conclusion Au terme de ce PFE, on obtient un robot à câbles à deux degrés de liberté pouvant tracer un dessin. En premier lieu on a tenté en utilisant le modèle mécanique de corriger les erreurs du système. Les résultats n ayant pas été concluants, on a réfléchi à la mise en place d un asservissement visuel, avec comme contrainte supplémentaire d utiliser le matériel déjà présent. Ce travail n a malheureusement pas pu aboutir à un asservissement visuel complet pour des raisons liées au matériel utilisé. En effet, l impossibilité de connaître l instant exact de la prise de vue et la durée du retard pur, rendent impossible l implémentation d un asservissement visuel rapide. Une fois l asservissement visuel réalisé, le PiSaRo sera entièrement fonctionnel et pourra exécuter des fresques dans un espace de travail de grande taille limité seulement par la longueur des deux câbles. 5 de 5 Maximilian Lesellier