Popularny post AE Napisano Marzec 31, 2015 Popularny post Udostępnij Napisano Marzec 31, 2015 Chciałbym zaprezentować owoc mojej długiej pracy. Jest to czteronożny robot kroczący, który wykorzystuje m.in. komunikację bezprzewodową oraz odwrotne zadanie kinematyki (niestety nie bezpośrednio na pokładzie robota). Robot powstał, ponieważ chciałem skonsolidować w jednym projekcie kilka ważnych zagadnień związanych z robotyką, elektroniką, programowaniem. Dużo rzeczy można było zrobić inaczej, lepiej, ale głównym założeniem było połączenie wiele aspektów z w/w dziedzin. Kilka rzeczy należy jeszcze poprawić, m.in. płynność ruchów, ale ogólnie jestem zadowolony z efektów. To co prezentuję jest drugą wersją robota. 1. Konstrukcja mechaniczna W konstrukcji nie ma niczego zaskakującego. Robot (R4pod) ma budowę symetryczną. Posiada 4 nogi, a każda noga ma 3 stopnie swobody (3 serwa na nogę), czyli 12 serwomechanizmów. Zastosowane serwomechanizmy to Tower Pro SG 5010 (pierwsze i drugie licząc od stopy) oraz HITEC HS322HD (łącznik nogi z korpusem). Pierwotnie wykorzystałem Tower Pro MG995, ale okazały się chińską podróbka i wysterowanie ich wiązało się z stanami samobójczymi (pisałem o tym na forum). Projekt konstrukcji wykonano w Inventorze. Wzorowałem się na wielu konstrukcjach oraz na elementach ogólnie dostępnych na serwisach aukcyjnych czy sklepach internetowych i w pewnym stopniu modyfikowałem je dla własnych potrzeb. Pierwsza wersja było wykonana z laminatu FR4, co okazało się niezbyt dobrym pomysłem. Druga wersja, czyli aktualna, wykonana jest z aluminium (nogi 1,5 mm, korpus 2 mm). Za pomocą imadła i argumentu siły ukształtowałem odpowiednie elementy. Wszelkie części zostały wycięte na WaterJet`ie przez jednego z kolegów z naszego forum, za co bardzo mu dziękuję. Pierwotnie nie planowałem wykorzystać czujników krańcowych w stopach, ale życie zweryfikowało to i stały się niezbędne. Niestety nie przygotowałem elementów stopy, aby takie czujniki zastosować, stąd taka partyzantka jak widać na zdjęciach. 2. Elektronika PCB zaprojektowałem w programie Eagle. Samą płytkę wykonałem termotransferem wykorzystując laminator. Nie bawiłem się w osobne moduły, ma to swój minus, ale jeszcze nic się nie spaliło. Wszystko znajduję się na jednej PCB, udało się to dzięki zastosowaniu elementów SMD (pojedyncze komponenty są THT). Na PCB znajduję się: - tor zasilania dla układu sterowania, czyli stabilizator napięcia +5VDC oraz +3,3VDC - tor zasilania serwomechanizmów z odpowiednia baterią kondensatorów na wejściu i wyjściach - 2 mikrokontrolery ATmega88PA taktowane częstotliwością 20MHz - moduł ATB-BTM222 - akcelerometr MMA8452 - gniazdo programatora - 4 przyciski - gniazdo do podłączenia sygnałów z krańcówek w stopach - wyjścia sygnałów sterujących dla serw - komparator mierzący napięcie na akumulatorze Robot zasilany jest z dwóch akumulatorów litowo-polimerowych. Do zasilania układu sterowania +7,4V 500mAh oraz +7,4V 2200mAh przez UBEC do zasilania serwomechanizmów. Moduł ATB-BTM222 służy do komunikowania się z PC za pomocą BT. Komunikacja w obie strony za pomocą jednego modułu wprowadza spore opóźnienia (plus opóźnienia wynikające z innych procesów ) dlatego nie udało mi się jeszcze uzyskać pełnej płynności ruchów. ATmega Master pobiera wszelkie informacje z otoczenia, tj. - komunikacja z PC za pomocą ATB-BTM222 (UART) - czujniki w stopach - akcelerometr (I2C) - komunikacja z drugą ATmega za pomocą SPI Po za tym komponuje ramki danych do wysłania oraz dekomponuje i interpretuje odebrane dane. ATmega Slave działa w zasadzie jak serwokontroler. Odbiera dane z układu Master, dekomponuje ramkę danych i odpowiednio wysterowuje 12 serwomechanizmów. 3. Sterowanie Do sterowania robotem napisałem aplikację wykorzystując WinApi. Aplikacja służy do ustanowienia połączenia z robotem za pomocą Bluetooth, odbieranie danych, przetwarzanie ich i wysyłanie do robota. Aby komunikacja była bezawaryjna i wszystkie pakiety kompletne, napisałem swój protokół (chociaż to zbyt duże słowo) wzorując się na ModBus`ie. Na przetwarzanie danych składa się dekompozycja danych, odpowiednie ich zinterpretowanie, wykonanie obliczeń dla zadania odwrotnego kinematyki uwzględniając dane z czujników (muszę zająć się jeszcze akcelerometrem, chociaż dane z niego są wysyłane do PC) oraz kompozycja ramki do wysłania. Dodatkowo widoczna jest animacja obrazująca stan czujników w stopach oraz trójkąty podparcia. Stan jest aktualizowany w czasie rzeczywistym. Przede mną jeszcze wiele pracy. Jest dużo rzeczy do poprawy czy modyfikacji. Należy poprawić płynność ruchów oraz sam sposób chodzenia (na razie traktowałem go po macoszemu, skupiając się na stabilnej komunikacji, samej aplikacji oraz obliczeniach kinematyki odwrotnej). Należy przeprojektować ostatni człon nogi, gdzie znajdują się czujniki krańcowe. Partyzantka jaką zrobiłem sprawia wiele kłopotów. Kolejnym ważnym aspektem jest uwzględnienie w obliczeniach danych z akcelerometru i poziomowanie korpusu. Może w przyszłości powstanie kolejna wersja sterownika, która podoła wykonać obliczenia związane z zadaniem odwrotnym kinematyki (jakiś ARM? Niestety na to ciągle brakuje czasu...) Pozdrawiam 6 Cytuj Link do komentarza Share on other sites More sharing options...
mosi2 Marzec 31, 2015 Udostępnij Marzec 31, 2015 Dla mnie bomba! Btw - jak zrobiłeś takie ładne cynowanie płytki? Cytuj Link do komentarza Share on other sites More sharing options...
torcek Marzec 31, 2015 Udostępnij Marzec 31, 2015 Dość rozbudowany projekt, z pewnością wiele ciekawych wniosków wyciągnąłeś podczas jego realizacji. Życzę wytrwałości przy kolejnej iteracji 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Sabre Kwiecień 1, 2015 Udostępnij Kwiecień 1, 2015 Fajny prawie pająk 😉, jedynie brakuje mu jakichś gumowych stópek bo się bardzo ślizga. Cytuj 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
AE Kwiecień 2, 2015 Autor tematu Udostępnij Kwiecień 2, 2015 Zakup 12 serw to już wydatek, a w szczególności, gdy musisz kupić taki zestaw 2x, a gdzie 18 serw 😋 Muszę mocno popracować nad ruchami, na dywanie idzie mu znacznie lepiej. Po za tym ostatni człon nogi jest do przeprojektowania i wykonania od nowa, aby porządnie zainstalować tam czujniki. Planuję zrobić szerszy opis, coś na kształt pracy dyplomowej. Może kiedyś się przyda:P Co do cynowania. Jest na to bardzo prosty przepis. Nocka w pracy w weekend + dużo cyny + lutownica + odsysacz na powietrze 😋 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!