Az OTP Bank IT Competition döntő feladata:

Feladat


Pontozás

Információk, javaslatok

Szabályok

A pálya fehér ponyvára került nyomtatásra, az a robot amelyiknek mind a két lánctalpa elhagyta a pálya ponyváját, nem folytathatja tovább az útját és csak az addig elért eredményei számítanak az értékelésbe. A pályát körbeveszi egy fal, amely érzékelhető az (infrás) távolság érzékelő segítségével.

Két fejlesztési eszköz, környezet használható:

LEGO standard vizuális fejlesztő környezete: LEGO MINDSTORMS EV3 SOFTWARE (PC/MAC)

ev3dev image, ami programozási nyelvek használatát teszi lehetővé

Egyedi programnyelvek esetén a versenyzők feladata a fejlesztéshez szükséges környezetet beállítani a gépeiken. Ehhez elérhető az ev3dev oldalán egy docker image. Az ennek megfelelő ugyanazon web oldalról letölthető image került installálásra a robotokra is. A fő image, amit használunk a STRETCH, azonban lesznek előkészített JESSIE image-ek is külön SD kártyákon.

A szervezők idő hiányában nem tudnak támogatást adni a környezet beállításához.

A következő program nyelvek támogatottak (ezekhez biztosítottak a futtató környezetek):

C/C++: Ajánlott a fejlesztő gépen kereszt fordítást (cross compile) használni ARM5telj processzorra, és csak a binárisokat beadni. A robotokon 6.3-as verziójú gcc, és g++ áll rendelkezésre. [ gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ]

Python: Az image tartalmaz 2.7.13 és 3.5.3 verziókat is, azonban javasolt a 3.5 használata (lásd lenti példa). [ Python 2.7.13 (default, Nov 24 2017, 17:33:09) , Python 3.5.3 (default, Sep 27 2018, 17:25:39) ]

Java: Java SE 1.8 futtató környezet (jre) található a robotokon. Vagyis Java fordító (javac) nincs telepítve. Ennek megfelelően a fordítást a versenyzők a saját gépükön végzik el összecsomagolva az összes szükséges class és jar állományokat egyetlen .jar fájlba. (Természetesen lehetőség van a szükséges jar-ok és class-ok célkönyvtárba helyezésére is összecsomagolás helyett.) A könyvtárnak tartalmaznia kell egy futtató script-et, ami megfelelően paraméterezve indítja a java kódot. [ java version "1.8.0", Java(TM) SE Embedded Runtime Environment (build 1.8.0-b132, headless), Java HotSpot(TM) Embedded Client VM (build 25.0-b70, mixed mode) ]

One click programokat kell készíteni, amelyeket a roboton lévő fájlböngészővel fogjuk tallózni és indítani is. Azokat a programokat, amelyek így nem indulnak nem tudjuk figyelembe venni (részletek a tesztelésnél).

Tesztelés

Kettő robot áll rendelkezésre a Lego (LEGO MINDSTORMS EV3) programjával készített kódok tesztelésére. A másik kettő roboton ev3dev image fut, és ezek a különböző programozási nyelvekben írt programok tesztelését fogják biztosítani.

Követelmények

Fájl- és mappa-nevek ne tartalmazzanak szóköz, ékezetes valamint speciális karaktereket, vagyis az angol ABC betűiből, számokból, kötőjelből (-), aláhúzásból (_) állhatnak.

Lego programok (LEGO MINDSTORMS EV3) tesztelése

Egy .ev3 kiterjesztésű projektfájlt várunk, amit kábel vagy bluetooth segítségével rátöltünk a robotra, majd közvetlen a robotról indítjuk manuálisan a pályán.

Az ev3 projekt azonosítója a csapatnév kell legyen (a feltételeknek megfelelően) , a projektben pedig egy programot várunk, ami a startrobot nevet viseli. Ezzel indítjuk a kódot.

Egyéni programozási nyelven írt kódok tesztelése

A kész programokat, WinSCP segítségével másoljuk a robotra. A versenyzőktől egy mappát várunk, melynek neve a csapatnév kell legyen (a feltételeknek megfelelően). Ebben a mappában kell elhelyezni a "lefordított" kódot vagy pl. Python esetén forrás fájlt, valamint az indító script-et.

Az indítófájl rendszerint egy bash script fájl, amelynek a neve 'startrobot.sh'. A script fájl első sora tartalmazhat hivatkozást a shell-re ('#!/bin/bash'), a második sorában pedig a parancs ami elindítja a megírt programot, lehetőleg a fájl teljes elérésével. A home könyvtár: '/home/robot/'

Python példa a startrobot.sh-ra:

#!/bin/bash

python3 /home/robot/csapatnev/my_program_v1.py

A tesztelések során javasolt az indító (one click) programokat módosítani a megfelelő indításhoz. Erre a döntő futam során már nem lesz lehetőség.

Kiértékelés

A pontozás az elődöntő szabályai szerint lesz, az időt egy versenybíró méri stopperrel és egy másik jelöli a pálya kicsinyített másán a megszerzett pontokat és büntetéseket.
A döntőről filmfelvétel készül.

Pálya

Robot
Szervező
Ecosim