PozRobot 2011 – Wyniki naszych drużyn

Miło mi poinformować, że w tym roku ponownie wyruszyliśmy z trzema zespołami do Poznania. Były to zespoły: UJ Team Karel, UJ Team Valentino i UJ Team Izaak, utworzone ze zwycięzców Turnieju Robotów Walczących, oraz eliminacji do tegoż.

Wyniki naszych zespołów prezentują się następująco:

Karel
Prezentacja: VIII miejsce (10pkt)
Bumper: I miejsce (40pkt)
Marbles: IX miejsce (22pkt)

Miejsce w eliminacjach do finału: 4

Valentino
Prezentacja: XIV miejsce (4pkt)
Bumper: II miejsce (34 pkt)
Marbles: I miejsce (50pkt)

Miejsce w eliminacjach do finału: 2

Izaak
Prezentacja: XII miejsce (6 pkt)
Bumper: VI miejsce (24 pkt)
Marbles: IV miejsce (37pkt)

Miejsce w eliminacjach do finału: 6

Tym samym wszystkie drużyny weszły do ścisłego finału!

W finale, niestety drużyny Izaak i Valentino zajęły 7me miejsce (wynikiem całego konkursu jest sumaryczny wynik, więc nie jest to ostateczna pozycja).
Natomiast drużyna Karel zajęła w konkurencji finałowej drugie miejsce.

Ostateczne wyniki:
UJ Team Karel – III miejsce
UJ Team Valentino – IV miejsce
UJ Team Izaak – VIII miejsce

Pełne wyniki dostępne są tutaj

Wyniki IV Turnieju Robotów Walczących

Zakończył się IV Turniej Robotów Walczących. Po długich bojach, wyłoniliśmy następujących zwycięzców:

W kategorii Kheper, pierwsze miejsce zajęła drużyna P=NP, drugie miejsce Cosmos Ownagers, trzecie Spanish Killer Inquisition Rabbits, a czwarte m1r1

W kategorii Lego, pierwsze miejsce zajęła drużyna Stała Chaitina, a drugie Towarzystwo Chowania Sekretów

Serdecznie gratulujemy wszystkim zwycięzcom! I dziękujemy wszystkim za wspólną zabawę.

Ważne informacje dot. finału

Jako, że dzień wydziału coraz bliżej, to warto wspomnieć o kilku ważnych ustaleniach ostatnich dni:

1. Pracownia będzie dostępna do czwartku, 24go marca, do godz.16:00, po tym terminie zostaną z niej zabrane plansze
2. Zespoły startujące w konkurencji LEGO – prosimy o przygotowanie swojego robota do przymocowania do niego cienkiego, pionowego patyczka (o pomijalnej masie), który będzie służyć za maszt flagi, niezbędnej by widownia wiedziała który robot strzela do której bramki.
3. Pojedynczy mecz w LEGO będzie trwać nie dłużej niż 10 minut (2 x 5minut), ale może ten czas ulec jeszcze skróceniu
4. Roboty LEGO powinny kalibrować się możliwie krótko (max 2minuty), dodatkowo w przypadku rzutów karnych będzie dodatkowy czas (max 1minuta) na kalibrację (kompasu). Do rzutów karnych możecie mieć osobny program (a wręcz jest to zalecane). Wasz robot może zapisywać i odczytywać pliki na kostce (więc np. kalibrację czujnika koloru warto tam już trzymać na stałe)
5. W odpowiedzi na często pojawiające się pytanie „skąd robot będzie wiedział, że zmieniły się połowy” – zgodnie z opisem zadania, po każdym wstrzymaniu gry poprzez naciśnięcie pomarańczowego przycisku – robot wznawia grę na środku swojego pola, zwrócony w kierunku bramki przeciwnika, stąd też analizując odczyt z kompasu, może ustalić że zmieniły się połowy (w przypadku nie używania kompasu nie ma tego problemu, bowiem plansza jest środkowo symetryczna kolorystycznie)
6. Mecze w LEGO rozgrywane będą w systemie tzw. podwójnej eliminacji
7. Rzuty karne będą wyglądać tak, jak opisywałem to w mailu, czyli:
na zmianę, roboty próbują wbić piłkę do bramki (bez przeciwnika na planszy). Robot znajduje się na swojej połowie (niekoniecznie na polu startowym). Piłka znajduje się w dowolnym miejscu planszy. Zadaniem robota jest wtoczyć ją do bramki przeciwnika przed upływem limitu czasowego (30 sekund).  Po trzech strzałach każdego z robotów, jeśli jest dalej remis – to następuje zasada „nagłej śmierci”, czyli na zmianę podchodzą do rzutu karnego, aż któryś nie spudłuje a drugi trafi. Pomiędzy poszczególnymi strzałami karnymi robot będzie stopowany pomarańczowym przyciskiem (lub na prośbę drużyny wyłączany), pamiętajcie jednak, że to jest jedyna sytuacja, gdy po wznowieniu robot nie musi już być na polu startowym, wiadomo jedynie, że będzie na swojej połowie.
8. W Kheperach – zgodnie z tym, o czym mówiłem w pracowni wielokrotnie – robot ma nie posiadać żadnej interakcji z użytkownikiem. Nie może oczekiwać na żadne polecenia z klawiatury, oraz wypisywać niczego, poza komendami VISUALIZE i FINISHED. Jeśli wasz robot potrzebuje jakiś parametrów do startu (numer przejazdu, plik z mapą) to musicie podawać mu je jako parametry przy wywołaniu programu.
9. Przez znajdowanie się na polu (w kheperach) rozumiemy, że w rzucie prostokątnym, ma on niepuste przecięcie z tym polem (więc w szczególności robot czasami znajduje się na kilku polach).
10. Uczestników prosimy o przybycie nie później, niźli o 9:30 w dniu finałów (najbliższy piątek)

