Popularny post Rooha Napisano Sierpień 21, 2011 Popularny post Udostępnij Napisano Sierpień 21, 2011 To mój pierwszy post na tym forum ale od razu chciałbym przedstawić zbudowanego przeze mnie robota. Mimo że to pierwszy post to odwiedzałem to i inne fora wielokrotnie w poszukiwaniu przydatnych informacji i wykorzystując jedynie „magiczny” guzik szukaj udało mi się rozwiązać większość problemów z budową. To dla tych którzy nie chcą i nie lubią szukać… Wracając jednak do robota to został on nazwany X-walker i jest czteronożnym robotem kroczącym o symetrycznej konstrukcji. Został zaprojektowany jako robot którego zadaniem będzie przejście po nieznanym terenie przy jednoczesnym zachowaniu równowagi i odpowiednim położeniu korpusu. Prace nad robotem aktualnie się zakończyły, aczkolwiek temat jest obszerny i wiele można jeszcze ulepszyć albo dodać, więc w przyszłości robot zostanie poddany kolejnym modyfikacją. 1.Budowa mechaniczna Konstrukcja mechaniczna robota została zaprojektowana przy użyciu programu Autodesk Inventor 2010. Program ten umożliwił stworzenie wirtualnego modelu robota oraz przetestowanie zależności mechanicznych występujących pomiędzy jego elementami. Dzięki temu wybrano optymalne wymiary poszczególnych części. Poniżej na rysunku 1 zaprezentowano projekt robota z programu Inventor (bez elektroniki oraz okablowania): Na materiał konstrukcyjny wybrano aluminium jako, iż posiada odpowiednią wytrzymałość, jest przy tym lekkie i nadaje się do obróbki za pomocą prostych narzędzi. Zaprojektowane elementy wycięto przy pomocy lasera z 1.5mm i 2mm arkuszy aluminium. Poniżej przedstawiono wycięte elementy: Dalszy etap prac polegał na odpowiednim ukształtowaniu niektórych części. Proces ten odbywał się ręcznie przy udziale odpowiednich kopyt wykonanych z drewna bukowego i stali. Następnie dokonano montażu elementów przy pomocy różnego rodzaju łączników śrubowych o średnicach od 2 do 4mm. Dodano także inne elementy, takie jak tulejki dystansowe czy części składowe stóp ze zintegrowanymi czujnikami stykowymi. Na kolejnym rysunku przedstawiono złożonego robota: Poniżej przedstawiono szczegóły budowy stopy: Napęd robota stanowi 12 serwomechanizmów Power HD 1201 o parametrach przedstawionych poniżej (dane producenta): - moment 12.2/13.2 kg/cm - prędkość 0.16/0.14 sec/60° - napięcia 4.8/6.0 V - waga 60 g - wymiary 40.7 x 20.5 x 39.5 mm Niestety niektóre dane obiegają od wartości rzeczywistych, szczególnie wartość momentu, ale co ciekawe nawet wymiary nie są zgodne z rzeczywistymi. Podsumowując, konstrukcja mechaniczna robota posiada kilka charakterystycznych cech: - zwarta i solidna konstrukcja - podwójne łożyskowanie wszystkich stawów - zintegrowane czujniki stykowe w stopach - całkowita rozbieralność konstrukcji – tylko połączenia śrubowe - możliwie najmniejsze wymiary przy zastosowaniu danych elementów wyposażenia robota - liczne otwory odciążające konstrukcję 2. Elektronika Część elektroniczna robota posiada budowę modułową. Każdy moduł zawiera mikrokontroler AVR i pełni odpowiednie dla siebie funkcje. Każdy posiada także odpowiednio multipleksowane wyprowadzenie ISP, co pozwala programować moduły podczas ich działania. Moduły stanowią odrębne jednostki elektroniczne i można ich używać oddzielnie nie koniecznie w robocie X-walker. Do komunikacji między sobą wykorzystują SPI. Takie rozwiązanie nie ogranicza w dalszej rozbudowie robota i pozwala stale dodawać nowe elementy i funkcje. Poniżej scharakteryzowano poszczególne moduły. 2.1. Moduł sterujący „BRAIN” Jest głównym modułem w robocie, zawiaduje działaniem pozostałych. Został oparty na mikrokontrolerze ATmega 16A z kwarcem 16MHz. Posiada wyprowadzone piny z magistralą I2C i SPI, wyświetlacz LCD oraz 2 dodatkowe przyciski na potrzeby przyszłych funkcji. Poniżej krótka charakterystyka: - arbiter magistrali SPI - komunikacja z akcelerometrem i żyroskopem poprzez I2C - Realizacja filtru Kalmana w celu wyznaczenia aktualnego pochylenia robota - obsługa wyświetlacza LCD - nadzorowanie pracy innych modułów - formowanie odpowiednich ramek danych do komunikacji z PC 2.2. Moduły sterowników serw Robot posiada dwa takie same moduły sterowników serw, każdy obsługuje 6 serwomechanizmów, czyli 2 nogi robota. Moduły także oparte są o mikrokontroler ATmega 16A na kwarcu 16MHz. Najważniejszymi funkcjami tych modułów jest oczywiście generowanie odpowiedniego sygnału PWM dla serwomechanizmów, ale także obsługa czujników stykowych i pomiar napięć na potencjometrach serw (dodatkowy przewód wychodzący z każdego serwa). Ta ostatnia cecha służy sprawdzeniu czy serwomechanizm jest rzeczywiście wychylony od taką wartość jaką wyznacza sterowanie, co jest przydatne w pracy przy dużym obciążeniu. Należy dodać, że sygnały analogowe z potencjometrów przed dotarciem do tych modułów przechodzą przez filtr analogowy. 2.3 Moduł nadawczo odbiorczy „BT_RX_TX” Moduł ten jest odpowiedzialny za obsługę dwóch modułów bluetooth, jednego wysyłającego a drugiego obierającego dane z komputera. Dane przychodzące są odpowiednio filtrowane. W module zastosowano mikrokontroler ATmega 8A oraz kwarc 14.745MHz odpowiedni do transmisji szeregowej. Standardowo w module instaluje się dwa moduły bluetooth BTM-222. Poniżej zdjęcie przedstawiające moduł zamontowany w robocie: 2.4. Moduł zasilający "POWER" Robot jest zasilany dwoma zestawami akumulatorów. Pierwszy większy zestaw (2x LiPo 1850 mAh 7.4V) zasila serwomechanizmy, drugi mniejszy (LiPo 850 mAh 7.4V) zasila układy elektroniczne. Moduł zasilający monitoruje wartości napięć poszczególnych akumulatorów a także mierzy prąd jaki zużywają napędy robota. Zajmuje się także stabilizacją napięć – 5V dla elektroniki i poprzez stabilizator impulsowy (niewidoczny na zdjęciach) 5.3V lub 6V dla serwomechanizmów. Moduł zasilający posiada budowany układ dźwiękowy sygnalizujący niski stan napięcia w akumulatorach. Zajmuje się także monitorowaniem temperatury w istotnych miejscach robota za pomocą magistrali 1-wire oraz czujników DS18b20. Te miejsca to: stabilizator impulsowy dla serw, stabilizator liniowy dla elektroniki, temperatura w serwomechanizmie „udowym”, temperatura otoczenia. Zdjęcie użytego zasilacza impulsowego oraz zdjęcie robota po zamontowaniu modułu "POWER". Widoczny radiator stabilizatora liniowego elektroniki: 2.5 Pozostałe moduły Moduł żyroskopu Zawiera żyroskop cyfrowy L3G4200D oraz kilka elementów elektronicznych niezbędnych do jego działania . Na zdjęciu widać poprawiony błąd na PCB. Praktyczniej było to zrobić w ten sposób niż zmieniać całą płytkę bo wiązałoby się to z ponownym lutowaniem obudowy LGA żyroskopu. Moduł akcelerometru Zawiera akcelerometr (i magnetometr) cyfrowy LSM303DLH oraz tak jak moduł żyroskopu kilka elementów elektronicznych niezbędnych do jego działania. IMU - interial measurmet unit Moduł IMU czyli tzw. interial measurmet unit złożony i zamontowany w całości wraz z konwerterami napięć dla sygnałów magistrali I2C Moduł filtrów analogowych RC (2 sztuki) Filtruje napięcia na potencjometrach serw aby można było je prawidłowo zmierzyć poprzez wbudowane w mikrokontrolerach przetworniki ADC 3. Sterowanie X-walker jest sterowany za pomocą komputera PC i odpowiedniej aplikacji. Zastosowanie dwóch modułów Bluetooth pozwoliło na szybkie przekazywanie danych w obu kierunkach i uzyskanie kroku sterowania na poziomie 40ms. Czas ten nie jest niestety gwarantowany z racji zastosowania protokołu Bluetooth, aczkolwiek robot porusza się płynnie i reaguje błyskawicznie na zmiany sterowania. W jednym cyklu sterowania od robota odbierane są odpowiednie dane, wyliczane jest sterowanie i dane ponownie wysyłane są do robota. Na ekranie komputera możemy obserwować dane generowane przez wszystkie moduły robota jak również aktualne położenie środka ciężkości robota względem jego stóp z naniesionym wielokątem podparcia (obraz poniżej) Po wybraniu odpowiednich ustawień chodu robota oraz prędkości poruszania się następuję połączenie z robotem. O tej pory możemy nim sterować: chód przód, tył, na boki oraz obroty w lewo prawo. Wszystkie inne „akcje” związane z chodzeniem po trudnym terenie robot podejmuje sam. Na filmach poniżej można więc zaobserwować jak przekłada nogę w celu znalezienia odpowiedniego miejsca do położenia jej bądź też ratuje się przed wywrotką po obsunięciu się którejś z nóg. Innych elementów prawdopodobnie nie widać na filmach a mianowicie robot dba cały czas o odpowiednie usytuowanie środka ciężkości tym samym zapewniając sobie stabilność. Każdorazowo dobiera odpowiednie przemieszczenia nóg wzdłuż wszystkich osi oraz przemieszczenie korpusu. Korpus robota jest pozycjonowany automatycznie za sprawa sterowników PID które wyliczają sterowanie na podstawie danych z żyroskopu i akcelerometru przetworzonych przez filtr Kalmana. Wysokość korpusu nad ziemią także jest ustalana przez odpowiedni algorytm. Dodatkowo robot pilnuje aby każda noga która w danej fazie chodu ma spoczywać, w przypadku utraty podłoża „znalazła” nowe poprzez systematyczne obniżanie jej. Opis powyżej przedstawia pokrótce sposób w jaki sterowany jest robot, aczkolwiek nie zawiera wszystkich szczegółów. Zostały wymienione tylko główne funkcje algorytmów sterujących. Zdaje sobie sprawę że opis ten może być ciężki do zrozumienia, ale nigdy nie miałem talentu do opisywania tego co robie, więc śmiało można pytać i będę się starał rozwiewać wątpliwości oraz uzupełnić opis w miarę możliwości. Na koniec jeszcze kilka zdjęć i filmy: Kinematyka odwrotna: Kontrola przechyłu korpusu: Chodzenie po nierównym terenie: Chodzenie po ruchomej równoważni: I jeszcze coś w HD, łażenie po kamyczkach: 70 Link do komentarza Share on other sites More sharing options...
Sabre Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Robot niesamowity, ale opis wygląda jak żywcem przepisany z pracy dyplomowej. Mógłbyś coś więcej napisać o tych czujnikach w stopach? Czy to są zwykłe mikroswitche? Link do komentarza Share on other sites More sharing options...
Carpe Diem Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Robot robi duże wrażenie. Gratulacje. Link do komentarza Share on other sites More sharing options...
Kacper2907 Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Wow, jestem pod ogromnym wrażeniem! Świetna konstrukcja, widać, że włożyłeś w nią ogromną ilość czasu i innych środków 🙂 Z chęcią zobaczyłbym robota na żywo, może nawet na przyszłym Leś-Techu we Wronkach 🙂 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
GAndaLF Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Robot jest po prostu wspaniały. Chyba jedna z najlepszych konstrukcji jakie kiedykolwiek się tutaj pojawiły. Opis też całkiem niezły, nie podzielam zdania Sabre dotyczącego przepisania z pracy dyplomowej. Zastanawia mnie tylko dlaczego zastosowałeś w kontrolerach serw po jednej atmedze na 6 serw. Domyślam się, że chodziło o sprzętowego PWMa. Można obsłużyć nawet po 8 serw za pomocą jednego timera co daje 24 serwa na atmegę jeśli użyjemy przerwań od CTC do stworzenia programowego PWMa. Powodem była słabsza dokładność programowego sygnału, czy może co innego? Link do komentarza Share on other sites More sharing options...
Sabre Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 GAndaLF, może po przeczytaniu tego oraz zajrzeniu tutaj zmienisz zdanie. Link do komentarza Share on other sites More sharing options...
GAndaLF Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Ty chyba nie wiesz jak wygląda praca dyplomowa Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Sabre, miał chyba raczej na myśli język i sposób opisu. Jednak czy ma to jakieś znaczenie? Liczy się to, że autor opisał swoją ciekawą konstrukcję i chwała mu za to, że znalazł chęci do publikacji. Również, gratuluję tak zaawansowanej konstrukcji. Proponowałbym się skupić na dyskusji związanej z robotem 😉 Link do komentarza Share on other sites More sharing options...
Rooha Sierpień 22, 2011 Autor tematu Udostępnij Sierpień 22, 2011 Jak dobrze zauważył Sabre na temat robota powstaje praca dyplomowa, ale to chyba nie powód żeby go tu nie opisać?. Natomiast tekst opisujący robota na forum jest lekkim rozszerzeniem tekstu który powstał na potrzeby zwodów Robcomp 2011 i można powiedzieć ze jest króciutkim streszczeniem paru rozdziałów pracy - nie jest to kopia jej zawartości. Co do czujników w stopach to są to zwykłe przełączniki - dodałem nowe zdjęcia w opisie w celu zobrazowania. Natomiast przyczyną zastosowania aż 2 Atmeg do obsługi serw był fakt, że potrzebowałem także przetworników ADC w liczbie 12 a jedna Atmega ma 8 Link do komentarza Share on other sites More sharing options...
Sabre Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Co do czujników w stopach to są to zwykłe przełączniki - dodałem nowe zdjęcia w opisie w celu zobrazowania. Czy taka konstrukcja "stopy" nie powoduje zbyt dużego chybotania się w na boki w jednej płaszczyźnie? Link do komentarza Share on other sites More sharing options...
Rooha Sierpień 22, 2011 Autor tematu Udostępnij Sierpień 22, 2011 Nie powoduje gdyż fragmenty sklejki są odpowiednio wyżłobione i pewnie trzymają tulejkę prowadzącą trzpień stopy. Podczas działania robota nie miałem z tym problemów jak na razie. Link do komentarza Share on other sites More sharing options...
Sabre Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 To stopa, a raczej ten trzpień opiera się na blaszce dźwigni mikroprzełącznika? Masz tam jakieś sprężyny czy całość odbija się tylko i wyłącznie na sprężynce mikroprzełącznika? Link do komentarza Share on other sites More sharing options...
Rooha Sierpień 22, 2011 Autor tematu Udostępnij Sierpień 22, 2011 Dodałem jeszcze jedno zdjęcie. Owszem trzpień opiera się o dźwignię mikroprzełącznika, a sprężynka miała być zamontowana ale jak się okazało stopa pracowała równie dobrze bez niej. Link do komentarza Share on other sites More sharing options...
regrom Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Świetna robota, świetne podejście do sprawy, dobry projekt, a następnie dobrze wykonany. Dość zaawansowany soft, implementacja PID'a nie jest czarna magia w porównaniu z Kalmanem. Podzielisz się może swoją implementacją w C? Albo sensownymi źródłami, które łatwo można przerzucić na praktyczną stronę? Link do komentarza Share on other sites More sharing options...
KD93 Sierpień 22, 2011 Udostępnij Sierpień 22, 2011 Rooha, fajnie że opublikowałeś robota, miałem okazję się przyjrzeć bo prezentowaliśmy obok siebie na Robocompie. Świetna konstrukcja, gratulacje. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »