P25 Développement d'un cobot : Différence entre versions

De Wiki de Projets IMA
(Motorisation du bras Robotique)
(Motorisation du bras Robotique)
Ligne 201 : Ligne 201 :
 
|}
 
|}
 
// Photo bloc alimentation + explication habilitation électrique.<br>
 
// Photo bloc alimentation + explication habilitation électrique.<br>
 +
Après discussions avec Monsieur FLAMEN, j'ai dû changer la position de mon bloc d'alimentation. En effet, celui-ci était placé trop proche du bord de la planche sous le robot et présentait des risques de blessures par électrocution. J'ai donc décider de la placer plus profondément sous la plaque de telle façon à ce que personne ne puisse toucher le bloc d'alimentation ou le convertisseur en voulant soulever le robot. Des cavaliers ont également installés afin de prévenir l'arrachage des câbles.
 
Les moteurs sont donc installés et le câblage fait et protégé. Le bras est donc prêt à être utilisé de façon perenne sans risque de dégradation matérielle. Il me faut maintenant commencer le codage du robot via ma carte arduino MEGA 2560.<br>
 
Les moteurs sont donc installés et le câblage fait et protégé. Le bras est donc prêt à être utilisé de façon perenne sans risque de dégradation matérielle. Il me faut maintenant commencer le codage du robot via ma carte arduino MEGA 2560.<br>
 
//Photo d'ensemble du robot réel.
 
//Photo d'ensemble du robot réel.

Version du 19 janvier 2018 à 16:43

Bras robotique Moveo BCN3D

Cahier des charges

Présentation du projet

Le Fablab Lille est un lieu de fabrication ouvert à tous permettant à toute personne ayant un projet de trouver les moyens de le réaliser grâce au nombreuses machines numériques mises à disposition. Impression 3D, découpe laser, personnalisation d'objet, électronique, sont quelques unes des possibilités offertes. C'est un lieu d'échange qui prône le Do It Yourself et où des "makers" d'horizons différents peuvent concrétiser leurs idées. Le but du Fablab : rendre accessible le protypage, l'expérimentation, la personnalisation, et la production en petites série. De ce fait, des personnes de formations et d’horizons différents viennent afin de réaliser leur projet.
L’utilisation d’un cobot, ou robot collaboratif, peut donc s’avérer utile afin d’assister les « makers » en effectuant des tâches simples programmables sans risques de blesser l’utilisateur ou sans endommager son environnement.

Objectif du projet

L'objectif de ce projet est de réaliser un cobot, ou robot collaboratif. Ce robot serait un démonstrateur de bras robotique pouvant être utilisé en interaction avec les humains.
La première étape de ce projet sera tout d'abord de terminer la conception du bras avant de commencer la programmation. Deux modes de fonctionnement sont envisagés pour la réalisation de ce projet:

  • Déplacement axe par axe puis global du bras.
  • Mode d'aide permettant d'amplifier la force appliquée par un humain.
Diagramme 'Bête à corne'
Diagramme 'Pieuvre'

FP1: Assister l'utilisateur dans la réalisation d'une tâche.
FP2: Préserver l'environnement du bras (humain ou matériel).
FC1: Être programmable.
FC2: Interagir avec l'utilisateur.
FC3: Doit savoir soutenir une charge.
FC4: Protéger le câblage apparent.


Choix matériel et logiciel

Justification matérielle par diagramme FAST

Afin de réaliser ce projet, l'utilisation des composants suivants sera envisagé:

  • Le bras robotique open source Moveo BC3ND partiellement monté.
  • Une carte Arduino MEGA 2560afin de pouvoir modifier la position du robot.
  • Un joystick shield arduino afin de pouvoir contrôler le robot et le faire bouger.
  • Des moteurs pas-à-pas afin de motoriser le bras robotique de façon précise.
  • Des cartes de commandes TB6560 afin de contrôler les moteurs par le biais de l'arduino.
  • Des capteurs de types roues codeuses afin de pouvoir récupérer la position du robot.
  • Un écran LCD pour arduino afin de renseigner l'utilisateur sur le mode de fonctionnement.
  • Des capteurs de proximités afin de connaitre l’environnement du robot.
  • Des sondes de courant, afin d'effectuer le monitoring du courant dans les moteurs et détecter une collision.
  • Un accéléromètre afin de détecter une éventuelle détection.



