RoboCup 2016 Lipcse

Ajánlom

Lipcsében 2016. június 29. és július 4-e között a RoboCup Junior verseny, Rescue Maze kategóriájában két batsányis diák, Gilicze Kristóf (11.f) és Járó Ádám (11.a) képviselhette iskolánkat és Magyarországot.

A RoboCup a robotok alkalmazásának sokféleségét felvonultató, a robotika és a mesterséges intelligencia nyílt kutatásainak legrangosabb világversenye, ahol Major (felnőtt) és Junior (primary és secondary) korosztályok ma már hat versenykategóriában mérhetik össze tudásukat.

Az 1997-ben induló versenysorozatban minden korosztályban klasszikus versenyszámnak számítanak a katasztrófahelyzetből menekítő robotok, a személyi segítők-háztartási robotok és a robotjátékosokból álló focicsapatok.  A felnőtt kategóriákban közelmúltban megjelentek olyan versenyszámok is, amelyek egyes munkafolyamatok, logisztikai műveletek, raktározási feladatok automatizálásához kapcsolódnak.

A csongrádi LegoRockers csapat a Rescue Maze kategóriában indult, ahol a katasztrófa sújtotta területet egy szabályos egységekből álló, többszintes, fel- és lejárókat, akadályokat, törmelékeket, bukkanókat és tiltott területeket is tartalmazó labirintus szimbolizálja. Az önálló működő robotnak 8 perc alatt a terület minél nagyobb részét kell túlélők után kutatva bejárnia. A túlélőket a labirintus falaira rögzített hőforrások szimbolizálják, ha a robot észleli ezeket, akkor jelzőfénnyel és „mentőcsomagként” egy legalább 1cm3-es apró tárgy kidobásával jelzi a teljesítést. A robot megbízhatósági bónuszpontot is gyűjthet, ha nem azonosít tévesen áldozatot, nincs szükség mentésre és visszatér a kiindulási pozícióba.

  

Kristóf és Ádám egy Arduinoval vezérelt, ultrahangos távolságérzékelővel, gyroszenzorral, hő és fényérzékelővel tájékozódó robottal versenyeztek. A robotot alkatrészekből építették, a robottestet is Kristóf tervezte és állította elő 3D nyomtatóval. A labirintusban történő közlekedéshez különféle algoritmusokat, a tájékozódáshoz és a megbízható, kívánt irányú haladáshoz a szenzorok működésének optimalizálásához PID módszereket alkalmaztak.

A terep főbb paraméterei előzetesen ismertek, de bizonyos részletek csak a helyszínen váltak konkréttá és így a világkupán, az „éles bevetésen” számos új kihívással is szembesültek a csapatok. A 3 nap alatt lezajló 8 futam során a verseny rendezői fokozatosan nehezítették a labirintust, és a pályát. A futamok között a csapatok egy elkülönített arénában készülhettek, egyszerűsített gyakorló pályákon tesztelhettek. Az arénába a felkészítést segítő mentorok nem léphettek be, kívülről, nézőként szemlélhették az aréna külső széléhez közeli versenypályákon zajló futamokat.

Minden évben a verseny zárónapján rendezik a SuperTeam versenyt, ahol sorsolással döntik el, hogy kik lesznek az együttműködő csapatok és ekkor hozzák nyilvánosságra a feladatot is. Mi a szintén kétfős japán Atlantis csapattal kerültünk párba. A terepet egyszintes, hosszan elnyúló labirintussá alakították a szervezők, a két robotot egyszerre kellett működésbe hozni a pálya két végpontján, de először csak a felderítő robot indulhatott el. Az első robotnak a pályát bejárva, a túlélőket felkutatva, mentőcsomagokat kellett elhelyeznie, majd megkeresni a kijáratot a labirintus másik oldalán és az ott várakozó robotnak valamilyen módon jelt adni az indulásra. A második robot feladata ezek után a használt mentőcsomagok terepről történő begyűjtése és a kiindulási raktárba történő szállítása volt.

  

Ezt a feladatot néhány órás felkészülés után a különböző robotkonstrukcióval rendelkező csapatoknak együttműködve kellett megoldani. A japán és magyar csapat tagjai és a két robot is megtalálta a „közös nyelvet”, ötletes jó megoldást találtak, amit a rendelkezésre álló körülmények között eredményesen teszteltek. A japán csapat végezte a felderítést, a magyarok feladata a begyűjtés volt. Sajnos a verseny mindössze két futamból állt, és a japán felderítő robot különböző okok miatt, de egyik alkalommal sem jutott ki a labirintusból, így a magyar robotnak nem volt lehetősége részt venni az éles bevetésen.

