Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Dlaczego warto uczyć się składać klocki Lego

...czyli o tym jak diwpaj z drużyną przegrali turniej ponieważ nie mieli w dzieciństwie klocków Lego.

Jako że interesuję się programowaniem i większość klasy o tym wie, zostałem wyznaczony jako „myśliciel”, zwany niekiedy też algorytm-mejkerem, czy po prostu programistą. No nic, kilka dni przed samym turniejem pobrałem środowisko graficzne, pobawiłem się w nim trochę „na sucho”, poznałem możliwości programu i zapoznałem się z działaniem podstawowych jego funkcji. Do Katowic pojechałem "na pewniaka", mimo że nigdy nie miałem styczności z tym robotem – reszta teamu miała okazję bawić się nim podczas warsztatów organizowanych u nas w szkole.

W autobusie którym jechaliśmy już na miejsce spotkałem się z resztą zespołu, omówiliśmy jeszcze raz swoje zadania – ja byłem tam jedynie od tworzenia odpowiednich algorytmów, reszta teamu miała za zadanie albo składać robota, wspomagać mnie przy zabawie z programem, lub i jedno i drugie.
Przyjechaliśmy na miejsce kilka(naście) minut przed czasem, więc kilka osób z drużyny postanowiło wyskoczyć na papierosa, a ja i jeszcze jeden kolega omawialiśmy dokładną strategię – mimo że do czasu zobaczenia przeszkód nie znaliśmy nawet typu zadań.
Po kilku minutach zostaliśmy zaproszeni do sali, gdzie miały odbywać się główne zawody w konkurencji której najbardziej się obawiałem – sumo. Kto zna ten pewnie wie o co chodzi, dla tych którzy nie wiedzą – chodzi o walki odpowiednio przystosowanych robotów na arenie w kształcie koła umieszczonej na delikatnym podwyższeniu. Sposobem na zniszczenie przeciwnika jest zepchnięcie go poza arenę, lub uderzenie w niego taki sposób, aby obrócił się on kołami do góry. Walki odbywały się w systemie dwurundowym, w przypadku remisu miała odbywać się runda trzecia, rozstrzygająca.
Na stworzenie kompletnego, działającego zestawu drużyny dostały 1,5 godziny + czas trwania rozgrywek drużyn walczących przed nami – w tym wypadku mieliśmy ogromne szczęście, ponieważ byliśmy czwarci w kolejce. Ustaliłem mniej-więcej ile czasu ma odbywać się każda z czynności – pracowaliśmy na zestawie Lego Mindstorm który naprawdę nie był skomplikowany, dlatego uznałem że skonstruowanie robota właśnie z tych klocków zajmie 30 minut, które ewentualnie miałem przedłużyć do 45 minut. Jak wyszło – nawet nie pytajcie. Na całą konstrukcję (która i tak okazała się wadliwa, ale o tym później) czekałem ponad 80 minut – zatem zostało nam jedynie 10 minut na przetestowanie algorytmu pisanego „na sucho”, w dodatku na bardzo prowizorycznej arenie zbudowanej z kilkunastu białych kartek A4.
Pierwsze zaprogramowanie i odpalenie robota – 5 sekund czeka, po czym na ekranie pokazuje się niezbyt przyjemny komunikat „soft terror”. Przeleciałem jeszcze raz algorytm – nie było w nim [prawie] żadnego błędu. Wgraliśmy dla pewności program jeszcze kilka razy, aż w końcu przyszedł mi do głowy pomysł – program nie wykonuje się bo… czujnik koloru jest za nisko i nie jest w stanie on wykryć żadnego koloru, dlatego przesyłał on błędną wartość do instrukcji warunkowej. Zamocowaliśmy (chociaż nie, zamocowaliśmy to zbyt mocne słowo, po prostu „umiejscowiliśmy”) czujnik tak aby stał w miarę stabilnie. Gdy podchodziliśmy z robotem do areny mieliśmy sprawny, prawidłowo działający algorytm, jednak tuż przed odpaleniem robotów czujnik kolorów wyleciał z swojego miejsca – włożyłem go, jak później się okazało nieprawidłowo.
Walczyliśmy z drużyną z Gliwic, gdy odpaliliśmy nasze roboty poczekały one swoje regulaminowe pięć sekund, po czym ruszyły. Tfu, ruszył – wystartował jedynie robot drużyny przeciwnej, ponieważ jak się okazało zapomniałem zaimplementować czynności która miała się wykonać gdy robot zbliży się do czarnej linii, wyznaczającej granice ringu, a z powodu złego umiejscowienia czujnika koloru wykrywał on kolor opon naszego robota, co sprawiało że robot stał. Ot, po prostu stał. Robot z Gliwic ewidentnie zdziwił się tą sytuacją i po podjechaniu do naszego robota też postanowił stanąć – złośliwość rzeczy martwych jak to mówią. Dostaliśmy dodatkowe kilka minut, podczas których zmieniłem całkowicie algorytm, tym razem na bardziej wadliwy i zaraz po stanięciu w szranki z przeciwnikami robot wyjechał sobie z ringu i tym samym skazać nas na porażkę. Linefollowera robiliśmy już dla zabawy, jednak wbrew pozorom był on lepiej stworzony niż robot walczący – wtedy podeszliśmy do tematu z pewnym dystansem, składanie robota zajęło mniej czasu, a ja miałem więcej czasu na testowanie różnych algorytmów.

