3
1
Fork 0
dydaktyka/bikol/DMINLI0_2017/Turniej.md

11 KiB

Strona automatycznie zmigrowana z systemu Eduwiki z wykorzystaniem Pandoc

  1. acl bikol,chris:admin,read,write,revert Known:read All:

Turniej MIN TORCS 2017

Dlaczego turniej

Turniej przeprowadzony w ramach zajęć z przedmiotu DMINLI0 pełni rolę zespołowego projektu zaliczeniowego. Taka forma zaliczenia ma za zadanie zachęcić uczestników zajęć to poszerzenia swojej wiedzy i umiejętności z zakresu sterowania rozmytego.

W turnieju biorą udział zespoły dwuosobowe.

Czym jest TORCS

Strona projektu:

The Open Racing Car Simulator (TORCS) is a highly portable multi platform car racing simulation. It is used as ordinary car racing game, as AI racing game and as research platform. It runs on Linux (all architectures, 32 and 64 bit, little and big endian), FreeBSD, [[OpenSolaris]], MacOSX and Windows (32 and 64 bit). The source code of TORCS is licensed under the GPL ("Open Source"). 

 TORCS features many different cars, tracks, and opponents to race against. You can steer with a joystick or steering wheel, if the device is supported by your platform. It is also possible to drive with the mouse or the keyboard. Graphic features lighting, smoke, skid marks and glowing brake disks. The simulation features a simple damage model, collisions, tire and wheel properties (springs, dampers, stiffness, ...), aerodynamics (ground effect, spoilers, ...) and much more. The game play allows different types of races from the simple practice session up to the championship. Enjoy racing against your friends in the split screen mode with up to four human players.
 TORCS was initially created by Eric Espié and Christophe Guionneau, substantial parts have been added by other contributors (have a look into the "Credits" section for details). The project is currently headed by Bernhard Wymann.

Na czym będzie polegało zadanie

W ramach Turnieju odbędzie się kilka wyścigów (szczegóły poniżej), w których udział będą brały pojazdy kierowane przez sterowniki rozmyte. Zadaniem zespołów startujących w Turnieju jest przygotowanie sterowników rozmytych w języku FCL, zgodnych z dostarczoną specyfikacją, które na podstawie opisu aktualnego stanu pojazdu (prędkość, odległości od krawędzi toru i przeszkód, ...) za pośrednictwem kilku zmiennych (gaz, hamulec i obrót kierownicy) będą kierować pojazdem.

Uczestnicy Turnieju otrzymają wszystkie wymagane oprogramowanie oraz przykładowy sterownik FCL, stąd od Uczestników nie są wymagane żadne umiejętności programistyczne.

Przebieg Turnieju

Turniej rozpocznie się w grudniu, po zajęciach poświęconych sterowaniu rozmytemu. Pierwsza część Turnieju to eliminacje grupowe obejmujące dwa wyścigi indywidualne (początek i połowa stycznia). Finał Turnieju zostanie przeprowadzony systemem pucharowym pod koniec stycznia. Zespoły, zakwalifikowane do finałów będą brały udział w wyścigach parami. Zwycięski zespół kwalifikuje się do kolejnego wyścigu, podczas, gdy przegrany odpada z Turnieju.

Eliminacje

  • Eliminacje obejmują przejazdy indywidualne, bez kolizji z wyłączonym systemem uszkodzeń
  • Eliminacje odbywają się wewnątrz grupy zajęciowej
  • Do finałów kwalifikują się 3 (CA) lub 5 (CB) zespołów z każdej grupy zajęciowej, które uzyskały najmniejszy łączny czas przejazdu w eliminacjach.
  • Za zakwalifikowanie do finałów przyznawany jest 1 punkt
Etap 1
  • trasa: E-Track 5, 2 okrążenia
  • maksymalny czas przejazdu 4 minuty
  • punktacja: 1 punkt za czas pośród 75% najlepszych rezultatów
  • wyścig zostanie przeprowadzony w trybie "tylko wyniki", przejazdy nie będą prezentowane na zajęciach
Etap 2
  • trasa: podana po zakończeniu przyjmowania zgłoszeń
  • maksymalny czas przejazdu 8 minut
  • punktacja: 1 punkt za czas pośród 75% najlepszych rezultatów
  • wybrane przejazdy zostaną odtworzone na zajęciach

Finały

  • Przeprowadzone zostaną systemem pucharowym z rozstawieniami.
  • Finały obejmują przejazdy parami z kolizjami z wyłączonym systemem uszkodzeń
  • Za wygranie wyścigu w finale zespół otrzymuje 1 punkt
  • Zwycięzca Turnieju otrzymuje premię - dodatkowe 4 punkty
  • Wyścigi finałowe odbywają się na trasie Forza, 2 okrążenia maksymalny czas przejazdu 8 minut
  • Kryterium oceny przejazdu jest czas ukończenia wyścigu. W przypadku gdy oba pojazdy nie ukończyły wyścigu, decyduje przejechana odległość.
  • Finał Turnieju będzie miał postać publicznych zawodów. Wyścigi finałowe zostaną przeprowadzone jednego dnia pod koniec stycznia podczas, którego wszystkie przejazdy będą prezentowane na żywo na rzutniku.
Rozstawienia
  • Pary w 1/4 finałów zostaną dobrane zgodnie z rankingiem eliminacji
  • Najlepszy zespół z grupy zajęciowej CA będzie się ścigał z najsłabszym zespołem z grupy CB. Kolejne pary będą składały się z następnych najlepszych i najsłabszych zespołów z danych grup zajęciowych
  • Przebieg finałów przedstawia następująca drabinka

||zwycięzca||<:-23> - || ||finał||<:-11> - || ||<:-11>

  • || ||1/2 finału||<:-5> - || ||<:-5> - || ||<:-5> - || ||<:-5> - || ||1/4 finału||<:-2> CA 1. || ||<:-2> CB
  1. || ||<:-2> CA 2. || ||<:-2> CB 4. || ||<:-2> CA 3. || ||<:-2> CB 1. || ||<:-2> CB 2. || ||<:-2> CB 3. ||

Zasady ogólne

  • Podczas wszystkich przejazdów wyłączone będą następujące funkcje symulatora TORCS: uszkodzenia, zużycie paliwa, pit stop
  • Wszystkie pojazdy będą korzystały z automatycznej skrzyni biegów

Przesyłanie sterowników

  • Sterowniki FCL należy przesłać emailem do prowadzącego grupę zajęciową
  • Plik musi mieć określoną strukturę: grupa-nazwisko-nazwisko.fcl, gdzie grupa to kodowe oznaczenie grupy zajęciowej (CA-CD).
  • Termin nadsyłania sterowników do pierwszego etapu eliminacji to 9 stycznia 2018 godz. 13:00
  • Termin nadsyłania sterowników do drugiego etapu eliminacji to 23 stycznia 2018 godz 13:00
  • Termin nadsyłania sterowników do finału to 31 stycznia 2018 (przed wyścigiem). Sterownik można również dostarczyć osobiście podczas turnieju.
  • Sterowniki nadesłane po terminie nie będą brały udziału w wyścigu

Oprogramowanie

Plik wszelkie oprogramowanie niezbędne do uruchomienia sterownika FCL dostępne jest w Contact.dir w katalogu Żywica Patryk\DMIN_2017\ tj. \\files.wmi.amu.edu.pl\contact.dir\Żywica Patryk\DMIN_2017\

  1. min-torcs.7z - symulator TORCS wzbogacony o możliwość przyjmowania poleceń za pośrednictwem sieci (spakowany za pomocą programu 7z). W laboratoriach należy go rozpakować na dysku p: (poligon))
  2. !TorcsClientFcl.jar - program wykonujący bezpośrednio sterownik FCL i komunikujący się z symulatorem

Dodatkowe informacje na temat oprogramowania można znaleźć:

  1. Strona projektu TORCS
  2. [ Repozytorium projektu TorcsClientFcl](https://github.com/bikol/torcs-client-fuzzy-java "wikilink")
  3. Dokumentacja oryginalnego klienta i serwera do sieciowego sterowania TORCS

Dokumentacja sterownika FCL

Przykładowy sterownik FCL driver.fcl.

Input variables

|| Variable || Range || Description || || track0 - track18 || [0,200] (m) || The 19 range finder sensors: each sensors returns the distance between the track edge and the car within a range of 200 meters. When noisy option is enabled, sensors are affected by i.i.d. normal noises with a standard deviation equal to the 10% of sensors range. The sensors sample the space in front of the car for the following angles with respect to the car axis: {-90,-75,-60,-45,-30,-20,-15,-10,-5, 0, 5,10,15,20,30,45,60,75,90}. When the car is outside of the track (i.e., pos is less than -1 or greater than 1), the returned values are not reliable (typically -1 is returned).|| || trackPos || (−∞,+∞) || Distance between the car and the track axis. The value is normalized w.r.t to the track width: it is 0 when car is on the axis, -1 when the car is on the right edge of the track and +1 when it is on the left edge of the car. Values greater than 1 or smaller than -1 mean that the car is outside of the track. || || speed || (−∞,+∞) (km/h) || Speed of the car along the longitudinal axis of the car. || || opponent0 - opponent35 ||

0,200

10 degrees within a range of 200 meters and returns the distance of the closest opponent in the covered area. When noisy option is enabled (see Section 7), sensors are affected by i.i.d. normal noises with a standard deviation equal to the 2% of sensors range. The 36 sensors cover all the space around the car, spanning clockwise from -180 degrees up to +180 degrees with respect to the car axis.|| || angle || [-π,+π] (rad) || Angle between the car direction and the direction of the track axis. ||

Output varibles

|| Variable || Range || Description || || steering ||

-1,1

and left, that corresponds to an angle of 0.366519 rad. || || accelerate || [0,1] || Virtual gas pedal (0 means no gas, 1 full gas). || || brake || [0,1] || Virtual brake pedal (0 means no brake, 1 full brake). ||

Konfiguracja wyścigów

Tryb z wizualizacją wyścigu

Najprostszym sposobem na przeprowadzenie wyścigu w symulatorze TORCS jest skorzystanie z klienta graficznego. W tym celu uruchamiamy TORCS (.\torcs\wtorcs.exe), a następnie wybieramy w menu

Race → Quick Race → Configure Race.

Pierwszym krokiem jest wybór trasy. Opcja Accept prowadzi do ekranu wyboru uczestników wyścigu. Na potrzeby zajęć najważniejsze opcje to Player (pozwala na sterowanie pojazdem przy użyciu klawiatury) i scr_server 1 (sterowanie za pomocą FCL). Trzeci ekran pozwala na ustalenie liczby okrążeń i maksymalnej długości trasy.

W celu rozpoczęcia wyścigu należy wybrać opcję New Race. W tym momencie należy uruchomić sterownik FCL. W konsoli w katalogu min-torcs wpisujemy:

java -jar [[TorcsClientFcl]].jar driver.fcl

Oczywiście driver.fcl należy zastąpić odpowiednią nazwą pliku FCL.

Natychmiast po uruchomieniu sterownika rozpoczyna się wyścig.

Tryb tylko wyniki

Tryb tylko wyniki będzie wykorzystywany przy przygotowywaniu oficjalnych list rankingowych.

W konsoli w katalogu min-torcs wpisujemy:

run-race.bat race-e1.xml driver.fcl

gdzie race-e1.xml to nazwa pliku konfiguracji wyścigu, a driver.fcl sterownika FCL. Skrypt uruchomi symulację wyścigu i wypisze na ekran uzyskany rezultat.

Pliki konfiguracji wyścigu można "wyklikać" w GUI, ostatnia konfiguracja każdego trybu wyścigu (np. Quick Race) przechowywana jest w katalogu torcs-min/config/raceman/'.