Zdecentralizowany algorytm sterowania agentem 1 w rozgrywkach RoboCup

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zdecentralizowany algorytm sterowania agentem 1 w rozgrywkach RoboCup"

Transkrypt

1 POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Systemów Elektronicznych Kamil Muszyński nr albumu: Praca dyplomowa magisterska Zdecentralizowany algorytm sterowania agentem 1 w rozgrywkach RoboCup Praca wykonana pod kierunkiem prof. nzw. dr. hab. Jarosława Arabasa Warszawa robotem mobilnym?

2 Zdecentralizowany algorytm sterowania agentem w rozgrywkach RoboCup Streszczenie [PL] Decentralised algorithm for agent controlling in Robo- Cup game Streszczenie [ENG] 1

3 Spis treści 1 Wstęp Cel pracy Zakres pracy Liga RoboCup Czym jest RoboCup Historia Podział na ligi robotów Liga symulacyjna Liga małych robotów Liga średnich robotów Liga platformy standardowej Liga robotów humanoidalnych Charakterystyka ligi małych robotów Sterowanie drużyną w lidze Small Size Zawodnik jako agent Systemy wieloagentowe Przegląd istniejących rozwiązań Architektura systemu Sterowanie grą drużyny Planowanie ruchu robota Opis zastosowanego algorytmu Zadania Tytuł: proponowane/zastosowane rozwiązanie? 2

4 Spis treści Sterownik robota Generowanie strategii Modyfikacje strategii Obszary aktywności Środowisko symulacyjne Symulator Gazebo Zasady modelowania w Gazebo Realizacja środowiska ligi Small Size Model robota Kontroler robota Pozostałe modele Oprogramowanie sterujące Architektura autonomic client videoserver auto referee mgr common mgr tests Testy 71 7 Podsumowanie 72 3

5 Rozdział 1 Wstęp Robotyka jest interdyscyplinarną dziedziną nauki i techniki łączącą elementy mechaniki, automatyki, elektroniki, miernictwa oraz informatyki. Jej historia sięga 1942 roku, kiedy to termin robotyka po raz pierwszy pojawił się w fantastycznonaukowym opowiadaniu Isaaca Asimova Runaround. Twórczość Asimova zainspirowała wynalazców George a Devola oraz Josepha Engelbergera do stworzenia pierwszego robota. Założona przez nich firma Unimation skonstruowała w 1956 roku manipulator Unimate, który w 1961 z powodzeniem zastosowano w fabryce General Motors. Wraz z postępem technologicznym w drugiej połowie XX wieku roboty stawały się coraz bardziej zaawansowane technicznie i zaczęły zastępować ludzi w fabrykach, ale także wyręczać ich w codziennych obowiązkach. Ludzkość wiąże z rozwojem robotyki duże nadzieje. Roboty są w stanie wykonywać wiele czynności dużo lepiej, niż ludzie. Nie popełniają błędów, są w stanie działać precyzyjniej i szybciej. Są silniejsze i zdolne do pracy w nieprzyjaznych dla ludzi środowiskach. Nie męczą się, więc łatwo mogą wyręczyć nas w wykonywaniu monotonnych i powtarzalnych zajęć. Przykładami mogą być tutaj roboty działające w fabrykach na liniach montażowych, wykonujące zadania zwiadowcze podczas misji wojskowych oraz badawczych, ale także te, które tak jak robot Roomba są w stanie posprzątać za nas pokój. Nic więc dziwnego, że nad rozwojem robotyki pracują ośrodki badawcze na 4

6 Rozdział 1. Wstęp całym świecie. Przykładem międzynarodowej inicjatywy związanej z rozwojem robotyki jest RoboCup - liga robotów grających w piłkę nożną. Celem przedsięwzięcia jest promocja robotyki oraz badań w dziedzinie sztucznej inteligencji. Atrakcyjna forma rozgrywek przyciąga ośrodki akademickie z całego świata. Mimo iż sama idea robotów grających w piłkę może się wydawać czysto rozrywkowa, to jej realizacja okazuje się bardzo trudnym zadaniem. Mecze piłki nożnej stanowią wymagające środowisko testowe dla robotów - zarówno dla ich konstrukcji mechanicznej, jaki i dla oprogramowania. Jednak dzięki prowadzonym badaniom z roku na rok rosną możliwości zawodników ligi, a zachowania przez nich prezentowane pozwalają mieć nadzieję, że kiedyś uda się skonstruować roboty, które będą w stanie pokonać ludzką reprezentację mistrzów świata w tej dyscyplinie. 1.1 Cel pracy Celem niniejszej pracy jest kontynuacja tematu podjętego w pracy inżynierskiej Środowisko symulacyjne i algorytm unikania kolizji robota mobilnego grającego w piłkę nożną ([1]). W ramach pracy inżynierskiej wykonano modele robotów w symulatorze gazebo oraz zaimplementowano algorytm unikania kolizji pozwalający modelom sprawnie poruszać się w symulowanym środowisku. Podstawowym celem niniejszej pracy było użycie stworzonych rozwiązań w celu zaimplementowania i przetestowania algorytmu sterującego rozgrywką w lidze RoboCup - konkretnie w jej odmianie Small Size. Powstałe oprogramowanie mogłoby w przyszłości stanowić bazę do dalszych, bardziej zaawansowanych badań nad ligą prowadzonych na WEiTI, a także do wykonania fizycznej realizacji robotów. W toku prac okazało się, iż na potrzeby realistycznego oddania rozgrywek ligi niezbędna jest modyfikacja instniejących modeli robotów. Modele z pracy inżynierskiej bazowały na robocie HMT2 skonstruowanym na WEiTI w ramach pracy [2]. Ich wadą była baza jezdna w postaci napędu różnico- 5

7 Rozdział 1. Wstęp wego ograniczająca motorykę robota oraz brak urządzenia przeznaczonego do kopania piłki. Aby modele robotów były konkurencyjne podczas rozgrywek RoboCup, wyposażono je w omnikierunkową bazę jezdną oraz dodano tzw. kicker, czyli przyrząd do kopania. Działania te pozwoliły również na stworzenie prostszych algorytmów sterowania robotem w rozgrywce. W związku z użyciem nowej bazy jezdnej modeli możliwe stało się zastosowanie bardziej wydajnych algorytmów unikania kolizji, które w przeciwieństwie do zastosowanego w pracy inżynierskiej algorytmu CVM nie są ograniczone możliwościami poruszania się robota. W tym celu dokonano przeglądu rozwiązań stosowanych w lidze i wybrano do implementacji dwa algorytmy - RRT oraz metodę sztucznych pól potencjałowych. 1.2 Zakres pracy W ramach niniejszej pracy wykonano następujące zadania: 1. instalacja i konfiguracja środowiska symulacyjnego, 2. modyfikacja modeli robotów w celu lepszego przystosowania ich do realiów ligi Small Size, 3. napisanie kontrolera robota odpowiedzialnego za sterowanie bazą jezdną, bezkolizyjne poruszanie się oraz kopanie, 4. implementacja algorytmu sterowania robotem w rozgrywce RoboCup, 5. napisanie modułu automatycznego sędziego niezbędnego do automatyzacji testów opracowanego algorytmu, 6. testy algorytmu sterującego rozgrywką. 6

8 Rozdział 2 Liga RoboCup 2.1 Czym jest RoboCup RoboCup jest międzynarodową inicjatywą mającą na celu popularyzację i rozwój robotyki oraz sztucznej inteligencji. Kiedy w 1997 roku powstała liga, twórcy sformułowali następujący cel: Do 2050 roku stworzyć drużynę samodzielnych, humanoidalnych robotów, która wygra z aktualną ludzką drużyną mistrzowską.[3] Misja ta nadal pozostaje aktualna, jednak wraz z upływem czasu idea Robo- Cup rozwinęła się i obecnie dzieli się na następujące obszary aktywności: RoboCupSoccer - zajmuje się tworzeniem drużyn autonomicznych robotów grających w piłkę, RoboCupRescue - specjalizuje się w budowaniu i oprogramowaniu robotów przeznaczonych do wypełniania zadań związanych z poszukiwaniami oraz ratownictwem w nieprzyjaznym środowisku, - ma na celu stworzenie robotów współegzystujących z ludzmi i wykonujących zadania w ich naturalnym środowisku, RoboCupJunior - popularyzuje robotykę wśród najmłodszych poprzez budowanie i programowanie autonomicznych robotów. 7

9 Rozdział 2. Liga RoboCup Niewątpliwą zaletą przedsięwzięcia RoboCup jest fakt, iż propaguje ono idee robotyki używając do tego bardzo medialnych środków, a jednocześnie stawiając cele, które są bardzo ambitne i w przyszłości mogą mieć znaczący wpływ na nasze życie. Sama liga jest wymagającym środowiskiem testowym. Roboty działają w dynamicznie zmieniającym się otoczeniu, w którym muszą podejmować decyzje w czasie rzeczywistym w oparciu o ograniczoną liczbę niepewnych danych. Dodatkowo w większości przypadków sterowanie drużyną odbywa się w sposób zdecentralizowany, więc niezbędne stają się mechanizmy koordynacji działań zawodników. Niebagatelną rolę ma także obecność przeciwnika w grze, co dodatkowo motywuje do opracowywania rozwiązań lepszych niż te, którymi dysponuje konkurencyjna drużyna. Tak duża liczba poruszanych zagadnień czyni zadanie stworzenia sprawnie działającej drużyny robotów skomplikowanym i wymagającym. 2.2 Historia Pierwsze pomysły związane z zastosowaniem robotów grających w gry zespołowe do badań nad robotyką i sztuczną inteligencją sięgają początku lat dziewięćdziesiątych XX wieku. W 1992 roku profesor Alan Mackworth z Uniwersytetu Kolumbii Brytyjskiej w Kanadzie po raz pierwszy wspomniał o tego typu eksperymentach w pracy [5]. Jego grupa stosowała zmodyfikowane zdalnie sterowane zabawki do gry w piłkę nożną w ramach projektu Dynamo. Głównym celem były badania nad sposobami zbierana danych o otoczeniu. Początkowo roboty te były wyposażone w znaczniki, a informacje o ich położeniu pochodziły z kamery zainstalowanej nad boiskiem, w późniejszych pracach sensory zostały zintegrowane z konstrukcjami robotów (por. rys. 2.1). W tym samym roku naukowcy biorący udział w konferencji Grand Challenges in Artifical Intelligence odbywających się w Tokio doszli do wniosku, iż roboty grające w piłkę nożna będą idealnym sposobem na promocję nauki i techniki w nadchodzących latach. Inicjatywa spotkała się z aprobatą i w

10 Rozdział 2. Liga RoboCup Rysunek 2.1: Zawodnik strzelający na bramkę, projekt Dynamo (źródło: [5]) roku powstała pierwsza japońska liga robotów, J-League, która szybko przykuła uwagę zagranicznych ośrodków naukowych. Po nawiązaniu współpracy J-League przemianowano na RoboCup (skrót od Robot World Cup Initiative). Początek przedsięwzięcia ogłoszono oficjalnie we wrześniu 1993 roku - wtedy też rozpoczęto opracowywanie zasad gry. W międzyczasie zespół badaczy pracujący w japońskim rządowym ośrodku naukowym ElectroTechnical Laboratory (ETL) podjął prace nad stworzeniem symulatora rozgrywek piłkarskich, który z czasem stał się oficjalnym symulatorem stosowanym w RoboCup. Prace nad ligą okazały się złożonym przedsięwzięciem. W 1996 roku udało się rozegrać zawody Pre-RoboCup-96, podczas których odbyły się rozgrywki symulacyjne oraz zaprezentowano prototypowe konstrukcje robotów. Pierwsze pełne rozgrywki ligi RoboCup odbyły się rok później w Japonii. Brało w nich udział ponad 40 drużyn (symulacyjnych oraz z fizycznymi konstrukcjami robotów), a oglądało ponad 5000 widzów. Zawody okazały się sporym sukcesem i dały ludziom zaangażowanym w RoboCup motywację do dalszych prac. Obecnie oprócz ogólnoświatowych zawodów corocznie odbywają się także lokalne turnieje, takie jak RoboCup Iran Open 2011 czy RoboCup Germany Open Ranga ligi rośnie z roku na rok, co potwierdzają statystyki: w 9

