15
,,Czworonożny robot kroczący’’ Sprawozdanie z wykonania pracy własnej–grantu rektorskiego za rok 2006 Michał Walęcki, Bartosz Markocki, Marek Majchrowski, Piotr Trojanek, Koło Naukowego „BIONIC” przy Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej Warszawa, styczeń 2007 1

,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

  • Upload
    phamdat

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

,,Czworonożny robot kroczący’’

Sprawozdanie z wykonania pracy własnej–grantu rektorskiego za rok 2006

Michał Walęcki, Bartosz Markocki, Marek Majchrowski, Piotr Trojanek,

Koło Naukowego „BIONIC” przy Wydziale Elektroniki i Technik Informacyjnych

Politechniki Warszawskiej

Warszawa, styczeń 2007

1

Page 2: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Spis treści:

1. Wstęp 3

2. Opis konstrukcji mechanicznej 4

3. Opis układu elektronicznego i możliwości rozbudowy 6

4. Możliwości implementacyjne systemu sterowania oraz dostępne moduły IP Core 8

5. Przykładowa implementacja systemu sterowania 9

6. Podsumowanie i perspektywy rozwoju 12

7. Załączniki 12

2

Page 3: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

1. Wstęp W robotyce mobilnej dominuje napęd kołowy. Dzieje się tak dlatego, iż nie nastręcza on

większych trudności w budowie oraz sprawdza się w wielu zastosowaniach. Należy on również do rozwiązań najtańszych oraz o najprostszym opisie matematycznym, co zdecydowanie ułatwia pracę konstruktora. Jednak obok napędu kołowego w robotyce mobilnej spotyka się także inne rozwiązania zapewniające mobilność, np. nogi. Roboty kroczące, to tematyka, która wciąż jeszcze dynamicznie rozwija się, bowiem człowiek pragnie wysyłać roboty w coraz mniej przystępne środowisko, które niejednokrotnie jest poza zasięgiem maszyn kołowych. Owocem dotychczasowych badań w tej dziedzinie jest np. krocząca ciężarówka z 1968 roku projektu Ralpha Moshera z General Electric, która była w stanie dostarczać ciężkie ładunki w terenie górskim [1]. Podobnym zagadnieniem zajmuje się instytut Boston Dynamics, który pracuje nad robotem BigDog [2] - robot ten ma służyć jako pomoc oddziałom wojskowym na terenach górskich w zastępstwie zwierząt jucznych. Podane przykłady obrazują, że tematyka robotów kroczących jest zagadnieniem rozwojowym. Do zalet maszyn kroczących można zaliczyć:

• adaptację i manewrowalność w zróżnicowanym (nierównym) terenie • możliwość pokonywania przeszkód (dziury, nierówności) • potencjalna możliwość manipulowania obiektami za pomocą kończyn (np. owady)

Wśród wad maszyn kroczących najczęściej wymienia się:

• skomplikowana budowa mechaniczna (duża liczba stopni swobody) • duże zapotrzebowanie na energię (wiele napędów) • złożony układ sterowania W ogóle istniejących maszyn kroczących dostrzec można rozmaitość form i rozwiązań

technicznych. Od konstrukcji jednonogich (monopodów), poprzez dwunożne (bipedy), czworonożne do sześcionożnych (hexapodów) i więcej nożnych, od stabilnie i twardo stąpających po ziemi (ze statyczną stabilnością) aż do bez przerwy podskakujących (z dynamiczną stabilnością) [4]. Różnorakie są też konfiguracje nóg (rysunek 1) i rodzaje chodów. Istnieje wiele rodzajów chodu: bieg, skok, chód spacerowy, chód szybki, itp. Klasyfikacja i opisy typów chodu wynikają z obserwacji sposobów chodu zwierząt. Podstawowym wyróżnikiem rodzaju chodu jest kolejność przestawiania nóg. Zasadniczym problemem w przypadku wielonożnych maszyn kroczących jest koordynacja ruchu nóg.

Rysunek 1. Konfiguracje nóg charakterystyczne dla różnych grup zwierząt.

3

Page 4: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Konstruując takie maszyny człowiek czerpie natchnienie głównie z obserwacji przyrody. Daleko nam jednak do poziomu złożoności i osiągów, które reprezentują nawet bardzo proste owady. Brak nam odpowiednio wydajnych efektorów i szybkich, oszczędnych systemów sterowania. Jednak stan wiedzy na ten temat stale się powiększa i możliwe stają się coraz to nowe badania.

Z powyższych rozważań narodził się projekt czworonożnego robota kroczącego mającego uzupełnić bazę robotów mobilnych dostępnych dla potrzeb Koła Naukowego Bionic (w chwili powstania pomysłu baza ta nie zawierała robotów kroczących). Robot ten ma być elastyczną platformą badawczą umożliwiającą opracowanie zagadnień dotyczących sterowania, poznanie zalet i wad tego rozwiązania napędu oraz problemów takich, jak utrzymywanie statyczne i dynamiczne równowagi. Stanowić też będzie dobry poligon doświadczalny dla sieci neuronowych oraz systemów samouczących.

2. Opis konstrukcji mechanicznej Konstrukcja została wykonana w całości ręcznie przez uczestników projektu (Rys. 2-Rys 4.).

Zostały użyte lekkie i wytrzymałe materiały - stopy aluminium i tworzywo PVC. Wszystkie elementy ruchome zostały osadzone na mocowaniach łożyskowanych (łożyska toczne). Nogi zamocowane są do płyty nośnej robota (wzdłuż dłuższych jej krawędzi), która dla zapewnienia sztywności konstrukcji wykonana została z dwóch płyt utwardzanego tworzywa PVC. Jako napęd konstrukcji wykorzystano modelarskie serwomechanizmy TowerPro MG995. Wybór ten umotywowany jest parametrami tych serwomechanizmów.

Parametry TowerPro MG995: • Rozmiar: 40.6mm x 37.8mm x 19.8mm • Waga: 72g • Zasilanie 4.8V – 7.2V • Moment na wale: 13.4kgcm (4.8V) / 15kgcm (6V) • Prędkość: 0.17s/60˚ (4.8V) / 0.13s/60˚ (6V) • Metalowa przekładnia • Dwurzędowe łożysko toczne

Bardzo duży moment siły na wale spowodował, że zbędne stały się jakiekolwiek dodatkowe przekładnie i cięgna – serwa bezpośrednio poruszają elementami kończyn. Duża prędkość zapewnia odpowiednio szybką reakcję, niezbędną dla realizacji chodów stabilnych dynamicznie i quasi-dynamicznie. Szeroki zakres napięć zasilania, nietypowy dla elementów znanych marek, pozwala na uzyskanie jeszcze lepszych osiągów oraz na niemal bezpośrednie zasilanie z dwóch ogniw litowo-polimerowych i litowo-jonowych (7.4V). Metalowa przekładnia i dwurzędowe łożysko pozwalają znosić tym efektorom duże przeciążenia.

4

Page 5: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Jak już wspomniano, każdy przegub robota zawieszony jest z jednej strony na wale serwomechanizmu. Z drugiej zaś opiera się na łożysku kulkowym, co widać na rys. 2.

Rysunek 2. Robot w trakcie chodu.

Rysunek 3. Konstrukcja maszyny kroczącej – widok z boku. Każda z nóg posiada 3 stopnie swobody, z których dwa przypadają na „staw biodrowy” a jeden na „staw kolanowy”. Ich rozmieszczenie zapewnia możliwość realizacji chodu zarówno wzdłuż dłuższej osi robota (chód typu gadziego), jak i krótszej osi (chód typu ssaczego) [3] [4]. Elementy konstrukcyjne obrazuje rysunek w załączniku.

5

Page 6: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Rysunek 4. Konstrukcja maszyny kroczącej – Widok od frontu.

3. Opis układu elektronicznego i możliwości rozbudowy

Strukturę części elektronicznej obrazuje schemat blokowy na rysunku 5. Sercem robota są programowalny układ cyfrowy FPGA EP1C12 firmy Altera oraz mikrokontroler AVR ATmega32L firmy Atmel. Każdy z tych układów może być nadrzędnym w stosunku do drugiego wedle uznania użytkownika. Jednakże mają one też przypisane na stałe ściśle określone role – mikrokontroler AVR, ze względu na dostępny w nim konwerter analogowo-cyfrowy, zbiera informacje z czujników o wyjściach analogowych, układ FPGA natomiast, ze względu na możliwość równoległej pracy wielu modułów, zajmuje się generacją sygnałów sterujących serwami modelarskimi oraz odbiorem danych z czujników o wyjściach cyfrowych.

6

Page 7: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Rysunek 5. Schemat blokowy części elektronicznej robota.

Na wyposażeniu robota znajduje się przede wszystkim 5 dalmierzy pracujących w podczerwieni firmy SHARP zapewniających dość dokładny (z błędem do kilku milimetrów) pomiar odległości w przedziale 40-400mm.

Na chwilę obecną układ FPGA znajduje się poza częścią mobilną robota na płytce ewaluacyjnej LiveDesign firmy Altium (Rys. 6), którą z częścią jezdną łączy 20 żyłowy przewód, co daje 18 użytecznych linii sygnałowych oraz 1 linię masy i 1 linię dodatkowego zasilania 3.3V lub 5V z płytki ewaluacyjnej.

Rysunek 6. Płytka ewaluacyjna LiveDesign firmy Altium.

7

Page 8: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

W części jezdnej znajduje się przede wszystkim mikrokontroler główny ATmega32L. Dołączonych do niego jest 5 dalmierzy SHARP. Oprócz tego ważną rolę odgrywają obwody zasilania – w chwili obecnej ta część układu nie uzyskała jeszcze finalnej postaci. Ze względu na duże chwilowe prądy pobierane przez serwomechanizmy modelarskie w układzie mogą wystąpić zakłócenia, dlatego obwody zasilania przewodowego jak i akumulatorowego pozostają jeszcze w fazie testów. Pozostałe układy służą do konwersji poziomów logicznych pomiędzy standardem zasilania FPGA (3.3V) oraz serwami modelarskimi (4.8 – 7.2V). Szczegółowy schemat części jezdnej dołączono w załączniku.

4. Możliwości implementacyjne systemu sterowania oraz dostępne moduły IP Core

Użytkownik robota ma do dyspozycji złożony układ z rodziny FPGA (EP1C12), udostępniający około 12 tysięcy komórek logicznych, w którym może implementować rozmaite bloki funkcyjne (IP Core) zarówno własne (implementacje mikrokontrolerów, sieci neuronowych, automatów stanów), jak i te już zaprojektowane dla tego właśnie robota (jak np. sterownik do serwomechanizmów modelarskich). Do zaprojektowania bloków funkcjonalnych i układu cyfrowego robota użyto darmowego środowiska projektowego Quartus II firmy Altera. Mikroprocesor ATmega32L umożliwia realizację programowych algorytmów sterowania i obsługę (poprzez zawarty w nim konwerter analogowo-cyfrowy) analogowych czujników wielkości fizycznych, jak np. dalmierze SHARP. Programowanie układu może odbywać się w sposób wybrany przez użytkownika za pośrednictwem dowolnego narzędzia mającego możliwość obsługi programatora ISP (In System Programming) dla procesorów z rodziny AVR. Układ FPGA połączony jest z mikrokomputerem jednoukładowym ATmega32L za pośrednictwem 2 linii, co umożliwia implementacje protokołów transmisji między innymi RS-232 oraz I2C z możliwością wykorzystania sprzętowych bloków obsługi tych protokołów zawartych w ATmega32. Zapewnia to szybką komunikację między obydwoma układami.

