Bras Robot Educatif

De VoWiki
Aller à : Navigation, rechercher
BRE fusionCapture v1CompleteGarde.jpg



AccueilNos Projets

Conception bras robot SERVO20KG
Nom de code VOR-015
6DOF Educationnal Robotic Arm
Bras Robotique Éducatif à 6 Degrés De Liberté


Association VoRoBoTics

Date : 09/05/2017

Auteur : J.SORANZO

Relecteur :

Thème: robotique, bras, modélisation3D, ARDUINO, SERVO

Projet : VOR015 - Bras Robotique Educatif - servo 20Kg

Problématique

C’est en voyant fonctionner le bras fabriqué par Gilles (cf. projet sur le wiki plus bas dans webographie) à partir d’un projet Thingivers lors d’une de nos démonstrations à la ludothèque de Marine que ça m'a donné envie d’en faire un.


BRE IMG 1045 preview featured.JPG BRE Brasgillesbras.JPG

Je trouvais juste que le sien à base de petits servo moteur dit 9g me paraissait vraiment trop faible. Incapable de soulever la moindre charge. J'ai voulu savoir ce que cela pourrait donner avec des servo moteurs un poil plus costauds sans pour autant taper dans les Dynamixel à 500€ pièces

Mini cahier des charges

BRE servo20kg.JPG

Design sous fusion 360

Utilisation de servos moyenne gamme pour le modélisme disponibles chez Banggood

Réutilisation de la même électronique que sur le projet à Gilles pour pouvoir réutiliser son code.

Caractéristiques des servomoteur

Etude des caractéristiques des servomoteurs

Brand:JX
Item:PDI-6221MG 20KG Large Torque Digital Standard Servo
Dead band: 2μs
Working frequence: 1520μs / 330hz – faire des essais à différentes fréquences
Operating Speed (4.8V): 0.18 sec/60°
Operating Speed (6V): 0.16 sec/60°
Stall Torque (4.8V): 17.25 kg.cm (239.55oz/in)
Stall Torque (6V):  20.32 kg-cm (281.89 oz/in) on pourrait monter à 6V pour avoir plus de couple
Dimensions: 40.5X20.2X38mm /1.59 X0.80X49 in
Weight:  62 g (2.18oz)
Connector Wire Length: JR  265 mm (10.43in)
Bearing: 2BB
Usage:For RC Models 

Vitesse

60° pour 170ms @5V

1° pour 2.83ms

Carte adafruit init 60Hz soit 16667us pour 4096 q= 16667/4096 = 4,07us

On veut de 1000 à 2000us ou (700 à 2300us) donc les valeur possible ADF vont théoriquement de 245 à 491. Dans le code du calibrateur on a mis 100 à 500 soit 407us à 2035us

Le dernier relevé effectué avec ce type de servo et le calibrateur est 120 à 570 u_ADF pour 359*0.5°= 179.5° en un temps de 720ms (240ms/60° - 1°/4ms). Si on considère 120u_adf comme 0° on a (570-120)u_adf pour 180° soit 1u_adf = 180/450°

A titre de comparaison les SG90 (du bras de Gilles):

Item Name: TowerPro SG90 Mini Analog ServoOperating Speed (4.8V no load): 0.12sec/60 degreesStall torque: 1.2kg / 42.3oz(4.8V);1.6 kg / 56.4oz (6.0V)operating voltage: 3.0-7.2VTemperature range: -30℃~60℃Dead band width: 7usItem size: 3.2 x 3 x 1.2cmItem weight: about 9gConnector wire length: 24.5cm


Design mécanique

Le design mécanique a été réalisé sous Fusion360. Sauf la pince : empruntée à BCN3D et ce robot :

BRE BCn3D arm.JPG

Les servomoteurs utilisés ne possèdent qu'un seul axe de sortie donc il faut en créer un deuxième artificiellement.

L'idée de base est de créer une sorte de U comme le montre les vues ci-dessous d'une des articulation :


Illustration 1: Vue 3D d'une articulation
Illustration 2: Autre vue 3d d'une articulation

Ici – vidéo assemblage


Le bras est alors constitué des articulations suivante: la plateform (rotation dans le plan horizontale) puis l'épaule, le coude, le poignet, la rotation du poignet et la pince. Total : 6 degrés de liberté.


Le problème de la masse intrinsèque des éléments constitutifs du bras lui-même viennent en déduction de la charge utile. Le bras mesure environ 30cm. A cette distance 0.339g pèsent pour le premier servomoteur (celui de l'épaule) l'équivalent de 10kg. Il faut donc, rien que pour mouvoir la pince en bout de bras, un couple de 10kg/cm. A ce calcul, il faut ajouter les autres éléments du bras mais qui sont moins éloignés de l'axe de

Illustration 3: Les articulations du bras

rotation de l'épaule.

Pour information : pesée : poignet + rotationPoignet + pince = 339g (3servo à 60g)

Une base = 18g

Un U = 12g

Un vis ecrou 3x8 = 1.1g (sur la pince il y en déjà 9)

noix alu = 2g


Ce petit calcul est important, on le verra par la suite...

Analyse de code

Répertoire de travail : 0021-brasROBOT\04-realisation\brasServo20kg\arduinoTestServo60kg

Dans le prog de Gilles, on « parle » aux servo en ° d'angle grâce à un map dans la fonction rotationServo()

longueurImpulsion = map(i, 0, 180, SERVOMIN, SERVOMAX );

Avec SERVOMIN = 100 et max 600.

De plus dans cette fonction, on fait du 1°/15ms max soit en gros à Vmax/5 pour les JX6221

60°/0.9s ou les 180 en quasi 3s

Dans ma version du jour (10/5/2017) on est à 1°/20ms


Quelques recodages

Illustration 4: Electronique de commande du bras
Pour mettre au point la mécanique, j'ai du faire un peu de code.

Notamment, je n'ai pas mis en oeuvre le Bluetooth tout de suite.

J'ai ajouté un Joystick avec bouton de clic. Le bouton permet de passer d'un servo au suivant pour le commander. Bon c'est bien mais au bout d'un moment on se sait plus quel moteur on commande (sauf de le faire bouger un peu, mais dans les phases délicates ça peu devenir gênant). J'ai décidé d'ajouter une LED par moteur en profitant des sorties disponibles (10) sur la carte PCA9685 afin d'indiquer lequel était actif. Un membre du fablab, Pedro, m'a suggéré de mettre un bouton par servo. J'ai donc ajouté un petit clavier 4x4.

Mappage du clavier dans le code ARDUINO :

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'-','0','+','D'}

En plus sur le clavier, outre le fait qu’on peut sélectionner les 6 servo individuellement, on peut choisir 4 vitesse 3, 10, 20 et 50 (respectivement 1°/3ms, 1°/10ms, 1°/20 et 1°/50ms) grâce aux 4 touches de droite (A, B, C, D). 50(D) est la vitesse la plus lente et 3(A) est la plus rapide.La touche '0' permet de revenir en position initiale et + et – permettent d’augmenter ou de réduire la vitesse par pas de 1 rien sur les touches 7,8,9

Les essais

Le clavier c’est très pratique surtout de pouvoir choisir la vitesse et le servo piloté. Cela donne une bonne configuration.

Pb le servo 2 de l’épaule est, malgré une alimentation en 6V, un peu faible. Mesuré le bras fait 30 cm de long. A cette distance le servo peut soulever 20kg/30 soit 667g en théorie. Lorsqu’on laisse le servo en charge bras tendu.Il fini par lâcher (sécurité thermique interne?). Courant 1.5A

Peut-être est-il possible de remplacer par un 60kg.


BRE servo60kg.JPG BRE servo32kg.JPG
60kg servo

36.79€ prix avril 2018 chez Banggod

32 kg servo

HV = high voltage

Coreless motor = brush less ? Non il existe en BSL mais à environ 45€.

36.96€ prix avril 2018 chez Banggood

Description:

Brand: JX Servo

Item: PDI-HV2060MG

Dead band: 4μs    1520μs / 330hz  

Max PW:650-2350us ,180° compatible (don't exceed max PW)

Standard PW: 850-2150us

Motor: High quality core motor

Operating Voltage: DC 6.0V-7.4V

Operating Temperature Range: -20 — + 60°C

Operating Speed: (6.0V) 0.15 sec/60°

Operating Speed: (7.4V) 0.13 sec/60°

Stall Torque: (6.0V)  48kg.cm

Stall Torque: (7.4V)  62kg.cm

Dimensions: 65.8X30X57.4mm

Weight: 200g

Bearing: 2BB

Connector Wire Length: JR 265mm

Description:

Brand: JX Servo

Item: PDI-HV7232MG

Dead band: 1μs    1520μs / 330hz

Max PW:500-2500us

Angle: 180° compatible

Motor: Coreless motor

Operating Voltage: DC 4.8V-8.4V

Operating Speed: (6.0V) 0.12 sec/60°

Operating Speed: (8.4V) 0.09 sec/60°

Stall Torque: (6.0V)  26.2 kg.cm (363.83oz/in)

Stall Torque: (8.4V)  31.5kg-cm 437.43 oz/in)

Dimensions: 40.5X20.5X36mm /1.59 X0.80X1.43 in

Weight: 72g

Bearing: 2BB

Connector Wire Length: JR 265mm


it is said : When 2.5A last 15s,will be cut off to protect servo.

