Table des matières:

Bras robotique USstepper 4: 5 étapes
Bras robotique USstepper 4: 5 étapes

Vidéo: Bras robotique USstepper 4: 5 étapes

Vidéo: Bras robotique USstepper 4: 5 étapes
Vidéo: RobotAnno 6-axis Mini Arduino Education Robotic Arm 2024, Juillet
Anonim
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4
Bras robotique USstepper 4

Il s'agit de la 4ème itération de mon bras robotique, que j'ai développé en tant qu'application pour notre carte de commande pas à pas uStepper. Étant donné que le robot dispose de 3 moteurs pas à pas et d'un servo pour l'actionnement (dans sa configuration de base), il n'est pas limité à uStepper, mais peut être utilisé avec n'importe quelle carte de commande pas à pas.

La conception est basée sur un robot palettiseur industriel - et est relativement simple. Cela dit, j'ai passé d'innombrables heures à concevoir le design et à l'optimiser à la fois pour faciliter l'assemblage, mais aussi pour faciliter l'impression des pièces.

J'ai fait la conception avec la facilité d'impression et la simplicité d'assemblage à l'esprit. Non pas qu'il n'y ait aucun moyen d'améliorer ces deux paramètres, mais je pense que j'ai parcouru un long chemin. De plus, j'aimerais amener la robotique industrielle à un niveau où les amateurs peuvent la suivre en montrant qu'elle peut être rendue relativement simple - ainsi que les mathématiques pour la contrôler !

N'hésitez pas à laisser un commentaire avec des retours constructifs à la fois sur le design mais surtout sur comment je fais pour le rendre accessible à tous (surtout les maths).

Étape 1: Pièces requises, impression 3D et assemblage

Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage
Pièces requises, impression 3D et assemblage

En gros, tout ce que vous devez savoir se trouve dans le manuel de montage. Il y a une nomenclature détaillée avec les pièces achetées et imprimées et une instruction de montage détaillée.

L'impression 3D est réalisée sur une imprimante 3D (FDM) de qualité raisonnable avec une hauteur de couche de 0,2 mm et 30 % de remplissage. Vous pouvez trouver la dernière itération des pièces et des instructions ici:

Étape 2: Cinématique

Cinématique
Cinématique
Cinématique
Cinématique

Pour faire bouger le bras de manière prévisible, vous devez faire des maths: J'ai cherché beaucoup d'endroits pour une description relativement simple de la cinématique liée à ce type de robot, mais je n'en ai pas trouvé une qui, je crois, était sur un niveau où la plupart des gens pouvaient le comprendre. J'ai fait ma propre version de la cinématique basée uniquement sur la trigonométrie et non sur les transformations matricielles qui peuvent sembler assez effrayantes si vous n'avez jamais travaillé sur ce genre de choses auparavant - cependant, elles sont assez simples pour ce robot particulier car il n'y a que 3 degrés de liberté.

Néanmoins, je pense que mon approche dans le document ci-joint est écrite d'une manière relativement facile à comprendre. Mais jetez un œil et voyez si cela a du sens pour vous !

Étape 3: Codage de la cinématique

La cinématique peut être difficile à saisir même avec les calculs que j'ai fournis dans le premier. Voici donc tout d'abord une implémentation d'Octave - Octave est un outil gratuit avec bon nombre des mêmes fonctionnalités que celles de Matlab.

L1o = 40; Zo = -70; L_2 = 73,0; Au = 188,0; Al = 182,0; Lo = 47,0; UPPERARMLEN = Au; LOWERARMLEN = Al; XOFFSET = Lo; ZOFFSET = L_2; AZOFFSET = Zo; AXOFFSET = L1o; disp('Implémentation du code') disp('Angles d'entrée:') rot = deg2rad(30); droite = deg2rad(142,5); gauche = deg2rad(50); rad2deg(rot) rad2deg(right) rad2deg(left) T1 = rot;#base T2 = right;#shoulder T3 = left;#elbow #FW cinématique pour obtenir XYZ à partir des angles: disp('Calculé X, Y, Z:') z = ZOFFSET + sin(right)*LOWERARMLEN - cos(left - (pi/2 - right))*UPPERARMLEN + AZOFFSET k1 = sin(left - (pi/2 - right))*UPPERARMLEN + cos(right)* LOWERARMLEN + XOFFSET + AXOFFSET; x = cos(rot)*k1 y = sin(rot)*k1 ##cinématique inverse pour obtenir des angles à partir de XYZ: rot = atan2(y, x); x = x - cos(rot)*AXOFFSET; y = y - sin(rot)*AXOFFSET; z = z - AZOFFSET-ZOFFSET; L1 = sqrt(x*x + y*y) - XOFFSET; L2 = carré((L1)*(L1) + (z)*(z)); a = (z)/L2; b = (L2*L2 + LOWERARMLEN*LOWERARMLEN - UPPERARMLEN*UPPERARMLEN)/(2*L2*LOWERARMLEN); c = (LOWERARMLEN*LOWERARMLEN + UPPERARMLEN*UPPERARMLEN - L2*L2)/(2*LOWERARMLEN*UPPERARMLEN); droite = (atan2(a, sqrt(1-a*a)) + atan2(sqrt(1-b*b), b)); gauche = atan2(sqrt(1-c*c), c); ##angles calculés de sortie disp('Angles de sortie:') rot = rad2deg(rot) right = rad2deg(right) left = rad2deg(left)

Avec le script ci-dessus, vous disposez essentiellement du code prêt à l'implémentation pour les cinématiques avant et arrière.

La cinématique avant que vous utilisez pour calculer où vous vous retrouverez avec un ensemble donné d'angles moteurs. La cinématique inverse va ensuite (faire l'inverse) calculer les angles de moteur dont vous avez besoin pour vous retrouver à la position x, y, z souhaitée. Des contraintes sur le mouvement moteur doivent alors être insérées, comme par ex. la base de rotation ne peut aller que de 0 à 359 degrés. De cette façon, vous vous assurez que vous n'irez pas dans des positions qui ne sont pas réalisables.

Étape 4: Exécuter la chose

Image
Image

Nous n'en sommes pas tout à fait là avec l'implémentation de la bibliothèque cinématique, donc je ne peux pas encore la fournir. Mais je peux vous montrer une vidéo de son fonctionnement. Il est assez stable et fluide en raison de l'utilisation de roulements et d'un entraînement par courroie, en plus d'une qualité d'entraînement raisonnable qui est ici les cartes uStepper S.

Étape 5: Effecteurs terminaux supplémentaires

Effecteurs terminaux supplémentaires
Effecteurs terminaux supplémentaires
Effecteurs terminaux supplémentaires
Effecteurs terminaux supplémentaires

J'ai conçu 3 effecteurs terminaux supplémentaires. L'une est tout simplement une pince horizontale, une autre s'adapte à une canette de bière ou de soda européenne ordinaire et enfin il existe un système de pince à vide qui vous permet de monter sur une ventouse, une pompe et une valve.

Tous seront ou sont disponibles ici (fichiers et instructions STL 3D):

Conseillé: