Popularny post adrian Napisano Marzec 10, 2015 Popularny post Udostępnij Napisano Marzec 10, 2015 Na początku chciałem się przywitać ze wszystkimi na forum. Od razu muszę napisać, że bardzo wiele zawdzięczam stronie www.forbot.pl, ponieważ wiele razy mogłem liczyć na pomoc fachowców. Moja przygoda z robotyką zaczęła się około 2 lata temu. W ramach pracy inżynierskiej zbudowałem prototyp robota zbierającego piłki tenisowe. Była to bardzo prymitywna konstrukcja, bez żadnego algorytmu sterowania (jedynie lista instrukcji jakie ma wykonać robot - tzn. podjechać do piłki, zebrać ją na swoją platformę, a następnie opróżnić pojemnik z piłką). W pracy skupiłem się jedynie na chwytaku, przeprowadziłem konieczne obliczenia i symulacje, a konstrukcja robota była jedynie dodatkiem. Tak naprawdę w tym projekcie nie było nic szczególnego, może poza obsługą pracy kilku serwomechanizmów. Mimo to nauczyłem się wiele i miałem podstawy do kontynuowania swojej przygody z robotami. I w ten sposób w ramach pracy magisterskiej postanowiłem podejść poważniej do tematu. Założyłem sobie, że w robot będzie działał autonomicznie, jednak nie skupiałem się już na samym aspekcie pobrania piłki, ponieważ miałem to zrobione wcześnie. Najważniejsza dla mnie była komunikacja bezprzewodowa oraz obróbka obrazu i dobór odpowiedniego algorytmu. Robot w niczym nie przypominał pierwszej wersji. Najpierw całość zamodelowałem w programie 3D, aby dobrać wstępne gabaryty i rozmieścić wszystkie elementy w rozsądny sposób. Poniżej pierwsza wersja robota w programie CAD: Aby robot działał autonomicznie, potrzebowałem znać jego prędkość w danej chwili, w tym celu postąpiłem jak większość– zrobiłem własne enkodery ze starej myszki. Dla ciekawych rozwiązania zamieszczam poniżej zdjęcie konstrukcji mechanicznej (na zdjęciu brakuje transoptora szczelinowego, który później był doklejony): Laserowe wycinanie w plexi pozwoliło mi zapewnić dokładne wymiary, tak by nie było problemu z osiowością itd. Koniec końców testowałem robota na silnikach z wbudowanym enkoderem, ale te też radziły sobie całkiem dobrze. Jedynym minusem było to, że zabierały więcej miejsca i miałem problem z kompaktowym umieszczeniem płytki Arduino i zasilania. Kolejnym etapem był dobór komunikacji. Całość miała wyglądać tak, że kamera obserwuje środowisko – gdy zobaczy piłkę do tenisa wysyła konkretne dane do robota za pomocą modułu Bluetooth HC-06. Robot musiał mieć pewien algorytm jazdy. Pierwsza wersja zakładała stałą pozycję startową, następnie jazdę po łuku do punktu styczności i na koniec jazdę po prostej, co przedstawia poniższy wykres (technika odometrii): I schemat w Simulinku: Drugi algorytm zakładał jazdę wzdłuż prostej – coś na zasadzie linefollowera, tylko ze sprzężeniem zwrotnym od kamery: Gdy robot znajduje się po prawej stronie prostej ma skręcać w lewo i analogicznie gdy jest po lewej stronie skręca w prawo, tak by był jak najbliżej prostej. Oba algorytmy były optymalizowane za pomocą regulatora PID, co w mniejszym lub większym stopniu pomogło. Niestety ze względu na zbyt mało czasu, nie dopracowałem tego do końca, ale taka była idea. Ważną kwestią była realizacja funkcji skrętu – dlatego musiałem tutaj wykonać wszystko bardzo dokładnie. Zdecydowałem się na rozwiązanie wykorzystujące serwomechanizm: Kolejnym etapem była obróbka obrazu pozyskanego z kamery Logitecha. Wykorzystałem bibliotekę OpenCV i jej mozliwości. W razie pytań mogę opisać bardziej szczegółowo to zagadnienie. Program wykrywał głównie kolor, dlatego do testów potrzebowałem w miarę jednolitego tła. Następnie za pomocą odpowiednich wzorów wykrywał środek ciężkości i w zależności od algorytmu podjeżdżał do piłki i zatrzymywał się przed nią, co właściwie było ostatnią rzeczą. Pozostało jeszcze wiele rzeczy do dopracowania, ale czas gonił i musiałem skupić się na opisywaniu całości – a pod koniec tuż przed samą obroną zerwałem więzadła w kolanie, co właściwie nie pozwoliło mi na nic więcej. Efektem całości jest poniższy filmik. Wiem, że wiele rzeczy jest do poprawienia – wiele też zrobiłem na około, ale mimo wszystko chciałem Wam pokazać moją pierwszą poważniejszą konstrukcję. Zapraszam do komentowania i z chęcią odpowiem na każde pytanie, bo na pewno nie wszystko będzie dla Was jasne. 4 Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Marzec 10, 2015 Udostępnij Marzec 10, 2015 Przeniosłem opis do innego działu, bo to wcale nie jest taka "początkująca" konstrukcja, radzi sobie bardzo fajnie 🙂 Link do komentarza Share on other sites More sharing options...
dexter Marzec 10, 2015 Udostępnij Marzec 10, 2015 Cześć, tak czytam ten opis i w sumie nie wiem czy przeoczyłem czy co ale nie wiem gdzie jest ta kamera śledząca piłkę? Skąd robot wie jak daleko ma do piłki? Po co korzystałeś z Simulinka? Pozdrawiam Dexter Link do komentarza Share on other sites More sharing options...
adrian Marzec 11, 2015 Autor tematu Udostępnij Marzec 11, 2015 Siemka, jeżeli chodzi o kamerę to zwykle znajdywała się ona gdzieś nad robotem, tak by miała dobry podgląd pod obszar w którym może jeździć robot i gdzie może znajdować się piłka - oczywiście za każdym przy zmianie sceny musiałem kalibrować kamerkę, ale że nie miałem zbyt wiele testów to nie trzeba było robić tego aż tak często. I wtedy już analogicznie w zależności z którego algorytmu - jeżeli 1 algorytm to robot nie musiał wiedzieć jak daleko ma do piłki, bo jechał przez pewien wyliczony czas z określoną prędkością, a 2 algorytm - na robocie był znacznik zielony, o czym faktycznie nie wspomniałem, ale ta metoda działała dużo wolniej i jazda robota w niczym nie przypominała linii prostej - brakło mi czasu na poprawki. A Simulinka używałem właśnie do przetestowania mojego algorytmu, musiałem mieć też jakiś podkład teoretyczny - mogłem zadać w Simulinku np. prędkość jazdy po łuku i prędkość jazdy po prostej i wiedziałem, gdzie robot dojedzie i porównywałem to z rzeczywistością (ale w żaden sposób nie łączyłem tego z robotem podczas jego pracy). Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Marooned Marzec 11, 2015 Udostępnij Marzec 11, 2015 Masz ode mnie 5 za podejście: I w ten sposób w ramach pracy magisterskiej postanowiłem podejść poważniej do tematu. Dokładnie tak wyobrażam sobie sensowne podejście inż./mgr. Jest myśl inżynierska, wykonanie, ocena produktu, kolejna iteracja. W takich chwilach wspominam moich znajomych i ich prace inż./mgr, które czasem wołały o pomstę do nieba. Jeden plus, że mieliśmy ciętego gościa od seminarium i ku "wielkiemu zaskoczeniu" co niektórych, odrzucił (niestety, tylko jedną) pracę argumentując "brak myśli inżynierskiej". Facet próbował przepchnąć.. teoretyczny opis gaśnic :| (kierunek elektronika i informatyka, co by nie było wątpliwości). 2 Link do komentarza Share on other sites More sharing options...
mactro Marzec 12, 2015 Udostępnij Marzec 12, 2015 Fajny robot 🙂 Najbardziej ciekawi mnie wykrywanie piłki: czy na podstawie obrazu z jednej kamery jesteś w stanie określić położenie piłki na całym korcie? Albo przynajmniej połowie? Jak Twój algorytm radzi sobie z różnymi nawierzchniami, zmiennym oświetleniem itp.? Planujesz dalej rozwijać swoją konstrukcję, czy odkładasz projekt na półkę? Link do komentarza Share on other sites More sharing options...
adrian Marzec 12, 2015 Autor tematu Udostępnij Marzec 12, 2015 Jasne, że planuje dokończyć projekt tylko nie w chwili obecnej, za dużo obowiązków niestety, ale w wakacje planuje zamontować chwytak (pewnie trochę zmieniony, a raczej na pewno) tak by w pełni przetestować zbieranie tych piłek. Jeżeli chodzi o wykrywanie tej piłki dla różnego tła, to po odpowiedniej filtracji algorytm radzi sobie bardzo dobrze, nawet jak dołoży się kolejne piłki. W moim przypadku zdecydowanie na plus działa jaskrawość koloru piłki do tenisa. Jeżeli chodzi o zasięg to docelowo na całym boisku miały by być dwie kamery. Wiadomo, że im dalej tym mniejszy obiekt po przefiltrowaniu i pojawiają się szumy, ale czego wymagać od kamerki za 150 zł (jak dla mnie i tak zaskakujący dobry obraz był). A jeżeli pytasz o dokładne wykrywanie obrazu to głównie filtr HSV i tam odpowiednie ustawienie poziomów, a potem standardowe operacje morfologiczne itd. Szczerze mówią sam jestem ciekaw jak to wyjdzie na koniec. Link do komentarza Share on other sites More sharing options...
BlackJack Marzec 16, 2015 Udostępnij Marzec 16, 2015 Zauważ że przy takiej konstrukcji ramy robota jaką przyjąłeś, chwytak do piłeczek staje się zbędny. Wystarczy że robot wjedzie nad piłkę i wrzuci sobie ją do pojemnika, który tworzy ci się między silnikami napędowymi. Link do komentarza Share on other sites More sharing options...
adrian Marzec 19, 2015 Autor tematu Udostępnij Marzec 19, 2015 W tej konfiguracji nie zmieści się piłka, tam jest jakieś 2 cm miejsca. Chwytak to tylko jeden z pomysłów (i to chyba najgorsza opcja bo znacznie wydłuży cały cykl). Mam kilka koncepcji, także spoko jest nad czym pracować, ale dzięki za rady. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »