Skocz do zawartości

[Algorytmy] Sposoby wykrywanie linii przez roboty LineFollower


Treker

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
Link do komentarza
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.

Link do komentarza
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.

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

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

Link do komentarza
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

Link do komentarza
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
Link do komentarza
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?

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.