Skocz do zawartości

Wizyjne wykrywanie falstartów - sumo


Chechli

Pomocna odpowiedź

Projekt jest jedną z prób rozwiązania problemu falstartów w zawodach robotów, z dedykacją dla sumo wszelkiej kategorii wagowej. Jego pierwsza wersja została wykorzystana na Robomaticonie 2012 i działała bez zarzutu, jednak obsługa z punktu widzenia sędziego nie była zbyt dopracowana, co w wolnym wakacyjnym czasie udało mi się naprawić. Jeżeli stwierdzicie, że jeszcze jakaś funkcja byłaby bardzo przydatna, to piszcie, jak sie uda to zaimplementuję - sam zresztą mam jeszcze kilka pomysłów, kilka podsunął kolega ze studiów, ale to wszystko poczeka pewnie na kilka kolejnych deszczowych dni 🙂 No ale do rzeczy, co ten program potrafi.

W załącznikach jest już skompilowana wersja pod Windowsa

Sędziowanie oparte jest na widzeniu maszynowym (wystarczy podpiąć dowolną kamerkę pod usb) i OpenCV (wersja 2.3.1), interfejs Qt, dzwięk phonon (nie wiem jak z wieloplatrofmowościa tej ostatniej biblioteki, reszta na pewno niezależna od systemu), kompilowane pod ubuntu 10.04.

Program wspomaga pracę sędziego poprzez oznaczanie obszarów ruchu, nie zajmuje sie oceną ktory z robotów dokonał falstartu.

Obsługa jest następująca:

- sędzia klika przycisk Start,
- rozlega sie pojedyńczy dźwięk gongu i wraz z jego początkiem zaczyna sie odliczanie 5 sekund do rozpoczęcia walki (nagranie walki zapisywane jest w odpowiednim folderze, pod nazwą wpisaną w widocznym na screenie polu tekstowym),
- w połowie czasu odliczania rozpoczyna sie analiza obrazu - wcześniej zawodnicy wciskają przyciski startowe i zabieraja ręce, co niepotrzebnie zamazywało by wyniki, a ewentualne grube falstary i tak widac na nagraniu (gołym okiem zreszta też 🙂),
- podczas analizy obrazu podświetlane na czerwono są obszary ruchu, a ponieważ nic nie powinno sie ruszać to podświetlane są falstarty,
- po upływie 5 sekund odliczania sędziemu wyswietla sie obraz podsumowujący wykryte potencjalne falstarty (potencjalne, bo ruch publiczności w tle też zostanie podświetlony), może on od razu kliknąć przycisk Ok (walka jest kontynuowana) lub Sprawdź (w przypadku podejrzenia falstartu),
- Sprawdź otwiera nagranie odliczania, uaktywniają sie przyciski play/pause i suwak przewijania, na nagraniu wyswietla sie czas, wszystko to umożliwia sprawdzenie wszelkich interesujących szczegółów, np. który z robotów pierwszy popełnił falstart),
- sędzia kończy walke klikając Falstart lub nie stwierdza go i klika Ok (walka jest kontynuowana),
- sędzia moze zakończyc walkę, klikając Stop (jeżeli którys z robotów wygra przed czasem), lub odczekać do końca rundy (do wyboru rundy 2 i 3 minutowe, radiobox widoczny na screenie),
- i lecimy od nowa 🙂

Jakby ktoś pytał to przycisk kamera służy do wyboru kamery, indeksowane sa one w OpenCv od 0, żeby nie komplikować to w programie klikajac przeskakujemy na kolejne od 0 do 3, potem znów na 0 - brzmi zawile, ale ważne jest to, że jeżeli masz więcej niż jedna kamerę i chcesz zmienić źródło obrazu, to klikaj w ten przycisk, jak po 4 razach się nie uda to coś nie działa.

Cóz, to chyba by było na tyle, czekam na pytania i sugestie.

Jakby komuś udało/nie udało się uruchomić programu pod Windowsem to niech da znać (uruhcamiamy /release/Sumo.exe).

Jeżeli wyskoczy błąd braku dllek, to wszystkie potrzebne powinny być w folderze bin załacznika dla Windowsa. Aby z nich skorzystać można:

a) po prostu skopiować je do folderu pliku wykonywalnego, czyli release. Poprawiłem strukturę załącznika, więc nic nie trzeba robić, kto sciagnął może sam sobie przenieść z bin do release. Pozostałe sposoby zostawię w temacie, bo działają 🙂

b) skopiować je do folderu systemowego, np. u mnie C:\Windows\System32, potem można uruchomić ponownie komputer.

c) dodać folder do zmiennej systemowej Path: dla Windowsa 7 i chyba wszystkich nowszych Mój komputer -(prawym)->Właściwości->Zaawansowane ustawienia systemu (są po lewej)->Zmienne srodowiskowe (przycisk na dole). Potem wśród zmiennych systemowych szukamy Path i klikamy edytuj. Na końcu dopisujemy adres naszego folederu bin, oddzielony średnikiem od poprzednich, a wiec dopisujemy na końcu:

;C:\Sumo-build-desktop\bin