A titre de comparaison les NEMA23 du bras BCN sont à 28kg/cm, il y en a 2 et coute 50€ pièce. En comparaison PDI-6221MG 20KG : 40.5X20.2X38mm
NEMA17 (avec Mechaduino): 311g

NEMA17 court: 219g

NEMA14



La pince pause également problème quand elle sert fort un objet, le courant peu facilement dépasser 3A.

Illustration 5: Roulements à billes de la plate-forme

Elle fini par se mettre en sécurité elle aussi et le courant chute brusquement.

Il est alors impossible de commander la pince même après plusieurs minutes d'attente.

Il faut sortir de cette situation à la main.

Il serait bien de mettre une mesure du courant sur ce servo et de limiter à 800mA par exemple.

La plate-forme est aussi un peu faible, 3 points d'appuis c'est trop peu, il faudrait augmenter le nombre de roulement.


Essai du 22/05

après démontage et remontage de 2 servo/6, il semble que ma référence max est changé. Les SERVOMAX à 627 ne permettent plus d'atteindre 180° ! Phénomène inexpliqué !

Etrange, en même temps le mode de travail est différent. PC déporté et passage par le répertoire réseau. Donc impossible de garantir le code qui était présent dans l'ARDUINO.

Redesign plateform pour servo 60kG

Le diamètre de la plateforme est : 105mm x 60mm de hauteur. Hauteur réduite à 50mm le 08/7


Roulement à bille selont Rollumix: 2 rangée de billes. L'une horizontale pour supporter le poids du bras et l'autre oblique pour centrer.

Voir la vidéo sur cet assemblage (attention deuxième partie du film).


Illustration 6: Les 2 anneaux de billes de la nouvelle plate-forme
Illustration 7: Anneaux +Plaque de dessus
Illustration 8: La même avec l'écrou inférieur


Sur la vu ci-dessus en coupe, les bagues ocre jaune formes les chemins de billes. Un chemin horizontal et un incliné

Illustration 9: Détail du montage

L'idée est d'avoir une bague centrale extérieur dans laquelle on met 2 anneaux de bille : une horizontale dessus et une en dessous oblique. On fait une gorge pour celle du haut.

Ensuite on coiffe par dessus avec une bague fileté qui passe verticalement à l'inérieur (chemin pour les bille lisse)

A la bague supérieure on vis la bague inférieure (qui comporte un chemin pour les billes obliques) on bloque avec des vis pointeau la bague inférieure.

J'ai 20 billes de 7,9mm de diamètre disponibles.

21/10/17 où en est-on: 2 pièces du nouveau roulement imprimées

Essais bague cannelée v5 encore trop juste. Retouché en v6 et imprimée et KO. V7 exportée.

V7 : ko. V8 : jeu 0,8 + dépouille de 1° KO

v10: nouveau design : épaisseur 5mm, diamètre intérieur nettement plus petit. Jeu 0,9. Cette fois-ci le jeu est peut être trop important OK

v11: même que v10 avec un jeu de 0,8mm => exporté à imprimer le 24/10 OK

Retouche bague oblique pour qu'elle s'imprime sans support

Décision couper en 3 la bague extérieur et procéder par collage pour éviter les supports.

Bride support Servo60kG à couper en deux pour la rendre imprimable. Autre solution trouvée. Pièce dessinnée.

Bague bille oblique trop juste au niveau des billes et du centre (v24).

Mise au point de la bague billes Hrz d'abord. Diam des billes 8mm jeu : 0,3*2 OK

réimprimer la bague Inférieure. OK

20/11/17: le nouveau roulement à 2 rangées de billes est fonctionnel. Le support du servo60kg aussi. Il ne manque plus que le pied redessiné pour accueillir le nouveau roulement. Malheureusement l'imprimante 3D est tombée en panne...

03/12/2017 : robot entièrement remonté et fonctionnel.

Reste à faire pour une version ultérieure :

Illustration 10: BRE en cours de remontage
  1. Piloter le Output Enable de la carte Adafruit
  2. Séparer les alimentations
    • Pince (max 6V/ I 2A)
    • 60kg (max 7.4V)
    • et les autres servomoteurReste
  3. mesure de courant (surtout la pince) (fait mais pour tout le robot),
  4. donner du grippe à la pince

Schéma électrique

BRE schema Fritzing.jpg

Attention : ne pas utiliser la vue schématique du fichier source Fritzing. Je ne l'ai pas du tout travaillée.

Mon but était seulement de présenter ici un schéma de câblage symbolique.

Pakage design

Il s'agit d'un projet dans le projet. La problématique posée par ce type de bras robotisé, et celui-ci n'y échappe pas, est le transport. Au départ, le robot était visser sur une simple plaque de bois.

J'ai donc designer une sorte de mallette de transport sur la bas des Bobies (voir projet correspondant ce sur même wiki.)