11 Rozdział 2. Liga RoboCup 2010 roku w Singapurze w rozgrywkach brało udział aż 500 drużyn z 40 krajów. Rysunek 2.2: Robocup 2010, Singapur (źródło: 2.3 Podział na ligi robotów Liga RoboCup (a dokładnie RoboCupSoccer) jest podzielona na pięć lig, różniących się zasadami, dozwolonymi konstrukcjami robotów, wyglądem boiska oraz sposobami komunikacji między zawodnikami. Poniżej przedstawiono krótką charakterystykę każdej z nich Liga symulacyjna Jest to najstarsza z lig. Jej głównym celem jest skupienie się na rozwoju algorytmów sztucznej inteligencji oraz współpracy zawodników. Rozgrywki odbywają się w dwóch rodzajach symuatorów: dwu- oraz trójwymiarowym (od 2006 roku). Symulacja dwuwymiarowa to mecze dwóch drużyn po 11 zawodników na pełnowymiarowym boisku zgodnym z regułami FIFA. Za 10

12 Rozdział 2. Liga RoboCup sterowanie każdym z zawodników odpowiada niezależny program podłączony do aplikacji SoccerServer, której rolą jest symulację gry. Każdy z graczy otrzymuje od serwera porcję danych stanowiącą wejście jego wirtualnych sensorów. W oparciu o te dane jest w stanie wpływać na środowisku wykonując elementarne akcje, takie jak przemieszczanie się i kopanie. Symulacja zjawisk fizycznych jest ograniczona do minimum, co pozwala twórcom oprogramowania skupić się na algorytmach związanych z rozgrywką. Inaczej jest w przypadku symulacji trójwymiarowej. Jest ona oparta na symulatorze SimSpark. Jego twórcy postawili na wierne odwzorowanie cech fizycznych robotów. Początkowo dla uproszczenia posługiwano się tylko sferycznym modelem zawodnika. Od 2006 roku za oficjalny model służył humanoidalny robot Fujitsu HOAP-2. W 2008 roku zdecydowano się zmienić go na używany do dziś model robota Nao firmy Aldebaran robotics. Roboty takie są stosowane także w lidze platformy standardowej, więc liga symulacyjna pozwala w tym przypadku przetestować niektóre rozwiązania przed zastosowaniem ich na prawdziwych robotach. Obecnie głównym problemem, na którym skupia się działalność ligi trójwymiarowej, jest opracowanie niezawodnego sterowania dla robota humanoidalnego (zapewnienie sprawnego poruszania się po planszy, utrzymanie równowagi, kontrola nad piłką itd.). Jednak wraz z postępem prac naukowcy liczą na to, że w przyszłości będą (a) Symulator 2d (b) Symulator 3d Rysunek 2.3: Liga symulacyjna (źródło: 11

13 Rozdział 2. Liga RoboCup mogli się skupić na oprogramowaniu bardziej złożonych zachowań związanych z grą zespołową Liga małych robotów Jest to pierwsza z lig (zwana także ligą F180), w której grają fizyczne roboty. Gra odbywa się na boisku o powierzchni ok. 25 m 2. W rozgrywce biorą udział dwie drużyny. Każda składa się z pięciu cylindrycznych robotów wyposażonych w kołową bazę jezdną. Zawodnicy nie posiadają sensorów, dane o ich położeniu oraz o otoczeniu pochodzą z kamery umieszczonej nad boiskiem. Rozgrywki w tej lidze są bezpośrednio związane z tematem niniejszej pracy, dlatego też opisano ją szczegółowo w paragrafie 2.4. Rysunek 2.4: Zawodnicy w lidze małych robotów (źródło: Liga średnich robotów W tej lidze w skład każdej z drużyn wchodzi sześciu zawodników. Rozgrywki odbywają się zgodnie z regułami FIFA (w których dokonano drobnych modyfikacji), przy użyciu standardowej piłki. Mecze rozgrywane są na boisku 12

14 Rozdział 2. Liga RoboCup o wymiarach 18x12 metrów. Fizyczne wymiary robotów są ograniczone do cylindra o średnicy 50 cm, a masa zawodnika nie może przekroczyć 40 kg. W odróżnieniu od ligi Small Size, roboty są tutaj w pełni autonomiczne - są wyposażone w zestaw sensorów oraz komputer pełniący rolę kontrolera. Oprócz tego mają one możliwość bezprzewodowej komunikacji między sobą, co poprawia zdolności współpracy w grze drużynowej, a także pozwala na odbieranie decyzji sędziego. Poza dokonywaniem ewentualnych zmian zawodników, ludzie w żaden sposób nie interweniują podczas gry. Z roku na rok dokonywane są drobne modyfikacje w regulaminie rozgrywek. Przykładowo w 2010 roku bramki były oznaczane kolorami, dzięki czemu roboty rozpoznawały bramkę swoją oraz przeciwnika. W 2011 roku markery usunięto i zawodnicy musieli poradzić sobie z rozpoznawaniem bramek identycznych z tymi stosowanymi w rozgrywkach FIFA. Tego rodzaju zmiany pozwalają na zapewnienie ciągłego rozwoju ligi przez stawianie nowych wyzwań twórcom robotów. Rysunek 2.5: Rozgrywki ligi średnich robotów (źródło: 13

15 Rozdział 2. Liga RoboCup Liga platformy standardowej Podstawową cechą, która wyróżnia tę ligę, jest fakt, iż wszystkie drużyny biorące w niej udział używają ustandaryzowanej konstrukcji robota. Początkowo były to czworonożne pieski Sony AIBO, które w 2008 roku zastąpiono humanoidalnymi robotami NAO firmy Aldebaran Robotics. Roboty te są bardzo bogato wyposażone: posiadają solidną bazę czujników (2 kamery CMOS, 4 mikrofony, żyroskop, akcelerometr, 4 sonary ultradźwiękowe) i oprogramowania multimedialnego: moduł rozpoznawania mowy, twarzy, kształtów oraz wiele innych. Rysunek 2.6: Roboty Nao podczas gry Ich konstrukcja posiada aż (źródło: 21 stopni swobody. Tak dopracowana platforma pozwala naukowcom skupić się na rozwoju zaawansowanego oprogramowania. Mecze odbywają się zgodnie z regułami FIFA na boisku o wymiarach 7.4x5.4 m. W rozgrywkach stosowana jest pomarańczowa piłka do hokeja ulicznego, a bramki są oznaczone odpowiednio żółtym oraz niebieskim kolorem. Drużyny składają się z trzech zawodników oraz bramkarza. Roboty są w pełni automiczne, ale mogą porozumiewać się ze sobą za pomocą komend dźwiękowych oraz po sieci WiFi. Grę nadzoruje trzech sędziów. Rozgrywki 14

16 Rozdział 2. Liga RoboCup są dość widowiskowe, ale pokazują także, że zawodnikom NAO dużo jeszcze brakuje do ich ludzkich przeciwników Liga robotów humanoidalnych Celem tej ligi jest stworzenie konstrukcji robotów jak najbardziej przypominających człowieka. Dozwolone są tylko takie sensory, które odpowiadają ludzkim zmysłom. Muszą być także rozmieszczone w podobny sposób. Unika się więc takich ułatwień, na jakie mogą sobie pozwolić zespoły tworzący oprogramowanie w lidze platformy standardowej, gdzie dostepne są np. dane z czujników odległości. Oprócz problemu poprawnej percepcji i modelowania otoczenia, liga dostarcza także innych wyzwań techicznych. Rozwiązanie takich problemów, jak sprawne chodzenie czy bieganie robotów lub kopanie piłki jest ciągle w obszarze badań. Liga jest podzielona na trzy klasy. Kryterium stanowią tutaj rozmiary robota. Mamy zatem zawody KidSize (roboty o rozmiarach cm), Teen- Size ( cm) oraz AdultSize (powyżej 130 cm). W przypadku KidSize Rysunek 2.7: Roboty humanoidalne podczas gry (źródło: 15

17 Rozdział 2. Liga RoboCup drużyny składają się z trzech robotów. W kategorii TeenSize zmagają się po 2 roboty, natomiast rozgrywka w AdultSize polega na naprzemiennym oddawaniu strzałów na bramkę przeciwnika (mamy więc po jednym robocie w każdej drużynie). Podstawowym zadaniem ligi humanoidalnej na najbliższe lata jest doskonalenie konstrukcji mechanicznych zawodników. Dopiero wraz ze zwiększaniem się umiejętności robotów możliwa będzie implementacja zaawansowanych algorytmów gry zespołowej. 2.4 Charakterystyka ligi małych robotów Rozgrywki ligi małych robotów należą do bardzo widowiskowych. Zawodnicy mają spore możliwości techniczne, przez co mecze wyglądają naprawdę ciekawie. Dużą zaletą jest stosunkowo prosta konstrukcja robotów, co otwiera drzwi do RoboCup mniej zasobnym zespołom. Także na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej od lat prowadzone są działania, które mają na celu stworzenie kompletnej drużyny robotów Small Size. Również autor tej pracy ma nadzieję mieć swój wkład w tę działalność. Z tego względu zdecydowano się na szczegółowy opis ligi, aby dobrze przybliżyć specyfikę jej rozgrywek. Jest on oparty na aktualnym regulaminie dostępnym na stronie [4]. W meczach ligi Small Size biorą udział dwie drużyny składające się maksymalnie z pięciu robotów, przy czym jednemu z nich można przed meczem przydzielić rolę bramkarza. Konstrukcja zawodników musi mieścić się w cylindrze o średnicy 18 cm i wysokości 15 cm. Roboty grają używając pomarańczowej piłki do golfa na pokrytym zielonym dywanem boisku o wymiarach 4.05x6.05 m. Stan gry obserwowany jest przez umieszczone nad boiskiem dwie kamery systemu wizyjnego. Zarejestrowany obraz trafia do programu SSL-Vision 1, 1 Jest to otwarte oprogramowanie utrzymywane przez społeczność ligi, dostępne pod adresem 16

18 Rozdział 2. Liga RoboCup Rysunek 2.8: Przepływ komunikacji w lidze Small Size który przetwarza go tworząc ustandaryzowany opis sytuacji na boisku. Zawieraja on dane o położeniach i prędkościach poszczególnych robotów oraz piłki. Informacja ta jest transmitowana do stojących poza boiskiem komputerów, na których uruchomione jest oprogramowanie sterujące drużynami. Na podstawie aktualnej sytuacji w grze oblicza ono odpowiednie wartości sterowań, które są zadawane robotom drogą radiową. W ten sam sposób przekazuje się także komendy sędziego (używana jest do tego aplikacja SSL Referee Box 2 ). Konstrukcje robotów oparte są na omnikierunkowej bazie jezdnej. Daje ona możliwość swobodnego poruszania się po boisku (prędkości zawodników dochodzą nawet do 5 m/s) i jednocześnie utrzymywania zadanej rotacji. Zawodnicy są wyposażeni w specjalne narzędzie zwane dribblerem (por. rys. 2.9). Pozwala ono nadać piłce rotację wsteczną, dzięki czemu robot może np. wykonywać obroty lub zatrzymywać się nie tracą nad nią kontroli. Możliwości dryblingu są jednak ograniczone regulaminem - robot może pokonać z piłką maksymalnie 50 cm (zasada ta ma za zadanie promować grę zespołową). Do kopania piłki roboty używają kickera - jest to specjalny element konstrukcji zawodnika, który nie tylko pozwala na podawanie czy oddawanie strzałów, ale także na podrzucanie piłki. Maksymalna prędkość, z jaką robot może strzelać, jest ograniczona do 10 m/s

19 Rozdział 2. Liga RoboCup Rysunek 2.9: Zasada działania dribblera Fakt, iż roboty nie posiadają sensorów wizyjnych, a całość rozgrywki obserwowana jest przez kamery nad boiskiem, narzuca dodatkowe ograniczenia. Konstrukcja zawodnika nie może przysłaniać więcej niż 20% powierzchni piłki - jest to niezbędne do poprawnego rozpoznania jej pozycji przez oprogramowanie SSL-Vision. Z tego samego powodu każdy z robotów musi być wyposażony w unikatowy kolorowy znacznik, który umożliwia jego jednoznaczą identyfikację na boisku. Znacznik ten musi być umieszczony na górze robota i widoczny dla kamery. Kolor elementów znacznika określa zarówno przynależność do drużyny, jak i numer konkretnego zawodnika. Przykładowe znaczniki przedstawia rys Rysunek 2.10: Przykładowe znaczniki umieszczane na robotach 18

20 Rozdział 3 Sterowanie drużyną w lidze Small Size Sprawna gra robotów w piłkę nożną jest zadaniem złożonym i wymaga rozwiązaniu szeregu problemów z dziedziny sterowania oraz modelowania. Robot musi być w stanie poruszać się bezkolizyjnie w środowisku, które ulega ciągłym, dynamicznym zmianom. W tym celu niezbędna jest implementacja odpowiednich algorytmów unikania przeszkód i wyznaczania trasy, które są w stanie uwzględnić wpływ zmieniającego się stanu gry. Oprócz tej umiejętności skuteczna drużyna RoboCup musi grać zespołowo - do tego konieczny jest podział zadań oraz planowanie strategii gry. Nie można również pominąć faktu, iż wszystkie akcje podejmowane na boisku spotykają się z reakcją przeciwnika, która może uniemożliwić naszej drużynie realizację celów. Praca w tak złożonej domenie jak RoboCup wymaga więc stosowania usystematyzowanego opisu. 3.1 Zawodnik jako agent Popularnym podejściem stosowanym w robotyce jest traktowanie robota jako agenta upostaciowionego. Stan agenta w systemie wieloagentowym określany jest poprzez zestaw czterech parametrów: 19

21 Rozdział 3. Sterowanie drużyną w lidze Small Size stan systemu sterującego agentem (C) - oznaczający wartości zmiennych programu, zawartość rejestrów, etc., stan efektorów agenta (E) - określający aktualne położenie elementów wykonawczych pozwalających na interakcję z otoczeniem (silników, manipulatorów, etc.), aktualne odczyty czujników wirtualnych (V) - agregują one odczyty jednego lub większej liczby czujników rzeczywistych agenta, stan transmisji (T) - składający się z informacji odebranych lub nadanych do innych agentów. Komponenty agenta są wykorzystywane przez system sterujący w celu realizacji konkretnego zadania. Sterowanie odbywa się dwuetapowo. Etap pierwszy to gromadzenie informacji, realizowane poprzez: pobranie aktualnych odczytów z zestawu czujników, odebranie informacji od innych agentów, sprawdzenie stanu własnych efektorów agenta. Na podstawie tych danych oraz informacji zapisanej w formie zmiennych programu system sterujący agentem ustawia porządany stan efektorów, dokonuje konfiguracji sensorów, przesyła informacje do pozostałych agentów, zapisuje potrzebne informacje o stanie. Podstawowa klasyfikacja agentów upostaciowionych bazuje na posiadanych przez nie komponentach. Wyróżniamy następujące rodzaje agentów: 20

22 Rozdział 3. Sterowanie drużyną w lidze Small Size komponenty CEVT CEV CVT CET CE CV CT rodzaj agenta upostaciowiony o pełnej funkcjonalności autonomiczny, niezdolny do komunikacji niezdolny do poruszania się (np. zdalny sensor) sterowany zdalnie, nie posiada sensorów pozbawiony sensorów oraz możliwości komunikacji monitorujący (np. czarna skrzynka) agent wykonujący obliczenia (koordyntor) C agent zombie (nieprzydatny) Stosując powyższy podział do ligi małych robotów można zauważyć, iż w rozgrywkach Small Size biorą udział dwa rodzaje agentów: 1. agent typu CT - działający poza boiskiem koordynator, do którego spływają informacje z systemu wizyjnego i który na ich podstawie oblicza sterowania dla zawodników na boisku, 2. agent typu CET - sterowany zdalnie agent na boisku, otrzymujący polecenia od agenta koordynatora. 3.2 Systemy wieloagentowe W przypadku, gdy minimum dwa roboty działają w tym samym środowisku i możliwa jest interakcja między nimi, mamy do czynienia z tzw. systemem wieloagentowym (lub wielorobotowym). Zastosowanie takiego systemu niesie ze sobą szereg korzyści. Grupa współpracujących robotów jest w stanie realizować zadania zbyt złożone dla jednego robota, poprzez odpowiedni podział obowiązków może wykonywać zadania szybciej, niż pojedynczy robot, 21

23 Rozdział 3. Sterowanie drużyną w lidze Small Size pozwala na uproszczenie konstrukcji (grupa prostych robotów może być łatwiejsza w budowie niż jeden uniwersalny, realizujący to samo zadanie), jest bardziej niezawodna - w razie awarii roboty mogą siebie zastępować, łatwiej też wymienić jeden element systemu, pozwala na współdzielenie zasobów - roboty mogą np. korzystać ze wspólnego zestawu narzędzi lub akcesoriów. Biorąc pod uwagę strukturę organizacyjną systemu wieloagentowego, można wyróżnić systemy: scentralizowane - o strukturze globalnej, w której zadania są wyznaczane robotom poprzez nadrzędnego koordynatora; są to przeważnie systemy hierarchiczne, rozproszone - o strukturze lokalnej, nie posiadającej jednostki centralnej; współpraca i realizacja celów przez roboty w tym systemie wynika z reguł, które zostały im wbudowane. W systemach wieloagentowych wyróżnia się dwa rodzaje komunikacji: jawna - informacje o stanie są wymieniane pomiędzy robotami, niejawna - nie ma przekazu danych, wszelkie informacje bazują na obserwacji otoczenia. Łącząc strukturę organizacyjną oraz sposób komunikacji, otrzymujemy następujące rodzaje systemów wieloagentowych: hierarchiczne - współpraca agentów jest koordynowana globalnie, komunikacja jest jawna, reaktywne - o strukturze rozproszonej; każdy z robotów ma wbudowany prosty zestaw reguł (na zasadzie bodziec reakcja), z których wynika współpraca w systemie; nie ma jawnej komunikacji, 22

24 Rozdział 3. Sterowanie drużyną w lidze Small Size behawioralne - podobnie jak w przypadku systemu reaktywnego, systemy o rozproszonej strukturze i braku komunikacji; sterowniki robotów posługują się bazą złożonych działań zwanych zachowaniami, które mogą być wykonywane równolegle, peer-to-peer - o strukturze lokalnej, ale roboty mogą komunikować się między sobą bezpośrednio. 3.3 Przegląd istniejących rozwiązań Procedura zgłaszania zespołu do zmagań ligi małych robotów wymaga od jego twórców przygotowania publicznej dokumentacji, opisującej w skrócie zastosowane rozwiązania - zarówno w dziedzinie konstrukcji mechanicznej, jak i oprogramowania zawodników. Dzięki temu możliwy był przegląd aktualnego stanu wiedzy i rozpoznanie technik, które z powodzeniem sprawdzają się z środowisku ligi Small Size. Podczas analizy skupiono się na dwóch obszarach: sposobach bezkolizyjnej nawigacji oraz algorytmach sterowania grą drużyny. Przegląd oparto na dokumentach opublikowanych przez drużyny startujące w zawodach RoboCup 2010, zwracając szczególnie uwagę na najlepsze zespoły (SKUBA z Tajlandii [10], CMDragons z USA [11] oraz MRL z Iranu [12]) Architektura systemu Analizując dokumentację wspomnianych zespołów można zauważyć, iż używają one podobnych rozwiązań w kwesti sterowania grą. W lidze Small Size dominują złożone systemy hybrydowe, o scentralizowanej strukturze i elementach behawioralnych (roboty korzystają z bazy predefiniowanych zachowań do wykonywania zadań). W systemach tych globalny koordynator zarządza grą drużyny tworząc z prostych zachowań przydzielonych robotom złożone i długofalowe strategie dla całego zespołu, prowadzące do osiągnięcia wspólnego celu - wygrania meczu. Podobnie rozwiązana jest też kwestia podziału 23

25 Rozdział 3. Sterowanie drużyną w lidze Small Size system sterujący przetwarzanie obrazu model stanu gry na moduły funkcjonalne systemu (wynika to ze sposobu pobierania danych i komunikacji, narzuconego przez reguły ligi). Mamy zatem moduł przetwarzania obrazu, który analizuje dane z kamery generując informacje o położeniu robotów oraz piłki. Dane te, wzbogacone o aktualne komendy sędziego, trafiają do bloku modelującego stan gry. Jego zadaniem jest m. in. filtracja zaszumionych danych o rozgrywce oraz predykcja możliwych położeń obiektów w następnym kroku działania algorytmu (należy tutaj brać pod uwagę fakt, iż cały cykl - pobieranie danych, obliczanie sterowań oraz wysłanie sygnałów sterujących - wprowadza ok. 100 ms opóźnienia, którego nie można pominąć w procesie decyzyjnym). Obliczane są także wysokopoziomowe predykaty określające, która z drużyn jest w posiadaniu piłki, kto atakuje, w jakich rolach występują roboty na boisku itp. Nastepnie informacja zawarkamera strategia drużyny sędzia blok nawigacyjny kontroler ruchu sygnał sterujący sterownik robota Rysunek 3.1: Schemat architektury systemu sterującego rozgrywką w lidze Small Size 24

26 Rozdział 3. Sterowanie drużyną w lidze Small Size ta w bloku modelującym jest przetwarzana przez blok odpowiedzialny za strategię drużyny, który przydziela zadania robotom. Jeżeli związane są one z przemieszczaniem się po boisku, blok nawigacyjny wyznacza bezkolizyjną ścieżkę dla zawodnika prowadzącą do zadanego punktu. Ścieżka ta podlega przetworzeniu przez blok kontrolera ruchu robota, który oblicza odpowiednie wartości prędkości liniowych oraz kątowej (v x, v y, ω), z jakimi powinien poruszać się zawodnik. Taka informacja jest wysyłana do robota, gdzie przeliczana jest ona na bezpośrednie wartości sterowań zadawane silnikom. Schemat architektury systemu przedstawiono na rysunku Sterowanie grą drużyny Najważniejszym elementem architektury systemu sterowania jest moduł generujący strategie dla drużyny. Kluczowym wymaganiem stawianym temu komponentowi jest możliwość kontrolowania zespołu robotów w taki sposób, aby maksymalizować ilość strzelonych bramek przy jednoczesnym minimalizowaniu ilości goli straconych. Skuteczny algorytm pozwala na sprawne koordynowanie działań robotów, a także na szybkie reakcje na zmiany sytuacji na boisku oraz na trudne do przewidzenia zachowania przeciwników. Struktura oprogramowania musi być odpowiednio zaprojektowana, aby umożliwić łatwe modyfikacje oraz dodawanie nowych komponentów. Stosowane algorytmy sterowania rozgrywką ewoluowały wraz z rozwojem ligi Small Size. Obecnie dominują rozwiązania oparte na frameworku STP, opracowanym i zastosowanym po raz pierwszy przez drużynę CMDragons w 2004 roku ([13]). Oprogramowanie to potwierdziło swoją skuteczność w rozgrywkach i stało się punktem wyjścia dla zaproponowanego w niniejszej pracy algorytmu, dlatego też zdecydowano się na jego szczegółowy opis. tłumaczenie: framework Skills, Tactics and Play (STP) Skrót STP oznacza trzy komponenty, na których oparte jest sterowanie drużyną robotów: 25

27 Rozdział 3. Sterowanie drużyną w lidze Small Size zachowania (skills), definiujące podstawowe umiejętności robota, takie jak jazda do zadanego celu czy obrót z piłką, taktyki (tactics), jakimi może posługiwać się zawodnik, definiujące konkretny zestaw zachowań, których należy użyć np. w celu oddania strzału na bramkę przeciwnika, plany gry (play), posiadające warunki wykonalności i zakończenia; definiujące zestaw taktyk, jakimi powinny posługiwać się poszczególne roboty dla konkretnej sytuacji na boisku. W każdej iteracji algorytmu (która następuje wraz z nadejściem nowych danych z kamery) następuje wybranie najodpowiedniejszego planu gry do wykonania w danej sytuacji. Na jego podstawie wyznaczane są taktyki dla poszczególnych robotów. Wybrana taktyka definiuje zachowanie, jakie powinno zostać wykonane przez robota w danej chwili. Wykonywanie planu może trwać od 5 do 30s. Taktyki trwają zwykle ok. 1 30s, a pojedyncze zachowania cechują czasy wykonania w przedziale 300ms 5s. Bardziej formalny opis przedstawia plan P jako ustalony wariant gry, z konkretnym zestawem warunków wykonalności oraz zakończenia, posiadający zbiór N ról, po jednej dla każdego zawodnika w drużynie. Role przydzielane są dynamicznie podczas gry. Każda z nich składa się z sekwencji T 1, T 2,... taktyk oraz przypisanych do nich parametrów. Taktyki stanowią tym samym elementarne akcje pozwalające wpływać na stan gry (z perspektywy planu). Ze względu na kontakt zawodnika z piłką taktyki można podzielić na aktywne oraz pasywne. W danej sekwencji w planie wykonywana jest tylko jedna taktyka aktywna. Jej zakończenie powoduje przejście do kolejnej sekwencji planu. Taktyka T i opisuje konkretny ciąg zachowań robota i. Zdefiniowany jest on za pomocą maszyny stanów SSM i. Zawiera ona zestaw elementarnych akcji, które muszą zostać wykonane w celu zrealizowania taktyki. Ponadto jeżeli mamy do czynienia z taktyką aktywną, zdefiniowane są dla niej warunki zakończenia określające jej powodzenie. Zachowania S mogą wchodzić 26

28 Rozdział 3. Sterowanie drużyną w lidze Small Size Algorytm 3.1 Główny algorytm frameworka STP 1: PobierzDaneZSensorów() 2: AktualizujModelŚwiata() 3: P PobierzAktualnyPlan() 4: for all robot i (1,..., N) do 5: (T i, T P arams i ) PobierzTaktykę(P, i) 6: (SSM i, SP arams i ) WykonajTaktykę(T i, T P arams i ) 7: if NowaTaktyka(T i ) then 8: S i SSM i (0) 9: end if 10: (komenda i, S i) WyznaczKomendę(SSM i, S i, SP arams i ) 11: sterowanie robota i WykonajKomendę(komenda i ) 12: WyślijSterowanie(i, sterowanie robota i ) 13: end for w skład jednej lub większej liczby maszyn stanów. Przejścia między stanami zdefiniowane są w zależności od sytuacji w grze, czasu wykonywania danego zachowania oraz taktyki, w której skład wchodzą. Plany gry, taktyki oraz zachowania tworzą hierarchiczną strukturę sterowania zespołem robotów. Plany kontrolują sposób gry drużyny poprzez taktyki, podczas gdy taktyki opisują złożone akcje wykonywane przez roboty za pomocą podstawowych zachowań. Zachowania te przekładają się na konkretne sygnały sterujące wysyłane do robotow. Mechanizm działania STP można zapisać w sposób uproszczony za pomocą algorytmu 3.1. Taktyki Dla sterowania pojedynczym robotem istotne są taktyki oraz zachowania. Na potrzeby implementacji algorytmu STP stworzono zbiór taktyk aktywnych (związanych z operowaniem piłką) oraz pasywnych. Część taktyk wraz z parametrami przedstawiono w tabeli 3.1. Parametryzacja pozwoliła na zapisanie w sposób generyczny złożonego zbioru zachowań w formie kilkunastu 27

29 Rozdział 3. Sterowanie drużyną w lidze Small Size taktyk. Tabela 3.1: Taktyki stosowane w STP taktyki aktywne strzelaj(celowanie bez celowania) aktywna obrona(punkt) drybluj do strzału(region) drybluj do regionu(region) pozycja do wznowienia gry(punkt,rotacja) pozycja do strzału pozycja do rzutu karnego odbierz podanie przechwyć piłkę taktyki pasywne pozycja do przechwycenia piłki(region) pozycja do odbicia piłki(region) pozycja do podania piłki(region) broń lini (współrzędne, min. odległość) broń punktu(punkt, min. odległość) broń pasa(punkt1, punkt2) kryj (piłka bramka strzał) bramkarz stój Przykładem realizacji taktyki jest algorytm 3.2. Przedstawia on sekwencję warunków oraz zachowań stosowaną podczas oddawania strzału. Ważnym elementem jest moduł oceny, który stosując pewną heurystykę pozwala określić, które z akcji będą korzystniejsze w danej sytuacji. W tym przypadku analizowane są możliwości oddania strzału bezpośrednio na bramkę oraz strzału w stronę partnera, który byłby w stanie od razu skierować piłkę do bramki (tzw. gra z klepki ). Jeżeli wartość oceny żadnej z wyżej wymienionych opcji nie przekroczy pewnego minimalnego progu, robot skieruje się w stronę miejsca, z którego będzie miał większe szanse na skuteczny strzał. W tym przypadku używana jest maszyna stanów o nazwie PrzemieśćPiłkę, której działanie parametryzowane jest współrzędnymi celu oraz flagą decydującą o tym, czy robot powinien oddać strzał. Tłumaczenie algorytmów, np czy jest konieczne? Jeżeli tak, to czy zamieniać if na jeśli etc. Zachowania Jak można zauważyć, skuteczne wykonanie taktyki wymaga zdefiniowania pewnego ciągu zachowań robota. Może on zależeć od aktualnego stanu gry. 28

30 Rozdział 3. Sterowanie drużyną w lidze Small Size Algorytm 3.2 Taktyka strzelaj(i) 1: najlepszaocena 0 2: (ocena, cel) modułoceny.celujwstronębramki() 3: SP aram i ustawmaszynęstanów(przemieśćpiłkę,cel,strzelaj) 4: najlepszaocena ocena 5: for all robot j należący do drużyny do 6: if modułoceny.strzałzodbiciemodzawodnika(j) > MIN OCENA then 7: (ocena, cel) modułoceny.celujwstronępartnera(j) 8: if ocena > najlepszaocena then 9: SP aram i ustawmaszynęstanów(przemieśćpiłkę,cel,strzelaj) 10: najlepszaocena ocena 11: end if 12: end if 13: end for 14: if nie znaleziono celu ocena < MIN OCENA then 15: cel modułoceny.znajdznajlepszyceldodryblingu() 16: SP aram i ustawmaszynęstanów(przemieśćpiłkę,cel,nie STRZELAJ) 17: end if Przykładowo, jeżeli robot ma za zadanie przemieścić piłkę w stonę środka boiska, wymaga to wykonania sekwencji zachowań: 1. podjechanie do piłki, 2. przechwycenie piłki za pomocą dribblera, 3. obrócenie piłki w kierunku środka boiska, 4. pchanie piłki w stronę celu z włączonym dribblerem. Inna sekwencja realizująca ten sam cel będzie użyta w przypadku, gdy np. piłka znajduje się w narożniku boiska - wtedy robot nie może się z nią obracać, 29

31 Rozdział 3. Sterowanie drużyną w lidze Small Size Algorytm 3.3 Zachowanie JedźDoCelu(i) 1: if SSM i = PrzemieśćPiłkę piłka przed robotem można kopać) then 2: przejdźdozachowania(strzelaj ) 3: end if 4: if piłka przed robotem piłka jest widoczna) then 5: przejdźdozachowania(jedźdopiłki) 6: end if {Generowanie sterowania} 7: sterowanie i.nawiguj tak 8: sterowanie i.cel wyznaczcel() aby nie wyjechać poza pole gry - konieczne będzie przesunięcie się z piłką w taki sposób, aby mieć więcej przestrzeni do manewrowania, co stanowi dodatkowe zachowanie do wykonania. Twórcy STP stworzyli cały szereg zachowań potrzebnych w specyficznych sytuacjach, z którymi robot ma do czynienia na boisku. Algorytm każdego z zachowań składa się z fazy przetwarzania danych z czujników, generowania sterowań dla efektorów oraz przejścia do kolejnego (lub tego samego) zachowania wynikającego z taktyki przy spełnieniu określonych warunków (np. czasu trwania danego zachowania, stanu posiadania piłki itd.). Warunki te są określane jako parametry maszyny stanów, w której skład wchodzi dane zachowanie - dzięki temu możliwe jest ponowne użycie kodu danego zachowania w innej taktyce (z innymi parametrami). Sposób realizacji zachowania JedźDoCelu (wchodzącego w skład sekwencji PrzemieśćPiłkę użytej w taktyce 3.2) przedstawia w sposób uproszczony algorytm 3.3. W pierwszej kolejności wyznacza on zachowanie, do którego należy przejść w następnym kroku. Jeżeli warunki przejść nie są spełnione, zachowanie JedźDoCelu będzie wykonane ponownie. Można zauważyć, że możliwe zmiany zachowań zależą od aktualnej taktyki oraz szeregu heurystycznych ocen (jak np. wartość parametru piłka przed robotem) odnoszących się m. in. do geometrycznych relacji między obiektami na boisku. 30

32 Rozdział 3. Sterowanie drużyną w lidze Small Size Można zastąpić Plany gry Plany to ostatni element w hierarchi zaproponowanej przez STP. Organizują one grę całej drużyny poprzez przydział robotom ról wraz z przypisanymi do nich taktykami. Odpowiadają też za synchronizację zachowań zawodników na boisku. Typowy plan definiuje: maszynęstanów sekwencją zachowań lub automatem skończonym w nazwach metod itd. warunki wykonalności - ich spełnienie jest niezbędne do zastosowania danego planu, warunki zakończenia - pozwalają stwierdzić, czy nastąpił koniec wykonywania planu, zestaw ról dla poszczególnych robotów, szczegóły dotyczące sposobu wykonania planu. Twórcy STP opracowali specjalny sposób opisu planów w formie, która pozwala na łatwą edycję i jest czytelna dla człowieka. Przykładowy plan przedstawiono na listingu poniżej: Listing 3.1: Przykładowy plan gry zespołu PLAY Naive Offense APPLICABLE offense DONE aborted! offense ROLE 1 shoot A none ROLE 2 defend_ point { }

33 Rozdział 3. Sterowanie drużyną w lidze Small Size none ROLE 3 defend_ lane { B 0-200} { B } none ROLE 4 defend_ point { } none Ponownie kwestia tłumaczenia - do ustalenia Pierwsza linia definiuje nazwę planu. Następnie opisane są warunki wykonania zdefiniowane są po słowie kluczowym APPLICABLE. Opierają się one na wysokopoziomowych predykatach generowanych przez moduł analizujący sytuację na boisku. W tym przypadku stosowana jest flaga offense, która oznacza, że drużyna jest w posiadaniu piłki i atakuje przeciwnika 1. Podobnie zdefiniowane są warunki zakończenia planu - jedyną różnicę stanowi tutaj fakt, iż po słowie kluczowym DONE występuje jeszcze wartość zwracana jako rezultat działania planu (w tym przypadku aborted), która może posłużyć jako podstawa np. do decyzji o wyborze tego planu w przyszłości. Po zdefiniowaniu warunków opisywane są role poszczególnych robotów w danym planie. W przykładzie zdefiniowano role dla czterech robotów (bramkarz jest pomijany). Rola 1 nakazuje użycie taktyki shoot polegającej na oddaniu strzału na bramkę i zostanie przypisana do robota będącego w posiadaniu piłki. Kolejne role definiują miejsca na boisku, w których powinni znaleźć się pozostali zawodnicy (w tym celu stosowana jest taktyka defend point z odpowiednimi parametrami). Do każdej z ról można przypisać jedną lub więcej taktyk - wtedy wykonywane będą one sekwencyjnie w kolejności zdefiniowanej w planie. Za realizacją planów odpowiedzialny jest osobny moduł STP. Jego zadaniem jest m. in. przyporządkowanie ról zdefiniowanych w planie poszczegól- 1 W rzeczywistości predykat ten może być oparty na szeregu skomplikowanych obliczeń geometrycznych, historii posiadania piłki przez zespoły, decyzji sędziego itp. 32

34 Rozdział 3. Sterowanie drużyną w lidze Small Size nym robotom. Decyzja o przydziale wynika z taktyk określonych dla danej roli - to właśnie taktyki dostarczają zestaw odpowiednich reguł. Możliwa jest także zamiana ról bez przerywania realizacji planu w momencie zmiany sytuacji na boisku. Ponadto w trakcie gry wykonywane są sprawdzenia prostych akcji, które mogłyby przynieść wymierne zyski dla drużyny. Przykładowo - dla zawodnika posiadającego piłkę sprawdzane jest, czy może on oddać strzał na bramkę z pominięciem aktualnie wykonywanej taktyki. Taki mechanizm zwiększa skuteczność gry zespołu, dodatkowo upraszczając konstrukcję planów, których twórca nie musi uwzględniać takich elementarnych zachowań w ich opisie. Ostatnią rolą wspomnianego modułu jest sprawdzanie warunków zakończenia planu - w tym przypadku dodatkowymi czynnikami są np. decyzje arbitra. Strzelone bramki przekładają się na sukces danego planu, podobnie jak np. rzuty wolne. Natomiast bramki stracone oznaczają porażkę. Wyniki zastosowania planów są stosowane podczas decydowania o kolejnych zagraniach. Wybór planów dokonywany jest z kolekcji dostępnych strategii (playbook). W przypadku, gdy dla danej sytuacji możliwe jest wykonanie tylko jednego planu, wybór wariantu gry jest oczywisty. W momencie, gdy kilka strategii pasuje do warunków na boisku, prawdopodobieństwo wyboru danego planu P związane jest z określoną wagą w P. Wagi te mogą być wcześniej zdefiniowane dla każdego planu, ale możliwe jest także ich modyfikowanie podczas gry na podstawie rezultatów działania danej strategii. Szczegółowo zagadnienie to zostało opisane w [14] Planowanie ruchu robota Umiejętność skutecznej nawigacji w dynamicznym środowisku ligi Small Size jest niezbędna do zbudowania osiągającej sukcesy drużyny robotów. Analizując dokumentację dostarczoną przez zespoły można zauważyć, iż większość rozwiązań opartych jest na metodzie planowania ścieżki zwanej RRT (Rapidly-exploring random trees). Algorytm ten został zaproponowany przez Stevena LaValle ([6]) w 1998 roku i od tamtego czasu jest z powodzeniem 33

35 Rozdział 3. Sterowanie drużyną w lidze Small Size stosowany w lidze. Starsze rozwiązania opierały się na metodzie sztucznych pól potencjału. Oba algorytmy zostały szczegółowo opisane poniżej. Metoda sztucznych pól potencjału Metoda ta została początkowo zaproponowana dla manipulatorów ([8]), a następnie zaadaptowana na potrzeby nawigacji robotów mobilnych ([9]). Modeluje ona robota jako punktową cząstkę obdarzoną ładunkiem elektrycznym, która porusza się w polu potencjału. Przeszkody w otoczeniu robota-cząstki mają ładunek o takim samym biegunie, przez co wywierają na niego siłę odpychającą pozwalającą na uniknięcie kolizji. Natomiast cel obdarzony jest ładunkiem przeciwnym, dzięki czemu robot podąża w zadanym kierunku. Zatem wynikowe pole potencjału działające na robota w punkcie q = (x, y) jest sumą pól odpychających go od przeszkód U p (q) oraz pola przyciągającego do celu U c (q): U(q) = U c (q) + U p (q) (3.1) Zakładając, że funkcja sztucznego pola potencjałowego U(q) jest różniczkowalna, siła działająca na robota w punkcie q = (x, y) wyraża się wzorem: F (q) = U(q) = δu(q) δx δu(q) δy (3.2) Potencjał przyciągający jest zazwyczaj modelowany funkcją kwadratową U c (q) = 1 2 αd2 (q, q c ) (3.3) gdzie α jest współczynnikiem skalującym, natomiast d( ) euklidesową odległością pomiędzy aktualną pozycją robota q a pozycją docelową q c. Siłę przyciągania działającą na robota można wyrazić wzorem F c = U c (q) = αd(q, q c ) d(q, q c ) = α(q q c ) (3.4) Siła ta dąży do zera w miarę, jak robot zbliża się do celu. 34

36 Rozdział 3. Sterowanie drużyną w lidze Small Size Potencjał odpychający modelowany jest za pomocą funkcji rosnącej do nieskończoności wraz ze zbliżaniem się do przeszkody: 1 U p (q) = β 1 2 d(q,q p) jeśli d(q, q 2 p ) d 0 (3.5) 0 jeśli d(q, q p ) > d 0 gdzie d 0 oznacza odległość ograniczającą zasięg siły odpychającej oddziaływującej na robota. Sposób działania algorytmu przedstawia rysunek 3.2a. Można zauważyć, że przy odpowiednio dobranych funkcjach potencjału robot jest w stanie poruszać się po gładkiej trajektorii do celu. Podstawowym problemem związanym ze stosowaniem metody sztucznych pól potencjału jest unikanie minimów lokalnych - sytuację taką przedstawia rysunek 3.2b robot przeszkoda przeszkoda (a) Zasada działania + cel robot przeszkoda (b) Minimum lokalne + cel Rysunek 3.2: Metoda sztucznych pól potencjału RRT RRT (Rapidly-exploring random tree) jest stosunkowo prostą metodą pozwalającą na szybkie wyznaczenie bezkolizyjnej ścieżki w ciągłej przestrzeni otaczającej robota. Algorytm bazuje na eksploracji otoczenia za pomocą drzewa możliwych stanów. Jego konstrukcja rozpoczyna się od bieżącej pozycji robota. W każdej iteracji z prawdopodobieństwem p drzewo rozbudowywane jest w stonę celu. Rozbudowa polega na odszukaniu węzła w drzewie znajdującego się najbliżej punktu docelowego (stosując np. metrykę euklidesową) i 35

37 Rozdział 3. Sterowanie drużyną w lidze Small Size cel... krok 1 krok 2 krok 7 Rysunek 3.3: Kolejne kroki algorytmu RRT dodaniu do niego węzła leżącego w pewnej odległości d w stronę celu. Natomiast z prawdopodobieństwem 1 p drzewo rozbudowywane jest w stronę losowo wybranego (z rozkładem równomiernym) punktu w przestrzeni. Dobierając odpowiednią wartość parametru p można regulować balans między eksploracją otoczenia a podążaniem w stronę celu. Algorytm kończy działanie w momencie, kiedy dodawany węzeł znajdzie się w odpowiednio małej odległości od celu. Natomiast unikanie kolizji z przeszkodami jest realizowane w ten sposób, że w chwili dodawania nowych węzłów do drzewa sprawdzane jest, czy nie kolidują one z obiektami w przestrzeni robota. W ten sposób algorytm RRT jest w stanie znaleźć bezkolizyjną ścieżkę pozwalającą robotowi nawigować w stronę zadanego punktu docelowego. Mechanizm budowy drzewa przedstawia rysunek 3.3, natomiast przykładowy wynik działania algorytmu pokazano na rysunku Opis zastosowanego algorytmu Tytuł: proponowane/zastosowane rozwiązanie? Przegląd rozwiązań stosowanych w lidze Small Size dokonany w rozdziale 3.3 posłużył jako punkt wyjścia do projektowania systemu sterowania drużyną zaproponowanego w niniejszej pracy. Z uwagi na fakt, że stworzenie skutecznie grającego zespołu RoboCup jest problemem niezwykle złożonym i często angażującym wieloosobowe zespoły ludzi, niezbędne były pewne uproszczenia. Przede wszystkim zdecydowano się na zastąpienie przedstawionego w STP scentralizowanego sterowania grą rozwiązaniem rozproszonym. W tym 36

38 Rozdział 3. Sterowanie drużyną w lidze Small Size Rysunek 3.4: Ścieżka odnaleziona przez algorytm RRT (źródło: [7]) celu stworzono projekt systemu behawioralnego, w którym każdy z robotów jest w stanie samodzielnie wykonywać akcje zapisane w postaci zestawu zadań (odpowiadających taktykom proponowanym przez STP). Gry zespołu nie nadzoruje globalny koordynator, zatem współpraca między zawodnikami wynika tylko z zestawu reguł związanych z aktualnym zadaniem. Tym sposobem zmniejszono złożoność całego systemu - oczywiście kosztem możliwości wykonywania przez zespół skomplikowanych planów wymagających zaawansowanej synchronizacji działań. Rozbudowa systemu o element koordynatora może być rozwiązaniem, które warto wdrożyć podczas dalszych prac nad ligą Small Size. Architekturę systemu przedstawiono na rysunku 3.5. W momencie nadejścia nowych danych (z kamery - o położeniach i prędkościach obiektów na boisku - lub decyzji sędziego) aktualizowany jest blok stanu gry. Jego głównym zadaniem jest gromadzenie oraz przetwarzanie informacje o sytuacji na boisku. Na podstawie danych z kamery oblicza on m. in. przewidywaną pozycję obiektów. Ponadto dostarcza zestawu predykatów informujących np. o tym, czy gra jest zatrzymana przez sędziego lub która z drużyn jest w posia- 37

39 Rozdział 3. Sterowanie drużyną w lidze Small Size daniu piłki. Na ich podstawie kolejny z bloków - moduł generujący strategię dla robota - dokonuje wyboru odpowiedniego zadania. Zachowanie modułu strategii można konfigurować za pomocą parametrów podawanych do programu robota - decydują one o np. o tym, jaka będzie rola zawodnika na boisku. Z rodzaju wybranego zadania wynikają komendy, jakie są przesyłane do sterownika robota. Przykładem może być polecenie ustawienia robota na zadanej pozycji. W tym celu moduł sterownika komunikuje się z blokiem nawigacyjnym, który wyznacza bezkolizyjną ścieżkę do celu. Na jej podstawie wyznaczane jest odpowiednie sterowanie, które jest przesyłane do zawodnika na boisku Zadania Zadania stanowią zestaw algorytmów, w oparciu o które generowania jest strategia zawodnika. Podobnie do taktyk w STP, definiują one warunki wykonalności oraz określają, jakie komendy wraz z parametrami należy wysłać do sterownika robota, aby wykonać zadaną akcję. Lista zadań, jakie opracowano na potrzeby niniejszej pracy, wygląda następująco: Stop - podstawowe zadanie, ustawiające dla robota zerowe wartości prędkości. Stosowane w momencie, kiedy gra jest zatrzymana przez sędziego. Dodatkowo zawodnik wykonujący to zadanie będzie utrzy- Oprogramowanie robota dane z kamery decyzje sędziego stan gry moduł nawigacyjny pliki konfiguracyjne strategia sterownik robota sygnały sterujące Rysunek 3.5: Architektura oprogramowania robota 38

40 Rozdział 3. Sterowanie drużyną w lidze Small Size mywać minimalną odległość 50 cm od piłki 2, co pozwala na jej bezproblemowe ustawienie na boisku i wznowienie gry. HoldPosition - zachowanie polega na utrzymywaniu przez zawodnika zadanej pozycji. Jeżeli miejsce docelowe jest zajęte, robot stara się zbliżyć do niego na minimalną możliwą odległość. Zadanie jest użyteczne w momencie, kiedy sędzia wydał już decyzję o tym, jaki będzie rodzaj wznowienia gry po zatrzymaniu (rzut wolny, rzut rożny itp.) i zawodnik przejął piłkę (będzie wykonywać stały fragment gry), ale nie ma jeszcze prawa podawać, gdyż gra nie została przez arbitra wznowiona. WaitForPass - zadanie polegające na czekaniu na podanie piłki w zadanym miejscu. Pozycja generowana przez zadanie wynika np. z ról robota lub tzw. obszarów aktywności (opisanych w rozdziale 3.4.5). Podczas wykonywania tego zadania robot przemieszcza się do zadanego punktu cały czas pozostając zwróconym w stronę piłki, co poprawia skuteczność odbierania podań lub przechwytywania piłki zgubionej przez innego zawodnika. Jeżeli po dotarciu na miejsce okazuje się, że podanie do robota jest niemożliwe (np. został zasłonięty przez inne roboty), generowany jest nowy punkt docelowy dla zadania. Cover - zadanie krycia z góry wyznaczonego przeciwnika, stosowane w sytuacjach defensywnych (gdy drużyna przeciwna posiada piłkę). Robot przemieszcza się do punktu położonego na lini pomiędzy przeciwnikiem a piłką tak, żeby odciąć możliwość podania. W sytuacji, gdy zawodnik, którego wyznaczono do krycia, jest w posiadaniu piłki, robot stara się odciąć możliwość strzału na bramkę. Obie sytuacje przedstawiono na rysunku 3.6. CaptureBall - to zachowanie jest stosowane w momencie, kiedy możliwe jest przejęcie piłki. Oznacza to, że istnieje taki punkt leżący na trajektorii poruszania sie piłki, do którego robot jest w stanie dotrzeć 2 Jest to wymóg regulaminu ligi Small Size 39

41 Rozdział 3. Sterowanie drużyną w lidze Small Size (a) odcięcie od podania (b) obrona bramki Rysunek 3.6: Zadanie krycia przeciwnika - warianty w odpowiednim czasie. Możliwe są tutaj dwa warianty. Pierwszy to kierowanie się do punktu na trajektorii piłki, który jest najbliżej robota. Jest to podejście bezpieczne, ale robot ryzykuje, że inny z zawodników zdąży przejąć piłkę wcześniej. Dlatego zastosowanym podejściem jest wyznaczanie takiego punktu, który pozwoli na jak najszybsze przejęcie poruszającej się piłki. Ilustrację rozwiązania przedstawiono na rysunku 3.7. (a) minimalizacja drogi robota (b) minimalizacja czasu przejęcia Rysunek 3.7: Metody przejmowania piłki PassTheBall - zadanie pozwalające na podanie piłki to partnera. Możliwe jest podawanie do najbliższego lub najdalej (w stronę bramki przeciwnika) wysuniętego gracza z zespołu. Aby zadanie było wykonalne, robot musi być w posiadaniu piłki. Do skutecznego podania istotne 40

42 Rozdział 3. Sterowanie drużyną w lidze Small Size Rysunek 3.8: Sprawdzanie możliwości strzału jest obliczenie z wyprzedzeniem pozycji zawodnika, do którego robot ma podać - pozwala to na przekazywanie sobie piłki przez roboty bez zatrzymywania się. Shoot - zadanie polegające na oddaniu strzału na bramkę. Przed wykonaniem sprawdzane jest, czy istnieje bezkolizyjna droga do bramki. W tym celu należy wykryć, czy żaden z robotów nie znajduje się na linii łączącej piłkę i wybrany punkt w bramce przeciwnika. W celu przyspieszenia procesu sprawdzania testowana jest trajektoria pomiędzy położeniem piłki a N równomiernie rozmieszczonymi punktami położonymi na linii bramkowej. Liczba punktów jest parametrem konfigurowalnym. Rozwiązanie przedstawia rysunek 3.8. ProtectGoal - zachowanie przypisywane zawodnikowi, który pełni rolę bramkarza. Polega ono na takim ustawieniu robota na lini przed bramką, aby blokować przeciwnikom możliwość strzału zasłaniając jak największą część bramki. Zadanie to wykonywane jest zawsze, gdy nie ma możliwości bezpośredniego przechwycenia piłki. 41

43 Rozdział 3. Sterowanie drużyną w lidze Small Size Sterownik robota Wspomniane w sekcji zadania odwołują się do metod, które dostarcza sterownik robota. Stanowią one zestaw elementarnych akcji, które jest w stanie wykonywać zawodnik. Należą do nich: jazda do zadanej pozycji - akcja przyjmująca jako parametr punkt na planszy, do którego powinien dojechać robot. Odwołuje się ona do bloku nawigacyjnego, który wyznacza ścieżkę do celu. Pierwszy punkt ze ścieżki jest nastepnie brany jako tymczasowy punkt docelowy i na jego podstawie generowane jest sterowanie, które jest wysyłane do robota. obrót w stronę celu - akcja, której wykonanie skutkuje zwróceniem robota w stronę zadanego celu. Jej możliwy wariant to obrót z piłką w stronę zadanego punktu - polega on na takim przemieszczaniu się robota, aby piłka pozostała cały czas w tym samym miejscu. strzał oraz podanie - obie te akcje pozwalają na kopnięcie piłki za pomocą kickera, w który jest wyposażony robot. Jedyną różnicą jest siła uderzenia - prędkość piłki podczas podania musi być mniejsza, aby zawodnik, do którego skierowano podanie, nie miał problemów z odbiorem. Sterownik umożliwia też zadawanie prędkości liniowej oraz kątowej robota w sposób bezpośredni, co okazuje się być przydatne podczas wykonywania procedur testowych Generowanie strategii Zadania oraz zestaw elementarnych akcji dostarczanych przez sterownik robota są podstawą działania algorytmu sterującego grą zawodnika. W proponowanym rozwiązaniu sposób powiązania kolejnych zadań oparty jest na automacie skończonym. Stosowane są trzy rodzaje automatu: sterujący grą bramkarza, 42

44 Rozdział 3. Sterowanie drużyną w lidze Small Size kontrolujący zawodnika podczas zatrzymania gry, kontrolujący gracza po wznowieniu gry. Rola bramkarza jest zawsze przydzielana jednemu z robotów przed rozpoczęciem meczu (co jest podyktowane zasadami ligi Small Size). Odpowiadający jej automat skończony przedstawiono na rysunku 3.9. Początkowo zawodnikowi zostaje przydzielone zadanie Stop. Jeżeli sędzia wyda komendę o rozpoczęciu gry (aktualną decyzję sędziego na diagramie reprezentuje zmienna cmd), robot przechodzi do zadania ProtectGoal. W momencie, kiedy możliwe jest przechwycenie piłki i to bramkarz znajduje się najbliżej niej, wykonywane jest zadanie CaptureBall. Po udanym przejęciu bramkarz podaje piłkę do najbardziej wysuniętego partnera z drużyny. Strzelanie nie jest możliwe, jako że strzał przez całe boisko ma niską skuteczność. Należy jeszcze dodać, że każde z zadań może zostać przerwane w momencie, gdy sędzia zatrzyma grę. Strategia dla zawodnika grającego w polu jest dużo bardziej skomplikowana. Dlatego dla poprawienia czytelności podzielono algorytm kontrolujący gracza na dwa warianty - sterowanie podczas zatrzymanej gry (rozgrywanie tzw. stałych fragmentów) oraz podczas trwania rozgrywki. Pierwszy z nich zaprezentowano na rysunku Algorytm rozpoczyna działanie od zadania Stop. Jeżeli to nie drużyna robota wykonuje stały fragment gry, możliwe jest jedno z dwóch zachowań - krycie przeciwnika (jeżeli taka modyfikacja jest włączona - zagadnienie to opisano w sekcji 3.4.4) lub czekanie na piłkę w wybranej pozycji defensywnej. W przypadku, gdy sędzia przyznał drużynie robota prawo rozpoczęcia gry, piłkę przejmuje ten z graczy zespołu, który znajduje się najbliżej niej. Po przechwyceniu piłki robot powinien oczekiwać w miejscu (zadanie HoldPosition) na sygnał rozpoczęcia gry (cmd == ready) nadany przez sędziego. Następnie zawodnik może wykonać podanie. Według zasad ligi Small Size gra jest uznawana za wznowioną w chwili, w której kopnięta piłka straci kontakt z robotem. W tym momencie moduł generowania strategii otrzymuje odpowiednią informację od komponentu zajmującego się oceną stanu gry i dopóki gra nie zostanie zatrzymana, sterowanie 43

45 Rozdział 3. Sterowanie drużyną w lidze Small Size Stop cmd == halt stop cmd!= halt & stop ProtectGoal capture possible robot closest to the ball CaptureBall capture not possible ball captured PassTheBall ball lost Rysunek 3.9: Strategia sterowania bramkarzem rozgrywką odbywa się według algorytmu przedstawionego na rysunku Stanem początkowym jest zadanie HoldPosition. Jest w nim zawarte większość sprawdzeń związanych z posiadaniem piłki. Jeżeli to robot ma nad nią kontrolę, sprawdzane jest, czy możliwe jest oddanie strzału na bramkę. Jeśli tak, bieżące zadanie zmieniane jest na Shoot. W przeciwnym przypadku robot podejmuje próbę podania do innego zawodnika z drużyny (zadanie PassTheBall). Jeżeli piłka jest już w posiadaniu partnera, robot wychodzi na pozycję, w której będzie oczekiwać na podanie (zadanie WaitForPass). Jeżeli to przeciwnik ma kontrolę nad piłką, robot również wybierze to zadanie (wyznaczając tym razem pozycję defensywną), o ile nie jest włączona funkcja krycia przeciwnika podczas obrony. W sytuacji wykonywania zadań WaitForPass oraz Cover sprawdzane jest dodatkowo, czy nie ma możliwości przejęcia piłki - jeżeli tak, następuje zmiana zadania na CaptureTheBall. 44

46 Rozdział 3. Sterowanie drużyną w lidze Small Size Stop Cover our kickoff N Y robot closest to the ball cover enabled Y N Y N WaitForPass CaptureBall ball captured HoldPosition cmd == ready PassTheBall Rysunek 3.10: Strategia zawodnika podczas stałego fragmentu gry Podobnie dzieje się w stanie HoldPosition, jeżeli żaden z zawodników na boisku nie jest w posiadaniu piłki. Wykonywanie wyżej opisanej strategii kończy się w momencie, kiedy gra zostaje przerwana przez sędziego komendą halt lub stop, oznaczającą stały fragment gry. Przedstawione powyżej algorytmy zostały dla zachowania czytelności zapisane w sposób uproszczony. W praktyce skuteczny algorytm sterowania wymaga sprawdzania większej liczby warunków. Przykładowo zastosowane zostało rozwiązanie wzorowane na elemencie STP - w momencie wykonywania zadań sprawdzana jest dodatkowo możliwość oddania strzału. Takie 45

47 Rozdział 3. Sterowanie drużyną w lidze Small Size ball captured HoldPosition ball is owned CaptureBall Y N capture possible N Y PassTheBall robot has a ball capture possible N Y team has a ball shooting possible N Y cover enabled N Y Shoot Cover Y N WaitForPass team has a ball Rysunek 3.11: Strategia zawodnika podczas trwania gry pominięcie aktualnego zadania pozwala na zwiększenie skuteczności gry drużyny i lepsze wykorzystywanie okazji do zdobycia bramki. Zaproponowane powyżej rozwiązanie pozwala na sterowanie grą pojedynczego robota w środowisku rozproszonym. Nie trudno zauważyć, że dla uproszczenia przyjęto, że wszystkie roboty w danej drużynie posługują się tym samym algorytmem. Dzięki temu można bazować na założeniach, że np. stałe fragmenty gry są zawsze wykonywane przez robota, który znajduje się najbliżej piłki lub rozpoznawać na podstawie położenia względem bramki, który z zawodników pełni rolę bramkarza (jest to przydatne przy wyznaczaniu, do którego zawodnika można podać piłkę). W przypadku, gdy takie założenie nie byłoby spełnione, zaproponowany algorytm mógłby prowadzić do sytuacji konfliktowych. Rozwiązaniem problemu mogłoby być na 46

48 Rozdział 3. Sterowanie drużyną w lidze Small Size przykład zaimplementowanie modułu rozpoznającego zadania wykonywane przez partnerów z drużyny. Dane przez niego dostarczone posłużyłyby wtedy jako dodatkowe predykaty w procesie decyzyjnym, poprawiając jakość generowanej strategii Modyfikacje strategii Sposób funkcjonowania algorytmu strategii robota może być dodatkowo zmieniany za pomocą parametrów konfiguracyjnych. Mechanizm ten został wprowadzony na potrzeby eksperymentów, które pozwoliłyby ocenić, jakie z funkcji algorytmu mają największy wpływ na wynik meczu. Zdecydowano się na możliwość wykonywania następujących modyfikacji: zdefiniowanie ról dla robotów - domyślnie robotom można przydzielać role bramkarza oraz piłkarza grającego w polu. Zaawansowana modyfikacja polega na podziale graczy pola na atakujących oraz obrońców. Zmiana roli wpływa na pozycje zajmowane przez robota na boisku. Napastnicy będą starali się utrzymać jak najbliżej bramki przeciwnika, natomiast obrońcy będą zajmować pozycje defensywne. Można zatem uznać, że z roli przydzielonej robotowi wynika bezpośrednio jego obszar aktywności na boisku. Więcej szczegółów na temat tego zagadnienia zawarto w sekcji zbalansowane rozmieszczanie zawodników na boisku - w wersji prostej algorytmu strategii roboty rozmieszczane są na losowych pozycjach (wybieranych z rozkładem jednostajnym) w swoich obszarach działania. Zaawansowana modyfikacja polega na dobraniu rozmiarów tych obszarów tak, aby roboty ustawiały się w formacji pokrywającej całą szerokość boiska. Powoduje to rozciągnięcie gry zespołu, co w pewnych sytuacjach daje wymierne korzyści, jak np. zwiększenie szansy na otrzymanie podania. włączenie lub wyłączenie zadania krycia przeciwnika - ostatnia z modyfikowalnych cech. Pozwala ona sprawdzić, jaki wpływ ma umiejętność 47

49 Rozdział 3. Sterowanie drużyną w lidze Small Size odcinania przeciwnika od podań podczas obrony na wynik meczu. Wyłączenie tego zadania powoduje, że w sytuacji defensywnej roboty będą zachowywać się tak, jak wynika to z przydzielonych im ról Obszary aktywności Koncepcja obszarów aktywności to rozwiązanie stworzone po to, aby w prosty sposób opisywać i modyfikować strefę działań zawodnika ligi na boisku. Wspomniany obszar definiuje dwuwymiarową przestrzeń, z której w sposób losowy wybierane są punkty docelowe dla robota generowane przez zadanie WaitForPass. O tym, w jaki sposób obliczany jest obszar, decydują: sytuacja na boisku (drużyna atakuje się/broni dostępu do bramki), rola, jaką przypisano do robota, stan aktywacji modyfikatora związanego ze zbalansowanym umieszczaniem robotów. W przypadku, gdy roboty nie mają sprecyzowanych roli, używana jest rola domyślna (gracz pola 3 ). W tej sytuacji obszar aktywności ogranicza się do fragmenu własnej połowy boiska (w przypadku, gdy drużyna się broni) lub połowy przeciwnika - w przypadku ataku (por. rys. 3.12). Zwężenie obszaru działania podczas obrony ma za zadanie zwiększyć koncentrację robotów pod własną bramką w celu utrudnienia przeciwnikowi oddania skutecznego strzału. Jeżeli role zostały określone, napastnicy oraz obrońcy posługują się zupełnie innymi obszarami działania. W przypadku, gdy drużyna atakuje, napastnicy będą starali się utrzymać pozycję pomiędzy bramką przeciwnika a najmniej oddalonym od niej zawodnikiem oponentów 4 (ale obszar ten nie może mieć szerokości mniejszej, niż min). Obrońcy z kolei będą starali się 3 Rola bramkarza nie korzysta z obszarów aktywności przy wykonywaniu zadań 4 Jako, że regulamin nie definiuje sytuacji spalonej, takie zachowanie jest zgodne z zasadami 48

50 Rozdział 3. Sterowanie drużyną w lidze Small Size (a) obrona (b) atak Rysunek 3.12: Obszary aktywności zawodników drużyny niebieskiej (role domyślne) (a) napastnicy (b) obrońcy Rysunek 3.13: Obszary aktywności zawodników drużyny niebieskiej podczas ataku (przypisano role 2 napastników oraz 2 obrońców) pozostać w strefie otaczającej najbardziej wysuniętego gracza przeciwnika, aby wspierać napastników, a w razie straty piłki być w stanie szybko wrócić w rejon własnej bramki (rysunek 3.13). Natomiast w przypadku, gdy przeciwnik jest w posiadaniu piłki, obszar aktywności obrońców będzie rozciągał się od własnej lini bramkowej do najdalej wysuniętego zawodnika przeciwnika (ale nie może mieć on mniej, niż określono za pomocą parametru min). Napastnicy natomiast będą pozostawać w linii z zawodnikami przeciwnika najdalszymi od atakowanej bramki - dzięki temu drużyna broniąca się jest w stanie szybko przejść do ataku (rysunek 3.14). Aktywowanie modyfikatora oznaczającego zbalansowanie rozmieszczenia robotów wpływa na zmianę wysokości obszarów działania zawodników. Ma 49

51 Rozdział 3. Sterowanie drużyną w lidze Small Size (a) obrońcy (b) napastnicy Rysunek 3.14: Obszary aktywności zawodników drużyny niebieskiej podczas obrony (przypisano role 2 napastników oraz 2 obrońców) to swój efekt bez względu na role przypisane robotom. Działanie zbalansowanego rozmieszczania polega na posortowaniu robotów danej drużyny według rosnącej wartości współrzędnej powstałej z rzutu położenia robota na oś równoległą do linii bramkowej. Tak otrzymana kolejność decyduje o tym, w jaki sposób zostanie zmniejszony aktualny obszar aktywności przydzielony robotowi. Szczegóły tego rozwiązania przedstawiono na rysunku Rysunek 3.15: Przykład zbalansowanego rozmieszczenia robotów podczas ataku (role domyślne) 50

52 Rozdział 4 Środowisko symulacyjne Przegląd dokumentów zgłoszeniowych zespołów biorących udział w rozgrywkach ligi Small Size zawarty w rozdziale 3.3 ukazał sprawdzone rozwiązania stosowane w kwestii realizacji sterowania drużyną. W dokumentacji podkreślono również, że kluczową rolę w rozwoju zespołu RoboCup pełni symulator rozgrywki([11], [12]). Umożliwia on dużo szybsze pisanie aplikacji sterującej i prawie natychmiastowe jej testowanie bez konieczności konfigurowania całego zespołu fizycznych robotów. Pozwala także na oszczędzanie sprzętu. Dzięki symulacjom roboty są eksploatowane w mniejszym stopniu i rzadziej ulegają awariom, co zmniejsza koszty utrzymania drużyny. Niestety nie istnieje jedno ustandaryzowane rozwiązanie, którym posługiwałyby się wszystkie zespoły. Większość symulatorów to oprogramowanie napisane specjalnie na potrzeby danej drużyny. Dlatego też zdecydowano się na dalsze korzystanie z symulatora Gazebo. Było to rozwiązanie znane i z powodzeniem zastosowane w ramach pracy inżynierskiej ([1]). 4.1 Symulator Gazebo Oprogramowanie Gazebo jest częścią tzw. projektu Player 1, dostarczającego zestawu aplikacji, które pozwalają na pisanie kontrolerów robotów, prze- 1 Więcej informacji dostępnych pod adresem 51

53 Rozdział 4. Środowisko symulacyjne prowadzanie symulacji ich działania na modelowanych obiektach, a także testowanie rozwiązań na rzeczywistych urządzeniach. Oprogramowanie jest dostępne za darmo na licencji GNU GPL i cieszy się dużą popularnością zarówno w środowiskach akademickich, jak i wśród indywidualnych użytkowników. W skład wspomnianego zestawu wchodzą trzy aplikacje: Stage - dwuwymiarowy symulator, stworzony w celu modelowania dużych skupisk robotów mobilnych. Aby zapewnić odpowiednią wydajność, zdecydowano się na uproszczenie elementów symulacji fizycznej (np. nie uwzględnia się siły tarcia, bezwładności obiektów itp.). Modele robotów to prostokąty pokryte odpowiednio dobranymi bitmapami, posiadające masę i aktualną prędkość. Mimo uproszczeń Stage jest rozwiązaniem sprawdzającym się idealne w przypadkach, kiedy testowane są algorytmy sterujące grupą robotów, a wierne odwzorowanie fizyki obiektów nie jest zagadnieniem kluczowym. Gazebo - opracowany początkowo do modelowania robotów działających w środowisku zewnętrznym, jest symulatorem w pełni trójwymiarowym. Pozwala na tworzenie dynamicznych modeli, opisanych szeregiem cech fizycznych. Możliwe są interakcje między robotami, jak i z elementami otoczenia. Większa złożoność symulowanego świata oznacza niestety wzrost wymaganej mocy obliczeniowej. Player - oprogramowanie pośredniczące, dostarczające protokół wymiany informacji (odczytów z sensorów, sygnałów wysyłanych do efektorów robota) pomiędzy aplikacją sterującą, a wyżej wymienionymi symulatorami. Możliwa jest także komunikacja z szeregiem istniejących rzeczywistych robotów, do których Player posiada sterowniki (przykładem jest np. popularny robot Pioneer 2 lub Roomba). Rozwiązanie to pozwala na pisanie oprogramowania sterującego i sprawdzanie go na symulatorze, a następnie płynne przejście do testów w rzeczywistym środowisku. 52

54 Rozdział 4. Środowisko symulacyjne Oprogramowanie sterujące Player Stage Gazebo Robot Rysunek 4.1: Komunikacja w środkowisku Player/Stage/Gazebo Przepływ komunikacji pokazano na rysunku 4.1. Obrazuje on dobrze rolę Playera jako modułu pośredniczącego między aplikacją sterującą a symulatorami lub rzeczywistym robotem. Wymiana informacji odbywa się za pomocą protokołu TCP/IP, co pozwala na dużą dowolność w wyborze języka programowania stosowanego do napisania programu sterującego (wymagana jest tylko obsługa wspomnianego protokołu). Jeżeli jednak z określonych przyczyn nie można skorzystać z Playera jako pośrednika, możliwe jest bezpośrednie odwołanie się do symulatorów Stage oraz Gazebo za pomocą odpowiednich bibliotek (libstage, libgazebo). Komunikacja międzyprocesowa odbywa się wtedy za pomocą pamięci współdzielonej. Jak wspomniano na wstępie, w celu realizacji niniejszej pracy zdecydowano się na wykorzystanie symulatora Gazebo do modelowania rozgrywek ligi Small Size. Rozwiązanie to zostało z powodzeniem zastosowane przez autora w [1]. Z jednej strony pominięcie programu Playera wiązało się z utrudnieniem przystosowania gotowego oprogramowania do ewentualnych testów na rzeczywistych robotach, jednak należy mieć na uwadze fakt, że taki krok i tak wymagałby dopisania odpowiedniego modułu do komunikacji z zawodnikami na boisku. Natomiast używając Playera niemożliwe było uzyskanie danych 53

55 Rozdział 4. Środowisko symulacyjne Rysunek 4.2: Zrzuty ekranów z symulatorów Stage oraz Gazebo o położeniach i prędkościach obiektów w symulowanym świecie, co z kolei było niezbędne do imitacji zachowania oprogramowania serwera video. Dlatego też zdecydowano się pozostać przy sprawdzonej wcześniej architekturze systemu, korzystając tylko z jednego komponentu projektu Player. Wspomniany symulator został napisany w języku C++. Powstałe oprogramowanie oparto na zestawie popularnych bibliotek: Więcej na ten temat w rozdziale o architekturze systemu ODE (Open Dynamics Engine 2 ), odpowiedzialnej za symulację cech fizycznych obiektów oraz interakcji między nimi, OGRE (Object-Oriented Graphics Rendering Engine 3 ), bibliotece graficznej, odpowiadającej za rysowanie modeli, FLTK (Fast Light Toolkit 4 ), odpowiadającej za interfejs użytkownika symulatora, libxml2 5, stanowiącej parser języka znaczników XML, wykorzystywanej głównie do wczytywania plików modeli i konfiguracyjnych. Kod symulatora jest dostępny publicznie pod adresem org. Jego utrzymaniem i rozwojem zajmuje się społeczność, jest też wspierany finansowo przez związaną z robotyką firmę Willow Garage. Dzięki temu

56 Rozdział 4. Środowisko symulacyjne projekt jest w ciągłym rozwoju i ma grono aktywnych użytkowników, którzy są w stanie służyć pomocą w razie problemów technicznych. 4.2 Zasady modelowania w Gazebo Koncepcja sposobu opisu symulowanego środowiska zmieniała się wraz z rozwojem Gazebo. Do wersji 0.7 korzystano z połączenia konfiguracyjnych plików XML oraz modeli obiektów stworzonych przy użyciu języka C++. Wadą takiego rozwiązania była konieczność częstego kompilowania plików modeli na etapie projektowania i dostosowywania parametrów. Dlatego od wersji 0.8 symulatora jego twórcy postanowili zawrzeć zarówno opis środowiska, jaki i działających w nim modeli, w plikach XML. Składnia tych plików może się nieznacznie różnić pomiędzy kolejnymi wersjami, jednak idea opisu pozostaje niezmieniona. W niniejszym rozdziale bazowano na wersji 0.10 symulatora, użytej na potrzeby tej pracy 6. Gazebo tworzy symulowane środowisko na podstawie opisu świata zamieszczonego w pliku.world. Zawiera on ustawienia konfiguracyjne symulacji, sposobu wyświetlania obiektów, interfejsu użytkownika oraz listę modeli, które należy wczytać (kod modelu można też umieszczać bezpośrednio w pliku.world). Przykładowy plik zawierać może następujące sekcje: nagłówek: 1 <? xml version =" 1.0 "?> 2 < gazebo:world > ustawienia silnika fizycznego (ODE), zawierająca definicje szeregu stałych konfigurujących, jak np. krok symulacji (steptime - określający, jaki czas w symulacji upływa pomiędzy kolejnymi aktualizacjami stanu świata), częstotliwość wykonywania kroku czy wartości stałych fizycznych: 6 Pod koniec roku 2011 symulator Gazebo wydano w wersji stabilnej 1.0 (następca 0.10). 55

57 Rozdział 4. Środowisko symulacyjne 3 < physics:ode > 4 < steptime >0.002 </ steptime > 5 < gravity > </ gravity > 6 <erp >0.9 </ erp > 7 <cfm >0.01 </ cfm > 8 < updaterate >100 </ updaterate > 9 </ physics:ode > ustawienia interfejsu użytkownika - rozmiaru i pozycji okna symulatora: 10 < rendering: gui > 11 <size > </ size > 12 <pos > </ pos > 13 </ rendering: gui > konfiguracja sposobu wyświetlania (biblioteka OGRE) - ustawienia cieniowania, tekstur itp.: 14 < rendering: ogre > 15 < shadowtechnique > none </ shadowtechnique > 16 < ambient > </ ambient > 17 <sky > 18 < material >Gazebo / CloudySky </ material > 19 </ sky > 20 </ rendering: ogre > przykład modelu płaskiej powierzchni, na której umieszczone będą obiekty. Model ten jest umieszczony bezpośrednio w kodzie opisującym świat. Zdefiniowane jest jego położenie, rotacja, a także parametry fizyczne (współczynnik tarcia, sprężystość) i cechy wyglądu (materiał, który ma pokrywać model): 21 < model:physical name =" ground_plane "> 22 <xyz >0 0 0</ xyz > 23 <rpy >0 0 0</ rpy > 24 < static >true </ static > 25 < body:plane name =" plane_body "> 56

58 Rozdział 4. Środowisko symulacyjne 26 < geom:plane name =" plane_geom "> 27 <mu1 >100.0 </ mu1 > 28 <kp >2e3 </kp > 29 <kd >1</kd > 30 < normal >0 0 1</ normal > 31 <size > </ size > 32 < material >Gazebo / greengrass </ material > 33 </ geom:plane > 34 </ body:plane > 35 </ model: physical > drugi ze sposobów dodawania modelu - w tym przypadku dane zawarte są w pliku ball.model, który jest dołączany do konfigurowanego świata na zadanej pozycji: 36 < model:physical name =" ball_model "> 37 <xyz > </ xyz > 38 < include embedded =" true "> 39 < xi:include href ="./ models / ball. model "/> 40 </ include > 41 </ model: physical > 42 </ gazebo: world > Tak skonstruowany plik opisuje parametry symulowanego świata. Modele obiektów, które będą symulowane, wykonuje się łącząc ze sobą proste bryły geometryczne, takie jak sfera, walec czy prostopadłościan (por. rys. 4.3). Możliwe jest także użycie bardziej zaawansowanych siatek (trimesh, heigh field). Gazebo pozwala także na importowanie trójwymiarowych modeli stworzonych w przeznaczonych do tego celu programach graficznych, jak np. Blender czy Google SketchUp. Należy jednak pamiętać o tym, że im bardziej złożony jest model, tym kosztowniejsze staje się wykonywanie obliczeń związanych z wykrywaniem ewentualnych kolizji w symulowanym świecie. Bryły, z którch powstaje model, należy ze sobą odpowiednio połączyć. Służą do tego tzw. joints, czyli więzy pomiędzy obiektami. Określają one m. in. punkt połączenia, ilość stopni swobody oraz możliwe osie obrotu. Do- 57

59 Rozdział 4. Środowisko symulacyjne Rysunek 4.3: Typy brył geometrycznych wspierane przez Gazebo stępne rodzaje więzów pokazano na rysunku 4.4. Więcej informacji na ten temat można znaleźć w podręczniku użytkownika biblioteki ODE ([15]). Aby można było sterować stworzonym modelem, w pliku XML z jego definicją należy określić, jakie interfejsy kontrolerów powinien udostępniać. Po zdefiniowaniu interfejsu możliwe jest połączenie się z modelem za pośrednictwem Playera lub bezpośrednio z aplikacji sterującej (odwołując się do symu- Rysunek 4.4: Dostępne typy połączeń (źródło: [15]) 58

60 Rozdział 4. Środowisko symulacyjne latora za pomocą wspomnianej biblioteki libgazebo). Gazebo dostarcza szereg gotowych kontrolerów, pozwalających np. na sterowanie różnicową bazą jezdną robota, sensorami laserowymi, kamerą, interfejsem audio czy ramieniem manipulatora. Przykład przypisania kontrolera do modelu przedstawia kod: 1 < controller:differential_position2d name =" differential_controller "> 2 < leftjoint > left_wheel_hinge </ leftjoint > 3 < rightjoint > right_ wheel_ hinge </ rightjoint > 4 < wheelseparation > </ wheelseparation > 5 < wheeldiameter > </ wheeldiameter > 6 < torque >10.0 </ torque > 7 < interface:position name =" position_iface_0 "/> 8 </ controller:differential_position2d > Definicja powyższego kontrolera (w tym przypadku napędu różnicowego) określa m. in., którymi węzłami powinien sterować zadając prędkość oraz jakie są wymiary i odległości między kołami. Poza tym definiuje, poprzez jaki interfejs należy przesyłać komendy - w tym przypadku jest to position2d. Gazebo definiuje podstawowe interfejsy komunikacyjne dla wszystkich dostarczanych typów kontrolerów. Oprócz tego nic nie stoi na przeszkodzie, aby w razie potrzeby dopisać kolejny kontroler i wyposażyć go we własny, odpowiedni dla potrzeb zadania interfejs. Wraz z kodem źródłowym symulatora Gazebo dostarczany jest zestaw przykładów, pozwalających na szybkie opanowanie podstaw tworzenia światów i modeli, a także pisanie aplikacji klienckich z wykorzystaniem Playera lub libgazebo. Przykłady znajdują się w katalogach worlds oraz examples pakietu. 4.3 Realizacja środowiska ligi Small Size Zaprezentowane w tym rozdziale modele zostały w znacznym stopniu oparte na wcześniejszych konstrukcjach opracowanych na potrzeby pracy inżynierskiej ([1]). Jednak analiza materiałów video dostarczanych przez zespoły star- 59

61 Rozdział 4. Środowisko symulacyjne tujące w lidze Small Size (filmy kwalifikacyjne) oraz reportaży z rozgrywek umieszczanych np. w serwisie spowodowała, że podjęto decyzję o zmianie modelu robota. Dotychczas używany oparty był bazie jezdnej z napędem różnicowym, która w konfrontacji z innymi drużynami z ligi okazałaby się mało konkurencyjna. Dlatego postanowiono stworzyć nowy model robota, wyposażony w wielokierunkową bazę jezdną, opartą na tzw. kołach szwedzkich (rys. 4.5a). Pozwoliła ona znacznie zwiększyć mobilność robota czyniąc go holonomicznym (pozbawionym ograniczeń na kierunki zmian prędkości), umożliwiając np. poruszanie się z zadaną prędkością liniową bez obracania robota, co w środowisku ligi Small Size jest bardzo przydatne w przypadku prowadzenia piłki czy też przemieszczania się po boisku w oczekiwaniu na podanie Model robota Większość konstrukcji zawodników stosowanych w lidze Small Size posiada bazę jezdną opartą na czterech kołach szwedzkich. Zapewnia ona większą stabilność robota. Przy odpowiednio napisanym sterowniku pozwala także na kontynuację jazdy w sytuacji, gdy jeden z silników ulegnie awarii. Jednak na potrzeby symulacji zdecydowano się na wersję podstawową z trzema kołami - zapewnia ona taką samą mobilność, a przy tym znacznie upraszcza konstrukcję modelu. Jedynym problemem okazało się stworzenie modelu koła szwedzkiego, ze względu na jego stosunkowo skomplikowaną konstrukcję mechaniczną. Przykład takiego koła przedstawiono na rysunku 4.5a. Specjalne rolki, które są umieszczone na jego obwodzie, są w stanie się obracać, dzięki czemu możliwy jest ruch całego koła także w kierunku równoległym do jego osi obrotu. Dzięki temu robot wyposażony w takie koła jest w stanie poruszać się w dowolnym kierunku bez zmiany swojej orientacji w przestrzeni. Można zatem założyć, że współczynnik tarcia statycznego koła szwedzkiego o podłoże - dokładnie jego składowa prostopadła do płaszczyzny koła - jest bardzo mały. Cechę tę wykorzystano tworząc uproszczony model koła w Gazebo, który przedstawiono na rysunku 4.5b. Zastosowano tutaj walec, a efekt, któ- 60

62 Rozdział 4. Środowisko symulacyjne (a) rzeczywisty wygląd (b) uproszczony model Rysunek 4.5: Koło szwedzkie (zdjęcie pochodzi ze strony ry dają rolki koła szwedzkiego, zamodelowano dobierając odpowiednio małą wartość współczynnika tarcia µ 1. Schemat utworzonego modelu robota przedstawiono na rysunku 4.6. Jego konstrukcja została oparta na walcu o regulaminowym promieniu 9 cm, w obrębie którego rozmieszczono koła oraz elementy dribblera. Szczegóły tego rozmieszczenia pokazano na wspomnianym rysunku. Na tej podstawie wykonano w programie Blender główną ramę robota, wycinając odpowiednie otwory w bryle walca. Wynikowy element przedstawiono na rysunku 4.7a. Tak przygotowane podwozie posłużyło do konstrukcji modelu w Gazebo, gdzie przy użyciu wiązań zostały do niego doczepione koła oraz elementy dribblera i kickera. Gotową konstrukcję przedstawiono na rysunku 4.7b. Budowa elementów związanych z kontrolą piłki (dribbler) oraz z jej kopaniem (kicker) to wynik szeregu prób wykonanych w symulatorze Gazebo w poszukiwaniu najlepszego rozwiązania. W kwestii dribblera kluczowe było takie dobranie wysokości umieszczenia rolki nad podłożem, żeby nie tylko nadawała piłce odpowiednią rotację wsteczną, ale także umożliwiła swobodną pracę belce stanowiącej konstrukcję kickera. Oprócz tego okazało się, że piłka ma tendencję do ześlizgiwania się z obracającej się rolki dribblera. Aby temu zapobiec, w centralnej części rolki wykonano przewężenie, które ograni- 61

63 Rozdział 4. Środowisko symulacyjne Rysunek 4.6: Schemat wykonanego modelu. Zaznaczono położenie trzech kół względem korpusu robota, a także elementów dribblera cza ruchy piłki równoległe do osi obrotu urządzenia. Rozwiązanie to pokazano na rysunku 4.8a. W skład konstrukcji utrzymującej piłkę w kontakcie z robotem weszła też belka umieszczona pod dribblerem, która blokuje ruch piłki w stronę robota. Przekrój sposobu rozmieszczenia wszystkich wspomnianych elementów przedstawiono na rysunku 4.8b. 62

64 Rozdział 4. Środowisko symulacyjne (a) (b) Rysunek 4.7: Główna bryła robota wykonana w programie Blender oraz gotowy model stworzony w Gazebo dribbler oś obrotu kicker (a) dribbler - przewężenie (b) sposób rozmieszczenia Rysunek 4.8: Elementy konstrukcji modelu robota odpowiedzialne za kontrolę nad piłką Kontroler robota Aby umożliwić aplikacji klienckiej sterowanie robotem, niezbędne było stworzenie odpowiedniego kontrolera, który pozwalałby na zadawanie modelowi prędkości w postaci wektora [v x, v y, ω] T (gdzie para v x, v y oznacza składowe prędkości liniowej robota w m/s, natomiast ω oznacza prędkość kątową modelu wyrażoną w rad/s). Ponadto kontroler musiałby posiadać umiejętność sterowania więzami kickera tak, aby móc oddawać strzał na bramkę lub 63

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA AUTOMATYKI. Robot do pokrycia powierzchni terenu

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA AUTOMATYKI. Robot do pokrycia powierzchni terenu WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA AUTOMATYKI Robot do pokrycia powierzchni terenu Zadania robota Zadanie całkowitego pokrycia powierzchni na podstawie danych sensorycznych Zadanie unikania przeszkód

Bardziej szczegółowo

PROPOZYCJE FORM I ORGANIZACJI MAŁYCH GIER W RÓŻNYCH KRAJACH NA ŚWIECIE

PROPOZYCJE FORM I ORGANIZACJI MAŁYCH GIER W RÓŻNYCH KRAJACH NA ŚWIECIE PROPOZYCJE FORM I ORGANIZACJI MAŁYCH GIER W RÓŻNYCH KRAJACH NA ŚWIECIE / FOOTBALL FEDERATION AUSTRALIA / I. Zaobserwowane korzyści z małych gier statystyka Obserwując różne gry 4x4, 7x7, 11x11 udowodniono,

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

Zastosowania Robotów Mobilnych

Zastosowania Robotów Mobilnych Zastosowania Robotów Mobilnych Temat: Zapoznanie ze środowiskiem Microsoft Robotics Developer Studio na przykładzie prostych problemów nawigacji. 1) Wstęp: Microsoft Robotics Developer Studio jest popularnym

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2013/2014

REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2013/2014 REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2013/2014 1. W zawodach uczestniczą chłopcy i dziewczęta urodzeni: a) ŻAKI 2005 i młodsi, b) ORLIKI - 2003 i młodsi

Bardziej szczegółowo

REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2014/2015

REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2014/2015 REGULAMIN ROZGRYWEK TURNIEJÓW ORLIKÓW I ŻAKÓW OPOLSKIEGO ZWIĄZKU PIŁKI NOŻNEJ W SEZONIE 2014/2015 1. Turnieje Orlików i Żaków rozgrywane są systemem powiatowym jesień (boisko typu Orlik) zima (hala sportowa)

Bardziej szczegółowo

REGULAMIN GMINNO-MIEJSKIEJ HALOWEJ PILKI NOŻNEJ OPEN O PUCHAR BURMISTRZA GMINY I MIASTA SUSZ SUSZ HALA SPORTOWO-WIDOWISKOWA

REGULAMIN GMINNO-MIEJSKIEJ HALOWEJ PILKI NOŻNEJ OPEN O PUCHAR BURMISTRZA GMINY I MIASTA SUSZ SUSZ HALA SPORTOWO-WIDOWISKOWA REGULAMIN GMINNO-MIEJSKIEJ HALOWEJ PILKI NOŻNEJ OPEN O PUCHAR BURMISTRZA GMINY I MIASTA SUSZ SUSZ HALA SPORTOWO-WIDOWISKOWA 1. ORGANIZATOR - Centrum Sportu i Rekreacji w Suszu 2. MIEJSCE - Hala Sportowo-Widowiskowa

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Turniej Piłkarski dla rocznika 2003 Poznań, 14 stycznia 2012

Turniej Piłkarski dla rocznika 2003 Poznań, 14 stycznia 2012 Turniej Piłkarski dla rocznika 2003 Poznań, 14 stycznia 2012 Patroni Medialni SYSTEM ROZGRYWEK W turnieju udział weźmie 12 zespołów złożonych z zawodników urodzonych w roku 2003 i młodszych. Drużyny zostaną

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

HALOWY TURNIEJ PIŁKI NOŻNEJ

HALOWY TURNIEJ PIŁKI NOŻNEJ I HALOWY TURNIEJ PIŁKI NOŻNEJ ROCZNIK 2005 I MŁODSI O PUCHAR GAZETY ZAMOJSKIEJ ZAMOŚĆ 14 GRUDNIA 2014R. PRZEPISY GRY INFORMACJE OGÓLNE: miejsce rozgrywek - Ośrodek Sportu i Rekreacji w Zamościu, ul. Królowej

Bardziej szczegółowo

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Zadanie do wykonania 1) Utwórz na pulpicie katalog w formacie Imię nazwisko, w którym umieść wszystkie pliki związane z

Bardziej szczegółowo

POLSKA UNIA ROBOTYKI TURNIEJOWEJ

POLSKA UNIA ROBOTYKI TURNIEJOWEJ POLSKA UNIA ROBOTYKI TURNIEJOWEJ REGULAMIN LINEFOLLOWER 1. Informacje ogólne 1. Celem zawodów jest promowanie robotyki, dobrej zabawy oraz współzawodnictwa w ramach zasad fair play. 2. Definicje Definicje

Bardziej szczegółowo

Sulmierzycka Liga Halowej Piłki Nożnej. III edycja 2015/2016. o Puchar Przewodniczącego Rady Gminy w Sulmierzycach

Sulmierzycka Liga Halowej Piłki Nożnej. III edycja 2015/2016. o Puchar Przewodniczącego Rady Gminy w Sulmierzycach Sulmierzycka Liga Halowej Piłki Nożnej III edycja 2015/2016 o Puchar Przewodniczącego Rady Gminy w Sulmierzycach R e g u l a m i n I. CEL: 1.Wyłonienie najlepszych drużyn Sulmierzyckiej Ligi Halowej Piłki

Bardziej szczegółowo

QualitySpy moduł persystencji

QualitySpy moduł persystencji Projektowanie oprogramowania Instytut Informatyki, Automatyki i Robotyki, Politechnika Wrocławska QualitySpy moduł persystencji Testy akceptacyjne Nazwa pliku: /QualitySpy/modules/qualityspypersistence/src/test/java/pl/wroc/pwr/qualityspy/persistence

Bardziej szczegółowo

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC. 1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL.04.01.02-00-020/10

Dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL.04.01.02-00-020/10 Wiedza i doświadczenie projektowe wizytówką absolwenta kierunku automatyka i robotyka na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej POKL.04.01.02-00-020/10 Program Operacyjny

Bardziej szczegółowo

Katedra Systemów Decyzyjnych. Kierownik: prof. dr hab. inż. Zdzisław Kowalczuk ksd@eti.pg.gda.pl

Katedra Systemów Decyzyjnych. Kierownik: prof. dr hab. inż. Zdzisław Kowalczuk ksd@eti.pg.gda.pl Katedra Systemów Decyzyjnych Kierownik: prof. dr hab. inż. Zdzisław Kowalczuk ksd@eti.pg.gda.pl 2010 Kadra KSD profesor zwyczajny 6 adiunktów, w tym 1 z habilitacją 4 asystentów 7 doktorantów Wydział Elektroniki,

Bardziej szczegółowo

ZAPROSZENIE. Zagłębie Cup 2013

ZAPROSZENIE. Zagłębie Cup 2013 ZAPROSZENIE Zagłębie SA Sosnowiec zaprasza na turniej: Zagłębie Cup 2013 Termin: 12-13.01.2013 r. (zgłoszenia do 15.12.2012). Miejsce rozgrywek: I Dzień Hala Sportowa ZSO14 II Dzień Hala Sportowa ZSO14

Bardziej szczegółowo

Zapewnij sukces swym projektom

Zapewnij sukces swym projektom Zapewnij sukces swym projektom HumanWork PROJECT to aplikacja dla zespołów projektowych, które chcą poprawić swą komunikację, uprościć procesy podejmowania decyzji oraz kończyć projekty na czas i zgodnie

Bardziej szczegółowo

REGULAMIN AMATORSKIEJ LIGI PIŁKI NOŻNEJ O PUCHAR DYREKTORA PARKU WODNEGO Relax

REGULAMIN AMATORSKIEJ LIGI PIŁKI NOŻNEJ O PUCHAR DYREKTORA PARKU WODNEGO Relax REGULAMIN AMATORSKIEJ LIGI PIŁKI NOŻNEJ O PUCHAR DYREKTORA PARKU WODNEGO Relax I. ORGANIZATOR Park Wodny Relax Świdwin oraz KOZPN. II. PRZEPISY OGÓLNE a) Miejscem rozgrywek Świdwińskiej Ligi Piłki Nożnej

Bardziej szczegółowo

GRZEŚKOWIAK OAZA CUP U11

GRZEŚKOWIAK OAZA CUP U11 GRZEŚKOWIAK OAZA CUP U11 I. Cel rozgrywek 1. Wyłonienie zwycięzcy turnieju Grześkowiak Oaza CUP U11. 2. Promocja piłki nożnej wśród najmłodszych, wychowanie poprzez sport oraz możliwość rywalizacji chłopców

Bardziej szczegółowo

Turniej odbędzie się 22 marca 2014, na boisku Młodzieżowego Ośrodka Sportowego. Impreza zacznie się o godzinie 9.00, a zakończy o godzinie 14.30.

Turniej odbędzie się 22 marca 2014, na boisku Młodzieżowego Ośrodka Sportowego. Impreza zacznie się o godzinie 9.00, a zakończy o godzinie 14.30. Serdecznie zapraszamy do udziału w Ogólnopolskim Turnieju U12. Impreza ta jest adresowana do zespołów złożonych z zawodników urodzonych w roku 2002 i młodszych. Turniej odbędzie się 22 marca 2014, na boisku

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Kinematyka manipulatora równoległego typu DELTA 106 Kinematyka manipulatora równoległego hexapod 110 Kinematyka robotów mobilnych 113

Kinematyka manipulatora równoległego typu DELTA 106 Kinematyka manipulatora równoległego hexapod 110 Kinematyka robotów mobilnych 113 Spis treści Wstęp 11 1. Rozwój robotyki 15 Rys historyczny rozwoju robotyki 15 Dane statystyczne ilustrujące rozwój robotyki przemysłowej 18 Czynniki stymulujące rozwój robotyki 23 Zakres i problematyka

Bardziej szczegółowo

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H W O J S K O W A A K A D E M I A T E C H N I C Z N A W Y D Z I A Ł E L E K T R O N I K I Drukować dwustronnie P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H Grupa... Data wykonania

Bardziej szczegółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka projektowania komputerowych systemów sterowania Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

INSTRUKCJA MONTAŻU. Najpierw złożyć bandę, a następnie całość odwrócić.

INSTRUKCJA MONTAŻU. Najpierw złożyć bandę, a następnie całość odwrócić. INSTRUKCJA MONTAŻU Najpierw złożyć bandę, a następnie całość odwrócić. Wokół zaznaczeń w narożnikach nakleić obustronnie wzmocnienia otworów. Przedmiotem o ostrym końcu przekłuć zaznaczone miejsce. Boisko

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą

Bardziej szczegółowo

PŁOCKA LIGA Orlik U-11

