Calliope

Calliope

Twórcy: Bartosz Wawrzacz, Tomasz Jagielski, Adrian Szymański
Prowadzący: mgr inż. Mateusz Cholewiński

calliope_01Specyfika robotów równoległych

Roboty równoległe znajdują szerokie zastosowanie w przemyśle. Najczęściej pracują przy taśmach produkcyjnych, gdzie dzięki swej dynamice doskonale wykonują operacje typu pick & place. Jednak dzięki swym właściwościom stosowane są nawet jako część manipulacyjna obrabiarek numerycznych.

Robot o zamkniętym łańcuchu kinematycznym, w przeciwieństwie do robota o kinematyce szeregowej, cechuje się dużą sztywnością i powtarzalnością. Dzieje się tak, ponieważ jego człony zazwyczaj są krótkie oraz błędy nie sumują się jak w przypadku manipulatorów o strukturze otwartej, lecz uśredniają.

Kinematyka odwrotna
By w przewidywalny sposób wysterować robota, należy rozwiązać odwrotne zadanie kinematyki. Czyli znaleźć przekształcenie opisujące przejście ze współrzędnych zewnętrznych (x, y, z) do wewnętrznych (m1, m2, m3). Jednak, inaczej niż dla robotów o strukturze szeregowej, wyprowadzenie równań kinematyki odwrotnej dla robotów równoległych jest trywialne. Rysunek 3. przedstawia szkic mechaniki robota wraz z naniesionymi parametrami. Robot jest symetryczny względem środka podstawy. Powstał on na planie trójkąta równobocznego, w którego wierzchołkach umieszczono identyczne kolumny. Dlatego do poprawnego opisania modelu układu wystarczająca jest wiedza na temat parametrów tylko jednej z kolumn.

calliope_13Wyznaczenie kinematyki odwrotnej jest intuicyjnie proste. Zakładając, że efektor znajduje się w globalnym układzie współrzędnych w punkcie (x, y, z) należy rozwiązać równania trzech sfer, których środek umieszczony jest w połowie osi obrotu ramion w efektorze. Składowa z punktu przecięcia sfery si z prostą równoległą do prowadnicy, przechodzącą przez punkt w połowie osi obrotu ramion Pi, jest szukanym sterowaniem mi.

Głównym materiałem konstrukcyjnym części mechanicznej jest aluminium. Kryterium wyboru jest oczywiste – jego niska gęstość (ok. trzykrotnie mniejsza od stali), zadowalająca wytrzymałość oraz łatwość obróbki.

Szkielet robota opiera się na dwóch płytach aluminiowych o grubości 15mm, do których przymocowane zostały profile konstrukcyjne, tworząc obrysem graniastosłup prawidłowy. Tego typu rozwiązanie nie jest jednak samoblokujące, więc w poprawy sztywności zastosowano odciągi wykonane z linki stalowej o średnicy 2 mm.

Płyty bazowe

Kształt płyt utworzonych na planie trójkąta równobocznego wymuszony został przez ogólne cechy robota równoległego, m.in. sferyczną charakterystykę pracy. Płyty wykonano z aluminium PA11 o grubości 15mm. Ich kształt wycięty został przy użyciu plotera laserowego. Chęć skrócenia procesu obróbki, tak by wyeliminować obróbkę skrawaniem, wymusiła ograniczenie się jedynie do kształtów 2D. Dokładne wymiary oraz obrysy płyt zostały pokazane na rysunku 5.

Profile konstrukcyjne

Jako kolumny utrzymujące konstrukcję robota zastosowano profile aluminiowe (tzw. ”Profile X” lub ”Profile Bosch”). Tego typu elementy są bardzo często stosowane przy budowie różnego typu stanowisk, linii produkcyjnych czy prostych obrabiarek.

Kolumny zostały jednocześnie wykorzystane jako powierzchnie bazowe, do których przymocowano prowadnice.

Aby zapobiec niepożądanej zmianie orientacji profili, zastosowano zastrzały między profilami a płytami bazowymi.

Przeguby kulowe

Aby możliwe było wychylanie ramienia bez zmiany jego długości, konieczne było zastosowanie przegubu RRR. Wybór tego elementu był jednym z kluczowych, gdyż to głównie od niego zależy sztywność całego zespołu. Dodatkowo wymaganie odnośnie kąta wychylenia min 20º zdecydowanie utrudniło poszukiwania. Wybrano łożysko KBRM-06 firmy igus R .

Prowadnice linowe

Jednym ze sposobów przeniesienia napędu z silników na efektor w robotach równoległych są ramiona R-3R-3R  (Rys8). Jest to rozwiązanie często spotykane w urządzeniach przemysłowych ze względu na uzyskiwaną dynamikę duchu. Niestety, tego typu konstrukcja wymusza stosowanie bezluzowych przekładni redukcyjnych, co znacznie podnosi koszty. Ponadto wymagany jest precyzyjny system łożyskowania, pozwalający na przenoszenie obciążeń zarówno promieniowych, jak i osiowych. Dlatego też w projekcie zastosowano znacznie prostszy system prowadnic liniowych. W efekcie każdy z łańcuchów kinematycznych to T-3R-3R. Eliminujemy tym samym pierwszy, najbardziej kłopotliwy człon rotacyjny. Należy jednak pamiętać, że w przeciwieństwie do manipulatorów szeregowych, w robotach równoległych jedynie pierwsze ogniwo jest aktywne (posiada napęd), a dwa pozostałe mają charakter bierny. Zastosowane prowadnice to nowoczesny system prowadnic ciernych DryLin R T9 TW-01-20. Niestety, ze względu na wysokie wymagania odnośnie luzu przy obciążeniach skręcających w osi X1, okazały się one niewłaściwym wyborem. Co prawda, wózki umożliwiają kontrolę luzu w każdej z trzech osi, lecz dostosowanie go do akceptowalnej wartości prowadzi do gwałtownego wzrostu oporów ruchu, co ogranicza dynamikę.

Ramiona  

Jednym z celów, jakie zamierzano osiągnąć, było zapewnienie manipulatorowi jak największej dynamiki. W związku z tym do budowy ramion zamierzano wykorzystać rurki węglowe 10×6 charakteryzujące się najlepszym stosunkiem masy do wytrzymałości. Jednak problemy z ich zdobyciem zmusiły do zastosowania rurek aluminiowych 8×6 mm. Ponieważ po obu jego stronach wykorzystywane są przeguby kulowe, niwelowane są wszelkie momenty gnące

Przenoszone są jedynie siły zgniatające i rozciągające, na które nawet tak cienkościenna rurka jest wystarczająco odporna. Przy pomocy kleju dwuskładnikowego, w rurkę wklejone zostały gwinty M6, na które nakręcane są łożyska kulowe.

Odciągi  

Rozwiązanie stosowane w budownictwie w przypadku wysokich masztów, czy kominów. Aby zapewnić stabilność budowli, na pewnej jej wysokości montowane są elastyczne cięgna, które drugim końcem zaczepiane są do stopy znajdującej się w pewnej odległości od obiektu, tak, że kąt jaki cięgno tworzy z podłożem należy do przedziału (30º, 60º).   Ponieważ robot charakteryzuje się dużą dynamiką, gwałtowne ruchy efektora wprawiają całą konstrukcję w drgania. Jest to spowodowane tym, że połączenia profili z płytą odbywają się na zbyt małej powierzchni, skutkiem czego w małym zakresie zachowują się jak przeguby obrotowe. Dlatego też istnieje potrzeba zastosowania wspomnianych odciągów. Do tego celu wykorzystano linkę stalową o średnicy 2 mm oraz śruby rzymskie  M510. Za ich pomocą połączono przekątne ścian prostopadłościanu tworzącego bryłę robota, co w znaczący sposób poprawiło właściwości konstrukcji.

Efektor

Efektor (podobnie jak płyty) wykonany został z blachy aluminiowej 15 mm. Został wyposażony w zestaw otworów M6 rozstawionych na planie sześciokąta i kwadratu, umożliwiających montaż osprzętu.

Do napędu urządzenia wybrano silniki krokowe. Moment obrotowy przenoszony jest za pomocą kół zębatych na pasek, który zaczepiony jest do wózka.

Silniki krokowe

Do napędu zastosowano dwufazowe hybrydowe silniki krokowe. Dysponują one momentem trzymającym 4 Nm przy prądzie 4 A i standardowym 1,8º/krok. Sterowanie odbywa się bipolarnie poprzez driver SK5045. Silniki przymocowane są do kątowników, które dzięki otworom fasolowym umożliwiają jego przesuwanie w celu ustawienia odpowiedniego naciągu paska.

Paski zębate

