Albi78 Napisano Kwiecień 27, 2015 Udostępnij Napisano Kwiecień 27, 2015 Witam, Mam pytanie jak realizujecie pomiar odległości pokonanej przez robota? Chciałbym zaprojektować i zbudować robota, któego roboczo nazwałem "ZWIEDZACZ". Założenie projektu jest takie, że jeśli postawie robota w pomieszczeniu i uruchomię to objedzie pomieszczenie i narysuję "mapę" pomieszczenia /dostarczy dane do tego/. We wstępnej fazie - dla uproszczenia zakładam, że wszystkie kąty ścian to kąty proste. W pamięci sterownika ma się więc zapisać informacja typu: 20P15P20P gdzie: liczba to określenie przejechanej odległości P oznacza skręt o 90st. w prawo Na podstawie tego będę mógł teoretycznie i w bardzo uproszczony sposób wyrysować pomieszczenie po jakiem poruszał się robot. I tu pojawia się pytanie - jak mierzyć odległość: 1. GPS raczej za małe odległości i za duży problem z sygnałem satelitów 2. Silniki krokowe i przeliczenie kroków na odległość (w zależności od obwodu koła) 3. Silniki DC i enkodery na kołach. Czy wybrać którąś z tych opcji i która z nich jest Waszym zdaniem najlepsza? Link do komentarza Share on other sites More sharing options...
MirekCz Kwiecień 27, 2015 Udostępnij Kwiecień 27, 2015 Ze względu na dokładność i niezawodność opcja nr.3 z odpowiednimi enkoderami. Link do komentarza Share on other sites More sharing options...
Dymek_117 Kwiecień 27, 2015 Udostępnij Kwiecień 27, 2015 Do silników dołącz enkodery, najprościej optyczne - możesz kupić gotowy transoptor szczelinowy + do tego tarcze z myszy kulkowej. Będą generować X impulsów na obrót - na tej podstawie wyliczysz odległość 🙂 Link do komentarza Share on other sites More sharing options...
Albi78 Kwiecień 28, 2015 Autor tematu Udostępnij Kwiecień 28, 2015 Myślałem wstępnie o wykorzystaniu podwozia takiego: Podowzie 1 lub takiego podowzie 2 Oba mają tarcze enkoderów w zestawie. Czy przy użyciu takiego transoptora: transoptor szczelinowy dam radę Waszym zrealizować pomiar obrotu kół na którymś z tych podwozi? 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
Wikkan Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 Oczywiście będziesz mógł zrealizować pomiar obrotu ale te tarcze enkoderów nadają się do pomiaru prędkości obrotu kół a nie do pomiaru przebytej drogi, aby odczytać przebytą drogę enkodery muszą być dwukanałowe. Przy tych nie będziesz mógł odczytać czy robot jedzie do przodu czy do tyłu. Link do komentarza Share on other sites More sharing options...
mactro Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 Prawdziwy problem leży gdzie indziej. W tych podwoziach enkodery mocowane są na osi koła. Nie znalazłem w opisie jaką mają rozdzielczość, ale raczej nie będzie to więcej niż jakieś 60 impulsów na obrót koła. Przy średnicy kół ok. 50 mm, da Ci to rozdzielczość ok. 2-3mm przebytej drogi na impuls. Na pierwszy rzut oka może to się wydawać nie najgorszą wartością, ale tak naprawdę, zastosowanie praktyczne takich enkoderów jest prawie żadne. O regulatorze prędkości możesz właściwie zapomnieć, podobnie o wykonywaniu skrętów, które będą miały dokładnie 90 stopni. Tak naprawdę potrzebujesz albo enkoderów inkrementalych na wale silnika, (np. jak tu http://www.trobot.pl/sklep/z-przek-adni/silnik_25dx52l_341_hp__z_enkoderem/) albo enkoderów absolutnych na kole, ale z rozdzielczością przynajmniej 10 bitów. Do tego drugiego rozwiązania możesz szukać produktów firmy Austriamicrosystems. Link do komentarza Share on other sites More sharing options...
marek1707 Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 Gdyby robot jeździł wyłącznie prosto albo gdyby sygnały z enkoderów były brane pod uwagę wyłącznie na takich odcinkach, to do wymiarowania pomieszczeń 60 imp/obrót koła pewnie by wystarczyło - przecież to nie labirynt gdzie mysz ma 1cm do ścianek. Krytyczne w tej aplikacji będą obroty. Np. już odchylenie rzędu kilku stopni (od planowanych 90) po przejechaniu 2m da błąd położenia rzędu kilknastu cm (2m*tan(5°)). Po zrobieniu kilku zakrętów właściwie nie wiadomo gdzie jesteśmy a szerokie koła potęgują niejednoznaczność położenia środka obrotu bo nie wiadomo po jakim okręgu każde z nich się porusza w zakręcie. Z drugiej strony patrząc, można chyba stworzyć jakiś algorytm samokorygujący. Mając czujnik odległości z boku, można jechać wzdłuż ściany zachowując od niej stałą odległość. To powinno wyeliminować błędy "kierunkowe" i zapewnić jechanie w miarę prosto. Następne pytanie to jakie to mają być pomieszczenia. W przypadku prostokąta wydaje się to do ogarnięcia a nawet automatycznego wykrycia "zawinięcia się" drogi i powrotu do miejsca startu . Jeżeli jednak pokój będzie zagracony, z dużą liczbą przeszkód do ominięcia to stworzenie mapy takiego środowiska będzie skrajnie trudne. Do tego dochodzą rzeczy "małe" typu nogi od stołów, "czarne dziury" typu pochłaniające wszystko zasłony, zmiany podłoża (dywany), no i.. koty. W każdym razie pozycjonowanie robota bazujące jedynie na czujnikach na kołach/silnikach może być bardzo trudne, ale spróbować warto. Na pewno nie skończy się na enkoderach. Link do komentarza Share on other sites More sharing options...
Albi78 Kwiecień 28, 2015 Autor tematu Udostępnij Kwiecień 28, 2015 Dziękuję bardzo, za zainteresowanie tematem Projekt jest w 100% edukacyjny. Dlatego też pozwalam sobie na pewne uproszczenia. W założeniu robot miałby robić "mapę" pustego pomieszczenia. Co do jazdy wzdłuż ścian zakładałem nawet umieszczenie dwóch czujników odległości na boku, aby utrzymywał stałą odległość od ściany, ale po Waszych komentarzach zastanawiam się, czy nawet na próbę /edukacyjnie/, bawić się w proste enkodery, czy zainwestować w coś bardziej zaawansowanego (trochę szkoda mi inwestować w projekt edukacyjny), czy spróbować zmienić założenia projektu... Link do komentarza Share on other sites More sharing options...
Wikkan Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 no i.. koty. A tak na poważnie precyzyjne określenie położenia robota jest bardzo trudne, można wykorzystać leprze enkodery, magnetometry, przyspieszeniomierze czy np. czujnik pomiaru przemieszczenia z myszy optycznej ale i tak nie daje to pewności dobrego określenia położenia robota. Na filmach z "zaawansowanymi" robotami orientacje w przestrzeni zapewniają kamery, skanery itp. jak np. A tu masz tyle że robot to symulacja z dokładnie określoną pozycją. Zainteresuj się konstrukcjami Micromouse, one też muszą orientować się w własnym położeniu i mapować otoczenie. Link do komentarza Share on other sites More sharing options...
Albi78 Kwiecień 28, 2015 Autor tematu Udostępnij Kwiecień 28, 2015 Dzięki wielkie za rady - wydawało mi się, że to będzie stosunkowo prosty projekt, ale już widzę, że bardzo się myliłem, bo musiałbym za mocno uprościć założenia projektu. Faktycznie na początek zacznę chyba od Micromouse. Projekt planuje zrealizować na Arduino i będzie to mój pierwszy projekt robota. W Arduino siedzę już od jakiegoś czasu i z powodzeniem udało mi się stworzyć kilka dość rozbudowanych projektów z wykorzystaniem GPS-a, czy BlueTooth-a, a teraz przyszła pora na włączenie w to mechaniki. Dlatego nie chcę przesadzić, ani z budżetem, ani ze stopniem trudności. Przy okazji mam jeszcze jedno pytanie - czy możecie pomóc mi zidentyfikować jaki czujnik (wydaje mi się, że to któraś wersja SHARP-a) założony jest na tym robocie? - bo wygląda na to, że jest to podobna koncepcja do mojej, z tym, że mapa nie jest wymiarowana, ani super dokładna, ale zrealizowanie podobnego projektu było by dla mnie bardziej niż satysfakcjonujące. Niestety ten bangalorean english trochę mnie przerasta i nie wiele rozumiem z tego, co ten gość tłumaczy 🙁 BTW. Link który wrzucił kol. Wikkan jest niesamowity. Link do komentarza Share on other sites More sharing options...
MirekCz Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 Ten czujnik to sharp, coś w stylu http://robodudes.com/podczerwieni/49-gp2y0a21yk0f-10-80cm.html (nie wiem czy dokładnie ten sam). Nie spodziewaj się od niego dokładności na poziomie jednego mm, ale przy małej obróbce / uśrednianiu sygnału można osiągnąć przyzwoite rezultaty. Pamiętaj tylko o dosyć ograniczonym zasięgu (dla wymienionego jest to zasięg w granicach 10-80cm) Link do komentarza Share on other sites More sharing options...
Wikkan Kwiecień 28, 2015 Udostępnij Kwiecień 28, 2015 Prawdopodobnie to analogowy czujnik taki jak Sharp GP2Y0A41SK0F. Na filmie widać że czujnik skanuje tylko najbliższe otoczenie wiec nie ma on dużego zasięgu. Co do filmów to na forum jest temat poświęcony ciekawym filmom . Link do komentarza Share on other sites More sharing options...
Albi78 Kwiecień 29, 2015 Autor tematu Udostępnij Kwiecień 29, 2015 W związku z dalszymi przemyśleniami dotyczącymi określenia pozycji robota zastanawiałem się nad rozwiązaniem wykorzystywanym w myszkach optycznych. Z tego co mi się wydaje dokładność/rozdzielczość tego typu czujników byłaby bardziej niż wystarczająca, w dodatku można było by równocześnie odczytywać dwie współrzędne przesunięcia. Znalazłem nawet wątek na forum , w którym ktoś z powodzeniem próbował zaadaptować takie rozwiązanie, z wątku wynika, że kluczowa dla prawidłowego działania czujnika jest odległość czujnika od podłoża. "Organoleptycznie" 😉 stwierdziłem, że moja mysz optyczna spokojnie działa podniesiona jakieś 5-7mm nad podkładkę, czy w przypadku robota MicroMouse, prześwit pod podwoziem rzędu tych właśnie wartości uniemożliwiałby robotowi działanie? Jeśli brnę w złą stronę ze swoimi przemyśleniami sprostujcie mnie proszę. Link do komentarza Share on other sites More sharing options...
Elvis Kwiecień 29, 2015 Udostępnij Kwiecień 29, 2015 Moim zdaniem czujnik z myszki nie bardzo sie nadaje sie. Nie wiem jaka masz myszke, ale te ktore testowalem dzialaja dokladnie tylko gdy sa docisniete do plaskiego podloza. Co wiecej podloze nie moze byc zbyt gladkie czy blyszczace. Czujnik daje informacje o przesunieciu od poprzedniego odczytu, wiec wszelkie bledy sie sumuja. W przypadku myszy to nie problem, ale w przypadku robota moze powodowac duze bledy. 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ę »