PŁOCKA LIGA Orlik U-11 PŁOCKA LIGA Orlik U-11 REGULAMIN I. Organizatorem Płockiej Ligi Orlik U-11 jest Płocki Okręgowy Związek Piłki Nożnej. II. CEL. 1. Popularyzacja piłki nożnej wśród dzieci i młodzieży. 2. Wychowanie przez

Bardziej szczegółowo

REGULAMIN X HALOWYCH MISTRZOSTW POLSKI JUNIOREK MŁODSZYCH W PIŁCE NOŻNEJ rok 2012

REGULAMIN X HALOWYCH MISTRZOSTW POLSKI JUNIOREK MŁODSZYCH W PIŁCE NOŻNEJ rok 2012 POLSKI ZWIĄZEK PIŁKI NOŻNEJ Warszawa, październik 2012 KOMISJA DS. PIŁKARSTWA KOBIEGO REGULAMIN X HALOWYCH MISTRZOSTW POLSKI JUNIOREK MŁODSZYCH W PIŁCE NOŻNEJ rok 2012 Halowe Mistrzostwa Polski Juniorek

Bardziej szczegółowo

III OGÓLNOPOLSKI TURNIEJ HALOWEJ PIŁKI NOŻNEJ O PUCHAR WÓJTA GMINY ZDUŃSKA WOLA I PRODUCENTA MEBLI SIMEX PATRONAT HONOROWY:

