Tri de pièces automatisé par détection photo par le Dobot Magician

Bonjour la poly-communauté !

Bienvenue sur cet article qui parle de notre projet, 100 heures dédiées à ce projet, 100 heures de réflexion, d’enthousiasme, de discorde mais surtout 100 heures d’un travail collectif abouti. L’idée de commencer ce projet nous excitait beaucoup et les premières discussions avec notre professeur encadrant : Monsieur BOIMOND, nous ont directement mis dans le bain et nous avions hâte de commencer. Notre professeur encadrant nous a directement donné sa confiance en nous prêtant un robot Dobot Magician.

Attendez !!

On vous parle de notre robot mais dans l’euphorie on ne vous a pas encore présenté notre objectif.

En effet, notre projet consiste à trier des pièces selon leur couleur, une caméra dont le repère sera fixe à celui du robot devra visualiser les pièces à trier ainsi que les zones de décharges. Ensuite le robot devra donc emmener chaque pièce au bon endroit. Pour réussir cela, il nous fallait quelques bases et prérequis. La robotique et la programmation qui y est associée nous étais complètement étrangère, pour rectifier cela, notre encadrant nous a donné des travaux pratiques de robotique ainsi que son cours afin de nous aider à découvrir le domaine, le sujet et le robot ainsi que ses utilisations. Ensuite nous devions inventer un moyen de fixer notre caméra à notre robot et enfin nous devions passer à l’étape la plus primordiale : la programmation finale.

Nos pièces sont des cubes RGB de 1 cm de côté et nos zones de décharges seront comme ci-dessous, la visualisation de la caméra se fait sur un format A4.

En essayant de réaliser ces travaux pratiques, nous nous sommes dépêchés afin de commencer la programmation car nous pensions être prêt et avoir tout compris. Cependant en se précipitant, on se retrouvait souvent complètement bloqué sans avoir vraiment compris ce que nous avions fait. C’est à ce moment-là que Monsieur BOIMOND nous a mis en garde en nous rappelant qu’il était important de comprendre comment cela fonctionnait afin de pouvoir le faire nous-même dans la programmation. Cela nous a été très bénéfique et nous avons finalement avancé plus vite après coup. Il nous a dit :

Il ne faut pas confondre vitesse et précipitation.

Une fois sur la bonne voie, nous avons réfléchi à un moyen de fixer notre caméra, le plus simple nous semblait être la réalisation d’une pièce en CAO. Ce n’était pas simple car nous devions trouver l’endroit parfait et le moyen le plus facile, la visualisation de la caméra devait être claire, sans avoir d’obstacles devant comme un bout de robot ou notre pince. Nous sommes parti sur une première pièce, qui s’est avérée être pratique et qui correspondait parfaitement au cahier des charges, cependant nous avons reprécisé certaines côtes et enlever un morceau qui gênait un peu lors de notre 2ème version.

Ainsi voici notre pièce finale :

Voici notre support monté sur le robot avec la pince. Ici le robot est en condition d’utilisation.

Ensuite logiquement nous avons entamé la programmation en python pour contrôler notre robot. Pour commencer il nous fallait détecter les cubes et les zones de couleur pour connaître leurs coordonnées. Pour cela nous avons créé un masque autour de la feuille et appliqué des filtres pour détecter les nuances de couleurs.

Détection des cubes
Détection des zones

Par la suite nous allons expliquer notre codage pour la couleur rouge puisque l’idée est la même pour les autres couleurs.

D’abord  nous avons codé pour connaître les coordonnées des cubes en pixels que nous avons converti en mm par calcul.

Puis effectuer la même chose pour les zones de couleurs. 

Enfin nous avons codé le déplacement du robot de la manière suivante : 

  • Le robot va aux coordonnées de notre premier cube et se place à 30 pixels au-dessus.
  • La pince s’ouvre
  • Ensuite il descend au niveau de la feuille 
  • La pince se ferme
  • Puis une étape transitoire où il se déplace à des coordonnées se rapprochant de la position de base du robot
  • La seconde phase du déplacement débute avec le mouvement du robot au centre de la zone rouge
  • La pince s’ouvre pour libérer le cube
  • Le robot remonte de 30 pixels
  • Retourne aux coordonnées proches de sa position de base
  • Puis la pince se referme

Tadam ! Voilà le résultat !

PS : N’hésitez pas à mettre la vidéo en plein écran et en 1.5 pour une expérience optimale.

Voici donc le fruit de 100 heures de travail

