Skocz do zawartości

Eukaryota

Użytkownicy
  • Zawartość

    46
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    4

Eukaryota wygrał w ostatnim dniu 23 listopada 2018

Eukaryota ma najbardziej lubianą zawartość!

Reputacja

31 Bardzo dobra

1 obserwujący

O Eukaryota

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dzięki wielkie Narzędzie jest odsunięte od osi obrotu, żeby pokazać, że model matematyczny pozwala na sterowanie robotem w takim układzie. Czysto zabieg pokazowy. Zresztą tak cały ruch fajniej wygląda, robot musi się znacznie bardziej powykręcać niż jakby ssawka była w osi obrotu osi czwartej
  2. Witam wszystkich, od mojego ostatniego postu tutaj minęło sporo czasu ale wcale nie porzuciłem robotyki. Jak wszyscy wiemy życie po studiach zaczyna zjadać coraz więcej czasu. Prawie 4 lata temu wrzuciłem tutaj post z moją konstrukcją robota typu delta (Delta Robot). Mam wrażenie, że bardzo fajnie się przyjął i tamta konstrukcja (jak wspominałem 4 lata temu) była prototypem, na którym zaczynałem się uczyć. Cztery lata rozwoju nie tylko mnie ale też dostępnej technologii jak np. druk 3D i mocniejsze mikrokontrolery niż poczciwa Atmega pozwoliły mi rozwinąć skrzydła. Ale przechodząc do meritum, przedstawiam moją następną wersję robota typu delta: Robot składa się w tym momencie z: ramienia, taśmociągu, systemu wizyjnego. systemu generującego podciśnienie 1.Mechanika Do zrobienia tego robota wykorzystałem tyle części z poprzedniej konstrukcji ile się dało. Ale ze względu na postęp techniki i moje większe możliwości finansowe większość przeprojektowałem w SolidWorksie i wydrukowałem na własnej drukarce 3D. Ramiona zamontowane są na podwójnie łożyskowanym wale, który napędzany jest poprzez pasek zębaty, a ten z kolei przez silnik krokowy z zamontowanym 12bitowym enkoderem. Taśmociąg także sam zrobiłem z profilu aluminiowego z Allegro oraz silnika DC z przekładnią. Pas kupiłem z profesjonalnej firmy na zamówienie. Może to brzmi groźnie i drogo ale tak nie jest. Pas kosztował 110 zł brutto. robot posiada 4 osie, dokładnie tak jak poprzednia konstrukcja. 2. Elektronika Najważniejszym układem scalonym jest mikrokontroler TEENSY 3.6 (link) zajmuje się: sterowaniem silnikami krokowymi, obsługą enkoderów silników jak i taśmociągu, komunikacją z komputerem, zapisem programów, punktów oraz wszelkich ustawień na karcie SD Jest to kontroler kompatybilny z bibliotekami Arduino i szczerze dla całego projektu zbawienne było to, że miałem gotowe biblioteki dla wielu rzeczy i nie musiałem się uczyć tego procka wraz z wszystkimi rejestrami, algorytmami zapisu na kartę SD, protokołu SPI oraz obsługi wielu peryferii jak sterowniki silników krokowych (o tym za chwilę) oraz np. ekranu LCD. Mogłem się skupić na moim celu czyli aplikacji, która ma spełniać moje założenia. Dodatkowo w kontrolerze, a także w ramieniu znajdują się: Teensy 3.2 - obsługa ESTOP, IO (wejść/wyjść), obsługa LCD oraz pomost w komunikacji pomiędzy głównym prockiem, a Arduino w ramieniu, Arduino Nano - obsługa PID taśmociągu, sterowanie serwochwytakiem ( kontroler Pololu Maestro), sterowanie pompą podciśnienia oraz elektrozaworem, Arduino Nano - komunikacja z komputerem poprzez zTCP/IP Silniki wyposażone są w enkodery absolutne AMS AS5045, które dostałem za darmo. Robot wyposażony jest w 4 wejścia oraz 4 wyjścia 24V (standard przemysłowy). W celu testowania czy wszystko dobrze działa zrobiłem dodatkowo prosty panel z 4 diodami oraz 4 przyciskami do testowania czy wszystko dobrze działa. Silniki sterowane są poprzez sterownik silników krokowych AMIS-30543 (link), który pozwala na konfiguracje poprzez magistralę SPI, a także na sterowanie z mikrokrokiem x32, które to sterowanie tutaj wykorzystuję. Dodatkowo jak widać na zdjęciach zaprojektowałem oraz zmontowałem (po dostaniu od Satlandu) płytki, które pozwoliły wszystko spiąć ze sobą. Nie będę wrzucał schematu PCB, bo nie jest to nic interesującego. 3. System wizyjny Robot skalibrowany został z systemem wizyjnym OpenMV (link). Kamera została zaprogramowa w języku Python i jej zadaniem jest w zadanym czasie (komunikat wysłany po uart) zrobić zdjecie i zliczyć bloby o odpowiedniej wielkości. Kamera wurzyca po porcie uart dane do mikrokontrolera głównego w postaci NUMER/X/Y/KĄT/ już we współrzędnych robota. Po dostaniu danych do tablicy punktu dodawana jest aktualna pozycja taśmociągu. Dzięki temu robot jest w stanie trafić w detal podczas ruchu taśmy. 4. System sterowania Całość oparta jest na matematyce, mikrokontroler oblicza zadanie proste oraz odwrotne kinematyki (dla pozycji oraz prędkości). W przeciwieństwie do starej konstrukcji układ sterowania naprawdę bierze pod uwagę pozycję oraz prędkość, dzięki temu robot porusza się bardzo płynnie oraz może zachować określoną prędkość liniową punktu TCP (Tool Central Point). Algorytmy pozwalając na poruszanie się w trybach: JOINT - ruch obliczany jest tak, aby każda oś zakończyła pracę w tym samym czasie, LINEAR - ruch lionowy punktu TCP z określoną prędkością liniową, TOOL - ruch liniowy ale zgodny z układem współrzędnych narzędzia CONV - tryb ruchu liniowego z załączonym śledzeniem taśmy, Cały program posiada w tym momencie jakieś 6 tys linijek kodu i pozwala na pracę w trybie automatycznym jak i ręcznym robota. Całość jest napisana w języku C/C++. 5.Program na PC Program napisany w C# w środowisku VisualStudio. Pozwala na: załączenie silników (przekaźnik odcinający na linii 24V), Zwolnienie napędów (enable na sterowniku krokowców) ułatwia ręczne uczenie punktów, Resetowanie błędów, Sterowanie robotem w trybie ręcznym, Uczenie punktów, Edycję ręczną zapisanym punktów na robocie, ustawienie układu TOOL oraz pozycji domowej robota, pisanie prostych programów w skryptowym języku podobnym do BASICA (jestem w trakcie prac) uruchamianie programów w trybie automatycznym, deklarowanie konkretnych działań pod wejścia oraz wyjścia np. cykl start na wejściu 1 podgląd pozycji robota, podgląd IO robota, sterowanie taśmociągiem, zapisywanie oraz sczytywanie ustawień robota oraz punktów z/do pliku na PC po połączeniu z robotem automatyczne sczytanie ustawień oraz punktów z karty SD w kontrolerze. 6.Filmiki Wiem, że to tylko krótki post na temat tego robota i w temacie dla zainteresowanych jest znacznie więcej do opowiedzenia dlatego jak ktoś ma jakieś pytania to zapraszam do komentarzy oraz wiadomości
  3. Witam, ciekawe, że nikt nie popatrzył w ogóle co to za robota "firma" kupiła. Otóż kupili robota w ogóle nie przystosowanego do spawania. Jest to wielki robot o dużym udźwigu przeznaczony do handlingu, obsługi pras i maszyn CNC. Spawanie na nim, choć możliwe, będzie moim zdaniem katorgą. Współczuję. Zacznijmy od doboru podajnika drutu, źródła spawalniczego, określenia długości przewodów pomiędzy fajką, a podajnikiem (prawdopodnie trzeba będzie robić specjalnie na zamówienie, bo producenci tacy jak Fronius, Lorch, Kempi itd nie robią gotowych zestawów pod aplikacje-wynalazki). Dodajmy, że samo zamontowanie fajki tak aby robot sam sobie nie przeszkadzał będzie ciekawym wynalazkiem Wielka kiść na pewno w tym nie pomoże. Kontynuując, robot nie ma gotowych funkcji do sterowania źródłem jak i specjalnych generatorów trajektorii używanych w takich aplikacjach np. różnego rodzaju ściegi. Na upartego można założyć mu fajkę, wystawić sygnał zajarz łuk i jechać liniowo z A do B. Ale szczerze to nigdy się nie sprawdza, chociażby z powodu uciekania materiału pod wpływem dostarczanej energii cieplnej. Zakończmy na tym, że robot jest przestarzały, jest to już wycofany model. Spotkałem się już nie raz z takimi "Januszami" przemysłu i w 80% procentach przypadków robot trafiał na magazyn lub znajdowało się zastosowanie zgodne z jego przeznaczeniem. Pozostali pozbywali się dziadów. Nie chcę nikogo obrazić, ale temat pracy raczej powiniem brzmieć: "Dlaczego ABB IRB6400 nie nadaje się do spawania"
  4. Przekładnie falowe są przekładniami bezluzowymi z założenia. Sa nawet precyzyjniejsze niż przekładnie cykloidalne (o planetarkach nawet nie wspominając). A co Arduino, obawiam się, że nawet Due może nie wyrobić z tym wszystkim. Dlaczego nie zastosować gotowych napędów? Servo Cena w miarę rozsądna, a ile mniej roboty przy pisaniu programu. Moim zdaniem najlepiej używać jak najwięcej gotowych elementów i komponentów, a nie szyć i odkrywać amerykę od nowa dla sztuki. Pozdrawiam, E
  5. Ambitny projekt ale jednego nie rozumiem, chcesz kupować przekładnie po 2500 zł szt (używane jak rozumiem) enkodery za 500 zł, a do tego silniki za 16 USD i Arduino. Coś mi się tutaj nie kalkuluje lub nie znałeś ceny części.
  6. Witam, mam do sprzedania 3 silniki DC z przekładniami planetarnymi 100:1 z zamontowanym enkoderem. Są to TE napędy zmodyfikowane przeze mnie(założona inna przekładnia) ze względu na duży luz oryginalnych przełożeń. Wraz z napędami wysyłam huby mocujące wał oraz specjalnie wykonane mocowania napędów wykonane ze stali otwory pasują do TYCH mocowań. Silniki pracowały w robocie Delta Cena 165 zł sztuka Dodatkowo do sprzedaży mam silnik Silnik wraz z hubem mocującym. Cena 120 zł Zainteresowanych proszę o priva. Pozdrawiam, E
  7. Hej, Ciekawy temat ale ze swojej strony polecam zmienić hub mocujący chwytak. Robot praktycznie cały czas pracuje w puktach osobliwych i założę się, że miałeś z tym problem. Jakbyś ssawkę zamontował pod kątek 45 lub 90 stopni błędów od singularity by praktycznie nie było. Widać ten problem i to znacznie. Obroty 4 osi.
  8. Jedyna Delta 6DOF to Fanuc M-3ia jaką znam, ale przypuszczam, że nie o to Ci chodziło. Jeżeli mówisz o platformie Stewarta to za bardzo nie wiem jak chcesz obroty obliczać jeżeli traktujesz ją jako zlepek SCARA. Pozycja X,Y,Z ok, ale kąty obrotu już gorzej. Ogólnie moim zdaniem DH się nie nadaje do robotów równoległych.
  9. Z zależności geometrycznych. Notacja Denavitta-Hartenberga nie nadaje się do obliczania równań kinematyki dla struktury z zamkniętym łańcuchem kinematycznym. Znaczy da się poprzez uproszczenie, że Delta to 3 SCARY itd. ale uważam, że to robota na około.
  10. Równania prostej i odwrotnej kinematyki wyliczyłem na kartce. Jedynie ich pochodne po czasie wyliczyłem w Matlabie. Kinematyka jest wyliczana na bieżąco przez Xmegę. Komputer PC to jedynie klient, wysyła ramkę danych z rozkazami i otrzymuje dane z kontrolera.
  11. Przestrzeń robocza była obliczona metodą numeryczną w Matlabie. Żeby tego dokonać musimy znać model matematyczny naszego manipulatora, a w szczególności proste i odwrotne zadnie kinematyki dla pozycji. Była to praca magisterska, praca inżynierska także jest opisana na łamach forum. Jest to robot mobilny/kroczący Trihex
  12. Będziesz miał problemy z tymi napędami, jednak przekładnie modelarskie mają straszne luzy. Sam się o tym przekonałem i musiałem szukać zamienników. Trzeba pamiętać o tym, że nawet malutki luz na przekładni równa się dużemu ruchowi całego ramienia przymocowanego do wału. Ale jeżeli ci to nie przeszkadza to zapowiada się bardzo fajny projekt, powodzenia i chyba wszyscy czekamy na zdjęcia fizycznej konstrukcji
  13. Robot nie ma konkretnego zastosowania, jest to model robota przemysłowego, w planach miałem rozwijać projekt. Ten opisany na forum to prototyp na którym testowałem część programistyczno-algorytmiczną. Tak, to są silniki pololu, zmieniłem w nich tylko przekładnię. Jeżeli chodzi o udźwig to robot jest w stanie przenosić do 500g. Dokładność nie jest za dobra, ale powtarzalność sięga milimetra. Tak jak pisałem powyżej dokładności dużo brakuje do doskonałości. Jest to wina zastosowanych napędów, luzów na przekładni, a także samej konstrukcji, gdyż dużo elementów ze względów kosztowych wykonałem ręcznie sam, a jak wiadomo na biurku nie można spodziewać się cudów. Należałoby tutaj zastosować innego typu napędy np krokowe lub serwa na prąd przemienny. Lecz jak szukałem w internecie takich napędów zabijała mnie cena, która sięgała tysięcy złotych za jeden napęd (silnik + przekładnia). Niestety sam musiałem finansować cały projekt. Starałem się niwelować wszelkie niedoróbki fizyczne częścią programową, lecz nie wszystko się da poprawić. Nie bez powodu w robotach przemysłowych jednymi z najdroższych części są przekładnie, bo to od nich bardzo dużo zależy.
  14. Witam, jako że od obrony trochę minęło chciałem się z wami podzielić owocem mojej ponad rocznej pracy. Po projekcie Trihex chciałem zmienić trochę podejście i zrobić coś innego ale dalej będącego w polu moich zainteresowań. Przeglądając katalogi robotów przemysłowych natknąłem się na konstrukcję typu Delta i to też postanowiłem zrobić. Celem pracy było zaprojektowanie oraz stworzenie robota o równoległej strukturze kinematycznej typu Delta wraz z system sterowania. W ramach pracy wykonałem: - Projekt robota w programie Catia V5 - Projekt sterownika silnika prądy stałego (DC) opartego na algorytmie PID, - Projekt sterownika głównego robota opartego na mikrokontrolerze Atmel AVR Xmega256A3Bu, - Moduł optoizolowanego układu I/O, - Projekt kontrolera robota - Program na środowisko Windows umożliwiający w łatwy sposób wyznaczać parametry Kp, Ki oraz Kd algorytmu PID, Obliczenia: - Zadanie proste kinematyki, oraz zadanie odwrotne kinematyki dla pozycji, prędkości oraz przyspieszeń, - Wyznaczenie przestrzeni roboczej robota, Algorytmy: - Generator trajektorii liniowej z parabolicznymi przejściami pomiędzy punktami, - Algorytm sprawdzający czy robot znajduje się w przestrzeni roboczej, - Obsługa komendy "Hold" zatrzymującej robota w dowolnym momencie pracy, - Obsługa emergency stop wraz z bezpiecznym powrotem do pracy manipulatora, - Sterowanie wejściami/wyjściami, - Realizacja zadanej trajektorii w trybie automatycznym, - Ruch robota w trybie ręcznym, - Wgrywanie nowych punktów dojazdowych do pamięci µC, - Program komputerowy sterujący robotem, a także pozwalający programować robota prostym językiem blokowym. Napędy: W robocie zastosowałem szczotkowe silniki prądu stałego z zamontowaną przekładnią planetarną o przełożeniu 100:1 oraz enkoder o rozdzielczości 64 impulsów na obrót wału silnika. Są to zwykłe ogólnodostępne silniki firmy Pololu (wybrałem je ze względu na cenę - były stosunkowo tanie). Jedyna zmiana to zmiana standardowej przekładni zębatej na przekładnię planetarną zapewniającą znacznie mniejsze luzy. Czwarta oś także oparta jest o silnik prądu stałego, jednak przekładnia zastosowana już jest mniejsza, a także sam enkoder mniej dokładny. Konstrukcja mechaniczna ramienia: Robot posiada 4 DOF, czyli może się poruszać w przestrzeni XYZ oraz posiada jeden obrót zapewniony przez napęd na kiści. Ramiona robota zostały wykonane z laserowo ciętego pleksiglasu oraz rurek z włókna węglowego. Przeguby kulowe zostały zmodyfikowane w taki sposób aby możliwe ich było rozczepianie. Pozostałe elementy zostały wykonane ze stali oraz aluminium. Długości ramion dobrałem tak aby zoptymalizować przestrzeń roboczą manipulatora. Wyznaczyłem przestrzeń roboczą jaką posiadał będzie mój robot. Kalkulacje zostały przeprowadzone metodą numeryczną. Wyniki widać poniżej - ładna trójtarcza charakterystyczna dla tego typu konstrukcji. Elektronika: W celu komunikacji z użytkownikiem oraz w celach sterowania zrobiłem panel przedni znajdujący się na kontrolerze. Zawiera on: - Emergency Stop - Włącznik robota, - Diody led pokazujące obecny stan pracy - Złacze USB - Ekran informujący o pracy kontrolera, - Przycisk reset, - Przełącznik kluczykowy „HOLD” Konstrukcja kontrolera oparta została o obudowę komputerową Fractal Design Core 1000. Źródłem zasilania dla robota są dwa przemysłowe zasilacze impulsowe 12V oraz 5V. O mocach odpowiednio 180W oraz 15W. Kontroler posiada dwa główne układy sterujące pracą robota: - Sterowniki silników oparte zostały na mikrokontrolerze AtMega88-AU pracujący z częstotliwością 20 Mhz. - Sterowniki główny oparty został na mikrokontrolerze XMega256A3BU pracujący z częstotliwością 40 Mhz. Sterowniki silników komunikują się z układem głównym poprzez protokół RS232. Komunikacja jest obustronna, a kolejne ramki danych wysyłane są co 5ms. Jest to wystarczająca prędkość do tej konkretnie konstrukcji. Dodatkowo każdy z kontrolerów silników na bieżąco sprawdza prąd jaki pobiera silnik, którym steruje, następnie wysyła to do kontrolera głównego. Ze względu na brak czasu nie zdążyłem napisać algorytmu wykrywania kolizji ramienia z otoczeniem . Całość programów została napisana w języku C. Robot jest w stanie reagować na moduł wejść/wyjść. Zaprogramowałem możliwość sterowania dwa wejściami oraz wejściami cyfrowymi. Można dzięki nim podłączyć np. elektrozawór do chwytaka podciśnieniowego. Program komputerowy: Do sterowania robotem napisany został program komputerowy na środowisko Windows w języku programistycznym C#. Program pozwala na automatyczne znajdowanie podłączonego kontrolera do komputera. Dodatkową funkcjonalnością jest wykrywanie wyłączenia kontrolera lub odłączenie kabla USB. Program umożliwia: - Sterowanie robotem w trybie ręcznym – ruch realizowany jest w przestrzeni kartezjańskiej lub przegubowej z określoną prędkością liniową lub procentem maksymalnej prędkości w trybie uczenia, - Tworzenie prostych programów do pracy automatycznej, możliwość wyboru punktów dojazdowych, prędkości oraz dokładności dojazdu, sterowania wyjściami. - Wgrywanie napisanego programu (prosty język blokowy), - Włączenie trybu pracy automatycznej, - Zatrzymanie robota w dowolnym momencie pracy, - Resetowanie błędu opuszczenia przez robota przestrzeni roboczej. Algorytmy: System sterowania oparłem o model kinematyczny manipulatora. Z tego względu konieczne było wyznaczenie równań prostego jak i odwrotnego zadania kinematyki, a także ich pochodnych (Matlab FTW ) Aby zapewnić płynność pracy robota stworzyłem także generator trajektorii, który umożliwia wybór dokładności przejścia pomiędzy punktami. Na procentowo określoną odległość przed nauczonym punktem robot zaczyna "skracać" sobie trasę przez to niwelować zbędne siły bezwładności i redukować potrzebne momenty na silnikach. Końcowym elementem który chciałem opisać jest algorytm łagodnego startu. Aby robot nie wykonywał nagłego oraz nieprzewidywalnego ruchu po załączeniu trybu automatycznego wprowadzono algorytm łagodnego startu. Robot przed rozpoczęciem pracy odczytuje swoją aktualną pozycję, a następnie generuje liniową trajektorię do pierwszego punktu wgranego programu. Prędkość oraz dokładność dojazdu do punktu startowego jest taka sama jak w pierwszym kroku zaprogramowanego programu. Po prawej widać działanie opisanego algorytmu. Film pokazujący pracę robota oraz sterowanie wyjściami w czasie pracy: W ramach pracy wykonałem także bardzo dużo innej roboty ale to co opisałem powyżej myślę, że zgrubnie opisuje tę konstrukcję. Oczywiści jakby się jakieś pytania nasuwały chętnie odpowiem. Pozdrawiam, Eukaryota
  15. Witam, proponuję zrobić komunikację po rs485. Ze względu na to, że atmegi natywnie nie obsługują tego standardu należałoby dodatkowo kupić lub zrobić przejściówkę z rs232 na rs485. Pozdrawiam P.S. Za bardzo nie wiem jaki to związek z tematyką forum.
×
×
  • Utwórz nowe...