Jak dotąd robot został wyposażony w szereg modułów i makrofuncji realizowalnych w układzie FPGA. Przede wszystkim wymienić należy moduł sterowania serwami modelarskimi ‘srv_ctrl_base_02’ zapewniający 10 bitową rozdzielczość. Moduł ten jest łatwo skalowalny, ponieważ posiada odpowiednie wyjścia sterujące i można do niego dołączać moduły rozszerzające ‘srv_ctrl_box_02’ dla każdego podłączanego dodatkowo serwa. Moduły rozszerzające zużywają znacznie mniej zasobów (12 komórek logicznych) układu programowalnego niż moduł główny sterownika (33 komórki), co zapewnia lepsze wykorzystanie układu. Dla normalizacji wartości podawanych na wejścia wyżej wymienionych modułów stworzono moduł ‘srv_mode_box_02’, który dodatkowo pozwala ograniczyć ruch dźwigni serwa w razie potrzeby. Moduł ‘srv_speed_ctrl’ pozwala sterować prędkością dźwigni serwa z rozdzielczością 8 bitów oraz sygnalizuje zakończenie ruchu. Przykładowe wykorzystanie opisanych bloków pokazuje rysunek 7.

8

Page 9: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Rysunek 7. Przykładowy schemat układu sterowania serwomechanizmami modelarskimi.

Do celów komunikacyjnych użyto parametryzowalnego bloku ‘suart’ opracowanego przez dr

inż. Mariusza Rawskiego [6] (rysunek 8). Moduł ten realizuje protokół komunikacji szeregowej standardu RS-232 z dowolną prędkością (od strony układu ograniczoną częstotliwością głównego zegara systemowego).

Rysunek 8. Parametryzowalny blok ‘suart’.

5. Przykładowa implementacja systemu sterowania

W celu przetestowania konstrukcji stworzono prosty system sterujący opierający się na kinematyce geometrycznej. Zdecydowano się na chód wolny ze statyczną stabilnością. Kolejność przenoszenia nóg obrazuje rysunek 9.

9

Page 10: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Rysunek 9. Kolejność przestawiania nóg. Zdecydowano się podzielić ruch nogi na dwie składowe: ruch końca stopy w płaszczyźnie wyznaczonej przez kierunek ruchu i oś pionową robota oraz ruch końca stopy wzdłuż osi poprzecznej robota. Składowa pierwsza obejmuje unoszenie, opuszczanie, protrakcję i retrakcję nogi, czyli zasadniczą część chodu (rysunek 10). Druga zaś zawiera ruch nogi na boki umożliwiający przechył robota, co umożliwia utrzymanie środka ciężkości maszyny wewnątrz

Rysunek 10. Prosty model nogi i tra

wielokąta podparcia (rysunek 11).

jektoria jej ruchu

10

Page 11: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Rysunek 11. Ilustracja przechyłu bocznego robota w celu utrzymania środka ciężkości wewnątrz wielokąta podparcia. Dzięki takiemu rozwiązaniu możliwe było zredukowanie opisu trajektorii ruchu nogi do przypadku dwuwymiarowego. Natomiast niewielki przechył boczny ustawiany jest w zależności od tego, która (lewa czy prawa) noga ma zostać w danej chwili podniesiona. Dzięki temu układ spełnia warunki stabilności statycznej.

Organizacja elementów powyższego algorytmu w części elektronicznej uwzględnia predyspozycje poszczególnych układów robota. Do obliczania właściwych pozycji dźwigni serwomechanizmów posłużył układ FPGA ze względu na możliwość równoległej pracy wielu rozbudowanych funkcji. Za pośrednictwem środowiska MATLAB wygenerowano tablice pozycji serw jednej nogi dla konkretnych punktów płaszczyzny zawierającej trajektorię ruchu, które umieszczono w układzie programowalnym FPGA w postaci tablic prawdy. Tablice wyszczególniają 256 punktów równo rozmieszczonych na tej płaszczyźnie (w odległościach co 15mm w poziomie i co 10mm w pionie), zatem mogą przyjmować minimalnie 8 bitowy argument. 8 bitowa liczba wystarczy zatem, aby zadać pozycję docelową danej nodze. Przechył boczny natomiast nie jest właściwością jednej tylko nogi, ale całego robota – zatem można wysyłać jedną wartość (dla spójności również 8 bitową) dla wszystkich nóg. Oznacza to, że układ FPGA potrzebuje jedynie 5 bajtów, by wygenerować pozycje kątowe wszystkich 12 serwomechanizmów.