Informacje dot. zadania finałowego – KHEPERA

Konkurencją finałową jest przejazd przez labirynt na czas. Plansza to labirynt 4×9 pól, dostępna w sali robotyki.

  • Robot ma do dyspozycji 4 przejazdy, dwa po przekątnej ( (1,1)->(4,9), (4,1)->(1,9) ), oraz dwa wzdłuż ścian ( (1,1)->(1,9), (4,1)->(4,9) ).
  • Wynikiem jest trójka (n,t,d). Gdzie:
  1. n = ilość ukończonych przejazdów
  2. t = sumaryczny czas ukończonych przejazdów
  3. d = sumaryczna odległość od pola docelowego w nieukończonych przejazdach
  • Wyniki sortowane są malejąco po pierwszej współrzędnej, następnie (w obrębie remisów) rosnąco po drugiej i ostatecznie (w obrębie remisów po dwóch poprzednich) malejąco po trzeciej.
  • Robot ma obowiązek wizualizować swoje postępy na domyślnym wyjściu, poprzez wydawanie na domyślnym wyjściu polecenia „VISUALIZE a11 a21 a31 a41 a12 a22 a32 a42 … a19 a29 a39 a49 x y” czyli słowo „VISUALIZE” a następnie 38 liczb całkowitych, które będą kodować w sobie informację o tym, które ściany wg. Robota są obecne na polach o danych współrzędnych, a na koniec dwie liczby (x,y)., które opisują obecną pozycję robota. Jeśli pole o współrzędnych XY ma lewą ścianę (w kierunku malejących współrzędnych X) to pierwszy bit aXY powinien byś ustawiony na 1, w przeciwnym razie na 0. Drugi bit odpowiada za ścianę górną (w kierunku rosnących współrzędnych Y), trzeci za prawą (rosnące współrzędne X), a czwarty za dolną (malejące współrzędne Y). W ten sposób np. pole (1,1) ma tylko ścianę dolną i lewą, to a11 = 2^0 + 2^3 = 1 + 8 = 9. Jeśliby jakieś pole (X,Y) miało wszystkie ścianki poza lewą, to aXY = 2^1 + 2^2 + 2^3 = 2 + 4 + 8 = 14. Przyjmujemy klasyczny, matematyczny układ kartezjański.
  • Roboty pracują pod kontrolą systemu operacyjnego Linux, programuje się je w języku C. Na stronie robotics znajduje się paczka oprogramowania niezbędna do ich obsługi. W obrębie pracowni jest uruchomiona sieć bezprzewodowa „korebot”, do której automatycznie podpinają się roboty ( nazywają się Izaak, Karel i Valentino, ich adresy IP są na tablicy w sali). Login/hasło do robotów to root/- lub root/rootme.
  • Przejazd uznawany jest za zakończony w momencie wyświetlenia na domyślnym wyjściu komunikatu „FINISHED” lub po upływie limitu czasu.
  • Roboty muszą być w pełni autonomiczne, zabronione jest komunikowanie się z nimi w jakikolwiek sposób poza momentem uruchomienia go w danym przejeździe.
  • Robot może tworzyć/edytować/odczytywać pliki z pamięci (do przechowywania już zdobytych informacji o mapie, które wykorzysta w kolejnych przejazdach)
  • Szczeliny między polami zostaną zaklejona taśmą klejącą (niewykrywalną czujnikami podczerwieni na podłożu robota)

