Skocz do zawartości
Elvis

Linefollower z kamerką

Pomocna odpowiedź

Planuję zbudować robota wyposażonego w kamerę na pokładzie. Robot będzie posiadał "standardowy" zestaw czujników, czyli klasyczne czujniki odbiciowe, ale chciałbym, żeby "widział" część trasy przed nim.

Na tą chwilę nie jestem pewien, czy będzie to bardziej linefollower, czy micromouse. Na pewno nie będzie to robot na poziomie zawodów. Moim celem jest raczej sprawdzenie potencjału czujników opartych na przetwarzanie obrazu.

Mam taką prośbę - czy mógłby ktoś z forumowiczów przygotować serię zdjęć trasy linefollowera lub micromouse, wykonanych z perspektywy robota? Staram się przygotować w OpenCV kod analizujący obrazy, ale nie mam w tej chwili "prawdziwej" trasy.

Jako ciekawostkę opiszę aktualny stan pracy:

* Obraz wzorcowy z kamerki

* Obraz po przeliczeniu na widok z góry

* Wersja po filtracji

Udostępnij ten post


Link to post
Share on other sites

wow, pomysł dobry, przewijał się może nawet kilka razy na forum, ale szczerze, to nie widziałem, żeby ktoś coś zrobił w tym kierunku. Co będzie jednostką analizującą obraz z kamery? Jakby nie patrzeć OpenCV jest dość zasobożerne nawet jak na Raspberry Pi i inne podobne komputerki. Jedyne co mi przychodzi na myśl to NVIDIA Jetson TK1, ale w Polsce jest chyba tylko jeden egzemplarz... Czy może na razie obraz wysyłany do PC, tam analizowany i informacje zwrotne znowu do robota? Muszę przyznać, że bardzo ładnie dobrane parametry przy filtracji do binarki 😉

Udostępnij ten post


Link to post
Share on other sites

Możliwe że źle myślę ale czy ta transformacja obrazu na widok z góry jest potrzebne? To zabiera takty procesora, a na zwykłym obrazie z kamery widać to samo. A tak będzie potrzebny aby jakiś przelicznik z pixeli na centymetry, np. jeśli jest czarna kreska z góry na dół przez cały obraz to wiesz że zostało jeszcze minimum np. 10cm trasy prostej więc jedziesz na pełnych obrotach a jeśli linia skręci w którąś stronę to masz jeszcze 10cm na reakcje żeby zwolnić do zakrętu.

Udostępnij ten post


Link to post
Share on other sites

drozdbartek, moim celem jest sprawdzenie, co da się zrobić. Planuję wykorzystać ARM Cortex-A8 lub A9. Na początek będę testował A9 zainstalowany na płytce netbooka. Pewnie później zmienię na coś innego - płytka netbooka jest po prostu za duża. Podobny problem byłby z układem NVIDIA, chociaż to bardzo ciekawe rozwiązanie.

Braders94, masz pełną rację, w przypadku line followera, pewnie to jest najlepsze rozwiązanie, analizować obraz bez widoku z góry. Jednak w przypadku micormouse, wygodniej byłoby widzieć labirtynt z góry i stąd mój pomysł przetwarzania. Zobaczę, potestuję różne rozwiązania.

Wbrew pozorom zarówno micromouse, jak i linefollower mają wiele cech, które bardzo upraszczają zadanie. Tło stanowi duży kontrast z trasą/labiryntem, trasa jest całkiem płaska. Poza tym nie sądzę, żeby udało się uzyskać dane w czasie rzeczywistym, stąd zachowanie czujników odbiciowych, a informacja z kamerki jako źródło dodatkowych danych (np. informacji o zakrętach, czy mapie labiryntu).

Udostępnij ten post


Link to post
Share on other sites

Elvis, świetna robota. Dobrze, że ktoś z odpowiednią wiedzą zabrał się wreszcie za temat wykorzystania kamerki w robotyce! Czekam na kolejne postępy - oczywiście osobiście jestem najbardziej zainteresowany wykorzystaniem jej w LFie. Do tej pory widziałem 3 roboty wykorzystujące kamerki w tym celu, żaden jednak nie działał zbyt dobrze.

Udostępnij ten post


Link to post
Share on other sites

Ja osobiście niewiedze zastosowania kamery w MM. Kamera nie widzi całego labiryntu więc mysz musi jeździć po całym labiryncie, kamera nie widzi czy 3 kratki na wprost jest ślepą uliczka czy nie.

Tu się mogę się mylić więc mnie nie bijcie za to co napisałem.

Udostępnij ten post


Link to post
Share on other sites

