{"id":4278,"date":"2023-05-31T14:45:00","date_gmt":"2023-05-31T13:45:00","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/?p=4278"},"modified":"2023-05-31T15:01:41","modified_gmt":"2023-05-31T14:01:41","slug":"tri-de-pieces-automatise-par-detection-photo-par-le-dobot-magician","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/polytech_2A\/2023\/05\/31\/tri-de-pieces-automatise-par-detection-photo-par-le-dobot-magician\/","title":{"rendered":"Tri de pi\u00e8ces automatis\u00e9 par d\u00e9tection photo par le Dobot Magician"},"content":{"rendered":"\n<p class=\"has-medium-font-size wp-block-paragraph\">Bonjour la poly-communaut\u00e9 !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bienvenue sur cet article qui parle de notre projet, 100 heures d\u00e9di\u00e9es \u00e0 ce projet, 100 heures de r\u00e9flexion, d&#8217;enthousiasme, de discorde mais surtout 100 heures d&#8217;un travail collectif abouti. L&#8217;id\u00e9e de commencer ce projet nous excitait beaucoup et les premi\u00e8res discussions avec notre professeur encadrant : Monsieur BOIMOND, nous ont directement mis dans le bain et nous avions h\u00e2te de commencer. Notre professeur encadrant nous a directement donn\u00e9 sa confiance en nous pr\u00eatant un robot Dobot Magician.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/image-robot.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/image-robot-1024x1024.jpg\" alt=\"\" class=\"wp-image-4375\" width=\"393\" height=\"400\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Attendez !!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On vous parle de notre robot mais dans l&#8217;euphorie on ne vous a pas encore pr\u00e9sent\u00e9 notre objectif. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En effet, notre projet consiste \u00e0 trier des pi\u00e8ces selon leur couleur, une cam\u00e9ra dont le rep\u00e8re sera fixe \u00e0 celui du robot devra visualiser les pi\u00e8ces \u00e0 trier ainsi que les zones de d\u00e9charges. Ensuite le robot devra donc emmener chaque pi\u00e8ce au bon endroit. Pour r\u00e9ussir cela, il nous fallait quelques bases et pr\u00e9requis. La robotique et la programmation qui y est associ\u00e9e nous \u00e9tais compl\u00e8tement \u00e9trang\u00e8re, pour rectifier cela, notre encadrant nous a donn\u00e9 des travaux pratiques de robotique ainsi que son cours afin de nous aider \u00e0 d\u00e9couvrir le domaine, le sujet et le robot ainsi que ses utilisations. Ensuite nous devions inventer un moyen de fixer notre cam\u00e9ra \u00e0 notre robot et enfin nous devions passer \u00e0 l&#8217;\u00e9tape la plus primordiale : la programmation finale. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nos pi\u00e8ces sont des cubes RGB de 1 cm de c\u00f4t\u00e9 et nos zones de d\u00e9charges seront comme ci-dessous, la visualisation de la cam\u00e9ra se fait sur un format A4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Cubes-Vert.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Cubes-Vert.jpg\" alt=\"\" class=\"wp-image-4382\" width=\"240\" height=\"212\" \/><\/a><\/figure>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Feuille-A4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Feuille-A4.jpg\" alt=\"\" class=\"wp-image-4381\" width=\"322\" height=\"228\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En essayant de r\u00e9aliser ces travaux pratiques, nous nous sommes d\u00e9p\u00each\u00e9s afin de commencer la programmation car nous pensions \u00eatre pr\u00eat et avoir tout compris. Cependant en se pr\u00e9cipitant, on se retrouvait souvent compl\u00e8tement bloqu\u00e9 sans avoir vraiment compris ce que nous avions fait. C&#8217;est \u00e0 ce moment-l\u00e0 que Monsieur BOIMOND nous a mis en garde en nous rappelant qu&#8217;il \u00e9tait important de comprendre comment cela fonctionnait afin de pouvoir le faire nous-m\u00eame dans la programmation. Cela nous a \u00e9t\u00e9 tr\u00e8s b\u00e9n\u00e9fique et nous avons finalement avanc\u00e9 plus vite apr\u00e8s coup. Il nous a dit :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Il ne faut pas confondre vitesse et pr\u00e9cipitation.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois sur la bonne voie, nous avons r\u00e9fl\u00e9chi \u00e0 un moyen de fixer notre cam\u00e9ra, le plus simple nous semblait \u00eatre la r\u00e9alisation d&#8217;une pi\u00e8ce en CAO. Ce n&#8217;\u00e9tait pas simple car nous devions trouver l&#8217;endroit parfait et le moyen  le plus facile, la visualisation de la cam\u00e9ra devait \u00eatre claire, sans avoir d&#8217;obstacles devant comme un bout de robot ou notre pince. Nous sommes parti sur une premi\u00e8re pi\u00e8ce, qui s&#8217;est av\u00e9r\u00e9e \u00eatre pratique et qui correspondait parfaitement au cahier des charges, cependant nous avons repr\u00e9cis\u00e9 certaines c\u00f4tes et enlever un morceau qui g\u00eanait un peu lors de notre 2\u00e8me version. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainsi voici notre pi\u00e8ce finale :<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Support-camera-2-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"997\" data-id=\"4380\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Support-camera-2-1024x997.jpg\" alt=\"\" class=\"wp-image-4380\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-1024x997.jpg 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-300x292.jpg 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-768x748.jpg 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-1536x1495.jpg 1536w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-2048x1994.jpg 2048w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Support-camera-2-308x300.jpg 308w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Voici notre support mont\u00e9 sur le robot avec la pince. Ici le robot est en condition d&#8217;utilisation. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/piece2_robot-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/piece2_robot-768x1024.jpg\" alt=\"\" class=\"wp-image-4626\" width=\"631\" height=\"840\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/piece2_robot-768x1024.jpg 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/piece2_robot-225x300.jpg 225w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/piece2_robot-1152x1536.jpg 1152w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/piece2_robot-1536x2048.jpg 1536w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/piece2_robot-scaled.jpg 1920w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite logiquement nous avons entam\u00e9 la programmation en python pour contr\u00f4ler notre robot. Pour commencer il nous fallait d\u00e9tecter les cubes et les zones de couleur pour conna\u00eetre leurs coordonn\u00e9es. Pour cela nous avons cr\u00e9\u00e9 un masque autour de la feuille et appliqu\u00e9 des filtres pour d\u00e9tecter les nuances de couleurs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Detection-Cubes.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"685\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Detection-Cubes-1024x685.png\" alt=\"\" class=\"wp-image-4842\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Cubes-1024x685.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Cubes-300x201.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Cubes-768x514.png 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Cubes-448x300.png 448w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Cubes.png 1420w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">D\u00e9tection des cubes<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Detection-Carres.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"663\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2023\/05\/Detection-Carres-1024x663.png\" alt=\"\" class=\"wp-image-4844\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Carres-1024x663.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Carres-300x194.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Carres-768x498.png 768w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Carres-463x300.png 463w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2023\/05\/Detection-Carres.png 1414w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">D\u00e9tection des zones<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Par la suite nous allons expliquer notre codage pour la couleur rouge puisque l\u2019id\u00e9e est la m\u00eame pour les autres couleurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u2019abord&nbsp; nous avons cod\u00e9 pour conna\u00eetre les coordonn\u00e9es des cubes en pixels que nous avons converti en mm par calcul.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puis effectuer la m\u00eame chose pour les zones de couleurs.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enfin nous avons cod\u00e9 le d\u00e9placement du robot de la mani\u00e8re suivante :&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le robot va aux coordonn\u00e9es de notre premier cube et se place \u00e0 30 pixels au-dessus.<\/li>\n\n\n\n<li>La pince s\u2019ouvre<\/li>\n\n\n\n<li>Ensuite il descend au niveau de la feuille&nbsp;<\/li>\n\n\n\n<li>La pince se ferme<\/li>\n\n\n\n<li>Puis une \u00e9tape transitoire o\u00f9 il se d\u00e9place \u00e0 des coordonn\u00e9es se rapprochant de la position de base du robot<\/li>\n\n\n\n<li>La seconde phase du d\u00e9placement d\u00e9bute avec le mouvement du robot au centre de la zone rouge<\/li>\n\n\n\n<li>La pince s&#8217;ouvre pour lib\u00e9rer le cube<\/li>\n\n\n\n<li>Le robot remonte de 30 pixels<\/li>\n\n\n\n<li>Retourne aux coordonn\u00e9es proches de sa position de base<\/li>\n\n\n\n<li>Puis la pince se referme<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Tadam ! Voil\u00e0 le r\u00e9sultat !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PS : N&#8217;h\u00e9sitez pas \u00e0 mettre la vid\u00e9o en plein \u00e9cran et en 1.5 pour une exp\u00e9rience optimale.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Vid\u00e9o final projet dobot\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/lgX8LQDhqQQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Voici donc le fruit de 100 heures de travail<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9ussir ce projet a s\u00fbrement \u00e9t\u00e9 l\u2019une des choses les plus satisfaisantes de nos deux ann\u00e9es \u00e0 polytech. Il nous a apport\u00e9 beaucoup de nouvelles connaissances, notamment en robotique et en programmation. Cependant, ce n\u2019est que la premi\u00e8re version d\u2019un projet qui peut \u00eatre optimis\u00e9. En effet, il y a encore quelques axes d\u2019am\u00e9lioration pour que ce syst\u00e8me automatis\u00e9 soit op\u00e9rationnel en toutes circonstances. notamment au niveau du contr\u00f4le de la pince pour l\u2019axer avec les cubes. Mais aussi la possibilit\u00e9 d\u2019effectuer une nouvelle d\u00e9tection \u00e0 chaque tri d\u2019une pi\u00e8ce au cas o\u00f9 un cube n\u2019aurait plus la m\u00eame position.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainsi cette version finale et autonome pourrait \u00eatre utilis\u00e9e dans plusieurs domaines de l\u2019industrie. Logiquement, on pense au tri de pi\u00e8ces au premier abord. Cependant, dans un aspect \u00e9cologique cela pourrait \u00eatre utile pour recycler les mat\u00e9riaux en fonction de leur couleur ou de leur forme. Cela entra\u00eenerait un gain de temps consid\u00e9rable pour l\u2019Homme, et l\u2019opportunit\u00e9 d\u2019agir sur d\u2019autres fronts pour notre plan\u00e8te.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Merci \u00e0 vous d&#8217;\u00eatre parvenu jusqu&#8217;ici !! <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-right wp-block-paragraph\">Nicolas BESSON &#8211; Nicolas BAUDUZ &#8211; Arnaud WACHOWIAK<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Bonjour la poly-communaut\u00e9 ! Bienvenue sur cet article qui parle de notre projet, 100 heures d\u00e9di\u00e9es \u00e0 ce projet, 100 heures de r\u00e9flexion, d&#8217;enthousiasme, de discorde mais surtout 100 heures d&#8217;un travail collectif abouti. L&#8217;id\u00e9e de commencer ce projet nous &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/2023\/05\/31\/tri-de-pieces-automatise-par-detection-photo-par-le-dobot-magician\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":99972,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[567],"tags":[267,26,444,577,215,27,576],"class_list":["post-4278","post","type-post","status-publish","format-standard","hentry","category-2022-2023","tag-camera","tag-cao","tag-dobot","tag-pieces","tag-programmation","tag-projet","tag-tri"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/4278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/users\/99972"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/comments?post=4278"}],"version-history":[{"count":23,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/4278\/revisions"}],"predecessor-version":[{"id":4977,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/4278\/revisions\/4977"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/media?parent=4278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/categories?post=4278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/tags?post=4278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}