Informacje dot. zadania finałowego – LEGO

Konkurencją finałową jest piłka nożna. Roboty startują  w parach, na planszy, której specyfikacja została podana na ostatnim spotkaniu i jest dostępna w sali robotyki.

  • Roboty muszą być w pełni autonomiczne, zabronione jest komunikowanie się z nimi w jakikolwiek sposób poza momentem uruchomienia go w danym przejeździe.
  • Przez punkt startowy rozumiemy środek połowy zawodnika.
  • Robot otrzymuje punkt, za każde wbicie piłki do bramki przeciwnika.
  • Konstrukcja robota jest dowolna (z wyłączeniem umieszczonych niżej zakazów), można używać części elektronicznych z zestawu Lego NXT 2.0, kompasu oraz czujnika podczerwieni. Ilość nieelektronicznych części lego spoza zestawu jest natomiast nieograniczona. Nie można jednak stosować części, które nie są klockami lego (papieru, bawełny, oleju, palników etc.). Z części „nie lego” można używać jedynie szklanych kulek, które są w pracowni, i które można wykorzystać jako dodatkowy punkt podparcia (jako, że kulki z lego nie są faktycznymi kulami i jak wyszło podczas eliminacji – stanowią pewien problem konstrukcyjny).
  • Pojedynczy mecz podzielony jest na 2 połowy. Podczas pierwszej, losowo wybrany z robotów zaczyna grę z piłką na swojej połowie (zaraz przed robotem). Po zdobyciu bramki roboty są ustawiane ponownie na polach startowych a piłkę otrzymuje robot, który stracił punkt. Po upływie połowy czasu meczu zamienia się połowy, a grę rozpoczyna robot, który nie rozpoczynał poprzedniej połowy.
  • W obrębie meczu funkcjonuje system punktów karnych. Za każde naruszenie zasad robot otrzymuje punkt karny, każde 3 punkty karne oznaczają zdobycie bramki przez przeciwnika.
  • W przypadku wyniku remisowego odbędą się rzuty karne, których specyfikacja zostanie podana później.
  • Mecz będzie trwać ustaloną, stałą ilość czasu
  • Robot nie może chwytać piłki, dozwolone jest jedynie jej popychanie/kopanie, za przetrzymywanie piłki robot otrzymuje punkt karny.
  • Robot nie może „uporczywie przepychać przeciwnika” / grać nie fair, uszkadzać przeciwnika etc. Za każde zbyt agresywne zachowanie robot otrzymuje punkt karny (natomiast oczywiście legalne są drobne przepychanki i uderzenia, są w tej grze nie do uniknięcia).
  • Robot otrzymuje punkt karny za wjechanie na białe pole.
  • Maksymalne wymiary robota to 30cm x 30cm x 100cm ( długość x szerokość x wysokość )

UWAGA
Ze względu na specyfikę zadania, robot MUSI uwzględniać następującą interakcję „człowiek-maszyna”:
1.      Naciśnięcie czerwonego przycisku informuje robota o tym, że rozgrywka została chwilowo wstrzymana, robot ma obowiązek zatrzymać WSZYSTKIE silniki po naciśnięciu go i oczekiwać na dalsze informacje.
2.      Naciśnięcie strzałki w lewo oznacza „Twój przeciwnik zdobył punkt”, a w prawo – „Zdobyłeś punkt”. W szczególności ten krok może być pominięty (np. gdy zatrzymanie robota wynika z tego, że nastąpiło jakieś zakleszczenie czy zmiana połów, a nie zdobycie punktu)
3.      Po ponownym wciśnięciu czerwonego przycisku robot ma wznowić grę. (ten moment będzie wykonywany ZAWSZE z robotem w jego polu startowym, więc należy zaktualizować sobie informację o swojej pozycji) Poszczególne akcje będzie wykonywać jury, więc koniecznym jest dokładne trzymanie się powyższych wytycznych.

Decyzja o przyznaniu punktów karnych leży w gestii jury i jest ostateczna.