IMA5 2019/2020 P26 : Différence entre versions
(→Fonctions de gestion du bras et de la pince) |
(→Semaine 2) |
||
Ligne 255 : | Ligne 255 : | ||
Le gros avantage de cette piste, est qu'elle est modulable et démontable très facilement. Le revêtement au sol est un bout de 8m^2 de lino (facile à rouler sur lui même). Chaque composants de la piste possède sa marque au sol numérotée pour un placement précis et rapide lors du montage. Les murs sont démontables rapidement grâce à leurs attaches rapide imprimés en 3D. | Le gros avantage de cette piste, est qu'elle est modulable et démontable très facilement. Le revêtement au sol est un bout de 8m^2 de lino (facile à rouler sur lui même). Chaque composants de la piste possède sa marque au sol numérotée pour un placement précis et rapide lors du montage. Les murs sont démontables rapidement grâce à leurs attaches rapide imprimés en 3D. | ||
− | ===Odométrie=== | + | ===Odométrie 4 roues === |
+ | === Panneau de control === | ||
===Passage en trois roues=== | ===Passage en trois roues=== | ||
<div style="clear: both;"></div> | <div style="clear: both;"></div> | ||
+ | |||
+ | === Création de la pince et du lève palettes === | ||
+ | |||
+ | ==Semaine 3== | ||
+ | |||
+ | === Amélioration du chassis === | ||
+ | |||
+ | === Utilisation du gyroscope NavX === | ||
+ | |||
+ | ===Odométrie 3 roues régulées === | ||
+ | |||
+ | === Test capteur Sharp === | ||
+ | |||
+ | === Cable management === | ||
==Semaine 4== | ==Semaine 4== |
Version du 31 janvier 2020 à 12:23
Sommaire
Présentation générale
Description
Ce projet se déroule dans le cadre de la préparation a la compétition Euroskills en robotique mobile. Les Euroskills sont la déclinaison européenne de la compétition internationale Worldskills, considérée comme les jeux Olympiques des métiers. Tous les deux ans, pendant 3 à 4 jours, l'affrontent dans une cinquantaine de métiers les champions nationaux de l'ensemble des pays du continent européen.
Cette année nous sommes les représentant de l'équipe de France dans le métier robotique mobile qui permet de mettre en avant les avancés de la robotique dans le domaine industriel. Ce projet fait alors partie intégrante de notre entrainement et notre préparation à la finale européenne à Graz (Autriche) en septembre 2019. Il reprend le les objectifs du sujets de robotique mobile des Worldskills 2019 à Kazan (Russie).
Objectifs
Ce projet consiste à la réalisation d'un robot autonome mais aussi pouvant être télé-opéré, évoluant sur un terrain simulant une usine.
À partir de son point de départ, le robot doit être capable de se rendre aux différentes "Workstations" disséminées sur le plateau afin de recueillir un "Component carrier" puis de les emmener au stand de chargement. La particularité est que sur chaque "Workstation" est inscrit un code barre allant de paire avec celui de l'un des stand de chargement. Le "Component carrier" doit donc y être acheminé sans erreur. L'ordre dans lequel le robot doit se présenter aux workstations peut être soir définit au choix du compétiteur, soit définit par un tirage au sort.
Un fois tous les Components carriers aux stads de chargement, le code barre qui leur est associé indique le nombre de boule, la couleur et l'ordre dans lequel y doit être remplir. Les boules sont à disposition du robot dans des emplacements prévus à cet effet.
Préparation du projet
Cahier des charges
Contexte et définition du problème:
Le métier robotique mobile permet de mettre en avant les avancés de la robotique dans le domaine industriel.
Notre PFE consiste à s’entraîner pour la compétition Euroskills en réalisant le sujet de la compétition 2019 : Media:WSC2019_TP23_pre_EN.pdf
Objectif du projet:
Le but du projet est de concevoir un robot capable d’évoluer dans un environnement simulant une usine flexible. Dans cette usine, plusieurs machines peuvent réaliser des opérations sur un produit en cours de fabrication.
Il est donc nécessaire de déplacer le produit d’une machine à une autre pour compléter sa fabrication. L’organisation du terrain est connue, ses dimensions sont de 4x2m, il est intégralement entouré de murets, le sol est globalement plat mais comporte une zone avec dénivelé. Les positions possible des machines sur le terrain sont prédéfinies, cependant l’assignation des numéros des machines est faite aléatoirement.
Le robot devra être capable de se localiser et se déplacer dans cette environnement. La reconnaissance des machines se fait de manière visuelle via des codes barres et le robot devra comporter un manipulateur adapté au déplacement des balles représentant les produits. Une contrainte étant que les machines ne sont pas toutes situées à la même hauteur sur le terrain.
Une première étape sera de réaliser la tâche de production de manière téléopérée, ensuite le robot devra être capable de produire de manière autonome. Le robot sera construit en utilisant les éléments du kit fourni, comprenant des éléments structurels, ainsi que les actionneurs (motoréducteurs, servomoteurs), les capteurs (capteurs de distances, codeur de moteurs…), et l’électronique de commande (cartes d’interfaces, circuit de puissance pour le moteurs...) nécessaires à la réalisation de la tâche. Le robot sera commandé par un MyRIO de National Instruments programmé, principalement, en LabView.
Choix techniques : matériel et logiciel
La majorité du matériel et de logiciels utilisés lors de la compétition sont imposés par le sujet. L'ensemble du matériel doit provenir du kit fournit à savoir le kit STUDICA édition Worldskills.
Voici une liste des principaux éléments:
- Contrôleurs
- Contrôleur MyRio de National Instrument équipé d'un FPGA Xilinx et d'un processeur double cœur ARM Cortex-A9 ainsi qu'un support Wifi. La plateforme de programmation imposée est donc LabView avec les librairies MyRio et les librairies fournies par le constructeur.
- Carte d'I/O et contrôleur moteur MD2 permettant le branchement facile des différents capteur et actioneurs
- Capteurs
- Accéléromètre 9 axes NavX
- 2 Capteurs de distance ultrasons
- 2 Capteur de distance infrarouges SHARP
- 1 capteur de lignes
- Webcam HD
- Manette filaire Logitech F310
- Actionneurs
- 4 Moteurs à courant continus équipés d'encodeurs
- 3 servomoteurs
- Mécaniques
- Lots de différentes pièces de métal servant au montage du robot
- Engrenages, courroies, glissière linéaire...
- Vis et écrous
- 4 roues omnidirectionnelles
- Pièces imprimées en 3D possibles
Liste des tâches à effectuer
Hardware :
- Tester et choisir la meilleur forme de châssis
- Montage du bras
- Conception de la piste WorldSkills Kazan 2019
- Electronique/Câblage
- Acheter un convertisseur de tension pour une alimentation de tous les composants stable
- Organiser les câbles
- Annoter les câbles (utiliser des couleurs différentes en fonction de la tension)
- Sécurité du montage électrique (pochette batterie, fusible, gaine thermo, ...)
Software
- Connecter le robot en Wifi (téléversement et contrôle a distance)
- LabView
- Découvrir LabView
- Comprendre/Utiliser les librairies myRio et Robotics
- Utiliser du code C dans LabView
- Odométrie
- Localisation et suivie de trajectoire (Planification de trajectoire)
- Détection de couleur avec la camera
- Détection de code barre
Gestion de projet
- Définir une méthode de travail
- Déterminer un nom de robot
- Trouver une salle de travail
Calendrier prévisionnel
Etat de l'art
Le métier robotique mobile est apparue pour la première fois dans la compétition Worldskills en 2013 a Leipzig (Allemagne). C'était alors deux anciens IMA Polytech Lille, Florent CHRETIEN et Mélanie LELAURE, qui s'étaient qualifié pour les phases finales mondiale.
Dans les premières années les robots utilisés étaient des Robotinos, suite à un partenariat se sont maintenant des robots Studica qui sont utilisés depuis 2015.
Réalisation du Projet
Prélude
Stage de découverte/formation PROMEO Beauvais
Le 18 et 19 décembre 2019, nous avons été invité avec notre expert métier, Florent CHRETIEN, a PROMEO pour découvrir le kit "Studica Worldskills". Pendant ces deux jours nous avons pu faire un inventaire des pièces du kits, installer LabView et toutes les librairie utile à l'utilisation du myRio, ainsi qu'un premier châssis a trois roues et les testes moteurs.
On remercie PROMEO de nous avoir accueilli et de nous prêter un kit pour commencer la préparation et le PFE dès la rentrée.
Semaine 1
Rencontre avec Vincent Coelen
Rencontre avec notre tuteur école, Vincent Coelen, pour cadrer et définir le sujet de PFE, le sujet reprend les objectifs du sujets de robotique mobile des Worldskills 2019 à Kazan (Russie).
On discute organisation, préparation et on liste le matériel manquant au vue d'une prochaine commande. On planifie une après midi de formation LabView avec lui dans la semaine.
Trouver une salle de travail
... ...
Gestion de projet, définir une méthode de travail
Un projet de fin d'étude, se doit d'être réalisé de la façon la plus professionnelle possible, c’est-à-dire en suivant une méthode de gestion de projet.
Après discussion avec notre expert métier, il serait préférable d'adopter une gestion de projet dite "Agile", qui consiste a livrer toutes les semaines un produit opérationnel, en rajoutant à chaque fois de nouvelles fonctionnalités. Ce type de gestion de projet a plusieurs avantages:
- Permet d'avoir un logiciel et un robot opérationnel tout au long du projet
- Avoir une grande adaptation au changement (essentiel quand l'on sait que 30% du sujet change le jour de la compétition)
- Avancer par petits objectifs, les valider, s'adapter en fonction de la situation du moment, et ainsi de suite jusqu’à la fin du projet
Pour nous aider dans l'organisation du projet, nous avons mis en place plusieurs outils:
- Microsoft TEAM: on a une équipe qui regroupe notre tuteur école, notre expert métier, ainsi que d'anciens compétiteurs français. On partage donc nos avancées, nos interrogations et récupère les retours/expériences des anciens compétiteurs.
- TRELLO: nous permet de gérer le projet, et les tâches en équipe, nous l'utilisons pour planifier et organiser tout notre travail. Chaque colonne représente un état du projet, dans lequel on glisse des "cards" qui représente une taches à réaliser. On peut donc, pour chaque aspect d’un projet, laisser nos commentaires, répartir nos tâches, centraliser des informations et suivre l’état d’avancement.
- Drive: Pour stocker et partager rapidement tous nos fichiers. Synchronisation et partage automatique de notre dossier de compétition, stocké sur nos PC respectif.
Pour continuer dans la gestion de projet dite "Agile", la livraison d'un produit opérationnel par semaine est simulée par un feedback en fin de semaine à notre expert métier et tuteur école.
Construction du châssis
Le choix de la forme:
- Forme ronde: Si le terrain est semé d’embûche et très anguleux, il vaut mieux privilégier une forme ronde. Mais il devient alors plus difficile de trouver de la places pour la mécanique de mobilité et l’électronique avec cette configuration.
- Forme rectangulaire, anguleuse: Plus pratique pour la disposition et l'aménagement de ce qui se trouvera a l'intérieur du robot. Mais plus large qu'une forme ronde.
Disposition et nombres de roues:
Le kit Studica fourni des roues omni-directionnelles, une grande quantité de placement de roues différents s'offre donc a nous.
a continuer
Formation LabView
Vincent Coelen, nous a montré les bases de LabView:
- Le mode de fonctionnement de LabView
- Le câblage d'objet
- La création de constante, bloc de contrôle et indicateur
- Les raccourcis
- Le débogage
- La fenêtre d'aide
- etc...
On a maintenant les connaissances de base pour commencer à créer nos premiers VI.
Alimentation câblages et sécurités électrique
Alimentation:
Tension (Volt) | |
---|---|
Batterie | 12V (3000mAh) |
Carte Moteurs portA (MD2) | 12V |
Carte Moteurs portB (MD2) | 12V |
Servomoteur portA | 5V |
Servomoteur portB | 5V |
Camera | 5V (USB du myRio) |
Sensors | 5V |
Dire prendre tension converter/dispatcher
Câblages et sécurité
Pour le câblage, on a adopter un code couleur pour se repérer entre tous les fils, le noir est pour le GND, le rouge le 12V et le bleue le 5V. On réfléchie à ajouter un système d'étiquettes sur chaque câble pour un branchement sans erreur pendant le stresse de la compétition.
Pour une connexion et déconnexion rapide et facile entre les fils en phases de testes on a opté pour des connecteurs "Wago".
Le panneau de gestion d'alimentation a les fonctionnalités suivantes:
- Bouton d’arrêt d'urgence, qui coupe toute l'alimentation du robot
- Deux interrupteurs, pour mettre sous tension ou non l'alimentation des cartes moteurs, et des servomoteurs.
- Deux leds témoin, indiquent la mise sous tension du robot ou des erreurs dans l'exécution du programme
- Un bouton poussoir pour lancer le programme
Nos premiers codes VI
Testes de tous les actionneurs
Contrôle du robot a la manette
...
Semaine 2
Conception de la piste WorldSkills Kazan 2019
Pour se préparer au mieux, nous avons du reconstruire à l'identique une des sept "usines" du sujet Worldskills Kazan 2019. Les six autres sont composées du même nombre de composants (Workstation, Balles, Component Bins, Component Carriers,...) et donc facilement une fois la première piste constuite.
Grâce au plan fournit dans le sujet et à l'aide du menuisé de Polytech en quelques jours la piste était prête.
Le gros avantage de cette piste, est qu'elle est modulable et démontable très facilement. Le revêtement au sol est un bout de 8m^2 de lino (facile à rouler sur lui même). Chaque composants de la piste possède sa marque au sol numérotée pour un placement précis et rapide lors du montage. Les murs sont démontables rapidement grâce à leurs attaches rapide imprimés en 3D.
Odométrie 4 roues
Panneau de control
Passage en trois roues
Création de la pince et du lève palettes
Semaine 3
Amélioration du chassis
Odométrie 3 roues régulées
Test capteur Sharp
Cable management
Semaine 4
Pièces en 3D
En ce tout début de semaine nous avons imprimé en 3D les différents supports pour les capteurs ultrasons afin de les disposer sur le robot. Nous avons dessiné un nouvel élément afin d’accueillir un end-stop étant capable d'identifier l'état d'ouverture de la pince. Dans l'esprit de toujours améliorer le câblage du robot nous avons également imprimé un modèle de chaîne passe-câbles permettant de cacher et de contenir l'ensemble des câbles de la pince (des servos moteurs et des fin de couses) tout en ne gênant pas la montée et la descente du bras.
Algorythmes de suivi de mur/ligne
Grâce à ces nouveaux capteur nous pouvons commencer à réaliser un algorithmes permettant un suivit de mur. pour ce faire nous utilisons le capteur à ultrasons situé du coté du mur à suivre à l'avant du robot ainsi que le capteur infrarouge à l'arrière que nous orientons vers le mur grâce au servomoteur. La différence de distance entre les deux capteurs permettent de maintenir le robot parallèle au mur, et la distance moyenne des 2 sert de référence pour maintenir une distance voulue entre le robot et le mur. 2 régulateurs PID sont donc nécessaires pour stabiliser le robot.
Un capteur de ligne a également été ajouté au robot permettant un suivit de ligne et le recalibrage du robot sur une courte ligne comme celles présentes sur les component carrier du terrain.
Fonctions de gestion du bras et de la pince
Pour automatiser le robot le plus simplement possible, il était nécessaire de créer des fonctions (Sub VI) pour la gestion du bras et de la pince. L'utilisation de deux Sub VI de reset pour le bras et pour la pince nous permette de réinitialiser à zéro l'encodeur du moteur du bras (on descend le bras jusqu'à l'activation du EndStop, puis on reset a zéro l'encodeur moteur bras). Le servomoteur de la pince est un servo commandé en vitesse donc, on le réinitialise en le fermant pendant 1,5 secondes (temps max qui lui faut pour se fermer).
Ensuite le bras peut glisser de 0 à 22cm de hauteur, la hauteur du bras est retourné par l'encodeur moteur, donc il est facile a commander en position. L'ajoue d'un PID le rend encore plus précis.
Etant donné que la pince est géré par un servo commandé en vitesse, on ne peut pas choisir l'ouverture exacte de la pince. Un EndStop et des butées judicieusement bien placés, nous permette de commander trois ouverture de pince : "Pince fermé", "Pince
Problèmes rencontrés
Tracking de balles
La saisie d'une balle dans les emplacement prévu à cet effet n'est pas une étape aussi facile qu'on pourrait le penser. En effet les balles ne se situent pas à un endroit précis mais dans une zone rectangulaire, il est donc impossible de les attraper par simple odométrie. Une reconnaissance et un suivi par caméra est donc indispensable. Afin d'identifier une balle sur une image plusieurs traitements d'images seront nécessaires.
- Seuil colorimétrique:
Les balles étant colorées et le sol étant de couleur clair, elles peuvent facilement se démarquer en analysant la valeur colorimétrique des différents pixels de l'image. La première étape pour localiser une balle orange est donc de binariser l'image en mettant à 1 les pixels correspondant à de l'orange et à 0 les autres. Il faut donc définir ce qu'est la couleur orange, pour ce faire il faut relever son code RGB. Cependant la luminosité ambiante peut varier, et les ombres sur la balle peuvent changer cette valeur. Il est donc important de ne pas prendre des valeurs discrètes mais plutôt des plages de valeurs couvrant l'ensemble des combinaisons RGB pouvant être originaire de l'élément à reconnaître. Sur l'image de calibration des seuils RGB ci-contre nous avons sélectionné une zone de l'image dans laquelle se trouve uniquement la balle et affiché l'histogramme de cette zone. Cela permet de réglé facilement les seuils en prenant en compte les variations de couleur. Nous laissons tout de même une marge d'erreur dans nos réglages afin d'être insensible à des potentiels variations de luminosité ambiante. Comme vous pouvez le voir sur l'image binarisée les balles sont parfaitement identifiables.
- Filtre de particules:
Le seuil colorimétrique n'est pas parfait, il peut alors apparaître dans des environnements peu propices ou peu lumineux des pixels éparpillés étant identifié comme étant de la couleur de la balle. Afin d'éliminer ce bruit nous appliquons un filtre qui identifie les formes dans l'image selon une connexité 4/8 et élimine toutes celles de petite surface.
- Remplissage des trous:
Comme nous pouvons le voir sur les images, les balles possèdent des écritures qui ne sont par reconnues comme "orange". Cela crée des trous dans l'image binaires qui sont remplis grâce à cet algorithme afin d'uniformiser la zone.
- Reconnaissance de cercles:
Cette dernière fonction permet d'identifier des formes circulaires dans l'image, qui correspondent ici à nos balles. Elle renvoie le rayon et les coordonnées dans l'image du centre des cercle.