Popularny post Sokolsok Napisano Marzec 31, 2012 Popularny post Udostępnij Napisano Marzec 31, 2012 Witam, pochwalę się moim pierwszym poważnym robotem autonomicznym, dzięki któremu udało mi się tytuł magistra uzyskać. Wcześniej robiłem jakieś proste konstrukcję (wyświetlacz widmowy czy prosty robot mobilny z lega technic), ale ta jest pierwsza z tych "poważniejszych";) Tematem pracy było zbudowanie w pełni autonomicznego robota mobilnego, oraz zaimplementowanie mu algorytmu umożliwiającego mu dotarcie do celu unikając przeszkód statycznych i dynamicznych. Środowisko pracy z założenia jest środowiskiem lokalnym (nie ma wbudowanej mapy otoczenia). Konstrukcja: Podwozie robota wykonane jest ze spienionego PCV – jest lżejsza i łatwiejsza w obróbce niż pleksi. Górny element obudowy przymocowany jest za pomocą czterech śrub. Elementy mocujące czujników przymocowane są klejem na gorąco, mocowania silników zostały przykręcone. Obudowa ma kształt okręgu o średnicy 175 mm. Dolna część podwozie ma specjalne wcięcia na mocowania silniki. W najszerszym miejscu szerokość konstrukcji (wraz z kołami) wynosi 250 mm, natomiast wysokość 94 mm. Wybrałem silniki - HL 149.6.21 ASM firmy Micro Motors. Mają zintegrowaną przekładnię 21:1 pozwalające na osiągnięcie 160 rpm i momentu 0,075 Nm – przy napięciu znamionowym 6 VDC. Kupiłem ja na Allegro za jakieś 15 zł za sztukę Elektronika Mózgiem robota jest ATmega 128. Ma dużą ilość wbudowanych urządzeń peryferyjnych, sporo wyprowadzeń I/O i dużo pamięci flash. Występuje niestety (albo stety) wyłącznie w obudowie SMD, jednak w sprzedaży istnieją gotowe moduły umożliwiające montaż THT, co zdecydowanie upraszcza projektowanie płytki PCB w warunkach domowych. Głównym zmysłem robota są 3 czujniki ultradźwiękowe HC-SR04. Według producenta zakres wykrywanych odległości to 2 – 500 cm z rozdzielczością 3 mm. Są to jednak parametry w wyidealizowanych warunkach, w rzeczywistości realnie i w miarę stabilnie można mierzyć w zakresie do 300 cm. Do sterowania kierunkiem oraz prędkością obrotową silników został użyty układ - L298. Scala on w jednej małej obudowie, Multiwatt 15, dwa mostki H. Zasilanie: zdecydowałem się użyć akumulatora litowo – polimerowego o pojemności – 2200 mAh i napięciu 7,4 V. Pozwala on na sprawną pracę robota przez ok. 60 min. Można go dostać w sklepie modelarskim już za ok 80 zł. Soft Tu nie ma co się rozpisywać. Całość kodu napisałem w "c". Myślę, że nie ma co go pokazywać bo jest "brzydki";P Napisany po prostu żeby działał, ale jest tam niezły bałagan, za parę miesięcy prawdopodobnie sam się w nim nie połapię Fotki 6
piotreks-89 Marzec 31, 2012 Udostępnij Marzec 31, 2012 Bardzo ciekawa konstrukcja. Gratuluję! Jednak czuję pewien niedosyt, jeśli chodzi o opis - dodaj jakiś filmik z działania robota Poza tym estetycznie wygląda (mimo tego gąszczu kabli w środku). Ta blacha z tyłu służy jako przeciwwaga czy ma również inne zastosowanie? Może napiszesz coś więcej o enkoderach - jakie transoptory, ile czarnych pól mają tarcze, czy rozdzielczość jest wystarczająca itp. Jaką wymiary ma robot? Ze zdjęć możne wywnioskować, że nie małe (ogólnie silniki HL149 mają spore wymiary). Ten akumulator to trochę na wyrost, ale jak masz miejsce to czemu nie
danioto Marzec 31, 2012 Udostępnij Marzec 31, 2012 zaimplementowanie mu algorytmu umożliwiającego mu dotarcie do celu unikając przeszkód statycznych i dynamicznych. Środowisko pracy z założenia jest środowiskiem lokalnym (nie ma wbudowanej mapy otoczenia). Możesz powiedzieć troszkę więcej o tym algorytmie omijania przeszkód, z czego dokładnie korzystałeś? Trochę się ostatnio interesuję wykrywaniem i omijaniem przeszkód szczególnie dynamicznych, jednak nie znalazłem jeszcze w pełni satysfakcjonującego mnie algorytmu. Z czego Ty korzystasz?
Bobby Marzec 31, 2012 Udostępnij Marzec 31, 2012 Ciekawi mnie, dlaczego nie zastosowałeś enkoderów na osi silnika, a nie koła - HL149 mają przedłużoną oś, specjalnie w tym celu Miałbyś 21 razy większą rozdzielczość enkodera No, a tak poza tym, to nie ma się do czego przyczepić, może oprócz tej kabelkologii. Wygląda jak większy brat ARJ
Sokolsok Marzec 31, 2012 Autor tematu Udostępnij Marzec 31, 2012 dodaj jakiś filmik z działania robota Dodam, dodam.. Zdjęcia mam bo to był załącznik do mojej pracy, a filmiku nie nagrywałem, ale nagram coś i wrzucę oczywiście:) mimo tego gąszczu kabli w środku Tego gąszczu chyba nie dało się uniknąć (no może delikatnie zmniejszyć. Czujniki, LCD i przyciski są na górnej obudowie robota więc jakoś to musiałem połączyć. Ta blacha z tyłu służy jako przeciwwaga czy ma również inne zastosowanie? Ta blacha ma 3 zastosowania: 1. jako ukrywacz tego "gąszczu kabli";P 2. jako zabezpieczenie przed wypadnięciem baterii 3. tak, dokładnie jako przeciwwaga (na jednym ze zdjęć widać jeszcze dodatkowe ciężarki do niej przyklejone) Może napiszesz coś więcej o enkoderach Transoptory to TCST 1103. Jeśli chodzi o tarcze kodowe to wykonałem je w jakimś darmowym programie ściągniętym z sieci stworzonym właśnie do rysowania tarcz kodowych. Wydrukowałem je na folii do drukarek laserowych. Miałem obawy, że folia ta jest za miękka, i że zaczernienie czarnych pól będzie za słabe i miałem w razie co przygotowany plan B - czyli tarcze wydrukowane na sztywnej tekturze i prążki powycinane:) Okazałe się jednak, że ta folia działa wyśmienicie. Rozdzielczość jest dość mała - 17 prążków.Oczywiście korzystam najpierw z narastającego zbocza a potem z malejącego czyli rozdzielczość wynosi 34. Co w połączeniu z kołami o średnicy 6 cm daje minimalny "krok" 5,55 mm. Nie jest to dużo, teraz już wiem, że mogłem to spokojnie zwiększyć, ale już przed obroną mi się nie chciało;P Głównym ich zadaniem (oprócz jazdy prosto) było wyliczanie aktualnych współrzędnych. I sprawdzały się całkiem nieźle (choć bez rewelacji). Przy dość skomplikowanej trasie, w której musiał wykonać dużo skrętów dokładność w punkcie docelowym wynosiła ok 5cm. Jaką wymiary ma robot? Ze zdjęć możne wywnioskować, że nie małe Obudowa ma kształt okręgu o średnicy 175 mm. Dolna część podwozie ma specjalne wcięcia na mocowania silniki. W najszerszym miejscu szerokość konstrukcji (wraz z kołami) wynosi 250 mm, natomiast wysokość 65 mm. Czyli chyba do "dużych" robotów się nie zalicza:) Możesz powiedzieć troszkę więcej o tym algorytmie omijania przeszkód, z czego dokładnie korzystałeś? Jest sporo fajnych algorytmów jak VFH, Dynamiczne okna, czy CVM. Mnie jednak gonił termin, dlatego akurat w tej kwestii poszedłem na łatwiznę.. Zastosowałem zmodyfikowany prze ze mnie algorytm BUG0. BUG0 – robot jedzie w stronę celu do czasu napotkania przeszkody. Następnie skręca w lewo (bądź w prawo) i porusza się wzdłuż przeszkody do czasu, w którym możliwe jest ponowne skierowanie się do punktu docelowego. Następnie wraca z powrotem do punktu pierwszego. Zasada działania modyfikacji: (cytat ze mnie:P mojej pracy) POMIAR360” jest modyfikacją wprowadzoną do podstawowego algorytmu BUG0. Jej zadaniem jest skrócić drogę (nie czas) omijania przeszkody. Zasadę działania tej modyfikacji można zawrzeć w 3 krokach. 1. Pierwszy krok zostaje zainicjowany chwili dotarcia robota do przeszkody na odległość 20 cm i polega na wykonaniu kilkudziesięciu pomiarów odległości wokół robota. Otrzymany zostaje wtedy dokładny obraz najbliższego otoczenia. 2. Kolejnym krokiem jest przekształcenie otrzymanego obrazu otoczenia do jednowymiarowego histogramu biegunowego. Zasada jest ta sama co w przypadku algorytmu VFH. Oś rzędnych przedstawia wyniki poszczególnych pomiarów, natomiast oś odciętych orientację robota w chwili wykonywania pomiaru. 3. W tym kroku na podstawie histogramu biegunowego zostają wybrane dwa skrajne pomiary przekraczające ustaloną wartość graniczną. Generalnie sprowadza się to do wybrania krótszej strony, z której robot ominie przeszkodę. A nie zawsze w jedną stronę jak w BUG0. Reszta jest taka sama. Ciekawi mnie, dlaczego nie zastosowałeś enkoderów na osi silnika, a nie koła - HL149 mają przedłużoną oś, specjalnie w tym celu Miałbyś 21 razy większą rozdzielczość enkodera To jest świetne pytanie:) A odpowiedź jest prozaicznie prosta. Nie miałem pomysłu jak je tam przyczepić. Przy kole miałem huba (czy jak to się nazywa), do którego przekręciłem koła i ładnie mogłem przykleić tarczę. Z tyłu miałem sam wał. A poza tym z tą dokładnością to i tak trochę lipa była, bo silniki mają dość sporawe luzy na przekładniach..
darek... Marzec 31, 2012 Udostępnij Marzec 31, 2012 Jaką dokładność pomiaru ultradźwiekowego udało się uzyskć w okolicach 3mb i czy podobna była w całym używanym zakresie ? Pozdrawiam Darek.
Sokolsok Marzec 31, 2012 Autor tematu Udostępnij Marzec 31, 2012 Błędy nie przekraczały 5mm w całym zakresie ich działania. Ale te 5m zakresu podawanego przez producenta to chyba jest naprawdę w idealnych warunkach, bez jakichkolwiek zakłucaczy.
darek... Kwiecień 1, 2012 Udostępnij Kwiecień 1, 2012 Dziękuję za odpowiedź. Muszę przemyśleć. Pozdrawiam Darek
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ę »