Generacją sekwencji ruchu zajmuje się mikrokontroler ATmega32L. Wysyła on odpowiednie wartości (przechył boczny i ustawienia każdej nogi) do układu FPGA za pomocą magistrali szeregowej. Przechył boczny ustalany jest na podstawie tego, która noga ma zostać właśnie podniesiona (jeśli lewa, to robot przechyla się nieznacznie w prawo). Układ FPGA w przypadku zakończenia ustawiania nóg w zadanej pozycji wysyła, również za pomocą magistrali szeregowej, pojedynczy bajt o nieustalonej wartości. Należy jednak zaznaczyć, że sygnał świadczący o zakończeniu ruchu serwomechanizmu pochodzi z modułu regulacji prędkości serwa, a nie bezpośrednio z serwa (w serwomechanizmach modelarskich niestety brak jest jakiegokolwiek sygnału zwrotnego mogącego informować o takim zdarzeniu). Zakładając jednak, że ograniczenie prędkości kątowej wału nie wykracza poza fizyczne możliwości efektora, można uznać ten sygnał za miarodajny. Informacja o odebraniu czegokolwiek przez moduł UART w mikrokontrolerze powoduje przeliczenie i wysłanie kolejnych ustawień do układu programowalnego. Dzięki temu ruch odbywa się bez zatrzymania.

11

Page 12: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

6. Podsumowanie i perspektywy rozwoju Celem projektu było zaprojektowanie i zbudowanie czworonożnego robota kroczącego

mającego poszerzyć bazę robotów mobilnych dostępnych dla prac dydaktycznych i badawczych Koła Naukowego BIONIC. Dzięki środkom finansowym z grantu możliwe było stworzenie funkcjonalnej i elastycznej konstrukcji mechanicznej o odpowiednich parametrach oraz niezbędnych obwodów elektronicznych. Zostały również zakupione elementy, które posłużą do rozwinięcia możliwości robota, między innymi umieszczenia programowalnego układu logicznego FPGA w części jezdnej robota oraz wyposażenie go w szereg dodatkowych czujników, jak sensory kontaktu nóg z podłożem, czy akcelerometr, a także pojemne akumulatory.

Plan dalszych prac obejmuje:

• Zmiana układów elektronicznych w serwomechanizmach modelarskich w celu uzyskania informacji zwrotnej o położeniu,

• Zaprojektowanie finalnej wersji części elektronicznej robota, • Zaprojektowanie finalnej wersji obwodów zasilania przewodowego i

akumulatorowego, • Projekt i wykonanie obwodu drukowanego.

Wraz ze zmianą układów elektronicznych w serwomechanizmach otworzą się owe możliwości. Między innymi możliwe staną się pomiary pozycji dźwigni oraz obciążenia serwa, które zapewnią pożądane sprzężenie zwrotne.

7. Załączniki • Załącznik 1: Schemat układu elektronicznego części jezdnej • Załącznik 2: Szkic elementów mechanicznych nóg

12

Page 13: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Literatura: [1] Walking Truck, General Electric 1968, http://www.frc.ri.cmu.edu/~hpm/project.archive/Image.Archive/other.robots/Mosher.GE.walking.truck.jpg http://www.faculty.ucr.edu/~currie/roboadam.htm [2] BigDog, Boston Dynamics Institute, http://www.bdi.com/content/sec.php?section=BigDog [3] P. Ciesielski J. Sawoniewicz A. Szmigielski: Elementy robotyki mobilnej, Wydawnictwo PJWSTK, Warszawa 2004. [4] T. Zielińska: Maszyny Kroczące, PWN Warszawa 2003 [5] W. Szynkiewicz, Materiały do wykładu Wstęp do robotyki, Instytut Automatyki i Informatyki Stosowanej WEiTI PW. [6] M. Rawski, Materiały do wykładu Układy cyfrowe, Instytut Telekomunikacji WEiTI PW.

13

Page 14: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Załącznik 1:

Schemat układu elektronicznego części jezdnej

14

Page 15: ,,Czworonożny robot krocz cy’’ - Serwer studenckihome.elka.pw.edu.pl/~mmajchro/raporty/Grant_rektorski_BIONIC_2006.pdf · skomplikowana budowa mechaniczna (duża liczba stopni

Załącznik 2:

Szkic elementów mechanicznych nóg

15