Dlatego przestrzegam każdego, kto chciałby zacząć bawić się w cybernetykę – pamiętaj, naucz się składać klocki Lego.

PS. Dla ciekawskich - mój awatar to zdjęcie właśnie z tego turnieju :> 

sprzęt programowanie hobby

Komentarze

0 nowych
cyryllo   16 #1 09.04.2014 12:07

Temat ciekawy tylko mało zdjęć :P

diwpaj   3 #2 09.04.2014 12:45

@cyryllo - postaram się wysępić jeszcze kilka zdjęć, ale wrzucę je dopiero jak wrócę z szkoły.

Szadzio   7 #3 09.04.2014 14:40

Gdyby kogoś interesowały zdjęcia lub filmiki mogę podzielić się własnymi materiałami z szkolnego projektu :) zabawa przednia!

https://onedrive.live.com/redir?resid=C3E63EC7843E3642!2402&authkey=!AEB4AB-...

lordjahu   20 #4 09.04.2014 14:42

Z tego co mam w szafie można by spróbować zrobić z 10 takich urządzeń :)

Shaki81 MODERATOR BLOGA  38 #5 09.04.2014 16:32

A jak dla mnie to brakło jakiegoś filmiku pokazującej waszą walkę.

TadueusTaD   7 #6 09.04.2014 16:33

Bardzo ciekawe, a pewnie i trochę śmiechu było przy montowaniu tego :D Szkoda, że Mindy są takie drogie :/

diwpaj   3 #7 09.04.2014 18:38

@Shaki81 - filmików nie daliśmy rady kręcić, ponieważ aparat nam się rozładował, a komórka obsługuje interpolowane HD, które w praktyce wygląda gorzej niż źle.

InYourHead   5 #8 10.04.2014 06:59

Taki turniej to bardzo fajna sprawa, też miałem przyjemność w tym uczestniczyć. Niestety powyższy program do "kodowania" robota ma często dziwne zachowania- bloki decyzyjne rzadko zachowują się jak powinny :p I jeszcze gdy przypomni mi się kalibrowanie czujnika, dla którego czarny wcale nie był czarny :P

Dimatheus   21 #9 10.05.2014 17:54

Hej,

Jednym słowem mówiąc robot popełnił sepuku. :) Ale czytało się fajnie.

Pozdrawiam,
Dimatheus