logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak stworzyć efektywną pętlę główną dla robota mobilnego?

czaina 13 Lis 2006 00:36 2670 13
  • #1 3218471
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Cytat:
    czaina: jasne
    Czy to ma być system operacyjny?
    Gdzieś słyszałem, że ktoś w taki robocie maił system operacyjny. I nie bardzo wiem niby co on miał by robić. Może mi ktoś z grubsza nakreślić?


    System operacyjny to po prostu główna pętla programu z dodanymi warunkowymi wywołaniami procedur.

    W jednym z robotów miałem po prostu pętlę cyklicznie odczytującą wszystkie czujniki plus szybką reakcję na krawędziówki. W przypadku braku nowego bodźca kontynuowana była ostatnia decyzja. Cała filozofia polega na odpowiednim dobraniu sposobu reagowania na bodźce czyli na taktyce.

    Zapewne wielu śmieszy szumna nazwa system operacyjny. Nazywam to tak gdyż swego czasu już ktoś nazwał elementy taktyki programami. Na przykład program ataku czy ucieczki. Są to programy bo składają się na ogół ze zbioru procedur. Czyli coś w czym wywołuje się różne programy teoretycznie można więc nazwać systemem operacyjnym ;)

    Odpowiadając na Twoje pierwsze pytanie - nie, nie pracuję nad systemem operacyjnym tylko nad nowym typem czujnika i sposobem ukrycia się przed większością obecnie stosowanych.
  • #2 3218566
    paw789
    Poziom 18  
    Posty: 298
    Pomógł: 20
    Ocena: 68
    Móglbyś napisać coś o tym nowym typie czujnika?

    Czy będąc studentem Politechniki uzyskaleś jakąkolwiek pomoc przy budowie robota? Na co można liczyć (oprócz skorzystania ze sprzętu, urządzeń) ?
  • #3 3218876
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Politechnika składa się głównie z biurokracji. Póki moim opiekunem był dziekan pieniądze były od tak, zawsze i na wszystko, oczywiście w rozsądnych granicach. Na Mechatronice moi znajomi z koła naukowego mają jeszcze lepiej i dla nich zakup czujnika za 20tys. zł to po prostu kolejna pozycja na liście wydatków.

    Niestety jeśli działasz sam, lub nie masz poparcia u odpowiednich ludzi to na zwrot 30zł czekasz miesiąc najmarniej.

    Dużo lepiej wygląda sprawa ze sprzętem. W każej pracowni coś się wala po kątach i jak się do odpowiednich osób uśmiechniesz możesz ten sprzęt dostać. Na wydziale Elektrycznym udało mi się nawet do warszatu dostać. Niestety pan Lucek mimo szczerych chęci nie zawsze dobrze robi mechanikę :D

    Czujnik najchętniej bym utajnił aż do zawodów, niestety zgodnie z przepisami zostaną opublikowane pod koniec grudnia. Wtedy to będę bronił pracę magisterską o nim.

    Wracając zaś do głównego tematu to na Politechnice możesz uzyskać sporą pomoc merytoryczną. Wielu profesorów i doktorów zafascynowanych jest aktywnymi studentami. Nawet jak sami na temacie się nie znają zaraz skierują cię do "kolegi" który w tym siedzi od lat.
  • #4 3222791
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Mocno mi się wydaje, że o tym czujniku już pisałeś na forum ;)
    Pytanie tylko zostaje jakie informacje z niego dostajesz? (tzn czy tylko pozycję przeciwnika czy też coś więcej?)

    Jak się obronisz to daj linka do mgr. Z chęcią przeczytam.
  • #5 3223131
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Tak masz rację, wygałem się już wcześniej :D

    Dostaję informacje o względnej pozycji przeciwnika, bez względu na jego kolor i kształt, pod warunkiem że jego sylwetka przecina linię końcową.

    Niestety wczorajsze testy wykazały iż kamera ov6620 jest do niczego. Mimo to z braku czasu zakończę magisterkę tak jak jest, tylko z notką iż na lepszym sprzęcie ta idea będzie działać.

    Przy okazji odkryłem jak zawodne są obecnie stosowane czujniki. Przy zastosowaniu odpowiedniego pancerza można być praktycznie niewykrywalnym dla ultradźwięków i podczerwieni. Dopiero zespół odpowiednio ustawionych czujników ze świetnym oprogramowaniem wnioskującym ze strzępków informacji mogło by coś takiego wykryć.
  • #6 3225410
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Przetestuj co się dzieje z czujnikiem, jeśli robot ma wbudowane diody nadające zmodulowanym IR większej mocy, możesz sprawdzić to chociażby pilotem od TV

    Kiedyś nam się wydawało że czujniki Sharpa się nadają do sumo:
    http://www.konar.iiar.pwr.wroc.pl/uploads/download/raporty/Raport1-bolo.pdf
    Teraz już znamy prawdę ;)
  • #7 3225899
    paw789
    Poziom 18  
    Posty: 298
    Pomógł: 20
    Ocena: 68
    Jestem bardzo niemile zaskoczony wynikami testu w dokumencie który link umieścileś. Teraz to chyba w rozsądniej cenie i o przyzwoitej dokladności pozostają mierniki ultradźwiękowe.
    Znaćie jakieś modele gotowych mierników odleglośći, które nadawalyby się do robota sumo?
  • #8 3225952
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Zanim zainwestujesz w ultradźwięki sprawdź, na pierwszy lepszym który Ci wpadnie w ręce, jak czujnik reaguje na kąt 45 stopni oraz na kanty pudełka.

    Dźwięki świetnie odbijają się od płaskich powierzchni i przy odpowiednim pochyleniu czoło robota jest niewykrywalne. W pierwszej rundzie mój robot miał spore kłopoty z niezdarnym Melexem. Działo się tak tylko dlatego że przeciwnik miał bardzo ostre krawędzie i gładki pancerz. Ultradźwięki wracały do moich czujników tylko przy niektórych kątach.

    Oczywiście jeżeli przewidzisz takie zakłócenia w systemie robota to OK.

    Dodano po 7 [minuty]:

    Zapomniałem o pytaniu McRancora. Wymieniłem obiektyw w kamerze na szerokokątny i przy okazji musiałem zainwestować w filtr IR. Teraz moja kamera jest prawie ślepa na podczerwień. W ramach testów do magisterki sprawdzałem jak system reaguje na czujniki IR z modulacją RC5. System zignorował je.
  • #9 3234494
    daniel93
    Poziom 29  
    Posty: 1673
    Pomógł: 30
    Ocena: 94
    Są jakieś inne czujniki, które oprogramuje bascomem?
    Bo sharpy nie radzą sobie, ultradźwięki także :/
  • #10 3234915
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Mój układ wizyjny po zaprogramowaniu wysyła na 3 do 4 lini stany wysokie lub niskie, obecnie tylko zapalając diody, które oznaczają kierunek. Docelowo może być to odczytane przez inny procesor.

    Ultradźwięki i wszelkie czujniki podczerwieni działają, ale tylko przy dobrym oprogramowaniu i odpowiednim ich ustawieniu. Osobiście polecam użycie jak największej ilości czujników o zasięgu do 90cm.

    Inną możliwością, trochę ryzykowną, jest sytem pasywny. Skoro przeciwnik wysyła sygnały świetlne i dźwiękowe, to po skierowaniu się w jego stronę powinno dać się je odebrać. Sygnał na wprost jest bardzo silny, więc nawet najgorszy czujnik go wykryje. Z zewnątrz nikt się nie zauważy podstępu :D
  • #11 3239039
    daniel93
    Poziom 29  
    Posty: 1673
    Pomógł: 30
    Ocena: 94
    Dobre :d
    A ja się martwiłem, że nie potrafię ARMów programować i nic nie poradzę :)
    Dobry robot może być niewidoczny dla IR i ultradźwięków, ale wykrycie jego sygnałów może być skuteczne...
    Gorzej z wykryciem Twojego czujnika, który nic nie emituje i doskonale lokalizuje :)
  • #12 3239483
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Programowaniem nieznanych Ci procesorówu nie musisz się przejmować. Firma Atmel oferuje gotowe pakiety startowe. Jest to zestaw procedur niezbędnych do zabootowania systemu. Nie przeczytałeś źle. Tam jest nawet gotowa funkcja boot loadera i procedury konfigurujące wszystkie ważne rejestry.

    Do tak przygotowanego pakietu dodajesz już tylko własne funkcje napisane w C. Dzięki temu mój program testowy z PC różni się od gotowego, który uruchomiłem na ARMie, tylko paroma wstawkami w pliku h.

    Co do niewykrywalności ... fakt, mój robot (jeśli się wyrobię) będzie miał bardzo słabe echo we wszystkich widmach i nie będzie prawie nic emitował. Jest za to jedno wielkie ALE. Mam kłopoty z szybkością pracy kamery i analizy obrazu. Ponadto wiele robotów wykrywa kontakt fizyczny. Przy pomocy czujników dotykowych lub pomiaru prądu silników wiedzą kiedy kogoś pchają lub kiedy są pchani.

    Także nie masz co się przejmować. Każdego da się wykryć i nikt nie jest doskonały. Ostatecznie na ogół wygrywają lepsze programy.
  • #13 3241871
    daniel93
    Poziom 29  
    Posty: 1673
    Pomógł: 30
    Ocena: 94
    Szkoda, że jestem jeszcze za młody na C :) (po prostu z powodu wieku nie potrafię go zapamiętać) Ale jak będę często używał bascoma do C powinien być łatwy...

    Ja bym na Twoim miejscu się nie chwalił :D
    Mój bot ma wygrać poziomem IQ.
    Niestety muszę wymyślić jak zlokalizuje Twojego bota...


    Hmmm przed chwilą przyszedł mi do głowy pomysł - Każdy robot emituje pewną rzecz ;)
  • #14 3242011
    czaina
    Poziom 14  
    Posty: 89
    Pomógł: 2
    Ocena: 3
    Tu masz rację, ale tylko wtedy gdy ma włączony PWM, a jak zrobi sobie PWM na wielokrotność 50Hz to nic Ci z takiej detekcji :D

    Co do C, to jest to tak na prawdę podstawa. Język ten wcale nie jest trudny, a jeśli wybierasz się na studia to i tak będziesz musiał go opanować. Na początek wystarczy parę aplikacji na PC, a potem szybko odkryjesz, że programy napisane w C praktycznie są niezależne od platformy. Przedsmak tego masz już w Bascomie, który dziła zarówno na 51 jak i AVR.

    Piszesz, że masz wygrać inteligencją. Ilu miałeś sparing partnerów? Moi znajomi byli pewni siebie, pierwszy sparing zrobili dzień przed wyjazdem .... potem w pociągu pośpiesznie poprawiali robota po serii przegranych :D