Liste des tâches

La liste des tâches à effectuer pour réaliser ce projet au mieux est la suivante:

Tâches préliminaires:

  • Terminer la conception du bras robotique.
  • Motorisation du bras robotique.


Partie 1: Base du mouvement:

  • Mouvement du bras sur 1 axe en boucle ouverte.
  • Mouvement du bras en chaine cinématique ouverte.


Partie 2: Mode collaboratif sur 1 axe:

  • Détection d'un obstacle sur le premier axe.
  • Reprise du mouvement après obstacle.


Partie 3: Mode collaboratif sur 2 axes:

  • Détection d'un obstacle sur le deuxième axe.
  • Reprise du mouvement après obstacle.
  • Combinaison programme pour les 2 axes simultanément.


Partie 4: Robot global:

  • Détection sur les autres axes.
  • Reprise du mouvement après obstacle.
  • Combinaison des programmes pour détection sur le robot entier.


Calendrier prévisionnel

Pour la réalisation de ce projet, les tâches et leurs durées (exprimées en jours) sont les suivantes:

TableauTaches.JPG







Le déroulement du projet complet comprenant la liste des tâches à effectuer ainsi que le diagramme de Gantt du projet sont visible sur le fichier PDF suivant:
Fichier:Gantt PFE.pdf







Des durées plus grandes sont accordées pour les premières phases du projet, c'est-à-dire pour le mode collaboratif sur le premier axe. L'hypothèse est faite qu'ensuite, il faudra moins de temps pour réitérer ces tâches sur les autres axes car la méthode pour détecter les obstacles et reprendre le programme sera alors connue.

Bibliographie

Afin de mieux savoir ce qu'est un "cobot" ou robot collaboratif, voici quelques articles intéressants à lire afin de mieux comprendre les avantages d'un robot collaboratif par rapport à un robot industriel:


Les liens suivants présentent 3 robots collaboratifs commercialisés dans l'industrie:
Le robot 'Baxter' de l'entreprise Rethink Robotics:

'Sawyer', le deuxième robot collaboratif de rethink Robotics:

Le robot collaboratif de ABB Robotics, 'YuMi':

Travail Réalisé

Dans cette partie, je vais détailler l'ensemble du travail que j'ai réalisé lors de ces séances de projet.

Partie Préliminaire

Terminer la conception du bras robotique

Afin de terminer la conception du bras robotique Moveo BCN3D présent au Fabricarium, il convient d'achever la création de plusieurs éléments du bras. Il faut entre autre créer le préhenseur venant se placer au bout du bras ainsi que la base sur laquelle viendra se fixer notre robot démonstrateur.

Préhenseur

Pour le préhenseur du bras, je pensais réutiliser le préhenseur que j'ai dû designer lors des séances "d'initiation à la mécatronique" lors du dernier semestre. Ce préhenseur (présenté ci-dessous) à été réalisé sous le logiciel de CAD en ligne 'onshape'. Ce logiciel a pour intérêt de sauvegarder chacune des création sur un cloud, ce qui nous permet d’accéder à nos fichiers depuis n'importe quel PC.
Pince1.JPG Pince2.JPG
Le point fort de ce type de préhenseur est qu'il peut prendre des objets ronds ou plats grâce aux biellettes qui permettent à la pince de se courber pour s'adapter à la forme de l'objet.

Pince1done.JPG Capteur pression.JPG