III OGÓLNOPOLSKI TURNIEJ HALOWEJ PIŁKI NOŻNEJ O PUCHAR WÓJTA GMINY ZDUŃSKA WOLA I PRODUCENTA MEBLI SIMEX PATRONAT HONOROWY: III OGÓLNOPOLSKI TURNIEJ HALOWEJ PIŁKI NOŻNEJ O PUCHAR WÓJTA GMINY ZDUŃSKA WOLA I PRODUCENTA MEBLI SIMEX PATRONAT HONOROWY: CUP Wójt Gminy Zduńska Wola Henryk Staniucha PATRONAT SPORTOWY: Jarosław Szewczyk

Bardziej szczegółowo

Politechnika Śląska. Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki. Praca dyplomowa inżynierska. Wydział Mechaniczny Technologiczny

Politechnika Śląska. Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki. Praca dyplomowa inżynierska. Wydział Mechaniczny Technologiczny Politechnika Śląska Wydział Mechaniczny Technologiczny Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki Praca dyplomowa inżynierska Temat pracy Symulacja komputerowa działania hamulca tarczowego

Bardziej szczegółowo

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line

Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line Dr inż. Grzegorz Ćwikła Stanowisko do monitoringu systemów

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

ZASADY UCZESTNICTWA W TURNIEJU PRZEPISY I ZASADY GRY