Az öt versenynap alatt a csapat tagjai sok tapasztalatot gyűjtöttek, olyan készségek, képességek birtokába kerültek a versenyhelyzetek megélésével, ami a későbbiekben sok helyzetben előnyükre válik majd. Gazdagodott tárgyi tudásuk, más országok fiataljaival dolgoztak együtt, nyitottan fogadták a bíróktól, más csapatoktól érkező információkat, képesek voltak saját ötleteiket érvényesíteni, fejleszteni, hozzáigazítani a folyton változó körülményekhez. Más ligák és a felnőtt kategóriák futamait látva szélesedett látókörük a robottechnika alkalmazása és a mesterséges intelligenci kutatása terén.

Az összesített ponteredmények alapján a csongrádi diákok a kategóriájukban induló 23 csapat között a középmezőnyben, a 14 helyen zárták a versenyt, csakúgy, mint 2013-ban. Sajnos a SuperTeam-ben nem sikerült megismételni az akkori szép eredményt.

A RoboCup verseny elsősorban a tudásmegosztásról, a robotika fejlődéséről szól, ezért a díjazottak valamennyi Junior és Major kategóriában a versenyt követően közzéteszik dokumentációikat, ezzel is elősegítve az innovációk létrejöttét, vagy az újonnan versenybe bekapcsolódók felzárkózását.

A versenyt minden évben másutt rendezik meg, idén a németországi Lipcse, tavaly Kína, tavalyelőtt Brazília, 2013-ban Hollandia adott otthont a versenynek. Nagyon sok nemzet képviselteti magát a közel egy hetes találkozón, de idén is az ázsiai földrészről érkeztek a legtöbben. Jövőre Japán lesz a házigazda.

 

A beszámoló további részletei:

 

A felkészülés, előzmények

A november a tervezgetéssel telt: el kellett dönteni, hogy milyen robotkonstrukció képezze a fejlesztés alapját. A 2013-as eindhoveni verseny tapasztalatai e téren nem voltak mérvadóak, hiszen ott gyári konstrukcióval (Lego Mindstorm’s NXT) indult az akkori csapat.

Végül több szempontból is mérlegelve egy lánctalpas, Arduinoval vezérelt, sokféle szenzorral felszerelt jármű lett a döntés. Bár a konstrukció alkatrészei külön-külön nem nagyon drágák, mégis az első az volt, hogy forrást találjunk ezek beszerzésére, és megkeressük azt a forgalmazót, akitől a legjobb ár/érték arányban hozzájuthatunk a robot alkatrészeihez.

Kb. januárra érkezett meg a csomag, és el lehetett kezdeni az építgetést, felfedezni az új eszközökben rejlő programozási ötleteket, megismerni a már létező megoldásokat, hozzáigazítani a saját robotunkhoz. Az első célunk egy továbbfejleszthető robot megépítése volt, amely áprilisban képes teljesíteni első küldetését: megbízhatóan közlekedni a labirintusban.

Februárban neveztünk a hazai minősítő versenyre: két csapatunk is indult a nyíregyházi Magyar Ifjúsági Robotkupán. Az ötödikesek számára a tapasztalatszerzés és a versenyszituáció kipróbálása volt a cél, ők szép teljesítményel a második helyen végeztek a vonalkövető ligában, a  LegoRockers pedig kivívta a továbbjutás jogát a labirintus terepen.

  