Podsumowanie tematu

✨ Dyskusja dotyczy tworzenia efektywnej pętli głównej dla robota mobilnego, która cyklicznie odczytuje czujniki i reaguje na bodźce, kontynuując ostatnią decyzję w przypadku braku nowych sygnałów. Autor rozwija nowy typ czujnika, który lokalizuje przeciwnika na podstawie względnej pozycji, niezależnie od koloru i kształtu, pod warunkiem przecięcia linii końcowej. Testy wykazały, że kamera OV6620 jest niewystarczająca, a obecne czujniki ultradźwiękowe i podczerwieni są zawodnie wykrywane, zwłaszcza przy zastosowaniu odpowiedniego pancerza. Zalecane jest stosowanie wielu czujników o zasięgu do 90 cm oraz zaawansowanego oprogramowania do analizy sygnałów. Wskazano na problemy z odbiciami ultradźwięków od płaskich powierzchni i kątów robota, co może powodować niewykrywalność. Autor podkreśla, że programowanie w języku C jest podstawą i ułatwia przenoszenie oprogramowania między platformami, a gotowe pakiety startowe Atmel ułatwiają implementację. W dyskusji pojawiły się także uwagi o pasywnych systemach wykrywania sygnałów emitowanych przez przeciwnika oraz o ograniczeniach szybkości analizy obrazu. Wsparcie merytoryczne i sprzętowe na Politechnice jest możliwe, choć zależne od zaangażowania i biurokracji.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA