Skocz do zawartości

Rooha

Użytkownicy
  • Zawartość

    7
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    6

Wszystko napisane przez Rooha

  1. Jeśli miałbym na serio implementować jakiś quasi-statyczny chód to w pierwszej kolejności zająłbym się przeprojektowaniem robota. Tak jak piszesz OldSkull: jakieś dobre serwa, ale zmieniłbym też posturę robota na bardziej przypominającą posturę ssaków oraz chyba co najważniejsze program sterujacy umieściłbym w robocie w jakims ARM-ie a nie na PC. Faktycznie może dodam jakąś prostą wersję chodu, choćby dla samego przekonania się jak to wyjdzie. Moje obliczenia w Excelu mówią że robot kosztował troszkę ponad 2 tys zł licząc tylko te elementy która są w nim aktualnie zamontowane. Rzeczywiste koszty które poniosłem są więc większe.
  2. Nie, używam ATmegi która mierzy spadek napięcia na oporniku (0.1 Ohma, 5W). Napięcie przechodzi dodatkowo przez filtr analogowy RC oraz jest wzmacnianie wewnętrznym wzmacniaczem dostępnym w przetworniku ADC ATmegi 16. Reszta to tylko proste obliczenia. Cały cykl łącznie z pobraniem danych z akcelerometru i żyroskopu, skalowaniem pomiarów i wyliczeniem filtru dla roll oraz pitch zajmuje coś koło 3,5ms Robot jest robiony od początku w pojedynkę, tak samo jak praca magisterska. Finansowanie jest we własnym zakresie aczkolwiek można było się starać o jakieś dofinansowanie z uczelni. Teraz mam przynajmniej pewność że robot w całości należy od mnie Nie tylko Twoje doświadczenie ale i nauka oraz natura mówią że należałoby odrywać więcej nóżek w celu przyspieszenia chodu. Niestety w takim przypadku jako że jest to robot czteronożny wyjdziemy poza obszar chodów statycznie stabilnych, co zmienia całkowicie podejście do sprawy. Należałoby się wtedy dogłębnie zając modelem dynamiki robota i w pierwszej kolejności zamontować sensory siły na stopach (najlepiej 3 osiowe) . Można także na sztywno zaprogramować jakich quasi-statyczny chód w którym robot podnosi 2 nogi naraz ale sprawdziłby się tylko na płaskim terenie...
  3. Nie sprawdzałem kiedy się złamię, ale kładłem na nim 0.5 kg i chodził aczkolwiek im lżej tym lepiej. Procesor raczej nadąża bo jest to Core 2 duo . W opisie może nie jest to jasno napisane ale pętla sprzężenia zwrotnego w sterowaniu robotem jest zamykana przez komputer PC. Opóźnienia są powodowane przez protokół Bluetooth, przez fakt iż cykl sterownia wynosi 40ms oraz używanie regulatora PID (może da się go lepiej nastroić). W sterowaniu zawsze występuje pewne opóźnienie musi ono być tylko odpowiednie dla sterowanego obiektu. W X-walkerze nie jest najgorzej Dla ścisłości dodam że największym winowajcom opóźnień w moim robocie jest łączność radiowa. co do filtru kalmana: http://twingo.ict.pwr.wroc.pl/~konar/uploads/download/raporty/kalman.pdf Niech nie odstraszy Cie teoria na początku tego dokumentu, później są przykłady co do PID'a to dość przystępnie jest to pisane w książce prof. W.Gregi pt "Metody i algorytmy sterowania cyfrowego w układach scentralizowanych i rozproszonych" na stronach 171 i 172. Niestety padła mi drukarka ze skanerem...
  4. 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.
  5. 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.
  6. 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
  7. 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:
×
×
  • Utwórz nowe...