ZASADY UCZESTNICTWA W TURNIEJU PRZEPISY I ZASADY GRY ZASADY UCZESTNICTWA W TURNIEJU 1. Przed rozpoczęciem turnieju opiekunowie drużyn (trener, kierownik) zobowiązani są do dostarczenia organizatorowi składów zespołów z wyszczególnieniem numerów, z jakimi

Bardziej szczegółowo

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI Skrypty obsługi bazy danych. Przykład zastosowania do tworzenia własnego systemu receptur lub zdarzeniowego zapisu parametrów do bazy danych w systemie asix3.

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Regulamin turnieju dla młodzieży szkół gimnazjalnych SKAWINA CUP 2011

Regulamin turnieju dla młodzieży szkół gimnazjalnych SKAWINA CUP 2011 Regulamin turnieju dla młodzieży szkół gimnazjalnych SKAWINA CUP 2011 Cel turnieju integracja dzieci i młodzieży z miast partnerskich poprzez udział w rozgrywkach sportowych promowanie zasad fair play

Bardziej szczegółowo

PROGRAM TURNIEJU W PIŁCE NOŻNEJ o puchar Dyrektora Zespołu Szkół Budowlanych. Poznań 2016. Patroni:

PROGRAM TURNIEJU W PIŁCE NOŻNEJ o puchar Dyrektora Zespołu Szkół Budowlanych. Poznań 2016. Patroni: PROGRAM TURNIEJU W PIŁCE NOŻNEJ o puchar Dyrektora Zespołu Szkół Budowlanych Poznań 2016 Patroni: REGULAMIN TURNIEJU I. CEL TURNIEJU: Gra w piłkę nożną jako forma aktywnego spędzania czasu wolnego. Popularyzacja

Bardziej szczegółowo

Projekt Zaprogramować działanie robota w narzędziu USARSim

Projekt Zaprogramować działanie robota w narzędziu USARSim WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA Z SIEDZIBĄ W RZESZOWIE Inteligentne Systemy Autonomiczne Projekt Zaprogramować działanie robota w narzędziu USARSim Prowadzący: Wykonawca: Mgr Daniel Jachyra Paweł

Bardziej szczegółowo

Compact Open Remote Nao

Compact Open Remote Nao Damian Kluba Katarzyna Lasak Amadeusz Starzykiewicz Techniki obiektowe i komponentowe Compact Open Remote Nao CORN Podsumowanie projektu 1. Powstałe komponenty 1.1. Video Component 1.1.1. Elementy komponentu

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

Efekty kształcenia na kierunku AiR drugiego stopnia - Wiedza Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej

Efekty kształcenia na kierunku AiR drugiego stopnia - Wiedza Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej Efekty na kierunku AiR drugiego stopnia - Wiedza K_W01 K_W02 K_W03 K_W04 K_W05 K_W06 K_W07 K_W08 K_W09 K_W10 K_W11 K_W12 K_W13 K_W14 Ma rozszerzoną wiedzę dotyczącą dynamicznych modeli dyskretnych stosowanych

Bardziej szczegółowo

instytucji edukacyjnych

instytucji edukacyjnych Turnieje z wykorzystaniem elektronicznych symulatorów dla WINDOWS i ANDROID jako marketingowe narzędzia instytucji edukacyjnych Michel Muszynski Management Business Applied Francja Wprowadzenie Reklamowanie

Bardziej szczegółowo

Tytuł. Autor. Dział. Innowacyjne cele edukacyjne. Czas. Przebieg. Etap 1 - wprowadzenie. Etap 2 - algorytm 3. Sztuka szybkiego liczenia Cz.

Tytuł. Autor. Dział. Innowacyjne cele edukacyjne. Czas. Przebieg. Etap 1 - wprowadzenie. Etap 2 - algorytm 3. Sztuka szybkiego liczenia Cz. Tytuł Sztuka szybkiego liczenia Cz. II Autor Dariusz Kulma Dział Liczby wymierne Innowacyjne cele edukacyjne Zapoznanie uczniów z technikami szybkiego liczenia w pamięci niestosowanymi na lekcjach matematyki:

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

Systemy gry obronnej w koszykówce AUTOR: ZBIGNIEW WILMIŃSKI

Systemy gry obronnej w koszykówce AUTOR: ZBIGNIEW WILMIŃSKI Systemy gry obronnej w koszykówce AUTOR: ZBIGNIEW WILMIŃSKI Gra w obronie uważana jest za trudna i niewdzięczną, a przecież jest tak ważną, comożna uzasadnić słowami - koszykówka zaczyna się w obronie.

Bardziej szczegółowo

REGULAMIN XII TURNIEJU PIŁKARSKIEGO BR TVP S.A.

REGULAMIN XII TURNIEJU PIŁKARSKIEGO BR TVP S.A. REGULAMIN XII TURNIEJU PIŁKARSKIEGO BR TVP S.A. I. POSTANOWIENIA WSTĘPNE 1. Organizatorem turnieju piłki nożnej, zwanego dalej Turniejem, jest Telewizja Polska S.A. - Biuro Reklamy z siedzibą w Warszawie,

Bardziej szczegółowo

Międzynarodowy Turniej Piłki Nożnej LUBLIN 2014

Międzynarodowy Turniej Piłki Nożnej LUBLIN 2014 Międzynarodowy Turniej Piłki Nożnej LUBLIN 0 REGULAMIN TURNIEJU. Uczestnicy: w turnieju uczestniczą zespoły piłkarskie z Lublina oraz miast partnerskich, każdy z zespołów składa się z 0 zawodników oraz

Bardziej szczegółowo

SklepEF5 moduł sklepu i zamówień internetowych do programu EuroFirma i Hermes firmy Humansoft

