Indholdsfortegnelse:

UStepper Robot Arm 4: 5 trin
UStepper Robot Arm 4: 5 trin

Video: UStepper Robot Arm 4: 5 trin

Video: UStepper Robot Arm 4: 5 trin
Video: Robot Arm & Controller - Building the DFRobot 5 DOF Robot Arm 2024, Juli
Anonim
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4
UStepper robotarm 4

Dette er den 4. iteration af min robotarm, som jeg har udviklet som en applikation til vores uStepper stepper kontrolkort. Da robotten har 3 trinmotorer og en servo til aktivering (i dens grundkonfiguration) er den ikke begrænset til uStepper, men kan bruges med ethvert trinbræt.

Designet er baseret på en industriel palleteringsrobot - og er relativt enkel. Når det er sagt, har jeg brugt utallige timer på at komme med designet og optimere det både for nem montering, men også for at udskrive delene.

Jeg lavede designet med let tryk og enkel montering i tankerne. Ikke at der ikke er nogen måde at forbedre disse to parametre på, men jeg tror, jeg er nået langt. Desuden vil jeg gerne trække industriel robotteknologi ned på et niveau, hvor hobbyist kan følge den ved at vise, at den kan laves relativt enkel - også matematikken til at styre den!

Efterlad gerne en kommentar med konstruktiv feedback på både designet, men mest af alt om, hvordan jeg gør med at gøre det tilgængeligt for alle (især matematikken).

Trin 1: Påkrævede dele, 3D -udskrivning og samling

Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling
Nødvendige dele, 3D -udskrivning og samling

Grundlæggende er alt, hvad du behøver at vide, i monteringsvejledningen. Der er en detaljeret stykliste med både købte og trykte dele og en detaljeret samlevejledning.

3D -udskrivning udføres på en rimelig kvalitet 3D -printer (FDM) med laghøjde på 0,2 mm og 30 % udfyldning. Du kan finde den nyeste iteration af dele og instruktioner her:

Trin 2: Kinematik

Kinematik
Kinematik
Kinematik
Kinematik

For at få armen til at bevæge sig på en overskuelig måde skal du regne: OI har kigget mange steder efter en relativt enkel beskrivelse af kinematikken relateret til denne type robot, men jeg har ikke fundet en, som jeg tror var på et niveau, hvor de fleste mennesker kunne forstå det. Jeg har lavet min egen version af kinematikken udelukkende baseret på trigonometri og ikke de matrixforandringer, der kan virke ganske skræmmende, hvis du aldrig har arbejdet med de ting før - de er dog ganske enkle for netop denne robot, da det kun er 3 DOF.

Ikke desto mindre tror jeg, at min tilgang i det vedhæftede dokument er skrevet på en relativt letforståelig måde. Men tag et kig og se om det giver mening for dig!

Trin 3: Kodning af kinematikken

Kinematikken kan være svær at forstå selv med de beregninger, jeg har givet i førstnævnte. Så her er først og fremmest en Octave -implementering - Octave er et gratis værktøj med mange af de samme funktioner, der findes i 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 ('Kodeimplementering') disp ('Inputvinkler:') rot = deg2rad (30); højre = deg2rad (142,5); venstre = deg2rad (50); rad2deg (rot) rad2deg (højre) rad2deg (venstre) T1 = råd; #base T2 = højre; #skuler T3 = venstre; #elbue #FW kinematik for at få XYZ fra vinkler: disp ('Beregnet X, Y, Z:') z = ZOFFSET + sin (højre)*LOWERARMLEN - cos (venstre - (pi/2 - højre))*UPPERARMLEN + AZOFFSET k1 = sin (venstre - (pi/2 - højre))*UPPERARMLEN + cos (højre)* LOWERARMLEN + XOFFSET + AXOFFSET; x = cos (rot)*k1 y = sin (rot)*k1 ## invers kinematik for at få vinkler fra 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 = sqrt ((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); højre = (atan2 (a, sqrt (1-a*a)) + atan2 (sqrt (1-b*b), b)); venstre = atan2 (sqrt (1-c*c), c); ## output beregnede vinkler disp ('Outputvinkler:') rot = rad2deg (rot) højre = rad2deg (højre) venstre = rad2deg (venstre)

Med ovenstående script har du i bund og grund implementeringsklar kode til fremad og baglæns kinematik.

Fremadgående kinematik, du bruger til at beregne, hvor du ender med et givet sæt motorvinkler. Invers kinematik vil derefter (gør den inverse) beregne, hvilke motorvinkler du skal bruge for at ende i en ønsket x, y, z position. Begrænsninger for motorisk bevægelse skal derefter indsættes, som f.eks. rotationsbase kan kun gå fra 0 til 359 grader. På denne måde sikrer du, at du ikke vil gå til stillinger, der ikke er mulige.

Trin 4: Kør sagen

Image
Image

Vi er ikke helt der med kinematikbibliotekets implementering, så jeg ikke kan levere endnu. Men jeg kan vise dig en video af, hvordan det kører. Det er ret stabilt og glat på grund af brugen af lejer og remtræk, udover rimelig kvalitet af drev, som her er uStepper S -pladerne.

Trin 5: Yderligere sluteffektorer

Yderligere sluteffektorer
Yderligere sluteffektorer
Yderligere sluteffektorer
Yderligere sluteffektorer

Jeg har designet 3 ekstra sluteffekter. Den ene er ganske enkelt en vandret griber, en anden passer til en almindelig europæisk øl- eller sodavandsdåse, og endelig er der et vakuumgribersystem, der giver dig mulighed for at passe på en vakuumkop, pumpe og ventil.

Alle vil være eller er tilgængelige her (3D STL-filer og instruktioner):

Anbefalede: