Skocz do zawartości

optymalna predkosc robota


bad_pawel

Pomocna odpowiedź

Jak już ktoś poruszył ten temat:

jakie prędkości (tak, prędkości, ew obroty i średnice kół) są wg. Was optymalne dla LF i minisumo (tu dochodzi jeszcze moment, w LF zakładam, że wystarczy taki, żeby robot w miarę przyśpieszał...)?

Link do komentarza
Share on other sites

Nie wiem czy coś takiego jak prędkość optymalna dla LF istnieje, czym szybszy robot tym lepszy. Granicą tutaj jest to czy go wysterujesz. Najszybsze roboty jakie widziałem to tak pi*drzwi 1,5m/s jeździły - średnicę kół dobierasz do silników tak, aby uzyskać prędkość w jakiej jesteś w stanie go wysterować + mały zapas.

Co do minisumo, tutaj większym ograniczeniem są wymiary, wsadzasz jak najmocniejsze i jak najszybsze silniki jakie znajdziesz, większość robotów jest dość wolna. Myślę, że prędkość powyżej 0,5m/s jest już dobra, oczywiście jeżeli kosztem prędkości nie tracisz na momencie.

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

Przy wysokich prędkościach w minisumo problemem jest utrzymanie robota na dohyo - konkretnie częstostliwość sprawdzania czujników linii, która przy dużej ilości czujników o wyższym priorytecie jest niska, przez co robot może przestrzelić krawędź, lub jeśli czujnik nawet odczyta stan to przy za szybkim robocie nie zdążysz cofnąć.

Link do komentarza
Share on other sites

Zarówno w minisumo jak i w LF potrzebne są silniki o jak największej prędkości i jak największym momencie i najlepiej do tego jak najlżejsze.

Roboty minisumo jeżdżące z prędkością powyżej 1m/s są już naprawdę bardzo szybkie i często jest problem z utrzymaniem ich w dohyo. LF natomiast, żeby jeździł na "europejskim poziomie" na pewno musi rozwijać prędkość powyżej 2m/s.

Ale żeby wykorzystać prędkość robota zastosowane silniki muszą być odpowiednio mocne a konstrukcja lekka. Im większy moment tym robot będzie miał większe przyspieszenie i będzie bardziej zwrotny. Dzięki dużemu momentowi robot będzie też mniej "bezwładny", ponieważ mocniejszy silnik daje lepsze możliwości hamowania.

Roboty minisumo mają problem z utrzymaniem się w dohyo nie z powodu zbyt małej częstotliwości sprawdzania czujników, tylko właśnie ze zbyt słabej przyczepności (poślizg przy zawracaniu) i ze zbyt małej mocy silników (opóźnienie zanim silnik się zatrzyma i zacznie kręcić w przeciwnym kierunku). Nowoczesne mikrokontrolery (np. nowe AVRki) mają wbudowane przetworniki ADC mogące próbkować z częstotliwością 2MSps (Dwa miliony razy na sekundę), więc opóźnienie z tego wynikające ma znaczenie drugorzędne, równie małe opóźnienie otrzymamy gdy czujniki będą współpracowały z komparatorami i układem przerwań uC. Robot który ma większą prędkość i moc silników jest w stanie np. zajeżdżać przeciwnika od boku lub tyłu dzięki większej prędkości i zwrotności, a robot uderzający na wprost w przeciwnika z większą prędkością może przepchnąć przeciwnika nawet mając gorszą przyczepność (zasada zachowania pędu).

W LF sprawa wygląda podobnie, robot im szybszy tym lepiej ale musi mieć odpowiednio duży moment i przyczepność aby był zwrotny (utrzymywał się na zakrętach) i żeby miał duże przyspieszenie (szybciej rozpędzający się silnik i brak poślizgów).

Link do komentarza
Share on other sites

Chociaż jak się patrzę na robota typu 3PI z Pololu to odnoszę wrażenie, że algorytm ma zdecydowanie większe znaczenie w porównaniu do zastosowanych silników.

Tor ma obłe kształty co rzadko pewnie zdarza się (do tego stopnia) na jakichkolwiek zawodach... ale mimo wszystko ja jestem pod wrażeniem 😉

Link do komentarza
Share on other sites

Wypowiem się i ja w temacie prędkości linefollower'ów. Ponieważ znacznie podniósł się poziom prędkości robotów na zawodach w ciągu ostatniego roku, zauważyłem niestety pewne następstwo tego faktu. Otóż większość najszybszych aktualnie w Polsce linefollowerów teoretycznie powinna być dyskwalifikowana na zawodach, z powodów zapisów w regulaminach dotyczących powrotu na linię po wypadnięciu z trasy w miejscu wypadnięcia lub przed nim (a nie za nim co jest normalne). Jednak w rzeczywistości nikt na to nie zwraca uwagi. Aktualnie najszybsze lfr'y w Polsce są dość duże, osiągają prędkości trochę powyżej 1m/s i poruszają się mało precyzyjnie po linii, szczególnie jeśli się spojrzy na pokonywanie zakrętów prostych. Taki robot nie podąża dokładnie po linii, zakręty pod kątem prostym są dosłownie ścinane po skosie, co z mojego punktu widzenia powinno bardzo często kończyć się niezaliczeniem przejazdu.

W tej chwili w Polsce, zawody linefollowerów odbywają się na dość specyficznych trasach, tzn. dużo dość ciasnych zakrętów, zakręty pod kątem prostym, skrzyżowania, pętle o dość małym promieniu skrętu. Dokładne przejechanie po tego typu trasie wiąże się z koniecznością zmniejszenia prędkości maksymalnej robota znacznie poniżej 1m/s i nie wynika to z kiepskiego wykonania czy oprogramowania robota, tylko po prostu z fizyki. Zauważyłem jednak, że po takiej trasie najszybsze roboty przejeżdżają niejako ją bardzo mocno uśredniając (dość mocne ścinanie zakrętów pod kątem prostym), czy wypadanie za linię i powrót w miejscu znacznie oddalonym od miejsca wypadnięcia. Taki przejazd oczywiście jest zaliczany ponieważ w jakimś stopniu odwzorowywał kształt toru. Dziwi mnie, że nikt nie wpadł w Polsce na pomysł stosowany na zagranicznych zawodach. Otóż główna linia ma po obu stronach linie równoległe, które wyznaczają tor jazdy dla robota, jeśli robot wyjedzie poza te linie boczne, czy je ewentualnie przetnie, następuje albo niezaliczenie przejazdu albo są doliczane sekundy karne. Tego typu rozwiązanie powinno wymusić na najszybszych robotach większą dokładność podczas przejazdu, co przełożyłoby się na jakość robota.

Zawody chociażby w Japonii są nastawione na prędkość, więc na torze są zakręty o dużych promieniach, jest dużo odcinków długich prostych, ale są też kąty proste oznaczane liniami bocznymi obok trasy głównej.

Link do komentarza
Share on other sites

Zawody chociażby w Japonii są nastawione na prędkość, więc na torze są zakręty o dużych promieniach, jest dużo odcinków długich prostych, ale są też kąty proste oznaczane liniami bocznymi obok trasy głównej.

Też na to zwróciłem uwagę, trasy są zupełnie inne. Może dobrze by było zrobić 2 konkurencje (oczywiście można startować tym samym lf), jedną "techniczną", taki slalom, ciasna i krótsza (i tutaj szanse byłyby bardziej wyrównane, mocne, szybkie silniki nie odgrywałyby aż takiej robi), a drugą "prędkościową", używając terminologii zimowej - zjazdową.

Link do komentarza
Share on other sites

@nes86: jaki AVR ma ADC 2MS/s? Popularne mają przy pełnej rozdzielczości ok. 9kHz, przy obniżonej można podciągnąć (ale bez przesady). Najprostsze ARMy mają 400kS/s. Nie wyobrażam sobie nawet jak AVR - taktowany nawet 20MHz, miałby obsłużyć tyle pomiarów (10 instrukcji na pomiar? o przerwaniach można zapomnieć) i coś sensownego jeszcze przy okazji robić.

Co nie zmienia faktu, że nawet jeśli próbkujemy 4 czujniki, to mamy z każdego 2kS/s, czyli bardzo szybki minisumo przejedzie 0.5mm :] a linefollower 1mm (gorzej jeśli jest dużo więcej czujników). Większym problemem są zakłócenia, szczególnie te nielosowe, okresowe (PWM), które się próbkuje - trzeba pamiętać o odpowiednim filtrowaniu zasilania i pomiarów. Można też zwrócić uwagę na opóźnienie generowane przez same czujniki, chociaż to akurat jest niewielkie.

Odnośnie opytmalnej prędkości: trzeba pamietać o zasadzie zachowania pędu (jeśli uderzymy z 3 razy większą prędkością w przeciwnika niż on nas,to prawdopodobnie go przepchniemy), bezwładności robota (podczas hamowania na linii najpierw się zatrzymujemy, potem cofamy - potrzebne sa mocne silniki, dobra przyczepność i kontrukcja, która zapewni nam, że się nie "podniesiemy"), oraz o tym, że współczynnik tarcia podczas toczenia jest wyższy niż podczas poślizgu. Podsumowując:

- jeżeli nie widzimy, to jeździmy zależnie od obranej taktyki

- szarża najszybciej jak się da,ale na tyle, żeby trafić w przeciwnika, a w razie czego móc uciec z linii

- podczas przepychania jeżeli nie mamy kontroli przyczepności, lepiej nie szaleć

- LF oczywiście najszybciej jak jest w stanie jechać, by przejechać zgodnie z regulaminem

Link do komentarza
Share on other sites

Apropos japońskich zawodów LF - bardzo mi się spodobał motyw z oznakowaniem zakrętów krótkimi odcinkami linii prostopadłymi do trasy po stronie zakrętu; dzięki temu osiągane przez roboty prędkości są niemal kosmiczne...

