Spisu treści:

Ramię robota USStepper 4: 5 kroków
Ramię robota USStepper 4: 5 kroków

Wideo: Ramię robota USStepper 4: 5 kroków

Wideo: Ramię robota USStepper 4: 5 kroków
Wideo: Ramię robota oparte o Arduino - Robot dla dziecka, zestaw do samodzielnego montażu 2024, Lipiec
Anonim
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4
USStepper ramię robota 4

To już czwarta iteracja mojego ramienia robota, które opracowałem jako aplikację dla naszej płyty sterującej uStepper stepper. Ponieważ robot ma 3 silniki krokowe i serwo do uruchamiania (w podstawowej konfiguracji), nie ogranicza się do uSteppera, ale może być używany z dowolną płytką sterownika krokowego.

Konstrukcja oparta jest na przemysłowym robocie paletyzującym - i jest stosunkowo prosta. Powiedziawszy to, spędziłem niezliczone godziny wymyślając projekt i optymalizując go zarówno pod kątem łatwości montażu, jak i łatwości drukowania części.

Projekt wykonałem z myślą o łatwości druku i prostocie montażu. Nie żeby nie było sposobu na poprawę tych dwóch parametrów, ale myślę, że przeszedłem długą drogę. Co więcej, chciałbym sprowadzić robotykę przemysłową do poziomu, w którym hobbyści mogą ją śledzić, pokazując, że można to zrobić stosunkowo prosto - także matematykę, aby ją kontrolować!

Zapraszam do pozostawienia komentarza z konstruktywną opinią zarówno na temat projektu, ale przede wszystkim na temat tego, jak zrobić, aby był dostępny dla wszystkich (zwłaszcza matematyki).

Krok 1: Wymagane części, druk 3D i montaż

Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż
Wymagane części, druk 3D i montaż

Zasadniczo wszystko, co musisz wiedzieć, znajduje się w instrukcji montażu. Istnieje szczegółowy BOM z częściami zakupionymi i wydrukowanymi oraz szczegółową instrukcją montażu.

Druk 3D odbywa się na dobrej jakości drukarce 3D (FDM) o wysokości warstwy 0,2 mm i 30% wypełnieniu. Możesz znaleźć najnowszą iterację części i instrukcji tutaj:

Krok 2: Kinematyka

Kinematyka
Kinematyka
Kinematyka
Kinematyka

Aby ramię poruszało się w przewidywalny sposób, musisz wykonać matematykę:O Szukałem w wielu miejscach stosunkowo prostego opisu kinematyki tego typu robota, ale nie znalazłem takiego, który moim zdaniem był włączony poziom, na którym większość ludzi mogłaby to zrozumieć. Zrobiłem własną wersję kinematyki opartą wyłącznie na trygonometrii, a nie na transformacjach macierzowych, które mogą wydawać się dość przerażające, jeśli nigdy wcześniej nie pracowałeś nad takimi rzeczami - jednak są one dość proste dla tego konkretnego robota, ponieważ ma tylko 3 stopnie swobody.

Niemniej jednak uważam, że moje podejście w załączonym dokumencie jest napisane w stosunkowo łatwy do zrozumienia sposób. Ale spójrz i zobacz, czy ma to dla Ciebie sens!

Krok 3: Kodowanie kinematyki

Kinematyka może być trudna do uchwycenia nawet przy obliczeniach, które przedstawiłem w pierwszym. Oto przede wszystkim implementacja Octave - Octave to darmowe narzędzie z wieloma tymi samymi funkcjami, które można znaleźć w Matlab.

L1o = 40; Zo = -70; L_2 = 73,0; Au = 188,0; Al = 182,0; Lo = 47,0; PODRĘCZNIK = Au; DOLNA DŁUGOŚĆ = Al; PRZESUNIĘCIE X = Lo; PRZESUNIĘCIEZ = L_2; PRZESUNIĘCIE AZ = Zo; PRZESUNIĘCIE OSI = L1o; disp('Implementacja kodu') disp('Kąty wprowadzania:') rot = deg2rad(30); prawo = deg2rad(142,5); lewo = deg2rad(50); rad2deg(rot) rad2deg(right) rad2deg(left) T1 = rot;#base T2 = right;#shoulder T3 = left;#elbow #FW Kinematyka, aby uzyskać XYZ z kątów: disp('Obliczone X, Y, Z:') z = ZOFFSET + sin(prawo)*DOLNE ARMLEN - cos(lewo - (pi/2 - prawy))*UPPERARMLEN + AZOFFSET k1 = sin(lewo - (pi/2 - prawy))*UPPERARMLEN + cos(prawo)* DOLNE ARMLEN + XOFFSET + AXOFFSET; x = cos(rot)*k1 y = sin(rot)*k1 ##kinematyka odwrotna, aby uzyskać kąty z 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) - PRZESUNIĘCIE X; 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); prawo = (atan2(a, sqrt(1-a*a)) + atan2(sqrt(1-b*b), b)); left = atan2(sqrt(1-c*c), c); ##wyjściowe obliczone kąty disp('Kąty wyjściowe:') rot = rad2deg(rot) right = rad2deg(right) left = rad2deg(left)

W powyższym skrypcie masz w zasadzie gotowy kod implementacyjny dla kinematyki do przodu i do tyłu.

Kinematyka do przodu, której używasz do obliczania, gdzie skończysz z danym zestawem kątów silnika. Kinematyka odwrotna następnie (wykona odwrotną) obliczy, jakie kąty silnika są potrzebne, aby uzyskać żądaną pozycję x, y, z. Należy wtedy wprowadzić ograniczenia ruchu motorycznego, jak np. podstawa obrotowa może wynosić tylko od 0 do 359 stopni. W ten sposób upewnisz się, że nie przejdziesz na pozycje, które nie są wykonalne.

Krok 4: Uruchamianie rzeczy

Image
Image

Nie jesteśmy do końca z implementacją biblioteki kinematycznej, więc nie mogę jeszcze dostarczyć. Ale mogę pokazać filmik, jak to działa. Jest dość stabilna i płynna dzięki zastosowaniu łożysk i napędu pasowego, poza rozsądną jakością napędów jaką są tutaj płyty uStepper S.

Krok 5: Dodatkowe efektory końcowe

Dodatkowe efektory końcowe
Dodatkowe efektory końcowe
Dodatkowe efektory końcowe
Dodatkowe efektory końcowe

Zaprojektowałem 3 dodatkowe efektory końcowe. Jeden to po prostu chwytak poziomy, drugi pasuje do zwykłej europejskiej puszki po piwie lub napojach gazowanych, a na koniec istnieje system chwytaków próżniowych, który umożliwia zamontowanie przyssawki, pompy i zaworu.

Wszystkie będą lub są dostępne tutaj (pliki 3D STL i instrukcje):

Zalecana: