Innehållsförteckning:

UStepper Robot Arm 4: 5 Steg
UStepper Robot Arm 4: 5 Steg

Video: UStepper Robot Arm 4: 5 Steg

Video: UStepper Robot Arm 4: 5 Steg
Video: uStepper Robot Arm 4 Part 1 - Assembly 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

Detta är den fjärde iterationen av min robotarm, som jag har utvecklat som en applikation för vårt uStepper stegstyrkort. Eftersom roboten har tre stegmotorer och en servo för manövrering (i sin grundkonfiguration) är den inte begränsad till uStepper, utan kan användas med valfri styrdon.

Designen är baserad på en industriell palleteringsrobot - och är relativt enkel. Med det sagt har jag lagt otaliga timmar på att komma på designen och optimera den både för enkel montering, men också för att skriva ut delarna.

Jag gjorde designen med enkel utskrift och enkel montering i åtanke. Inte för att det inte finns något sätt att förbättra de två parametrarna, men jag tror att jag har kommit långt. Dessutom skulle jag vilja dra ner industriell robotik till en nivå där hobbyist kan följa den genom att visa att den kan göras relativt enkel - även matematiken för att styra den!

Lämna gärna en kommentar med konstruktiv feedback på både designen men mest av allt om hur jag gör för att göra den tillgänglig för alla (särskilt matematiken).

Steg 1: Delar som krävs, 3D -utskrift och montering

Delar som krävs, 3D -utskrift och montering
Delar som krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering
Delar krävs, 3D -utskrift och montering

I princip finns allt du behöver veta i monteringshandboken. Det finns en detaljerad BOM med både inköpta och tryckta delar och en detaljerad monteringsinstruktion.

3D -utskrifter görs på en rimlig kvalitet 3D -skrivare (FDM) med skikthöjd på 0,2 mm och 30 % fyllning. Du hittar den senaste iterationen av delar och instruktioner här:

Steg 2: Kinematik

Kinematik
Kinematik
Kinematik
Kinematik

För att få armen att röra sig på ett förutsebart sätt måste du räkna: OI har letat många ställen efter en relativt enkel beskrivning av kinematiken relaterad till denna typ av robot, men jag har inte hittat en som jag tror var på en nivå som de flesta kunde förstå. Jag har gjort min egen version av kinematiken uteslutande baserad på trigonometri och inte matrisförändringarna som kan verka ganska läskiga om du aldrig har arbetat med de grejerna tidigare - de är dock ganska enkla för just den här roboten eftersom det bara är 3 DOF.

Inte desto mindre tror jag att mitt tillvägagångssätt i det bifogade dokumentet är skrivet på ett relativt lättförståeligt sätt. Men ta en titt och se om det är vettigt för dig!

Steg 3: Kodning av kinematiken

Kinematiken kan vara svår att förstå även med de beräkningar jag gav i det förra. Så här är först och främst en Octave -implementering - Octave är ett gratisverktyg med många av samma funktioner som finns 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 ('kodimplementering') disp ('Inmatningsvinklar:') rot = deg2rad (30); höger = deg2rad (142,5); vänster = deg2rad (50); rad2deg (rot) rad2deg (höger) rad2deg (vänster) T1 = rutt; #bas T2 = höger; #sköld T3 = vänster; #elbåge #FW kinematik för att få XYZ från vinklar: disp ('Beräknat X, Y, Z:') z = ZOFFSET + sin (höger)*LOWERARMLEN - cos (vänster - (pi/2 - höger))*UPPERARMLEN + AZOFFSET k1 = sin (vänster - (pi/2 - höger))*UPPERARMLEN + cos (höger)* LOWERARMLEN + XOFFSET + AXOFFSET; x = cos (rot)*k1 y = sin (rot)*k1 ## invers kinematik för att få vinklar från 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öger = (atan2 (a, sqrt (1-a*a)) + atan2 (sqrt (1-b*b), b)); vänster = atan2 (sqrt (1-c*c), c); ## utgående beräknade vinklar disp ('Utgångsvinklar:') rot = rad2deg (rot) höger = rad2deg (höger) vänster = rad2deg (vänster)

Med ovanstående skript har du i princip implementeringskoden för framåt och bakåt kinematik.

Forward Kinematics använder du för att beräkna var du kommer att sluta med en given uppsättning motorvinklar. Invers kinematik kommer då (gör inversen) att beräkna vilka motorvinklar du behöver för att hamna i önskat x, y, z -läge. Begränsningar i motorrörelsen måste då införas, som t.ex. rotationsbas kan bara gå från 0 till 359 grader. På så sätt säkerställer du att du inte går till positioner som inte är genomförbara.

Steg 4: Kör saken

Image
Image

Vi är inte riktigt där med kinematikbibliotekets implementering, så att jag inte kan tillhandahålla ännu. Men jag kan visa dig en video om hur det går. Det är ganska stabilt och smidigt på grund av användningen av lager och remdrivning, förutom rimlig kvalitet på drivenheterna som är här uStepper S -brädorna.

Steg 5: Ytterligare sluteffekter

Ytterligare sluteffekter
Ytterligare sluteffekter
Ytterligare sluteffekter
Ytterligare sluteffekter

Jag har designat ytterligare 3 sluteffekter. En är helt enkelt en horisontell gripare, en annan passar en vanlig europeisk öl- eller läskburk och slutligen finns det ett vakuumgripsystem som gör att du kan montera på en vakuumkopp, pump och ventil.

Alla kommer eller är tillgängliga här (3D STL-filer och instruktioner):

Rekommenderad: