portfolios_lea-jean/content/project/kapla/index.md

12 KiB
Raw Blame History

title summary tags date external_link image
Construction d'une structure de Kapla Programmation de dobots avec conception et fabrication d'un support et d'une structure motorisé pour modifier l'orientation des Kaplas.
rob
gmp
2022-02-08T00:00:00Z
caption focal_point

Cahier des charges

Le projet s'est développé dans le cadre du semestre 4 du parcours robotique de l'IUT de Bordeaux, site de Gradignan. L'objectif est, à partir dun tableau recensant les coordonnées (base, position, orientation) des Kapla, de réaliser une structure avec ces mêmes Kapla.

Le matériel a disposition comprend :

  • 1 convoyeur,
  • 2 dobots Magician (robots 4 axes),
  • des Kapla de dimensions 25x20x70 mm,
  • 1 caméra Intel D435i RealSense Depth,
  • 1 raspberry pi,
  • et divers composants comme des servomoteurs Dynamixel MX-12W, etc...

Le cycle à suivre est celui-ci :

  1. Prise d'un Kapla dans le magasin par le dobot 1
  2. Dépose sur le convoyeur pour transfert vers le dobot 2
  3. Reconnaissance du Kapla
  4. Prise du Kapla par le dobot 2
  5. Réalisation de la structure

L'effecteur des dobots est au choix : une pince pneumatique ou une ventouse.

Planification

Pour une organisation optimale, une planification du projet est nécessaire. Il faut pour cela identifier les différentes tâches à réaliser et leur chronologie, les répartir entre les membres de l'équipe, et les répartir dans le temps de manière à respecter les jalons. Il convient alors d'établir un GANTT.

Identification des problématiques et recherche de solutions

Problématique 1 : l'orientation des Kapla

Dans le magasin, les Kapla ont tous la même orientation, et il faut que le Kapla puisse prendre n'importe quelle orientation suivant les besoins de la structure finale. Cependant, leffecteur du dobot ne peux pas effectuer de rotations suivant x et y, toutes les orientations ne sont donc pas possibles.

Recherche de solutions

Plusieurs solutions ont alors émergées. La première est de faire tomber le Kapla en fin de convoyeur dans une boîte avec une pente. En chutant le long de la pente, le kapla se retourne. Linconvénient est que le Kapla peut se coincer sil ne tombe pas directement dans la bonne position. Cette idée nest donc pas la plus appropriée. Pour passer outre ce problème, nous avons réfléchi à une solution semblable mais plus "sûre". Nous avons donc conçu une solution motorisée en forme de “L” permettant de retourner le Kapla en activant un moteur.

Choix de solution

Nous optons ainsi de développer la structure en “L” pour le système.

Problématique 2 : détection du Kapla

Pour que le système fonctionne, les dobots doivent pouvoir trouver les Kapla pour les saisir.

Recherche de solutions

Nous avons donc pensé ici à trois solutions. La première est de reposer le transport des Kapla sur lexactitude de répétition de mouvements des robots et du convoyeur dans le but de ne pas utiliser de capteur de détection, et de tester notre convoyeur et nos dobots de manière à ce que les Kaplas puissent être posés toujours aux mêmes endroits sur le convoyeur par le dobot 1 et récupéré toujours au même endroit par le dobot 2. Or cette solution est hasardeuse. La deuxième est dutiliser un capteur de présence laser pour retourner linformation de la présence du Kapla en bout de convoyeur. Avec ce système, la récupéreration du Kapla par le dobot 2 se fait au même endroit. La troisième est dutiliser une caméra et une intelligence artificielle de reconnaissance dimage et de détection de centre de gravité. En ayant le centre de gravité, nous pouvons déterminer précisément le point où le dobot 2 doit saisir le Kapla. Lavantage principal de ce système est de pouvoir déterminer la position du Kapla tant quil est dans le champ de vision de la caméra, et permet de corriger des erreurs de rotation au niveau de laxe Z.

Choix de solution

Le choix s'est d'abord porté sur la troisième solution, soit une détection par caméra, solution qui par manque de temps nas pas pu aboutir. Nous avons donc finalement opté pour le capteur de présence.

Problématique 3 : lecture de fichier

Les Kaplas ne sont pas préalablement triés dans le fichier json fourni. La problématique qui se présente ici est donc l'ordre de pose des Kapla qui nous est inconnu.

Choix de solution

Il convient alors de réaliser un code de tri qui, après importation du fichier json, renvoie le fichier dans l'ordre de dépose sur la zone de charge.

Problématique 4 : choix de l'effecteur

Le choix nous est donné entre une ventouse ou une pince pneumatique comme effecteur des dobots. Ce choix influe sur la prise des Kapla. Ainsi, l'effecteur utilisé ici est une ventouse.

Modélisation et réalisation de l'ensemble du système

Structure en "L"

Dans le but de pouvoir changer l'orientation des Kapla suivant les besoin de la structure en Kapla finale, il convient de concevoir un système. Le système conçu ici est une structure en “L”. Ce nom lui vient de la forme principale de la forme de la structure qui vue de profil ressemble à un “L”.

Dessin d'ensemble Modélisation de l'ensemble
Dessin d'ensemble de la structure en "L" Modélisation 3D de la structure en "L" sur OnShape

