Skocz do zawartości

[Micromouse, Linefollower] 2in1 - Pierwsza konstrukcja smd


Pomocna odpowiedź

Z dumą mogę stwierdzić, że wszystkie podzespoły zostały przetestowane i działają 🙂. Dlatego etap mechaniki i elektronik można uznać ze zakończony pozostał przedostatni etap czyli programowanie algorytmów.

Pozwoliłem sobie na zedytowanie mojego pierwszego posta w tym temacie, zamiast założeń i chęci opisałem konstrukcje taką jaka ostatecznie powstała. Zapraszam do przeczytania pierwszego postu jeszcze raz.

Tutaj powtórzę tylko ostatnie zdania:

Jest to chyba pierwszy mobilny robot z czujnikiem optycznym, a na pewno pierwszy MM na forum więc będzie można wiele rzeczy przetestować, porównać z innymi rozwiązaniami itp. Ja nie posiadam innej konstrukcji np. z enkoderami dlatego zachęcam was do dyskusji na ten temat.

Link do komentarza
Share on other sites

Kilka aktualności:

Napisałem program do Linefollowera, jest to nic nowego jak algorytm PID, choć na razie używam członów PD, nastawy nie są jeszcze idealnie dobrane bo to jednak bardzo czasochłonne zajęcie. Zauważyłem, że poza wartościami nastaw bardzo duże znaczenie ma dobór wartości dla poszczególnych stanów czujników.

Zabrałem się również za pisanie algorytmu do Micromousa, a przede wszystkim za algorytm pozwalający na przejechanie zadanej odległości. I tutaj już trochę nowości z uwagi na wykorzystanie czujnika optycznego. Postawiłem na algorytm poruszania się po zadanej trajektorii. Trajektoria zadana jest krzywą wielomianową Beziera st.3. Jest to bardzo przyjemna krzywa, którą zadać możemy za pomocą 4 punktów (początkowy, końcowy, oraz dwa kolejne określające styczne w tych punktach).

Algorytm działa mniej więcej tak:

Zadana krzywa dzielona jest na podkrzywe, których końce określają najbliższy punkt docelowy. Staramy się jak najszybciej dojechać do tego punktu, jak dojedziemy to jedziemy do następnego o tak do punktu końcowego.

Mysz cały czas porusza się do przodu za co odpowiada profiler prędkości, ma on za zadanie jedynie przyspieszanie i zwalnianie.

Co "chwilę" obliczany jest kąt między najbliższym punktem docelowym a punktem w którym znajduje się aktualnie środek obrotu myszy.

Za utrzymywanie się na trajektorii odpowiada algorytm PID który reaguje jedynie na błąd rotacji (stara się utrzymać mysz tak aby obliczany kąt był równy zero).

Więc tak na prawdę mysz porusza się po krzywej łamanej danej punktami na trajektorii im więcej punktów zadamy tym ruch powinien być gładszy.

Aktualnie słowo "chwila" oznacza pojawienie się nowego odczytu z czujnika, według noty czujnik przesyła 3000ramek/sek.

Co myślicie o takim podejściu?

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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