Skocz do zawartości
Treker

[Algorytmy] Sposoby wykrywanie linii przez roboty LineFollower

Pomocna odpowiedź

Witam,
Chciałbym przedstawić tekst mojego autorstwa na temat wykrywania linii w roobtach typu LineFollower, na podstawie angielskiego arta. http://www.wrighthobbies.net/guides/linefollower.htm

(Oczywiście za zgodą autora wersji ang.) Nie jest to dosłowne tłumaczenie. Na razie jest to tylko część, może komuś się przyda, do końca ferii (2 tygodnie) postaram się uzupełnić ten tekst o zdjęcia, kody źródłowe i może jakieś filmiki.

Pozdrawiam

Wykrywanie lini w robotach typu LineFollower.pdf

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Witam. niby wszystko ok. ale przy stanach logicznych:

Możliwe stany logiczne to:

001 – Przesuwanie od linii na lewo

010 – Centralnie na linii

011 – Lekko na lewo od środka linii

100 – Przesuwanie od linii na prawo

101 – Nieużywany

110 – Lekko na prawo od środka linii

111 – Nieużywany

brakuje 000 - a te pojawia się gdy robot właśnie wyjedzie czujnikami za linę podczas pokonywania zakrętu. Aby robot uniknął "przestrzelenia" wystarczy aby właśnie podczas stanu 000 wykonywał ostatnio robioną czynność. To przestrzelenie występuje w przypadku gdy robot musi pokonać zakręt mniejszy niż jego promień skrętu przy zatrzymaniu jednego koła.

Tutaj w praktyce, 3 czujniki są na przedzie robota i w momencie gdy przód wyjedzie nawet poza line dalej kreci ten sam zakręt :

Co do 5 czujników to chyba tylko po to by nie było efektu wyjeżdżania robota, wtedy jak już zadziała krańcowy czujnik, można drugim kołem zakręcić do tyłu. Sporo robotów (3czujniki) kręci kołami przeciwnie co skutkuje szarpaniem robota.

Stany można opisać bardzo czytelnie w ten sposób:

Stan1:

st1.jpg

W tym przypadku robot powinien jechać prosto więc mikrokontroler podaje sygnał do sterownika tak aby dwa silniki (prawy i lewy) kręciły kołami do przodu.

stan2

st2.jpg

Jeżeli robot wyjedzie za linię czujniki pokażą stan jak na rysunku obok. Robot aby wrócić na linię musi skręcić w prawo więc zatrzymuje prawy silnik. Stan 3 jest analogiczny do stanu drugiego z tym że linia jest na przeciwnym czujniku – robot skręca w lewo.

Udostępnij ten post


Link to post
Share on other sites

Dziękuje za uwagi, to nie jest ostateczna wersja, ale umieściłem ją bo może komuś się przyda. Później wszystko uzupełnię.

Pozdrawiam 😉

Udostępnij ten post


Link to post
Share on other sites

To może przykleić temat ? 🙂, Film już jest. Jak dotąd nie ma konkretnych informacji dla początkujących.. To jest pierwsza tego typu chwała ci za to Treker 🙂 Pozdrawiam.

ps. Bez problemu możesz użyć mój film jak będziesz robił coś większego.

Udostępnij ten post


Link to post
Share on other sites

Na razie muszę się uporać z remontem "warsztatu", a później zabiorę się za dokończenie tego, dojdą kody, ale tylko w BASCOM AVR 😕 i trochę więcej grafiki.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Zadam może głupie pytanie ale skąd robot ma wiedzieć że to koniec trasy. Na niektórych filmach z zawodów widać jak robot się zatrzymuje, gdy dojedzie do końca.

Udostępnij ten post


Link to post
Share on other sites

Na zagranicznych zawodach często stosuje się uruchamianie i zatrzymywanie robotów na pilota, to jest logiczne ponieważ roboty uzyskują prędkości powyżej 120cm/s.

Udostępnij ten post


Link to post
Share on other sites

Nie ma czegoś takiego, ewentualnie można ustalić, ze gdy robot spotka linie przecinającą trasę pod kątem 90* to się na niej zatrzymuje.

Udostępnij ten post


Link to post
Share on other sites

moim skromnym zdaniem dwa czujniki blisko siebie wystarczają w zupełności...

co koledzy powiedzą na temat doswiadczeń z dwoma czujnikami?

Udostępnij ten post


Link to post
Share on other sites

Gdy będą dwa czujniki to robot musi jechać pomału ponieważ może wylecieć na zakręcie i nawet tego nie zauważy. Jak są cztery czujniki to właściwie niema takiego ryzyka.

Udostępnij ten post


Link to post
Share on other sites

ale chodzi mi o taki układ gdy oba czujniki znajdują się w takiej odległości od siebie, iż naraz mogą widzieć linie.

Udostępnij ten post


Link to post
Share on other sites

mam pytanie czy kod źródłowy robota zależy od podłoża? Mam tu na myśli to czy jest różnica gdy tor składa się z jasnej linii i ciemnego podłoża lub ciemnej linii i jasnego podłoża? Bo jak wiadomo od jasnej powierzchni światło się odbija a od ciemnej nie

Udostępnij ten post


Link to post
Share on other sites

Kiedy jest biała linia zazwyczaj jeden czujnik widzi linię - ma stan wysoki(zależy od odległości między nimi i szerokości linii), a kiedy linia jest czarna zazwyczaj wszystkie czujniki poza jednym mają stan wysoki.

Może tak: kiedy linia jest biała, czujnik ja widzący ma stan wysoki.

kiedy linia jest czarna, czujnik ją widzący ma stan niski.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

W sumie też się zawsze nad tym zastanawiałem jak to jest gdy linia jest biała lub czarna. Dzięki za wytłumaczenie 😉

Udostępnij ten post


Link to post
Share on other sites

przepraszam, że odkopuję temat, ale zastanawia mnie jedna rzecz związana z tematem.

Przeglądając regulaminy różnych zawodów LF zauważyłem, że zdarzają się różnice w szerokości linii. Zazwyczaj jest to 15mm ale zdarzają się też 20mm. Optymalnie by było aby czujniki były umieszczone tak, że gdy środkowy jest centralnie na linii to dwa boczne linii nie widzą, lecz gdy linia "ucieka" środkowy i boczny powinny być w stanie jednocześnie widzieć linię (zgodnie z tą rozpiską 010 -> 011 -> 001 : linia ucieka na prawo). Budując roboty zakładacie konkretną szerokość linii czy macie jakiś złoty środek, który działa na 15 i 20mm liniach?

Udostępnij ten post


Link to post
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!

Gość
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...