Ci-dessus, le préhenseur monté après que toutes les pièces aient été imprimé. Des vis sont utilisées afin de servir d'axes. De plus j'ai rajouté des capteurs de force au bout des doigts de la pince (photo de droite). Leur intérêt est de mesurer la force appliquée à l'objet entre les doigts et donc de savoir si on exerce une trop grosse pression sur l'objet. Les 2 câbles de chaque capteurs ont été collés ensemble avec du chatterton afin d'éviter leur dispersion et ainsi diminuer le risque qu'ils s'arrachent durant une tâche.
Cela conclut la partie "réalisation du préhenseur".

Base du robot

Pour ce projet, il faut également créer une base pour accueillir le bras. Cette base devra être assez lourde et assez solide afin de supporter le poids du robot ainsi que de sa charge.Cela devrait suivre l'exemple suivant:

BaseC.JPG





Ci-dessous, le plan de menuiserie pour le perçage de la plaque qui servira de support pour le bras:
Fichier:Support Cobot.pdf



Réalisation des devis

-Devis du 16 octobre 2017:
Le bras robotique ayant déjà été commencé lors de l'année précédente par le fabricarium, une commande pour les moteurs avait déjà été faite. Malheureusement, le fournisseur de ces moteurs est devenu injoignable et n'a pas livré les moteurs. Je dois donc réaliser un devis afin d'acheter tout le nécessaire pour motoriser le bras ainsi que tous les capteurs dont j'aurai besoin pour le transformer en cobot.
Après quelques recherches, le devis qui est ressorti et qui a été validé par les tuteurs du projet est le suivant:
https://drive.google.com/open?id=0ByKP9w_p1fHAMUVXT2txS0hKT2s
Ce devis est également consultable dans la partie 'Matériel Emprunté' consultable en bas de page.

Motorisation du bras Robotique

LocalisationM.JPG

La conception du bras étant terminée. Il faut désormais motoriser le bras afin de le faire bouger. Le bras bouge au travers de 6 moteurs, chacun contrôlé par un driver TB6560. L'ensemble des drivers est contrôlé par un RAMPS qui s'occupe de gérer les ordres pour chaque moteur, pour les ventilateurs mais il peut également gérer un servo-moteur.
Les drivers TB6560 ont pour particularité de laisser un couple de maintien dans les moteurs même lorsque ils ne sont pas utilisés. Cela permet donc que le bras robotique ne s’effondre pas lorsque nous ne commandons plus les moteurs.

CommandeMoteur.JPG

Comme vous pouvez le voir sur la photo de gauche, chacun des moteurs entraine une poulie, également imprimée 3D. Cette poulie entraine une courroie synchrone dentée reliée aux secteurs dentés du bras robotique.
Pour une question d’esthétisme, le bloc d'alimentation 220V->24V a été fixé sous le socle du robot. Une boite a également été réalisée afin de stocker les 6 drivers ainsi que pour stocker le Ramps. Le but étant de cacher ces drivers entourés de câbles tout en les laissant à proximité du bras sans trop les éloigner.
Le schéma de montage adopté pour le branchement du moteur à la TB6560 et du TB6560 au Ramps 1.4 est le suivant:

TbDrive.JPG

//Photo du Ramps cablé
//Photo de l'ensemble des drivers connectés
//Photo du cablage sur le robot ( gaine thermorétractable )
Pour l'ensemble des moteurs, il a fallu agrandir la longueur des fils afin de pouvoir les relier jusque aux drivers. Tous les moteurs possèdent 4 fils: un noir correspondant au A+, un vert correspondant au A-, un rouge correspondant au B+ et un bleu correspondant au B-. Mais pour deux moteurs, celui de la pronation/supination et le moteur du poignet. Il convient donc de faire un tableau d'équivalence des câbles pour signaler quel fil de couleur devient quelle couleur et à quelle phase ils correspondent:

Couleur du fil Nouvelle couleur Phase correspondante
Moteur Poignet:
Rouge Noir A+
Jaune Rouge B+
Bleu Vert A-
Blanc Bleu B-
Couleur du fil Nouvelle couleur Phase correspondante
Moteur Pronation/Supination:
Orange Violet A+
Orange & Blanc blanc A-
Rouge Rouge B+
Rouge & Blanc Marron B-
Noir Noir A-
Noir & Blanc Bleu A+
Jaune Jaune B-
Jaune & Blanc Bleu B+

// Photo bloc alimentation + explication habilitation électrique.
Après discussions avec Monsieur FLAMEN, j'ai dû changer la position de mon bloc d'alimentation. En effet, celui-ci était placé trop proche du bord de la planche sous le robot et présentait des risques de blessures par électrocution. J'ai donc décider de la placer plus profondément sous la plaque de telle façon à ce que personne ne puisse toucher le bloc d'alimentation ou le convertisseur en voulant soulever le robot. Des cavaliers ont également installés afin de prévenir l'arrachage des câbles. Les moteurs sont donc installés et le câblage fait et protégé. Le bras est donc prêt à être utilisé de façon perenne sans risque de dégradation matérielle. Il me faut maintenant commencer le codage du robot via ma carte arduino MEGA 2560.
//Photo d'ensemble du robot réel.

Partie 1: Base du mouvement

Mouvement du bras sur 1 axe en boucle ouverte

Maintenant que le moteur de la base est reliée aux cartes de commandes, nous pouvons commencer à le faire bouger. Pour cela, nous nous servons d'une carte Arduino Mega 2560. Le programme sera implanté sur cette carte et commandera le Ramps 1.4 qui est un shield Arduino et qui vient donc se placer par dessus la carte.
Pour faire bouger le moteur pas-à-pas, une librairie 'stepper' est déjà présente dans les librairies par défaut Arduino, mais cette dernière n'est pas très adaptée pour la commande de plusieurs moteurs. C'est pour cela que je me sers de la librairie 'AccelStepper[1]' qui simplifie le code pour ajuster plus précisément la vitesse du moteur, l’accélération ou effectuer des mouvements complexes.
Le code et le résultat sortant est le suivant:

Homing Base.JPG


Ce programme fait bouger la base du bras. L'opérateur le met dans une position initiale prédéfinie, puis le bras fait une rotation pour se mettre dans la position 'HOME'. Un arrêt d'urgence a été implémenté afin de stopper le Homing en cas de problèmes. Il suffira à l'utilisateur d'envoyer un 1 sur le port série d'Arduino. Ce dernier est utilisé afin de visualiser la valeur des variables ainsi que l'avancée du programme.
Le problème majeur du moteur pas-à-pas, est qu'il ne connait pas sa position au démarrage. Ainsi lorsque le moteur démarre, sa position est donc considérée comme la position 0. Le robot ne peut donc pas bouger pour se mettre en position HOME quelle que soit sa position initiale. En effet, si le robot commence en bout de course, il cherchera à continuer à tourner, forçant sur la poulie et la courroie pour continuer sa rotation.

Mouvement du bras en chaine cinématique ouverte

Maintenant que le mouvement sur la base et maitrisée et que la bibliothèque AccelStepper est maitrisée. Je peux étendre mon programme à l'ensemble du bras robotique. L'idée est, comme pour la base, de créer un programme où l'ensemble du robot se met en position HOME. Puis l'utilisateur peut faire bouger chacun des axes à son envie et peux également le faire revenir à sa position de repos. Il faudra également gérer les sorties de la zone d'activité.

Matériel emprunté

Nom du matériel Nombre Coût /p Lien composant Composant reçu? !
Matériel pour la motorisation du bras:
Stepper Motor SM42HT47-1684 1,8º step, 1,6 A, 3600 g·cm 1 39.50€ https://www.gotronic.fr/art-moteur-17hs19-2004s-18355.htm Oui (1 sur 1)
ARDUINO MEGA 256 1 X Fournie par Madame PICHONAT Oui (1 sur 1)
Power Supply 12V 320W 1 59.49€ http://www.mouser.fr/ProductDetail/Mean-Well/RSP-320-12/?qs=sGAEpiMZZMsPs3th5F8koKpK7QW2TQkWfp7IWYmZbVQ%3d Oui (1 sur 1)
Power Supply 24V 1 X Fournie par Monsieur FLAMEN Oui (1 sur 1)
Stepper Driver tb6560 6 13.90€ https://www.amazon.fr/Gaoxing-Tech-Commutateur-Controller-Stepping/dp/B06XS1JFZV/ref=sr_1_1?ie=UTF8&qid=1510843843&sr=8-1&keywords=tb6560&dpID=515nGxW0BpL&preST=_SX300_QL70_&dpSrc=srch Oui (6 sur 6)
RAMPS V1.4 1 21.50€ https://www.gotronic.fr/art-shield-reprap-v1-4-ef02035-23540.htm Oui (1 sur 1)
Gear Ratio 5:1 Planetary Gearbox Nema 17 Stepper 17HS19-1684S-P 1 26,88$ https://www.amazon.com/Nema-Geared-Stepper-Motor-Ratio/dp/B00QA5WSDG Oui (1 sur 1)
Nema 23, 112mm, Ø8mm flat shaft SM57HT112-3004A, step 1,8º, 3A,28Kg·c 2 39.50€ https://www.gotronic.fr/art-moteur-23hs41-1804s-23050.htm Oui (2 sur 2)
Stepper Motor SM35HT36-1004A, 1,8º step, 1A, 1400g·c 1 51.89€ http://www.mouser.fr/ProductDetail/Applied-Motion/5014-042/?qs=sGAEpiMZZMsuSxY5Q00ZeTvKiImgkL1Dp1SSrO1T724%3d Oui (1 sur 1)
Stepper Motor nema 17 SM42HT33-1334, 1,8º step, 1,33A, 2200 g·c 1 35.77€ http://www.mouser.fr/ProductDetail/Applied-Motion/HT17-268/?qs=sGAEpiMZZMu0WtFXTgs3LjG5BN%2ffSKbGIxSJgTc2ESU%3d Oui (1 sur 1)
Breco belt T5, 16mm width, L 180cm 2m 20,17£ http://fr.rs-online.com/web/p/courroies-synchrones/4746053/ Oui (1 sur 1)
Power supply cable IEC 1,8m 1 6.88€ http://www.mouser.fr/ProductDetail/Qualtek/364002-D01/?qs=sGAEpiMZZMvXcJVS4l7FP2sIAhhtkKRCT8KLiX%2fC6pE%3d Oui (1 sur 1)
Servo moteur 24,5 à 30,1 Kg.cm 1 41.90€ https://www.gotronic.fr/art-servo-analogique-renforce-fs6530m-25837.htm Oui (1 sur 1)
Matériel pour la détection d'obstacles:
Transcducteur de courant 6 11.7€ http://fr.rs-online.com/web/p/transducteurs-de-courant/4362330/ Oui (6 sur 6)
Accéléromètre 1 X Fourni par monsieur Redon Oui (1 sur 1)
Capteurs à ultrasons 8 4.28€ http://fr.rs-online.com/web/p/capteurs-de-proximite-ultrasoniques/2370783/ Non (0 sur 8)
Capteur laser VL53L0X 4 12.71€ http://www.mouser.fr/ProductDetail/Adafruit/3317/?qs=%2fha2pyFaduidPXPXSuFTA9ZVIGxCC2z%2fV%252boS69d4h2XnmSaEMyLZBw Oui (4 sur 4)
Breadboard 1 X Fourni par monsieur Boe Oui (1 sur 1)

Livrable