Le principe de sa structure est relativement simple. Un servomoteur Dynamixel MX-12W, commandé en angle, bascule de 90° lorsqu'on le lui demande. Le dobot 2 saisit le Kapla sur le convoyeur et le positionne à lintérieur du “L”. Ainsi, lorsque le Kapla est allongé, nous pouvons choisir si nous voulons le positionner au sol, en longueur ou en largeur. Le "L" dispose également dune encoche et dun côté plus long que lautre pour pouvoir positionner le Kapla debout. Ainsi, après avoir saisi le Kapla sur le convoyeur, la ventouse réalise une rotation suivant laxe z pour pouvoir positionner le Kapla dans la petite encoche.

Structure en L

Le système est d'abord modélisé en 3D et assemblé sur le logiciel de CAO en ligne OnShape. Ensuite, le "L" et sa fixation au moteur sont imprimésen PLA avec des imprimantes 3D à filament. On utilise une découpeuse laser pour réaliser le socle en PMMA et on scie une tige en métal qui fixera le "L" à la fixation. Enfin, on assemble le tout : les pièce du socle sont emboités, la fixation est vissée au moteur et le moteur est vissé au socle, la tige s'insert dans la fixation et le "L".

Support de la caméra

Dans le cas de la détection de Kapla par caméra, un support pour fixer cette dernière est nécessaire. Celui-ci se fixe sur le convoyeur et est conçu de manière à ce que la caméra donne une vue du dessus du convoyeur. Les dimensions sont pensées de manière à pouvoir fixer la caméra mais également de manière à ce que le support ne gène pas les dobots pendant leurs déplacements.

Dessin de définition Modélisation de l'ensemble Modélisation
Dessin de définition du support caméra Modélisation 3D du support caméra sur OnShape Support caméra fabriqué

Le support est d'abord modélisé sur OnShape puis fabriqué. Un morceau de tôle est découpé à la cisailleuse aux dimensions voulues. La plaque est ensuite percée à la perceuse à colonne. Certains trous serviront à visser le support au convoyeur, tandis que les autres serviront à visser la caméra au support. Enfin, on plie la tôle. Afin que le support ne fléchisse pas sous le poids de la caméra, un morceau de tôle est soudé par point en renfort.

Ensemble du système

Schéma de l'ensemble Modélisation de l'ensemble
Schéma du système Modélisation 3D du système sur OnShape

Programmation

Programmation de la structure en "L"

Dans le but de réaliser la programmation du moteur dynamixel dans la structure, à laide dune Arduino, nous utilisons la librairie ardyno afin dimporter “dynamixelMotor”. La fonction motor.goalPosition() est ensuite utilisée pour set langle du moteur.

Par la suite, il nous est nécessaire de pouvoir exploiter ce programme avec des appellations dans un programme en python. On réalise donc une liaison port série afin de communiquer avec lArduino depuis un programme en python. Pour cela nous utiliserons la bibliothèque pyserial afin dimporter “Serial”. On pourra alors taper la commande serial.Serial(port,baudrate,timeout) afin de se connecter au port série de lArduino.

L

Programmation de la caméra

Afin de faire une étude de la position du Kapla sur le convoyeur, il est possible d'utiliser utiliser une caméra et une intelligence artificielle de reconnaissance dimage et de détection de centre de gravité. Un logigramme est préalablement construit pour structurer le programme. En utilisant un code trouvé sur Internet permettant de régler le filtre en direct sur une image ou une vidéo, nous choisissons les valeurs en codage HSV les plus adaptées pour extraire seulement le Kapla de l'image.

Au lancement des programmes on observe lapparition de lignes vertes qui représentent les lignes verticales du Kapla, et de lignes rouges qui représentent les lignes horizontales du Kapla. Néanmoins, par faute de temps, le programme nest pas fini et on voit apparaître de nombreux problèmes sur la détermination des lignes. En achevant ce programme, il est possible de connaître les 4 coins du Kapla et de son centre.

Nos résultats sont les suivants :

Résultats

Capteur laser

Comme la caméra s'est avérée plus compliquée à utiliser et à intégrer que prévu dans la limite du temps imparti, nous avons donc utilisé le capteur pour détecter le Kapla en fin de course sur le convoyeur. Lorsque le capteur le détecte, le convoyeur s'arrête.

Code du tri des Kapla

Afin de faciliter la prise et la pose des Kapla, on passe par une étape de tri de ces derniers. On a décidé de prendre les Kapla du plus en bas au plus en haut (en les prenant à terre) en remontant progressivement. Le tri se fait donc selon laxe z. On parcourt ainsi la liste des positions des Kapla en les sélectionnant avec le z le plus bas.

Code principal

Le code dit principal est le code obtenu après lintégration de tous les morceaux de code séparés. Pour la logique globale qui en découle, on établit en amont un algorithme permettant de mieux comprendre la structure et l'algorithme de notre code. Pour le code principal, on intègre les différentes parties de code faites en amont et on les rassemble sous forme de fonctions que nous avons simplement à appeler dans le main.

Logigramme

Système final

Photo du système Photo du système
Photo du système (vue de haut) Photo du système (vue de côté)

Ci-dessous, une vidéo du système en fonctionnement à la fin du projet :

Système en fonctionnement