Bić chyba nikt nie ma zamiaru 🙂 , ale pozwolę się nie do końca zgodzić. Załóżmy, że kamerka pozwala widzieć 3 kratki, dzięki temu można byłoby uzyskać mapę labiryntu nie wjeżdżając we wszystkie zakamarki. Oczywiście, nie dałoby się uniknąć zawracania, ale byłaby szansa na przyspieszenie wyszukiwania, a o to właśnie chodzi. Dodatkowo kamerka powinna w miarę łatwo pozwolić na wykrywanie kierunku jazdy, tzn. wykrywanie odchyłki od jazdy równolegle do ścian.

Udostępnij ten post


Link to post
Share on other sites

Co do MicroMouse:

Udostępnij ten post


Link to post
Share on other sites

@Traker

A takie coś jest zgodne z regulaminem ? Bo jeśli tak to ok kamera przyspieszy wyszukiwanie,
ale jeśli nie to nic nie da kamera która widzi 3 kratki do przodu bo trudno będzie rozpoznać czy to jest ślepa uliczka czy nie.

Dodatkowo kamerka powinna w miarę łatwo pozwolić na wykrywanie kierunku jazdy, tzn. wykrywanie odchyłki od jazdy równolegle do ścian.

W tym zadaniu według mnie dużo lepsze są dwa sharpy analogowe.

Udostępnij ten post


Link to post
Share on other sites
@Traker

A takie coś jest zgodne z regulaminem ? Bo jeśli tak to ok kamera przyspieszy wyszukiwanie,

Trzeba przeczytać regulamin konkretnych zawodów. Nie pamiętam, aby gdzieś zabroniona była zmiana rozmiarów po starcie - podobnie jak w minisumo 😉

Udostępnij ten post


Link to post
Share on other sites

Witam, podepne sie troszke do tematu. Z góry powiem, że budowa robotów nie jest mi obca (mini sumo czy lf zrobione zostalo na AVR'ach) i mam pytanko odnosnie lf'a z kamera. Z tego co sie orientowalem jest opencv na rpi, ktora wykrywa kolory. I moje pytanie. Czy ciezko byloby zaprogramowac rpi by korzystajac z tej biblioteki lecial jak normalny lf? nie chodzi mi o osiagi, wazne by jechal w miare za linia, moze byc wolno. O co chodzi: prawdopoodbnie bede wrobiony w zrobienie inzynierki lf z kamera. Poogarnialem w necie projekty i wiem, że pewno wykorzysta sie rpi plus dedykowana kamera do rpi plus sterowniki silnikow itp ale to dla mnie temat luzny, jednak nie znam sie na programowaniu rpi, gdyz nie mialem doczynienia z nia. Planuje kupic sobie plytke plus jakas ksiazke by poczuc to programowanie( kwestia miesiaca podejrzewam i bedzie juz skill), jednak chcialbym wiedziec na co sie pisze, czy jest to mozliwe do wykonania przeze mnie;p

Pozdrawiam i z gory dziekuje za odpowiedzi

Udostępnij ten post


Link to post
Share on other sites

Rpi programuje się tak samo jak komputer na linuksie. Kurs do open cv jest na forum, i wykrywani koloru jest łatwe tylko czy kalinka się wyrobi żeby każda klatkę przeanalizować.

Kamera w odcieniu szarości by starczyła do takiego czegoś zawsze szybciej będzie.

Coś ostatnio bum na roboty z kamerami jest.

Udostępnij ten post


Link to post
Share on other sites

Czyli proponujesz nie kupowac dedykowanej kamery do rpi tylko taka czarna biala?

Udostępnij ten post


Link to post
Share on other sites

Kamerki czarno-białej raczej nie kupisz, chyba że przemysłowa. Co do Rpi to poza atrakcyjna cena, projekt jest juz mocno przestarzaly. Procesor jest bardzo powolny, polecalbym cos na cortex-a. Bardzo ciekawie wyglada beaglebone. Kamerke dedykowana mozna kupic, tylko po co? Kilka razy taniej kupisz kamerke do laptopa podpinana po usb. Podlaczasz i dziala. Co do przetwarzania, to mysle ze spokojnie kilka klatek na sekunde wyjdzie. Ale czy wiecej to nie bylbym pewien. Ja planuje zadtosowac tradycyjnie czujniki odbiciowe, a kamerke jako dodatkowy czujnik. Sam odczyt obrazu z kamery zajmuje ok. 40ms na plytce z nebooka (cortex-a9, opencv, 320x240)

Udostępnij ten post


Link to post
Share on other sites

@Elvis

A ile zajmuje czasu obróbka jednej klatki,
czyli pobranie, konwersja na odcień szarości i wykrycie koloru?

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