Widziałem różne filmiki, niestety na obecną chwilę nie udało mi się znaleźć nic lepszego (ale jest kilka "perełek":

Link do komentarza
Share on other sites

Dobrze że ktoś w końcu porusz ten istotny temat, najlepiej do tej dyskusji byłoby utworzyć osobny dział.

Robot wypada z trasy, kiedy znajdzie się poza trasą całą swoją powierzchnią. Tak mi powiedzieli organizatorzy na Robotic Arenie. Nie zauważyłem ścinania zakrętów pod kątem prostym po skosie, jak ktoś ma jakieś filmiki z takim pokonywaniem zakrętu to chętnie zobaczę. Ale jeżeli robot ma wrócić przed lub w miejscu w którym wypadł, to punkt, w którym ostatecznie musi się zmieścić robot po wypadnięciu z linii, to poprzedni punkt na przodzie robota. Jeżeli ma ok 250mm długości, to tyle linii może praktycznie pominąć. Ja uważam, ze nie ma się co czepiać, o ile robot ewidentnie nie wypada całym swoim obrysem poza linię.

Co do tras to tu rzeczywiście powstał duży problem. Z jednej strony mam szybkie roboty przegubowe, a z drugiej wolniejsze roboty bardzo dobrze trzymające się linii.

Powiecie algorytm, tu się nie zgodzę. Algorytm jest bardzo istotny, ale to nie on tutaj decyduje. To jest sprawa właśnie silników. Nie mamy w Polsce dostępu do szybkich silników z dużym momentem, trzeba się decydować na szybkość (przegub) albo dokładność.

Teraz kwestia zawodów. Tor prosty, czy kręty. I tu mamy wielkiego wała, bo zwykły robot nie ma szansy z szybkim przegubem na trasie typu Robotic Arena 09, natomiast, jak się okazało, przeguby całkowicie nie radzą sobie na trasach typu Rybnik 2010. Tak czy inaczej ktoś będzie pokrzywdzony.

Rozwiązanie jest tylko jedno: tak jak pisał rasta, konkurencja szybkościowa i dokładnościowa. Ale to rozbija całe zawody linefollower. Nie oszukujmy się, konkurencja FTL w Polsce jeszcze raczkuje, nie ma wystarczającej ilości robotów aby organizować zawody w dwóch konkurencjach.

Póki co jakąś namiastką sprawiedliwości byłyby przejazdy eliminacyjne na dwóch trasach : prostej i krętej. Tu powstaje problem z trudnością i długością trasy. Przepraszam za użycie nazw robotów, ale chodzi o to, żeby szanse robotów "Wonsz" i "Sznupek" się wyrównały. O ile "Wonsz" musi zwolnić na krętej trasie, żeby wyrównać się ze "Sznupkiem"? A jak ma wyglądać trasa finałowa? To są wszystko duże problemy, na które narazie niestety nie ma rady.

PS. Jak widać na powyższym filmiku nawet japońcy mają problemy z dostosowaniem szybkości do tras.

Link do komentarza
Share on other sites

OldSkull, np taki AVRek ATXmega128A1. Zapomniałeś chyba, że technika idzie trochę do przodu. Do ADC w ogóle nie musisz używać przerwań, wyniki z konwersji możesz obsługiwać przy pomocy DMA. Procesor taktowany 32MHz może robić naprawdę dużo sensownych rzeczy obsługując dwa przetworniki ADC próbkujące z częstotliwością 2MS/s.

W powyższym poście chodziło mi tylko o to, że opóźnienie wykrycia linii ma marginalne znaczenie w porównaniu z opóźnieniem reakcji silników.

Link do komentarza
Share on other sites

OldSkull

Używana przeze mnie ostatnio ATmega 1280 ma ADC, który przy 8 bitowej dokładności można taktować z częstotliwością 1MHz. Konwersja zajmuje średnio 13 taktów. Tak więc:

13 * 1us = 13us (na jedną konwersję)

13us * 4 = 52us (czas potrzebny na obsługę 4 czujników)

Ten czas jak napisał nes86 jest niczym w porównaniu z opóźnieniami, które związane są z czasem reakcji silników.

Stąd też kompletnie nie rozumiem zdania:

Nie wyobrażam sobie nawet jak AVR - taktowany nawet 20MHz, miałby obsłużyć tyle pomiarów (10 instrukcji na pomiar? o przerwaniach można zapomnieć) i coś sensownego jeszcze przy okazji robić.

Żeby nie być gołosłownym pozwolę sobie wkleić fragment noty katalogowej:

By default, the successive approximation circuitry requires an input clock frequency between 50 kHz and 200 kHz. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be as high as 1000 kHz to get a higher sample rate.

Jeśli linefollower przejeżdza powiedzmy 1m w 1sek. To w ciągu 1 ms przejedzie 1 mm. W ciągu takiej milisekundy możesz sobie zrobić, z 5 uśrednień, spokojnie obsłużyć obsługę przerwania od ADC i jeszcze sporo czasu zostanie.

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.