Skocz do zawartości
beargrylls

Cebulatron - prototyp "taniego" manipulatora

Pomocna odpowiedź

Cześć,
jakiś czas temu postanowiłem zaprojektować robota, którego mógłby zbudować każdy z dostępem do drukarki 3d i dość skromnym budżetem. Rozwiązania konstrukcyjne częściowo opierałem na BCN3D MOVEO i innych podobnych konstrukcjach, jednak chciałem żeby manipulator był bardziej precyzyjny w czym miało pomóc zastosowanie łożysk w każdej z osi.

Przekładnie w pierwszej i czwartej osi to wydrukowane koła zębate, przełożenia kolejno 1:7 i 1:6, w osiach 3 i 5 zastosowano przekładnie pasowe zębate, przełożenia kolejno 1:8,435 i 1:6.125.

Jak widać manipulator jest jeszcze nie skończony, brak mu osi drugiej. Początkowo oś 2 i 3 miały być takie same, jednak ze względu na większe obciążenia, musiałem przeprojektować drugą oś, zastosować większy pasek (T5x10 zamiast gt2x6mm) oraz dodatkową przekładnię planetarną. Oś druga jest jeszcze w fazie projektowej.

Koszt (bez kosztów przesyłki):

"mechanika":

  • silniki krokowe używane z allegro: około 40zł
  • łożyska: około 60 zł
  • śruby/nakrętki: około 50 zł
  • filament do drukarki ABS 2x 1kg: 120 zł
  • serwomechanizm do chwytaka (wziąłem jaki miałem pod ręka, ale można użyć tańszy): 50 zł

co daje około 320 zł

elektronika:

  • Płytka zgodna z Arduino Mega: 40 zł
  • RAMPS 1.4: 20 zł
  • StepSticki : 30 zł
  • Zasilacz 250W: 48 zł

= 138 + przewody czyli powiedzmy 160 zł

W sumie wyszło około 480 zł czyli trochę drożej niż planowałem jednak można przyoszczędzić np. nie kupując nowego zasilacza  itp.

Obecnie planuję:

  • skończyć projekt osi drugiej i zrobić prototyp oraz przetestować go razem z całym robotem
  • wydrukować i zamontować przekładnie planetarną do osi trzeciej
  • dokończyć komunikację robota z ROSem przez bibliotekę rosserial arduino

IMG_20191112_121033[1].jpgIMG_20191108_124137[1].jpgIMG_20191128_154756[1].jpgIMG_20191115_162032[1].jpg

IMG_20191106_153841[1].jpg

Przechwytywanie.PNG

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Fajny design!

Dnia 29.11.2019 o 11:09, beargrylls napisał:

serwomechanizm do chwytaka (wziąłem jaki miałem pod ręka, ale można użyć tańszy): 50 zł

Można też zastosować silnik bldc w roli serwa jak w tym wątku:

Oprogramowanie autorskie czy gotowiec? Ogólnie fajna konstrukcja, gratuluję.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dzięki! 

Jak na razie to mam w planie zrobić chwytak na silniku szczotkowym z przekładnią. Całość kosztowała koło 2,50 na allegro. Co do pozostałych napędów to fajnie by było użyć silników bezszczotkowych jednak są znacznie droższe.

Oprogramowanie bazuje na bibliotekach arduino AccelStepper i Multistepper których używam do sterowania silnikami krokowymi, wykorzystałem gotowy przykład dodając tylko liczbę silników i współczynniki do przeliczania obrotów na kroki oraz prostą komunikację przez port szeregowy.

Teraz planuję zrobić żeby robot powtarzał trajektorię wygenerowaną w symulacji.

Udostępnij ten post


Link to post
Share on other sites
6 godzin temu, beargrylls napisał:

Jak na razie to mam w planie zrobić chwytak na silniku szczotkowym z przekładnią. Całość kosztowała koło 2,50 na allegro.

Podejrzewam, że biorąc pod uwagę koszt drivera serwo wyjdzie taniej... pokaż ten silnik za 2.50 bo aż sie wierzyć nie chce 🙂

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Mam cały karton (naście szt.) takich silników z drukarek różnej mocy, czasami ktoś sprzedaje za parę zł. jeśli działa, mogę oddać darmo jak się komu przydadzą.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Fajny silniczek, ale chyba za duże przełożenie... Podrzuciłem link kumplowi, bo ostatnio płakał że 5 RPM to trochę za dużo i musi zejść z 24 na 6 V - może mu się przyda 🙂

 