Cette pseudo mallette comporte : un fond (sur lequel est fixé le BRE), 2 grands cotés, un couvercle avec poignée de transport et un système de verrouillage/charnière.


BobiesBrasRobot4.jpg BobiesBrasRobot2.jpg BREphotoPackagePlie1.jpg

Package design: nomenclature

BREpackEclate.jpg

Designation Qté Commentaire Repère
Plaque Base 1 MDF 10mm 1
Plaque de fond 1 MDF 10mm 2
Plaque supérieure 1 MDF 10mm 3
Plaque poignée 1 MDF 10mm 4
Charnière dessus 2 Imprimée 5
Charnière inférieur 1 Imprimée 6
Charnière inf. courte 1 Imprimée 7
Verrou: cale 2 Imprimée 8
Verrou: plot 2 Imprimée 9
Verrou base 2 Imprimée 10
Allonge verrou 2 Imprimée 11
Allonge charnière 2 Imprimée 12
Demi poignée 2 Imprimée 13
axepoignée 2 Imprimée 14
Renfort poignée 3 Tige filtée M6x70mm + 2x28mm M3 15
Agraffes 4 Imprimée 16
visserie Magasin de bricolage 17
Charnière métal 3 Magasin de bricolage 18
Targette 1 Imprimée 19

Package design : pièces en mdf 10mm découpée

BREpakPlaqueBasDessin2D.JPG BREpakPlaqueSupérieureDessin2D.JPG
Plaque de base
Plaque supérieure


BREpakPlaqueFondDessin2D.JPG BREpakPlaquePoigneeDessin2D.JPG
Plaque de fond
Plaque poignée

Package design: pièce imprimées en 3D

La majorité des pièces 3D utilisées ici appartiennent au projet BOBies

Pièce Repère topo Vue 3D Pièce Repère topo Vue 3D
Charnière dessus 5 BRE charniereDessuVue3D.JPG Charnière inférieur 6 BRE charnierInferieurVue3D.JPG
Charnière inf. courte 7 BRE charnierInfCourteVue3D.JPG Verrou: cale 8 BRE verrouCalleVue3D.JPG
Verrou: plot 9 BRE verrouPlotVue3D.JPG Verrou base 10 BRE verrouBaseVue3D.JPG
Allonge verrou 11 BRE VerrouAllongeVue3D.JPG Allonge charnière 12 BRE charniereAllongeVue3D.JPG
Demi poignée 13 BRE poigneeDemiVue3D.JPG Axepoignée 14 BRE poigneeAxeVue3D.JPG
Targette 19 BRE targetteVue3D.JPG

Package design: assemblage

Voir la vidéo : sur youtube

Conclusion et évolutions

La bague dentée qui transmet le mouvement de rotation à la plateforme a trop de jeu. Pour le reste, je trouve le résultat assez sympa avec le servo 60kg.

Lors des premier essais de notre nouvelle découpeuse laser, j'ai pu découper 3 jeu de pignon dentés avec des jeux différents, 0.1, 0.2 et 0.3mm. C'est le 0.2mm qui donne les meilleurs résultats mais le jeu intrinsec du servomoteur reste trop important.

Une autre évolution concernerait la partie alimentation à la fois des servomoteurs et de l'ARDUINO.

Petite galerie d'images

Pilotage en 330Hz

Il ne suffit pas de changer la fréquence, les largeurs d'impulsion changent :

60Hz : période : 16667us soit un quantum à 4,07us

SERVOMIN 123 <=> 500us

SERVOMAX 627 <=> 2551us

Nouvelle valeur : 687 soit environ 2800us !

Au 24/03/2018 : essais à faire...

Appro

Servo JX PDI-6221MG 20KG moteurs vendu par 4 site Banggood.

Carte 16 PWM I2C imitation Adafruit en moins cher et oui les temps sont durs ! 4.34€ au lieu de 14 à 18€.

Servo 60Kg chez Banggood

Servo JX Servo PDI-HV7232MG 30KG

Bague servo Banggood

Liste des fichiers sources disponible

F360

Plan 2D du canon de l'articulation

stl des pièces imprimées de la mallinette

stl des pièces du BRE

Code source ARDUINO

Schéma Fritzing du BRE

sources Libre Office article

pdf article

webographie

http://fr.wikipedia.org/wiki/Licence_Creative_Commons


Projet de bras robotique de Gilles :

http://www.vorobotics.com/wiki/index.php?title=Bras_manipulateur


Tous les sevo torturés pour cette expérience ont été honnêtement acquis sur le site :

https://www.banggood.com


BCN3D MOVEO – A fully Open Source 3D printed robot arm


ARDUINO biensûr.


Logiciel de montage vidéo VSDC


Fritzing logo (new).png

Pour présenter les schéma : Fritzing

Licence

Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

CC88x31.jpgPaternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com


AccueilNos Projets