Skocz do zawartości

Robot z pamięcią.


Pomocna odpowiedź

Przerabiałem zliczanie odległości na podstawie danych z silników, niestety nie zdaje to egzaminu.
Dlaczego? czy były zbyt duże poślizgi, prędkość nie można było rozwinąć , w jaki sposób liczyłeś, stosowałeś enkodery?

Nie stosowałem enkoderów. Po prostu sterowałem silnikami i na podstawie funkcji prędkości od napięcia zliczałem odległość. Będy niby nie były duże ale już na dystansie metra miałem różnicę rzędu 15 cm.

Funkcja prędkości od napięcia.

Nie stosowałem enkoderów. Enkodery to już nie jest "zbieranie informacji z silników", myślę, że jakbym zastosował enkodery to byłoby dokładniej. 🙂

Widzę, że się nie zrozumieliśmy ;]

Enkodery dostarczają Ci informacji zwrotnej z kół, czyli, zakładając brak poślizgu w połączeniu kół z silnikami, z silników. Tzw. sterowanie z zamkniętą (ujemną) pętlą sprzężenia zwrotnego, fajny bajer ;]

Natomiast sterownie prędkością/odległością traktując jako informację zwrotną napięcie podawane na silnik jest niczym innym jak sterowaniem z otwartą pętlą, które nie ma praktycznie racji bytu (wiesz, sterujesz w rzeczywistości napięciem na podstawie tego napięcia, takie masło maślane lekko).

I tak najlepiej byłoby wykorzystać czujniki przemieszczenia, przy każdym kole np. żeby dodatkowo uzyskać informacje o obrotach, ale myślę, że w większości przypadków spokojnie można założyć brak poślizgu na kołach (o ile to nie sumo).

rasta,

Ja całkowicie zdaję sobie z tego sprawę, naprawdę nie musisz mi tłumaczyć jak działają enkodery. Już niedługo będę miał nawet odpowiednie wykształcenie, aby to wiedzieć, na razie jestem na 10 semestrze. 😋

Ja zrozumiałem pytanie autora tematu na tej podstawie, że zapamiętuje co mikrokontroler wysyła do silników i robi tą samą sekwencję podczas drugiego przejazdu. Nie ma to racji bytu, bo jak masz stosunkowo długą trasę i dużo zakrętów to błąd rzędu 2mm na starcie rośnie ci do kilku centymetrów na mecie.

Jeżeli chodzi o enkodery to myślę, że dokładność byłaby większa.

Jeszcze najlepszym rozwiązaniem byłoby połączenie czujników i zapamiętywania trasy. Robot mógłby "z grubsza" przewidzieć w jaką stronę jest zakręt, dzięki temu zareagować wcześniej. Szczególnie przydatne byłoby to przy pokonywaniu zakrętów o kącie prostym, na filmach widzimy często, że robot wpada na pełnej i często przejeżdża zakręt. Można byłoby to przewidzieć i kazać mu zwolnić.

Ja myslę, że i tak jeżeli chodzi o LF to algorytm jest bardzo ważny.

I nic więcej do dodania nie pozostało ;]

Japońce zapamiętują trasę, co doskonale widać na filmiku z tematu o silnikach, pierwszy wolny, na zakrętach sobie pika, 2 i 3 na prostych pełny gaz, zakręty wolniej. Tylko nie mogę rozgryźć co mają na celu te piknięcia, może sędziowie je zliczają 😃

Po mojemu te piknięcia to bajer dla zawodnika - widzi (a właściwie słyszy) czy robot nie zauważył któregoś zakrętu (a tym samym w drugim przejeździe nie wpadnie z max prędkością w zakręt).

Zaproponuję coś zupełnie innego mianowicie robot z kamerą i dobrym algorytmem przetwarzania obrazu wystarczy analiza 2D. Potrzeba dużej mocy obliczeniowej ale robot analizował by trasę i zbierał informacje o zakrętach z dużym wyprzedzeniem, wykorzystywał by przetworzone dane do budowy i ewentualnej korekty zapamiętanej trasy to dopiero była by predykcja. Czy to jest technicznie możliwe jak szybka musi być analiza obrazu żeby to w ogóle miało sens? Co o tym myślicie?

Kamerka jest wykorzystywana w LF natomiast widziałem najszybsze Japońskie LF które używają czujników. Wystarczy procesor o dużej częstotliwości i dobry algorytm.

Obsługa czujników zajmuje znacznie mniej czasu uC niż kamerki dlatego uważam że czujniki są lepszym wyjściem.

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...