Zastosowano otwarte paski zębate HTD 3M 19 mm. Są one wykonane z tworzywa sztucznego z kordem stalowym. Niestety, zębatki przystosowane są do pasa o szerokości max 10 mm. Zakup pasów 19 mm podyktowany został niedostępnością odpowiedniego towaru. Konieczne zatem było przecięcie pasów wzdłuż zbrojeń. Długość jednego pasa to 210 mm. Niestety, wady tego rozwiązania okazały się znaczące, gdyż z powodu dużych oporów generowanych przez system posuwu liniowego, zauważalny jest efekt wydłużania się paska. Przy zmianie kierunku błąd osiąga wartość nawet 1,5 mm. Rozwiązaniem jest wymiana prowadnic na toczne, co znacznie ograniczy jałowe opory pracy.   Pasy przymocowane zostały za pomocą śrub M6 do bloków na wózkach. Zarobienie pętli umożliwiającej zaczepienie do śruby odbyło się poprzez zawinięcie końcówki paska wewnętrzną stroną (zęby zostały wpasowane w siebie) i owinięte drutem. Ten sposób montażu jest niezwykle skuteczny i w razie potrzeby daje możliwości zmiany długości paska. Po ustaleniu wstępnej jego długości, robocze naprężenie uzyskiwane jest poprzez regulację na mocowaniu silnika.

Zębatki

Użyte zębatki to 3M 20z 10 mm (moduł paska 3 mm, 20 zębów, szerokość 10 mm). Jej promień to ok. 10 mm, co przy momencie trzymającym silnika 4 Nm daje teoretyczną siłę działającą na wózek 400 N.

Sterowanie silników odbywa się poprzez drivery SK5045. Umożliwiają one pracę w trybie mikrokrokowym, co znacznie poprawia płynność i precyzję sterowania. Sygnały krok/kierunek wystawiane są z kontrolera opartego o płytkę DISCOVERY STM32F3. Komunikacja z warstwą nadrzędną odbywa się poprzez łącze szeregowe RS232.

Drivery silników

Nad odpowiednim wysterowywaniem uzwojeń silnika czuwa driver SK5045. Jest to uniwersalny fabryczny sterownik do zastosowań przemysłowych. Zdecydowano się na zakup gotowego urządzenia, a nie budowę własnego, z powodu doświadczeń z tym związanych. Mało prawdopodobne jest zbudowanie urządzenia działającego lepiej niż produkowane seryjnie, które będzie równie niezawodne i będzie dysponować takimi samymi parametrami. Oczywiście jest to możliwe, lecz nie w sytuacjach, gdy oczekuje się działającego urządzenia bez potrzeby zagłębiania się w szczegóły techniczne.

Napięcie zasilania 20-50V
Prąd na fazę 1.5 – 4.5A
Max częstotliwość 400kHz
Mikrokrok 2 – 256
Inne regulacja prądu pracy
ograniczanie prądu spoczynkowego
zabezpieczenie prądowe

Zasilanie

Urządzenie zasilane jest ze źródła niestabilizowanego. Zastosowano sieciowy transformator toroidalny 33V/12A. Napięcie zostało wyprostowane i odfiltrowane przy pomocy kondensatorów elektrolitycznych o łącznej pojemności 37600µF . Stosowanie zasilaczy sieciowych jest wręcz zalecane przez producentów sterowników silników krokowych. Jest to związane z indukcyjnym charakterem obciążenia i sposobem działania drivera, który w swoim stopniu wyjściowym posiada impulsowe źródło prądowe. Jego zastosowanie wynika z faktu, iż silniki krokowe posiadają rezystancję rzędu 1Ω, więc bezpośrednie zasilenie ich z napięcia ok 50V spowodowałoby przepływ prądu niedopuszczalnej wartości rzędu kilkudziesięciu amperów. Oczywiście wydajność prądowa zasilacza nie pozwoliłaby na to, nie mniej doprowadziłoby to do szybkiego przepalenia uzwojeń. Stąd, wymagana jest kontrola prądu. Niestety, w stanach nieustalonych układu pobierany jest prąd znacznie przekraczający nominalny, co skutkuje aktywacją systemów zabezpieczeń zasilaczy impulsowych. Dodatkowym aspektem przemawiającym za stosowaniem zasilaczy transformatorowych jest możliwość krótkotrwałego ich przeciążenia, gdy wzrasta zapotrzebowanie na energię, np. podczas startu silnika.

Kontroler

Do niskopoziomowego sterowania silnikami oraz komunikacji z warstwą nadrzędną wybrano uniwersalną płytkę prototypową DISVOVERY STM32F3. Posiada ona nowoczesny procesor z rdzeniem Cortex M4 taktowany zegarem 72MHz. Zdecydowano się na użycie gotowego zestawu, ponieważ jest on w pełni wystarczający do realizacji zadań zwianych z komunikacją i sterowaniem. Dodatkowo posiada wbudowany programator i debuger, co ułatwia tworzenie oprogramowania. Program zrealizowany został w środowisku TrueStudio. Posiada ono kreator projektu, co znacznie przyspiesza przygotowanie i rozpoczęcie pracy.

Komunikacja

Komunikacja ze stacją nadrzędną odbywa się za pomocą interfejsu RS232. Jak większość obecnych komputerów przenośnych, wykorzystany również nie posiadał wbudowanego portu COM. Zastosowano konwerter USB ↔ UART oparty na układzie FT232. Komunikacja odbywa się z parametrami: 115200 8n1. Z komputera odbierane są kolejne pozycje silników, których osiągnięcie jest zadaniem kontrolera. W celu synchronizacji przepływu zastosowano bufor na 1000 punktów. Komputer nadrzędny wysyłając znak 0B0 odpytuje kontroler o ilość punktów pozostałych w buforze. Jeśli jest ich mniej, niż pewna, określona wartość, dosyłane są kolejne, aż do zapełnienia bufora.

Aby możliwe było zadawanie pozycji, należało ustalić sposób formatowania danych na następujący:

”, M1, M2, M3, S, ”

gdzie S jest sumą kontrolną równą M1 + M2 + M3. Suma ta jest sprawdzana w momencie odebrania pozycji. Jeśli jest błędna, punkt jest ignorowany.

Sterowanie

Silniki krokowe sterowane są poprzez podanie sygnału krok/kierunek. Stanem aktywnym jest stan wysoki – zmiana kroku następuje na zbocze narastające. Aby płynnie sterować położeniem wału, należy generować sygnał prostokątny o określonej częstotliwości. Ponieważ sterowanie odbywa się w otwartej pętli, należy pamiętać o zapewnieniu trapezowego kształtu profilu prędkości. Aby zapewnić liniową zależność częstotliwości sygnału od wartości zadanej, wykorzystano ideę nadążania aktualnego położenia za wirtualnym. Zrealizowane jest to w sposób następujący: Uruchomione jest cykliczne przerwanie o częstotliwości 50kHz. Zakładając, że maksymalna wartość prędkości to vmax . W każdym przejściu prędkość zadana jest całkowana. Jeśli przekroczyła ona wartość vmax, generowany jest impuls, a od przebytej ”drogi” odejmowane jest vmax. Zastosowany sposób nie prowadzi do generowania sygnału o stałej częstotliwości, jednak po vmax wywołaniach uśrednia się do zadanej wartości.

Sterowanie pozycją silników we współrzędnych wewnętrznych odbywa się w sposób liniowy. Po otrzymaniu punktu obliczane są przyrosty drogi. Następnie oś, której droga do przebycia jest najdłuższa staje się osią odniesienia i jest sterowana w sposób taki, by zakończyć przejazd w zadanym położeniu, z założoną prędkością. Pozostałe dwie osie podążają za osią referencyjną będąc sterowane regulatorem P, tak by utrzymać stosunek przyrostów dróg. Na tym etapie nie jest uwzględniana kinematyka robota. Ruch odbywa się we współrzędnych wewnętrznych.

Bazowanie

W celu przyspieszenia procesu przygotowania urządzenia do pracy, zainstalowano trzy włączniki krańcowe, względem których dokonywane jest ustalanie pozycji zerowej.

Oprogramowanie zostało zrealizowane poza obszarem tego kursu przez Adriana Szymańskiego. Zostało ono stworzone w środowisku MATLAB i stanowi pełną implementację funkcjonalności urządzenia. W chwili obecnej jest to rysowanie. Wczytywany jest obraz rastrowy, który następnie jest przetwarzany poprzez kolejno: rozmycie, konturowanie i wektoryzację. Powstały zbiór wektorów poddawany jest optymalizacji (metoda najbliższego sąsiada) oraz z uwzględnieniem kinematyki odwrotnej, z zadaną dokładnością, generowane są położenia silników, które następnie transmitowane są do kontrolera.

Zbudowane urządzenie posiada szereg wad. W pierwszej kolejności błędny okazał się wybór prowadnic ślizgowych. Niemożliwość usunięcia luzów oraz duże oporu ruchu są źródłem większości błędów. Zbyt długie pasy napędowe również nie są czynnikiem sprzyjającym. Ulepszeniu musi też ulec kontroler. Konieczne jest wykonanie dedykowanego sterownika i zamknięcia go w wygodnej obudowie.

Wykonanie urządzenia pozwoliło konstruktorom na praktyczne wykorzystanie wiedzy zdobytej podczas studiów, jak również skłoniło do jej poszerzenia.


Pliki:

Calliope – robot o kinematyce równoległej – sprawozdanie (pdf)