SklepEF5 moduł sklepu i zamówień internetowych do programu EuroFirma i Hermes firmy Humansoft SklepEF5 moduł sklepu i zamówień internetowych do programu EuroFirma i Hermes firmy Humansoft Funkcja stworzona została z założeniem szybkiej instalacji modułu i uruchomienia witryny internetowej umożliwiającej

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

TAKTYKA NA ETAPIE NAUCZANIA PODSTAWOWEGO (10-12 lat) KURS TRENERA I KLASY/UEFA A WYRÓWNAWCZY OPRACOWAŁ - PIOTR SOWISZ (19-22.04.

TAKTYKA NA ETAPIE NAUCZANIA PODSTAWOWEGO (10-12 lat) KURS TRENERA I KLASY/UEFA A WYRÓWNAWCZY OPRACOWAŁ - PIOTR SOWISZ (19-22.04. TAKTYKA NA ETAPIE NAUCZANIA PODSTAWOWEGO (10-12 lat) KURS TRENERA I KLASY/UEFA A WYRÓWNAWCZY OPRACOWAŁ - PIOTR SOWISZ (19-22.04.2010) CELEM PODSTAWOWYM ETAPU NAUCZANIA TAKTYKI POWINNO BYĆ OPANOWANIE PODSTAWOWYCH

Bardziej szczegółowo

W przypadku pytań pozostaje do Państwa dyspozycji.

W przypadku pytań pozostaje do Państwa dyspozycji. Szanowni Trenerzy, Serdecznie zapraszamy na turnieje piłkarskie z cyklu BĄDŹ NASTĘPNY w kategorii Skrzatów (2008 i młodsi), Żaków (2006-07) oraz Orlików (2004-05) organizowanych z okazji VI Memoriału im.

Bardziej szczegółowo

PRACA DYPLOMOWA MAGISTERSKA

PRACA DYPLOMOWA MAGISTERSKA KATEDRA WYTRZYMAŁOSCI MATERIAŁÓW I METOD KOMPUTEROWYCH MACHANIKI PRACA DYPLOMOWA MAGISTERSKA Analiza kinematyki robota mobilnego z wykorzystaniem MSC.VisualNastran PROMOTOR Prof. dr hab. inż. Tadeusz Burczyński

Bardziej szczegółowo

Regulamin Kieleckiej Amatorskiej Ligi Piłkarskiej

Regulamin Kieleckiej Amatorskiej Ligi Piłkarskiej Regulamin Kieleckiej Amatorskiej Ligi Piłkarskiej Informacje ogólne 1. Organizatorem rozgrywek jest Ludowy Uczniowski Katolicki Klub Sportowy LUKKS Kielce 2. Mecze odbywają się na sztucznym boisku przy

Bardziej szczegółowo

Zintegrowana platforma zarządzania miastem w kontekście bezpieczeństwa publicznego. (Centrum Bezpieczeństwa Miasta)

Zintegrowana platforma zarządzania miastem w kontekście bezpieczeństwa publicznego. (Centrum Bezpieczeństwa Miasta) Zintegrowana platforma zarządzania miastem w kontekście bezpieczeństwa publicznego (Centrum Bezpieczeństwa Miasta) Gdańsk 2014 Atena Partnerem 2013 Spis treści 1 Cechy zintegrowanej platformy zarządzania

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Krótki opis projektu

Krótki opis projektu Krótki opis projektu Idea projektu Piłka Nożna Uliczna dla Rozwoju i Tolerancji to nowa propozycja gry i zabawy dla dzieci i młodzieży oparta na zasadach gry w piłkę nożną. Wzbogacona została o dodatkowe

Bardziej szczegółowo

SklepEF moduł sklepu i zamówień internetowych do programu Hermes SQL firmy Humansoft

SklepEF moduł sklepu i zamówień internetowych do programu Hermes SQL firmy Humansoft SklepEF moduł sklepu i zamówień internetowych do programu Hermes SQL firmy Humansoft Funkcja stworzona została z założeniem szybkiej instalacji modułu i uruchomienia witryny internetowej umożliwiającej

Bardziej szczegółowo

Konfiguracja parametrów pozycjonowania GPS 09.05.2008 1/5

Konfiguracja parametrów pozycjonowania GPS 09.05.2008 1/5 Konfiguracja parametrów pozycjonowania GPS 09.05.2008 1/5 Format złożonego polecenia konfigurującego system pozycjonowania GPS SPY-DOG SAT ProSafe-Flota -KGPS A a B b C c D d E e F f G g H h I i J j K

Bardziej szczegółowo

PŁOCKA LIGA ŻAK U-9 REGULAMIN. I. Organizatorem Płockiej Ligi Żak U-9 jest Płocki Okręgowy Związek Piłki Nożnej. II. CEL.

PŁOCKA LIGA ŻAK U-9 REGULAMIN. I. Organizatorem Płockiej Ligi Żak U-9 jest Płocki Okręgowy Związek Piłki Nożnej. II. CEL. REGULAMIN I. Organizatorem Płockiej Ligi Żak U-9 jest Płocki Okręgowy Związek Piłki Nożnej. II. CEL. 1. Popularyzacja piłki nożnej wśród dzieci i rozbudzanie dziecięcych pasji. 2. Wychowanie przez sport.

Bardziej szczegółowo

Przewodnik po soczewkach

Przewodnik po soczewkach Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym

Bardziej szczegółowo

NAUCZANIE I DOSKONALENIE TECHNIKI PIŁKI NOŻNEJ W FORMIE GIER I ZABAW (22 przykłady)

NAUCZANIE I DOSKONALENIE TECHNIKI PIŁKI NOŻNEJ W FORMIE GIER I ZABAW (22 przykłady) Bartosz Dolański, Stanisław Stachura NAUCZANIE I DOSKONALENIE TECHNIKI PIŁKI NOŻNEJ W FORMIE GIER I ZABAW (22 przykłady) 1. Wyścig rzędów Liczba uczestników: Dowolna, podzielona na dwa lub trzy zespoły

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

1 Moduł Inteligentnego Głośnika 3

1 Moduł Inteligentnego Głośnika 3 Spis treści 1 Moduł Inteligentnego Głośnika 3 1.1 Konfigurowanie Modułu Inteligentnego Głośnika........... 3 1.1.1 Lista elementów Modułu Inteligentnego Głośnika....... 3 1.1.2 Konfigurowanie elementu

Bardziej szczegółowo

ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH NR

ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH NR TECHNIK MECHATRONIK ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH NR 2 os. SZKOLNE 26 31-977 KRAKÓW www.elektryk2.i365.pl Spis treści: 1. Charakterystyka zawodu 3 2. Dlaczego technik mechatronik? 5 3. Jakie warunki musisz

Bardziej szczegółowo

Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia.

Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia. Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia. I. Wstęp Moduł Sprawdziany, służy do przekazywania w łatwy sposób, drogą elektroniczną zasad zaliczania przedmiotów oraz wyników kartkówek czy

Bardziej szczegółowo

Podstawy 3D Studio MAX

Podstawy 3D Studio MAX Podstawy 3D Studio MAX 7 grudnia 2001 roku 1 Charakterystyka programu 3D Studio MAX jest zintegrowanym środowiskiem modelowania i animacji obiektów trójwymiarowych. Doświadczonemu użytkownikowi pozwala

Bardziej szczegółowo

ŚRODKI TRENINGOWE STOSOWANE W TRENINGU REPREZENTACJI POLSKI U-15 (1998) PODCZAS KONSULTACJI SZKOLENIOWYCH. Środki treningowe

ŚRODKI TRENINGOWE STOSOWANE W TRENINGU REPREZENTACJI POLSKI U-15 (1998) PODCZAS KONSULTACJI SZKOLENIOWYCH. Środki treningowe ŚRODKI TRENINGOWE STOSOWANE W TRENINGU REPREZENTACJI POLSKI U-15 (1998) PODCZAS KONSULTACJI SZKOLENIOWYCH Część wstępna: Środki treningowe 1. Podania piłki w dwójkach, prowadzenie piłki, ćwiczenia ogólnorozwojowe

Bardziej szczegółowo

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P). PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów

Bardziej szczegółowo

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE Budowa i oprogramowanie komputerowych systemów sterowania Laboratorium 4 Metody wymiany danych w systemach automatyki DDE 1 Wprowadzenie do DDE DDE (ang. Dynamic Data Exchange) - protokół wprowadzony w

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

10. Wstęp do Teorii Gier

10. Wstęp do Teorii Gier 10. Wstęp do Teorii Gier Definicja Gry Matematycznej Gra matematyczna spełnia następujące warunki: a) Jest co najmniej dwóch racjonalnych graczy. b) Zbiór możliwych dezycji każdego gracza zawiera co najmniej

Bardziej szczegółowo

REGULAMIN TURNIEJU PIŁKI NOŻNEJ Z OKAZJI III MEMORIAŁU IM. TADEUSZA SZYBIŃSKIEGO POD HONOROWYM PATRONATEM BURMISTRZA MIASTA I GMINY NIEPOŁOMICE

REGULAMIN TURNIEJU PIŁKI NOŻNEJ Z OKAZJI III MEMORIAŁU IM. TADEUSZA SZYBIŃSKIEGO POD HONOROWYM PATRONATEM BURMISTRZA MIASTA I GMINY NIEPOŁOMICE REGULAMIN TURNIEJU PIŁKI NOŻNEJ Z OKAZJI III MEMORIAŁU IM. TADEUSZA SZYBIŃSKIEGO POD HONOROWYM PATRONATEM BURMISTRZA MIASTA I GMINY NIEPOŁOMICE I. CEL 1. Popularyzacja i rozwój piłki nożnej wśród najmłodszych

Bardziej szczegółowo

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji. Spis Treści 1. Wprowadzenie... 2 1.1 Wstęp... 2 1.2 Cel pracy... 2 1.3 Zakres pracy... 2 1.4 Użyte technologie... 2 1.4.1 Unity 3D... 3 2. Sztuczna inteligencja w grach komputerowych... 4 2.1 Zadanie sztucznej

Bardziej szczegółowo

Akademia piłkarska UEFA Grassroots_KONSPEKT ZAJĘĆ TRENINGOWYCH

Akademia piłkarska UEFA Grassroots_KONSPEKT ZAJĘĆ TRENINGOWYCH 1 DATA: marzec 2009 MIEJSCE: Hala sportowa GODZ.: 14.45 15.45 CZAS ZAJĘĆ: 60 LICZBA ĆW.: 12 PRZYBORY: piłki nożne nr 4, oznaczniki, kontrasty TRENER: Krzysztof Chrobak TEMAT: DOSONALENIE TECHNIKI PIŁKI

Bardziej szczegółowo

- WALKER Czteronożny robot kroczący

- WALKER Czteronożny robot kroczący - WALKER Czteronożny robot kroczący Wiktor Wysocki 2011 1. Wstęp X-walker jest czteronożnym robotem kroczącym o symetrycznej konstrukcji. Został zaprojektowany jako robot którego zadaniem będzie przejście

Bardziej szczegółowo

MINI LIGA MISTRZÓW 2013 KARTA ZGŁOSZENIA DRUŻYNY DO TURNIEJU W MINI PIŁKĘ NOŻNĄ

MINI LIGA MISTRZÓW 2013 KARTA ZGŁOSZENIA DRUŻYNY DO TURNIEJU W MINI PIŁKĘ NOŻNĄ MINI LIGA MISTRZÓW 2013 KARTA ZGŁOSZENIA DRUŻYNY DO TURNIEJU W MINI PIŁKĘ NOŻNĄ 10.06.2013r. OSOBA ODPOWIEDZIALNA ZA ORGANIZACJĘ DRUŻYNY: Kapitan drużyny : Imię i Nazwisko ( proszę pisać drukowanymi literami)

Bardziej szczegółowo

PROJEKT SYSTEMU ZARZĄDZANIA KLUBAMI PIŁKARSKIMI. D. K. Informatyka II stopnia sem. 3 Analiza Projektowanie i Programowanie Obiektowe

PROJEKT SYSTEMU ZARZĄDZANIA KLUBAMI PIŁKARSKIMI. D. K. Informatyka II stopnia sem. 3 Analiza Projektowanie i Programowanie Obiektowe PROJEKT SYSTEMU ZARZĄDZANIA KLUBAMI PIŁKARSKIMI D. K. Informatyka II stopnia sem. 3 Analiza Projektowanie i Programowanie Obiektowe WYMAGANIA SYSTEMOWE Wymaganie jakie musi spełniać system zostały przedstawione

Bardziej szczegółowo

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API Dr inż. Janusz Pobożniak, pobozniak@mech.pk.edu.pl Instytut Technologii Maszyn i Automatyzacji produkcji Politechnika Krakowska, Wydział Mechaniczny Integracja systemu CAD/CAM Catia z bazą danych uchwytów

Bardziej szczegółowo

Spis treści. 1 Moduł RFID (APA) 3

Spis treści. 1 Moduł RFID (APA) 3 Spis treści 1 Moduł RFID (APA) 3 1.1 Konfigurowanie Modułu RFID..................... 3 1.1.1 Lista elementów Modułu RFID................. 3 1.1.2 Konfiguracja Modułu RFID (APA)............... 4 1.1.2.1

Bardziej szczegółowo

REGULAMIN ORLIKOWEJ LIGI MISTRZÓW ŁÓDZKIE 2011

REGULAMIN ORLIKOWEJ LIGI MISTRZÓW ŁÓDZKIE 2011 I. ORGANIZATOR REGULAMIN ORLIKOWEJ LIGI MISTRZÓW ŁÓDZKIE 2011 Pomysłodawcą i głównym organizatorem Orlikowej Ligi Mistrzów - Łódzkie 2011, zwaną dalej Ligą, jest Województwo Łódzkie, na jego zlecenie organizatorem

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Częstochowa CUP 2015

Częstochowa CUP 2015 Częstochowa CUP 2015 Halowy turniej piłki nożnej Rocznik 2006 i młodsi Organizatorzy: Gmina Miasto Częstochowa Hala Sportowa Częstochowa Sp. z o.o. Miejski Ośrodek Sportu i Rekreacji w Częstochowie Stowarzyszenie

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: MECHANIKA I BUDOWA MASZYN Rodzaj przedmiotu: obowiązkowy na kierunku Rodzaj zajęć: wykład, laboratorium ROBOTYKA Robotics Forma studiów: stacjonarne Poziom przedmiotu: I stopnia

Bardziej szczegółowo

REGULAMIN VII MISTRZOSTW UCZELNI WYŻSZYCH W GRACH ZESPOŁOWYCH 2016r. Piłka Nożna Organizator: URSSPCZ i RUZSPPCZ Koordynator Mistrzostw: Piotr Żak

REGULAMIN VII MISTRZOSTW UCZELNI WYŻSZYCH W GRACH ZESPOŁOWYCH 2016r. Piłka Nożna Organizator: URSSPCZ i RUZSPPCZ Koordynator Mistrzostw: Piotr Żak REGULAMIN VII MISTRZOSTW UCZELNI WYŻSZYCH W GRACH ZESPOŁOWYCH 2016r. Piłka Nożna Organizator: URSSPCZ i RUZSPPCZ Koordynator Mistrzostw: Piotr Żak I Cel rozgrywek Celem rozgrywek jest: - wyłonienie najlepszej

Bardziej szczegółowo

Instrukcja integratora - obsługa dużych plików w epuap2

Instrukcja integratora - obsługa dużych plików w epuap2 Instrukcja integratora - obsługa dużych plików w epuap2 Wersja: 1.1 Strona 1 z 18 Spis treści SPIS TREŚCI... 2 WPROWADZENIE ORAZ INFORMACJE OGÓLNE... 3 1.1 WSTĘP... 3 1.2 WARUNKI KONIECZNE DO SPEŁNIENIA

Bardziej szczegółowo

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna Wydział Informatyki i Zarządzania Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus DODATEK NR 4 Instrukcja laboratoryjna. Opracował: Paweł Obraniak Wrocław 2014

Bardziej szczegółowo

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania Spis treści Konfiguracja programu...3 Odczyt pomiarów...4 Wzorcowanie...6 Edycja ręczna...7 Edycja automatyczna...7 Konfiguracja...10 Konfiguracja

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

REGULAMIN OTWOCKIEJ LIGI PIŁKARSKIEJ 1 I 2 LIGA

REGULAMIN OTWOCKIEJ LIGI PIŁKARSKIEJ 1 I 2 LIGA REGULAMIN OTWOCKIEJ LIGI PIŁKARSKIEJ 1 I 2 LIGA I.WSTĘP 1. Organizatorem Otwockiej Ligi Piłkarskiej (zwanym dalej OLP) jest Wydział Kultury, Sportu, Turystyki Urzędu Miasta Otwocka. 2. W OLP grają amatorskie

Bardziej szczegółowo