Réussir ce projet a sûrement été l’une des choses les plus satisfaisantes de nos deux années à polytech. Il nous a apporté beaucoup de nouvelles connaissances, notamment en robotique et en programmation. Cependant, ce n’est que la première version d’un projet qui peut être optimisé. En effet, il y a encore quelques axes d’amélioration pour que ce système automatisé soit opérationnel en toutes circonstances. notamment au niveau du contrôle de la pince pour l’axer avec les cubes. Mais aussi la possibilité d’effectuer une nouvelle détection à chaque tri d’une pièce au cas où un cube n’aurait plus la même position. 

Ainsi cette version finale et autonome pourrait être utilisée dans plusieurs domaines de l’industrie. Logiquement, on pense au tri de pièces au premier abord. Cependant, dans un aspect écologique cela pourrait être utile pour recycler les matériaux en fonction de leur couleur ou de leur forme. Cela entraînerait un gain de temps considérable pour l’Homme, et l’opportunité d’agir sur d’autres fronts pour notre planète.

Merci à vous d’être parvenu jusqu’ici !!

Nicolas BESSON – Nicolas BAUDUZ – Arnaud WACHOWIAK

Tri de pièces avec le robot dobot magicien et une caméra embarquée

Salut les polypotes !

Nous sommes Matis LEMOINE, Simon BODIN, Schawal BACAR et Corentin PICCIN, étudiants en deuxième année de cycle préparatoire intégré à Polytech Angers. Pour notre quatrième semestre, nous sommes amenés à mettre en œuvre un projet, de A à Z encadré par un professeur de robotique industrielle : Jean-Louis Boimond.

Polytech Angers a acquis récemment en plusieurs exemplaires du robot DOBOT Magician, conçus par des fabricants de robots industriels, permettant l’apprentissage de la robotique industrielle. Le projet a pour objectif de fixer une caméra sur le bras du robot pour permettre la localisation des pièces en vue de les trier selon leurs couleurs.

Nous avons choisi ce projet car il nécessite des compétences en programmation, Solidworks, domaines qui nous attirent et dans lesquels nous sommes complémentaires.

Introduction

Aujourd’hui l’accroissement de la complexité des tâches à accomplir par les robots industriels est tel que les applications de la robotique en entreprise et dans les autres secteurs réclament que l’organe terminal des robots (ventouse, pince, laser, …) ait un niveau élevé de précision. Dans notre cas nous nous sommes occupés de la localisation, la manipulation puis le tri des pièces par le robot. Deux options sont classiquement adoptées, soit la caméra est disposée à un endroit fixe par rapport au robot soit elle est fixée directement sur le bras du robot. Pour notre part nous avons choisi de fabriquer un support pour fixer la caméra au robot.

Pour mener à bien notre projet, nous avons dû passer par plusieurs étapes de travail, allant de la réflexion et l’apprentissage jusqu’à la mise au point d’un programme fonctionnel :
– prise en main du robot Dobot et son logiciel;
– création par impression 3D d’une interface permettant de fixer la caméra sur le bras du robot;
– le traitement des images issues de la caméra;
– programmer le robot pour permettre le déplacement et le tri des pièces;

Robot Dobot Magician

1) Prise en main du robot Dobot et de son logiciel

Le robot Dobot Magician est le robot éducatif parfait car il possède de nombreuses fonctionnalités accessibles via son logiciel « DobotStudio » très intuitif. Le robot est muni d’un bras robotisé modulaire de grande précision programmable via une liaison USB. Dans un premier temps nous nous sommes familiarisés avec le robot.

 Caractéristiques du bras de robot Dobot

Pour comprendre le concept du robot, notre professeur nous a fait travailler sur des travaux pratiques d’élèves de troisième année en Systèmes automatisés et génie informatique. Ceci nous a permis de découvrir le fonctionnement de la caméra. À côté du robot, nous avons dessiné sur une feuille 2 cercles noirs. Nous avons fait en sorte que le repère du robot et de la feuille soient colinéaires. Ainsi il suffira simplement d’ajouter la distance entre les deux repères pour avoir les coordonnées dans le repère du robot. Puis grâce à une programmation PYTHON la pointe du stylo située à l’extrémité du bras du robot se place aux coordonnées du centre des cercles qui ont été obtenues par la caméra fixée sur un trépied.

Détection des cercles grâce à la caméra et contre des cercles pointés par le rayon

2) Création par impression 3D d’une interface permettant de fixer la caméra sur le bras du robot

Nous avons ensuite remplacé le crayon par une pince car le but était de saisir des cubes. Il a fallu pour cela concevoir par impression 3D un support permettant de fixer la caméra au bras du robot.

