Skocz do zawartości

Pozycjonowanie micromouse wg kilku różnych czujników


l153k

Pomocna odpowiedź

Witam,
dążę do zbudowania MM, za dnia walczę z czujnikami, w nocy myślę nad algorytmem.

Na podstawie enkoderów będę w stanie obliczyć zarówno aktualną pozycję robota na płaszczyźnie, jak i kąt, w jaki jest skierowany. I w idealnym świecie to by wystarczyło, ale jeśli postawię go na starcie minimalnie obróconego, to w końcu przetrze ściany. Tak więc chcę też żeby trzymał się w równej odległości od ścian na podstawie analogowych dalmierzy po bokach, i gdy będzie okazja, poprawiał się gdy będzie znał dokładny dystans do ściany przed nim.

Problem w tym, że jedne i drugie dane nie zawsze będą się ze sobą zgadzać. Np. robot jedzie równo od ścian według dalmierzy, ale według enkoderów zasuwa w tym momencie na przełaj przez ściany-bo na początku robot miał być ustawiony pod kątem 0st. (tak zakładają enkodery), a był pod kątem 5st. Dalmierze skorygowały błąd ustawienia, ale teraz "enkoderowy czujnik pozycji i obrotu" myśli że robot jedzie w kierunku -5st.

Jak w takim razie pogodzić te dane? Poprawiać wyliczaną pozycję i kąt kiedy tylko da się je dokładnie ustalić za pomocą dalmierzy? Czy są jeszcze jakieś inne, sprytniejsze metody?

Link do komentarza
Share on other sites

Ja w moim mm enkoderów używam do pomiaru odległości, i stabilizowania prędkości obrotowej silników. Pozycje względem ścianek koryguje za pomocą dalmierzy.

Chociaż nie jest to do końca doskonałe. Przy korzystaniu z żyroskopu trzeba uwzględniać kąt obliczony na podstawie enkoderów, dzięki czemu dużo płynniej i dokładniej robot będzie robił zakręty. Przy czym wydaje mi się że po prostu przed rozpoczęciem zakrętu zeruje się kąt obliczony z enkoderów.

Link do komentarza
Share on other sites

u mnie żyroskopów brak.

Czyli co, jak jest jakiś pewny pomiar z dalmierzy to nadpisuje on wartość obliczoną z enkoderów? Np:

-jak zmiana odległości od jakiejś ściany przez jakiś czas równa się zero, to kąt=0, 90, 180 lub 270

-jak robot dojedzie do ściany na wprost, zaokrąglij pozycję do jakiejś pełnej wartości

O to chodzi?

Link do komentarza
Share on other sites

Harnas, w przypadku micromouse'a nie trzeba uwzględniać kąta obliczonego na podstawie enkoderów jeśli korzystamy z żyroskopu. Pomiary z żyroskopu są odporne na poślizgi, nierówne ustawienie, nierówną wielkość kół oraz nierówną powierzchnię (w przeciwieństwie do enkoderów). Ja całkowicie zrezygnowałem z enkoderów podczas ustalania orientacji robota.

l153k, korygować orientację możesz przez dwa czujniki skierowane w przód. Odejmujesz jedną wartość od drugiej i w ten sposób można wywnioskować jaki jest kierunek robota. Korygowanie pozycji jest łatwe, uwzględnia się tylko odczyty z czujników skierowanych na boki. Orientację jest znacznie trudniej korygować. Można zrobić jakiś filtr który będzie korygował orientację robota (według enkoderów/żyroskopu) wtedy gdy jedziemy równolegle do ściany (według wskazań dalmierzy).

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.