A felkészülés sikeréhez hozzájárult, hogy évek óta egy dinamikusan fejlődő tehetségműhely működik iskolánkban.  Több, jelenleg és a korábbi években az iskolánkban megvalósuló tehetséggondozó program és kutatási projekt is témájában előkészítette illetve jelenleg is segítette a RoboCupra történő felkészülést is, elsősorban a szükséges látásmód és munkamódszer megtalálásában: Szenzoros mérések a természettudományban című projekt ( Út a tudományhoz pályázati program, Hogyan lesz az ötletből valóság? című projekt (Nemzeti Tehetség Program).

A magyarországi verseny tapasztalatainak összegzése után egész májusban-júniusban folyt a munka, de a tanév vége után, minden napot, beleértve a hétvégéket is a robot fejlesztésére fordított Ádám és Kristóf. Többször áttervezték, és újranyomtatták a robottestet, a labirintusban történő megbízható bejárási algoritmusok matematikai hátterét megértve alkották meg saját programjaikat. Megismerték és alkalmazták a PID módszert a robot mozgása során, kezelték az egyre több szenzor használatából fakadó ütközéseket. Átböngésztek sok, főleg angol nyelvű szakirodalmat, egy-egy probléma kapcsán szakmai fórumokon keresték az előforduló hasonló esetek leírását, és az ajánlott megoldási ötleteket, sokszor ők maguk is kérdeztek, virtuálisan vagy akár telefonon is az általuk ismert hozzáértőktől. Sokat teszteltek, tökéletesítették megoldásaikat, keresték az elmélet, a megvalósított ötlet, a robotkonstrukció és a kihívást jelentő környezet összhangját. És ami a legfontosabb: mindeközben nagyon sok új ismerettel, tapasztalattal gazdagodtak.

A csapat és felkészítőik -Gilicze Tamás és Giliczéné László Kókai Mária- a RoboCup-on való részvétel lehetőségét a minősítő versennyel megszerezte, de a kiutazás szponzorok nélkül nem jöhetett volna létre.

Ezért ezúton is szeretnénk megköszönni mindazoknak akik támogatásukkal lehetővé tették, hogy részt vegyünk a versenyen (nevüket alfabetikus sorrendben említve):

  • Batsányi János Alapítvány
  • Csongrádi Batsányi János Gimnázium
  • National Instruments Magyarország (NI)
  • Informatika-Számítástechnika Tanárok Egyesülete (ISZE)
  • Klebelsberg Intézményfenntartó Központ Szegedi Tankerülete
  • Neumann János Számítógép-tudományi Társaság országos szervezete (NJSZT)
  • Neumann János Számítógép-tudományi Társaság Csongrádi megyei területi szervezete
  • Mars Magyarország Kisállateledel Gyártó Kft.(Mars)
  • szülői támogatás

-vissza az összefoglalóhoz-

A kiutazás

Június 28-án keltünk útra, Lipcséig 950 km állt előttünk, így egy egész napot rá kellett szánnunk az utazásra. A kánikula miatt hajnali 5 órakor indultunk, terveink szerint már 3 órára megérkeztünk volna, de szinte a teljes csehországi szakaszon autópálya felújítás zajlott, így sok terelés, félpályás lezárások lassították a forgalmat. Késő délután érkeztünk meg Rackwitz-ba, egy aprócska településre Lipcsétől északra. A szállásunk a városka legszélén volt egy apartmanházban, tőszomszédságunkban egy búzamező, kicsit távolabb szélerőművek. Ha visszagondolok, ekkor volt legtöbb időnk a hely megismerésére: a szálláshoz közeli tó partján működő sportközpontokban sokan keresték az aktív pihenést még az esti órákban is. Mi a fárasztó utazás és a kiadós esti séta után izgalommal vártuk a másnap induló versenyt.

Mint minden nagyszabású verseny, a RoboCup is felkészülési nappal kezdődött: regisztráció, a helyszín bejárása saját csapatterület megkeresése.

Az elkövetkezendő öt nap szinte teljes egészében a versenyről szólt, de a versenynapok  végén igyekeztünk egy-egy ligát, kiállítót  megismerni.  Az ebédszünetek és a team party is alkalmat adott egy kis nézelődésre. (kapcsolódó fotók)

-vissza az összefoglalóhoz-

 

Setup day és a további versenynapok

A több, mint 40 országból érkező 500 csapatot, 3500 versenyzőt megmozgató RoboCup versenyek Major és Junior ligáit általában hatalmas csarnokokban rendezik azért, hogy a különböző kategóriák részvevői megismerhessék egymás eredményeit, fejlesztéseit. 2016-ban a lipcsei Congress Center adott otthont ennek a világversenynek.

Szerda az előkészületek napja (Setup day), ilyenkor a csapatok már elfoglalhatják helyüket az arénában, tesztelhetnek a gyakorlópályán. A diákokat és bennünket is lenyűgözött a világ minden tájáról idesereglő csapatok sokszínűsége, a nagyon távolról érkezők még sokszor az időeltolódás miatti átállással bajlódtak, láttuk, hogy asztalukra borulva aludt a kameruni csapat.

A junior robot foci, és menekítő ligák közel 100 csapata egy közös, több mint 2000m2-es, elkülönített térrészben kapott helyet. A szabályok értelmében ide csak a bírók és a versenyzők léphetnek be. A mentorok, felnőtt kísérők és más érdeklődők csak az elválasztó kordon másik feléről szemlélhették a diákok egész napos tevékenységét.

Az aréna közepén kisebb gyakorló pályák voltak, körülötte helyezkedtek el a csapatok asztalai. A versenypályákat a versenytér szélére helyezték, azért, hogy az érdeklődők nyomon követhessék a versenyeket.

  

A szervezők képviseletében az egyes országok nemzeti képviselőiből összeállított ligánként 4-5 fős csapat folyamatosan jelen volt a juniorok között, sajnos magyar nem volt közöttük. Minden versenypálya mellett további 2-3 versenybíró (önkéntes segítő egyetemisták, korábbi évek versenyzői) indította, figyelte és pontozta a futamokat. Őket és a szervezőket az első napon olíva zöld színű RoboCup 2016-os pólóról lehetett megismerni.

Első napon három labirintus versenypálya volt, felépítésben nehézségben eltértek egymástól, emiatt minden csapat mindegyik terepnél sorra került.

Másfél-két óra telt el két futam között, ez az idő  sok csapatnak, nekünk is az észlelt hibák kiküszöbölésével telt.

Még a tesztnapon kiderült az adagolótartályunkat működtető motor hibája, ekkor felderítettük Lipcse egyik modellező boltját, és vásároltunk egy új motort.

A második versenynapra nehezített pályákat állítottak össze a rendezők. A 3 új labirintus abban különbözött az előző napitól, hogy 2 feljárót, nagyobb termeket, hosszabb folyosókat és több tiltott zónát, törmeléket tartalmazott. Egy kis gondot okozott, hogy a szervezőktől gyakran hiányosan és késve jönnek át a szervezési információk. Egy ritkán frissített hagyományos üzenő falat működtettek. Az eredeti tervek szerint ma csak 2 futamunk lett volna, de egy módosítás miatt 3-szor kerültünk sorra.

A pályanehezítés miatt a robotot irányító program is folyamatosan fejlődik a verseny alatt. Ezen a napon is másik algoritmust használtunk a labirintus bejárására, hiszen a tapasztalat szerint az egyszerű, jobbra haladást előnybe részesítő bejárás miatt a nagyobb termekben „bent ragad” a robot. A felépítményt is folyamatosan tökéletesítettük, mert a megtalált áldozatok mellett egy legalább 1 cm3-es tárgyat kell elhelyezni a robotnak. Az otthon elkészített, körbeforgó, 12 rekeszes adagolótartályunk sajnos az új motorral sem vált be. Megoldásként a legtöbb csapat által használt „kémény megoldást” választottuk, alkatrészként a közeli barkács áruházban fellelhető anyagokból dolgoztunk, mentőcsomagjainkat M8-as csavaranyák szimbolizálták, a technikai zsűri tagjai többször is átszámolták, vajon térfogata eléri-e az 1cm3-t?

A 8 perces bevetések sok izgalommal jártak, folyton új helyzetet hoztak.

A futam elején dobókockával sorsolták ki az indítási pozíciót, ez az alsó vagy felső szint valamelyik szélső mezője volt. A mi robotunk elég jól közlekedett a labirintusban, de akadt olyan emelkedő, amivel nem tudott megbirkózni, a következő futamra, már a környéken vásárolt horgász ólommal nehezítettük a robottestet. Az áldozatok azonosítása egy menetet leszámítva megbízhatóan működött, de a mentőcsomagok kihelyezésével gyakran voltak problémáink. A futamok ideje alatt a robot az utolsó érintett mentési pontról újraindítható, ezzel a lehetőséggel taktikai és mentési okok miatt egyaránt lehetett élni.

A teljesített 8 futamból a legjobb hetet számították bele a pontversenybe. Minden menetet a szabályok betartásával teljesített a csapat, ügyes részmegoldásaink több alkalommal voltak, magas pontszámunk egyik futamban sem lett, így nem sikerült kiemelkednünk a középmezőnybeli csapatok közül.

-vissza az összefoglalóhoz-

SuperTeam

A SuperTeam versenyre sajnos csak néhány órát szántak a rendezők, talán kicsit több idővel gazdálkodva minden csapat szebb megoldásokat produkált volna. Eleinte örültünk, hogy egy megbízhatóan működő japán robottal kell együtt dolgoznunk, de hamar kiderült, hogy a japán fiú egyáltalán nem, az Atlantis hölgytagja is csak kicsit beszél angolul, de mindkét csapatban nagy volt az igyekezet, így mégis sikerült egyeztetni a stratégiát.

A kitűzött feladat (fentebb már ismertettük) szerint egy mentési szituációban munkamegosztással kellett dolgoznia a két robotnak, a működésük egymás után kellett, hogy megtörténjen: egyik robot kihelyezi a mentőcsomagokat, a másik ezt követően begyűjti a terepről azokat. A japán robot Arduinoval vezérelt lego alkatrészekből épített szerkezet volt, nem rendelkezett bluetooth modullal, így ezt a kézenfekvő kommunikációs csatornát el kellett vetni. A mentőcsomagok kihelyezése után a két robotnak egymás melletti pozícióba kellett kerülniük, így a két robot közötti információátadáshoz a magyar robot ultrahangos szenzorát használta fel a csapat.

A magyar robot ismét új illesztéket kapott, az elejére szerelt, fagylaltos dobozból kivágott terelőkarral bővítettük. Mivel a robot előre, hátra valamint kanyarodva is mozgott, ezért a terelőlap elejét előrehaladva behajló azaz a mentőcsomagokat beengedő, tolatva, kanyarodva pedig mereven záró lappal kellett kiegészíteni. Ehhez egy kisméretű ajtópántot vettünk a már többször is hasznosnak bizonyuló barkács áruházból. A fiúk nagyon büszkék voltak a megoldásra és bizakodva várták a megmérettetést.

Sajnos ez a versenyrész mindössze két futamból állt, és a japán felderítő robot különböző okok miatt, de egyik alkalommal sem jutott ki a labirintusból, így a magyar robotnak nem volt lehetősége részt venni az éles bevetésen. Mindkét csapat szomorkodott, a japánok azért, mert apró hibán múlott a közös jó teljesítményünk, a mi  csaptunk pedig azért, mert a magar robotnak így ebben a versenyszámban nem volt lehetősége bizonyítani :(

-vissza az összefoglalóhoz-

A verseny ligáinak rövid leírása, és kapcsolódó honlapok

RoboCup Soccer

A legnépszerűbb liga, számos wikipédia oldal is feldolgozza.
1997-ben az első RoboCup-on megfogalmazott cél szerint 2050-re képes lesz a robotokból álló csapat egy szabályos mérkőzésen legyőzni az emberek világválogatottját. Érdemes megnézni azt a videot, ami a kezdetektől 2011-ig mutatja be a robotfoci fejlődését (video).

A robotfoci összesen 6 ligában volt jelen a lipcsei versenyen.

A juniorok két korosztályban (primary, secondary) versenyeztek csapatonként 2 robottal egy mini pályán, ahol egy sárga és egy kék kapuban lehetett gólt szerezni. A labda itt egy infra adó gömb, a robotok pedig infra keresővel rendelkező, önállóan működő robotok, céljuk, mint minden más focimeccsen, hogy a megtalált labdát az ellenfél kapujába juttassák.

A major ligák esetében többféle kategória létezik, az elődöntőkre és a döntőkre egyaránt zsúfolásig megtelt a nézőtér.

Standard Platform ligájában Nao robotok küzdenek egymással. Minden Nao-játékosnak külön programozója van, gyakori lehet a meghibásodás itt, mert a szervezők a késő éjszakai órákban is nyitva tartó Nao klinikát működtettek. A humanoid robotok ligáit a méretükről KidSize, TeenSize és AdultSize névvel különböztetik meg.  Mozgékonyabb focisták a henger alakú SmallSize játékosok.

Middle Size "focistái" már szabványos focilabdával játszanak.

A legfiatalabbak Junior RoboCup Soccer-t játszanak, akár lego robotokkal.

robotfocihoz kapcsolódó képek a galériában)

RoboCup Rescue

A felnőttek menekítő ligájához a nézők számára sokszor beláthatatlan terep tartozik, 2016-ban szép eredményt ért el a pécsi magyar versenyzők ResCube csapata.

A Juniorok a vonalkövetésen alapuló Rescue line (képek a galériában), vagy a labirintus kezelést igénylő Rescue Maze  (képek a galériában) kategóriában, vagy a felnőtt ligához hasonlító Rescue Mini-ben (képek a galériában) indulhatnak. 

A csongrádi gimnáziumban 2013-ban kapcsolódtunk be először a RoboCup versenybe, idén a vonalkövető és a labirintust bejáró robotokkal foglalkoztunk.

Szintén junior kategória a szórakoztató műfajnak számító On the Stage liga.

CoSpace

A RoboCup-on több éve vannak jelen a virtuális robotok, amelyek közös együttműködési térben (CoSpace) versenyeznek, de évente egyszer a RoboCup-on a valóságban is lezajlanak az „elméleti” meccsek.

A junior CoSpace Challange hivatalos oldala itt elérhető, galériánkban a kapcsolódó képek itt megnézhetőek.

A felnőttek csapatai napokon keresztül dolgozgattak egy-egy lassan mozgó robotkarral, ez volt az Amazon Picking Challange.

A raktári rendszerekben  használt robotokról, munkafolyamatok és a kapcsolódó logisztika automatizálásáról szólt a RoboCup@work és a RoboCup@logistic liga. Nagy érdeklődés kísérte a RoboCup@Home bemutatóit is.

A galériánkban találsz egy albumot az említett négy liga képeivel is.

-vissza az összefoglalóhoz-

Kiállítók

Helyi és multinacionális cégek kiállítói is csatlakoznak az eseményhez, helyszínként nagy kiállítási csarnokokat, konferencia központokat választanak ami lehetővé teszi, hogy a nyitott rendezvény, különösen a látványos felnőtt döntők sok érdeklődőt vonzzanak.

A szervezők külön figyelmet fordítanak arra, hogy a nyílt napokon a szüleikkel érkező gyerekek, vagy diákcsoportok is közelebb kerülhessenek az alkalmazott robotikához.

A nézők körében népszerűek voltak, de a versenyzők szemével nem túl érdekesek a már „tömegtermékként” árusított robotok. Ezek igen borsos árú játékként vagy háztartási robotként használható eszközök.

Igyekeztünk minden nap egy kis időt szakítani a nézelődésre, ez a verseny miatt olykor csak az ebédszünetből megmaradó időre korlátozódott.

Az ipari alkalmazások közül a bányákban alkalmazott robotkar, és egy a professzionális szervomotorokra szakosodott kiállító standjánál időztünk többet.

  

A Festo standjánál naponta többször felröppent a „Smart Bird”, és percekig repült a tágas csarnokban, majd „engedelmesen” landolt működtetője kezében. A robotmadár fejének mozgása, farktollaival történő kormányzása, szárnycsapásainak suhogása meglepően élethű volt. 

A Mathworks is kiállított, reklámozva, hogy a robotok többsége is „megszólítható” ezen a fejlesztőkörnyezeten is.

Néhány oktatási termékeket forgalmazó cég olcsóbb, akár iskolai tananyagba építhető, félkész „kütyüket” és különböző technológai termékeket is ajánlott.

A legizgalmasabb természetesen maga a versenyzés volt és leghasznosabb más ligák versenyeit megismerni

Jövőre Japánban Nagoya városában rendezik meg az automatizálás és robotika világméretű seregszemléjét.

(Kiállításokhoz kapcsolódó képek a galériában)

Beszámolónk a szokottnál hosszabb és részletesebb, mert célja az is, hogy elősegítse a robotika ezen területe iránt érdeklődők tájékozódását.

-vissza az összefoglalóhoz-

Ajánlott további linkek:

A RoboCup2016 hivatalos weboldala

A RoboCup2016 közösségi oldala

A RoboCup2016 ligái

A RoboCup honlapja

A RoboCup wiki oldala

A RoboCup Junior wiki oldala

A Rescue Maze szabályai 2016-ban

A RoboCup Soccer története videón (1997-2011)

Beszámoló az NJSZT honlapján.

-vissza az összefoglalóhoz-

Iskolánk működő ECL Nyelvvizsgahely.