Udostępnij ten post


Link to post
Share on other sites

Po wielu podejściach udało mi się wreszcie sterować robotem wykorzystując do uproszczony model 3d robota.

Najpierw próbowałem wykorzystać RPi 3B+ z zainstalowanym ubuntu, jednak okazało się za słabe i po odpaleniu okna symulacji system działał bardzo powoli a potem się zawieszał.

Do stworzenia modelu robota w ROSie (Robot Operating System) potrzebny jest plik w formacie URDF (Universal Robot Description Format), jest to właściwie plik w języku znaczników XML opisujący każdy człon oraz przegub robota a także ich wzajemne położenie. Można napisać taki plik samemu, tutaj przykładowy fragment opisujący "robota" z jednym członem w formie walca:

   1 <?xml version="1.0"?>
   2 <robot name="myfirst">
   3   <link name="base_link">
   4     <visual>
   5       <geometry>
   6         <cylinder length="0.6" radius="0.2"/>
   7       </geometry>
   8     </visual>
   9   </link>
  10 </robot>

Dla bardziej złożonych geometrii można podać ścieżkę do pliku .dae lub .stl tak jak tu:

 <link name="right_tip">
 210     <visual>
 211       <origin rpy="-3.1415 0 0" xyz="0.09137 0.00495 0"/>
 212       <geometry>
 213         <mesh filename="package://urdf_tutorial/meshes/l_finger_tip.dae"/>
 214       </geometry>
 215     </visual>
 216   </link>

Jeśli ktoś byłby ciekawy jak stworzyć taki plik to odsyłam do pełnego tutoriala: http://wiki.ros.org/urdf/Tutorials/Building a Visual Robot Model with URDF from Scratch

Jako że jestem leniwy, do wygenerowania pliku URDF użyłem programu Autodesk Fusion 360 i skryptu fusion2urdf. Gdyby ktoś potrzebował to tu jest link: https://github.com/syuntoku14/fusion2urdf Jest tam wszystko opisane jak przygotować model 3d, jak stworzyć plik URDF a następnie otworzyć w ROSie.

Tutak podaję link do tutoriala, opisującego jak zacząć zabawę z ROSem i MoveIt! czyli oprogramowaniem służącym do planowania trajektorii robota.

http://docs.ros.org/melodic/api/moveit_tutorials/html/doc/getting_started/getting_started.html

Kolejnym krokiem jest utworzenie konfiguracji robota w MoveIt! W tym celu wystarczy odpalić kreatora konfiguracji MoveIt! Setup Assistant wpisując w terminal:

roslaunch moveit_setup_assistant setup_assistant.launch

Jak korzystać z kreatora konfiguracji jest opisane w tutorialu: http://docs.ros.org/melodic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html

Jest to stosunkowo proste, najpierw należy podać ścieżkę do naszego pliku URDF jeśli chcemy stworzyć nową konfigurację lub do konfiguracji którą chcemy zmodyfikować.

W następnych krokach stworzona jest między innymi macierz zwana "Self-Collision Matrix" czyli na tym etapie sprawdzane jest które człony nie mogą fizycznie się ze sobą zderzyć, co później wykorzystane jest do skrócenia czasu planowania trajektorii. Na końcu tworzone są pliki konfiguracyjne niezbędne do rozpoczęcia zabawy z MoveIt!

Potem, żeby uruchomić wizualizację robota należy użyć polecenia gdzie jako pierwszy argument, wpisujemy nazwę którą podaliśmy przy tworzeniu plików konfiguracyjnych:

roslaunch panda_moveit_config demo.launch

Wizualizacja otworzy się w środowisku RViz czyli głównym narzędziu ROSa służącym właśnie do wizualizacji robotów.

IMG_20191202_161205.thumb.jpg.57618294f719804c06fa832e1f8da7a3.jpg

Następnie korzystając z biblioteki rosserial arduino przerobiłem kod programu na arduino tak, żeby odbierał z ROSa informacje o współrzędnych przegubowych (joint_states), przeliczał na liczbę kroków i sterował silnikami krokowymi. Bazowałem między innymi na tym tutorialu:

http://wiki.ros.org/rosserial_arduino/Tutorials/Servo Controller

A oto efekt:

 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...