Nous avons fabriqué un 1er prototype sur Solidworks mais la caméra n’était pas dans l’axe de la pince ce qui rendait l’action du robot très imprécise.

Nous avons alors créé une deuxième pièce afin d’avoir l’axe de la caméra dans l’axe du robot et plus haute pour obtenir un espace d’action plus large. Malheureusement, le rayon d’action du bras était inférieur à l’espace perçu par la caméra. Cela n’avait pas d’intérêt.

Deuxième prototype

Il a donc fallu fabriquer une 3ème pièce qui cette fois a fonctionné.

Troisième prototype

3) Le traitement des images issues de la caméra

Pour la détection des cubes et de leur couleur, nous nous sommes concentrés d’abord sur la couleur bleue. Pour obtenir les coordonnées des cubes à partir de l’image prise par la caméra, il va falloir effectuer plusieurs étapes de traitement de l’image. Nous allons effectuer toutes ces étapes dans notre programme en python. Cela nous a permis de récupérer les coordonnées du cube pour que la pince puisse ensuite le saisir. Nous avons fait la même chose pour les cubes vertes et rouges.

Nous nous sommes rendus compte que la détection nécessite une bonne luminosité. Nous avons compris que l’éclairage doit être uniforme dans toute la zone pour éviter les zones d’ombre et ainsi bien repérer tous les cubes. Nous nous sommes donc procurés une lampe.

4) Programmer le robot pour permettre le déplacement et le tri des pièces

Ensuite, notre objectif était que le robot range les cubes dans les zones de leur couleur correspondante. Pour cela, il ne devait pas confondre les coordonnées des cubes et celles de leur zone de rangement. Il a donc été nécessaire de réaliser des zones de rangement plus grandes que les cubes pour que la pince puisse bien repérer les cubes et les positionner au bon endroit. Une fois les coordonnés des cubes et des zones de rangements récupérés, nous avons programmé le robot afin par exemple qu’il saisisse une pièce bleu et qu’il la dépose dans la zone de rangement bleue.

Bilan

Grâce à l’importance de la communication et du travail d’équipe au sein de notre groupe, nous avons réussi à atteindre notre objectif. Notre robot effectue les tâches qui nous avaient été confiées en début de projet. Ce projet nous a d’autre part permis de développer nos compétences en CAO, en programmation et surtout nous a offert des connaissances en robotique. Nous tenons à remercier encore une fois toutes les personnes ayant contribué et encadré ce projet.

Merci pour votre lecture !
Corentin, Matis, Simon et Schawal

Ballon stratosphérique

Chers lecteurs,

Nous regrettons fort de devoir vous le dire, mais l’article suivant n’est pas des plus joyeux.

Il raconte la triste aventure de quatre étudiants en deuxième année de classe préparatoire à Polytech’Angers qui ont toutes les malchances et collectionnent les angoisses.

Dans cet unique article, ils vont affronter les standards de la DGAC, les regards d’une centaine d’élèves en classe de quatrième, un système GPS défaillant, et des interviews incessantes. Pour notre part, il est dans notre devoir de raconter ces funestes épisodes, mais rien ne vous interdit, chers lecteurs, de passer votre chemin et de cliquer sur un autre article.

Avec nos sentiments respectueux.

Rosanne Biotteau, Ersin Duman, Juliette Trahan, Emmy Teillet. 

Bonjour à tous !

Nous sommes quatre étudiants en EI2 et pour le semestre 4, nous avons décidé de travailler ensemble sur le projet d’un ballon stratosphérique.

L’enjeu de ce projet était d’envoyer un ballon gonflé à l’hélium dans la stratosphère, de filmer le voyage et de récolter certaines données telles que la température, la pression, l’altitude, l’humidité et la quantité de CO2. De plus, nous devions nous rendre auprès des classes de quatrième du collège Clément Janequin, à Avrillé, afin de leur expliquer notre travail et de leur donner envie d’étudier les sciences.

Notre ballon et de notre chaîne de vol lors du lancer

Notre ballon et de notre chaîne de vol lors du lancer

Ce projet est un projet complexe, qui nécessite des compétences dans de nombreux domaines. Avant de commencer à travailler dessus, nous ne savions notamment pas qu’il fallait demander des autorisations, parfois plus de trois mois avant le lancer. Voici les différentes autorisations que nous avons dû demander :

  • DGAC (Direction Générale de l’Aviation Civile) !! Vous ne pouvez pas envoyer un objet traversant les voies aériennes quand vous voulez, où vous voulez !!

  • L’autorisation du Maire d’Avrillé pour lui demander son accord pour lancer notre ballon depuis le Stade Delaune d’Avrillé

  • Autorisation d’occupation du domaine public avec l’accord de la DGAC et du Maire, auprès de la Police Municipale d’Avrillé.

Dans notre nacelle, nous avions décidé de mettre deux GoPro afin de filmer le vol de la nacelle, deux capteurs de température (intérieur/extérieur), un capteur dit Baromètre mesurant la pression, l’altitude, l’humidité, un capteur GPS pour enregistrer la trajectoire de notre matériel, et un capteur de CO2.

De plus, pour retrouver tout cela une fois retombé sur terre, nous avions placé un traceur GPS ainsi qu’un téléphone connecté à un compte Google. Tous deux devaient nous communiquer leur position.

Ici vous pouvez voir l'intérieur de notre nacelle, comprenant les systèmes GPS ainsi qu'Arduino et son alimentation

Ici vous pouvez voir l’intérieur de notre nacelle, comprenant les systèmes GPS ainsi qu’Arduino et son alimentation.

Nous avons fait un exposé le lundi 13 mai 2019 auprès des classes de quatrième du collège Clément Janequin d’Avrillé, afin de leur expliquer notre projet en sachant qu’ils allaient assister au lancement de notre ballon. Cet exercice était assez intéressant puisqu’il nous a permis de pouvoir nous exprimer devant des groupes d’une cinquantaine de personnes, de devoir apprendre à expliquer simplement des concepts pouvant être compliqués à comprendre pour un niveau de quatrième (la notion de forces par exemple).

La date du jeudi 6 juin 2019 pour le lancement était prévue depuis le début du projet. Après avoir installé tout notre matériel au stade Delaune, nous avons appelé les collégiens pour qu’ils assistent à ce moment mémorable. Tout s’est bien passé, et notre ballon a décollé bien plus rapidement que ce à quoi nous nous attendions.

Lundi 6 juin, Stade Delaune Nous étions en train d'installer tout le matériel nécessaire, ici en train de gonfler le ballon. Il fallait le maintenir avec un drap afin qu'il ne s'envole pas de suite.

Lundi 6 juin, Stade Delaune, Avrillé
Nous étions en train d’installer tout le matériel nécessaire, ici en train de gonfler le ballon. Il fallait le maintenir avec un drap afin qu’il ne s’envole pas de suite.

A l’aide d’une simulation réalisée sur Internet, nous savions que notre matériel devait se rendre dans la Mayenne, et atterrir aux alentours de Vaiges, mais plein de critères étaient pris en compte et la précision de cette simulation n’était pas optimale.

Itinéraire entre le Stade Delaune d'Avrillé et Vaiges

Itinéraire entre le Stade Delaune d’Avrillé et Vaiges

 

A la recherche de notre matériel, Vaiges

A la recherche de notre matériel, Vaiges

Lancer ce ballon présentait certains risques. :

  • Traverser des voies aériennes nécessitait l’autorisation de la DGAC !

  • Il faut également savoir qu’en prenant de l’altitude, les températures peuvent descendre jusqu’à -60°C, ce qui est mauvais pour les batteries ! Pour cela notre nacelle était fabriquée en polystyrène extrudé, recouverte d’une couverture de survie. De plus, nous avions mis des chaufferettes à l’intérieur.

  • La chute du matériel n’est pas contrôlée. La nacelle peut très bien retomber sur une route et causer un accident, tomber dans l’eau, ou pire… en zone blanche, tout en sachant que nos deux systèmes GPS requièrent du réseau mobile afin de nous envoyer leur position. Le téléphone nécessite également des données mobiles afin de communiquer sa position sur une carte.

Malheureusement, 24 heures après le décollage… toujours aucune nouvelle…

C’est alors que commence notre longue et triste histoire… Sans nouvelle de notre nacelle, nous avons commencé par contacter les journaux. Quelques jours plus tard, nous retrouvions déjà notre avis de recherche sur plusieurs journaux (ici Ouest France) et même à la radio (ici Hit West) ! (une petite erreur de prénom, mais on n’a pas tout ce qu’on veut dans la vie…)

C’est alors que les témoignages fusent, mais aucun ne correspond à notre matériel…

C’est dans l’attente d’un signe de vie de notre nacelle  que nous vous quittons.

Nous vous avions prévenu, bien que nous ayons acquis de nombreuses compétences, cette histoire n’est pas des plus joyeuses.