Oczywiście jeżeli to w tym miejscu rozpakowaliśmy program.

Jeżeli bedzie brakowało jeszcze jakichs dllek, to dajcie znać - u mnie musza byc, a dllek lepeij nie ściagać z neta.

Do skompilowania (jeżeli ktoś chce sam skompilować z kodu, a nie uruchomić) potrzebny jest QtCreator (instalacja prosta, aby otworzyc projekt otwieramy plik *.pro), OpenCV (trudniejsza ale dobrze opisana na stronie tej biblioteki) oraz phonon.

Sumo.zip

1228986578_IMG_502abd005c3595801.thumb.jpg.fc3dec72cdf3730cdc20029e29cb9cde.jpg

Sumo-build-desktop.zip

Sumo_zmiany.zip

Link do komentarza
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Z tego co słyszałem to ten system antyfalstartowy świetnie spełnił swoje zadanie. Super, że został dopracowany. Będziecie pracowali nad zdalnym startem robotów?

Opis tego systemu jest tragicznie napisany - ani ładnie, ani składnie. W wielu miejscach trzeba czytać po kilka razy aby się domyślić co autor miał na myśli.

Link do komentarza
Share on other sites

Rzeczywiście, miejscami się zamotałem w opisie, ale robiłem to po powrocie z roboty i dzisiaj na spokojnie trochę poprwiłem.

Co do odpalania programu to na linuxie powinno po prostu działać po rozpakowaniu, na windowsie trzeba skompilować, ale w najbliższym czasie postaram sie i tu dorobić.

ProeXtreme, jeśli asz na myśli zdalny start jako dostraczany przez organizatorów moduł liczący te 5 sekund to nie zamierzamy - program powinien całkowicie wykrywać falstarty, jak będzie trzeba dokładności większej niż 50ms to wystarczy podłączyc szybszą kamerę 🙂

Poza tym takie moduły by kosztowały, albo każde zawody musiały by mieć swoje albo trzeba by je sobie pożyczać, a program każdy chętny może odpalić, kamer teraz dostatek.

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

Żeby można było odpalić ten program pod Windowsem nie posiadając wszystkich wymaganych bibliotek trzeba skompilować go statycznie.

Szukanie niezbędnych *.dll jest trochę upierdliwe;d

Link do komentarza
Share on other sites

Dodałem wszystkie niezbędne dllki, opis w temacie, powinno już działać, jak jeszcze jakiejś dllki by brakowało to piszcie, wrzucę tutaj od siebie bo z neta lepiej nie ściągać podobno. Nie wiem jak będzie sie miała sprawa z systemamami 64-bitowymi, nie znam sie szczególnie na in formatyce, ale jak macie błędy to je opisujcie, bo na podstawie "nie działa" ciężko pomóc.

Link do komentarza
Share on other sites

Jeżeli wyskoczy błąd braku dllek, to wszystkie potrzebne powinny być w folderze bin załacznika dla Windowsa. Aby z nich skorzystać można:

a) skopiować je do folderu systemowego, np. u mnie C:\Windows\System32, potem można uruchomić ponownie komputer

b) dodać folder do zmiennej systemowej Path: dla Windowsa 7 i chyba wszystkich nowszych Mój komputer -(prawym)->Właściwości->Zaawansowane ustawienia systemu (są po lewej)->Zmienne srodowiskowe (przycisk na dole). Potem wśród zmiennych systemowych szukamy Path i klikamy edytuj. Na końcu dopisujemy adres naszego folederu bin, oddzielony średnikiem od poprzednich, a wiec dopisujemy na końcu:

Wystarczy, ze dll'ki beda w tym samym folderze co plik wykonywalny;)

Link do komentarza
Share on other sites

Już nie ma bin, cała jego zawartość jest w release (jak koniecznie chcesz możesz skopiować pliki *.dll do utorzonego przez Ciebie katalogu bin w folderze głównym i realizować warianty b lub c). Jak dokładniej Ci nie działa, coś wyskakuje, jaki masz system, ilu bitowy?

Link do komentarza
Share on other sites

Spojrzalem na kod zrodlowy i kompilacja pod windowsem Twojego projektu nie zadziala. Plik *.pro jest napisany typowo pod Linuksa.

Jezeli nie masz nic przeciwko to w wolnej chwili moge sprobowac wprowadzic zmiany umozliwiajace kompilacje pod windowsem oraz skompilowac program statycznie - wykluczy to koniecznosc rozpowszechniania aplikacji z dll'kami. Tylko trzeba sie wczytac w licencje Qt, bo wiem ze sa jakies obostrzenia dla aplikacji kompilowanych statycznie.

Link do komentarza
Share on other sites

Mi sie skompilował pod windowsem i działał 😋

Ale jakbys mógl go skompilowac statycznie, to będę wdzięczny, jak i pewnie kilku innych forumowiczów.

Licencja dla programów kompilowanych statycznie w QtCreatorze to GPL, na szczegółach licencji sie nie znam ale jak widać ten program też jest generalnie publiczny 🙂

Link do komentarza
Share on other sites

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ę »
×
×
  • 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.