ERK'2020, Portorož, 136-139 136 Avtomatizacija namiznega nogometa Matevˇ z Boˇ snak, Andrej Zdeˇ sar, Simon Tomaˇ ziˇ c, Goran Andonovski, Gregor Klanˇ car, Saˇ so Blaˇ ziˇ c, Igor ˇ Skrjanc Fakulteta za elektrotehniko, Univerza v Ljubljani E-poˇ sta: matevz.bosnak@fe.uni-lj.si Table football automation We present a project for automation of a table football game that enables competitions with mixed (computer or human) players on each side. The system relies on a pair of overhead cameras to capture the image of the play- ing field and decode the position of all playing rods and the position of the ball. Our approach skips the slow standard camera image rectification methods and for the purpose of playing rods tracking extracts the expected pixel positions from the camera directly. Moreover, we present an approach to improving the resolution of an optical Gray code encoder by using the phase data cap- tured in the camera image. Actuation of the rods is im- plemented using modular drive units consisting of linear- rotary axes, designed to be attached to any of the rods. The goal of the project is a development of an eye-catching system for promotion of studies at the Faculty of Electri- cal engineering, as well as a learning platform that is used during the laboratory exercises covered by the Lab- oratory of Control Systems and Cybernetics. 1 Uvod V sklopu internih projektov FE za izboljˇ sanje kakovosti pedagoˇ skega procesa in promocije IPP&P 2019 smo v Laboratoriju za avtomatiko in kibernetiko predlagali pro- jekt avtomatizacije namiznega nogometa. Projekt pred- stavlja izdelavo laboratorijske naprave, ki bo lahko upo- rabljena tako za promocijo ˇ studija elektrotehnike, kot tudi za pedagoˇ ske namene (npr. izvedbe laboratorijskih vaj [1], izvedbe ˇ studentskih tekmovanj v sklopu izven kuri- kularnih dejavnosti ipd.). Namen projekta je nadgradnja standardne mize za na- mizni nogomet z vsemi potrebnimi komponentami za iz- vedbo razliˇ cnih naˇ cinov igre. V nasprotju s podobnimi projekti [2],[3],[4] ˇ zelimo ponuditi tudi moˇ znost igre z meˇ sanimi ekipami, kjer bodo ˇ clani ekipe morali pripraviti algoritme za raˇ cunalniˇ skega tekmovalca ter hkrati izuriti enega izmed svojih ˇ cloveˇ skih ˇ clanov. Osnovo pri naˇ si implementaciji predstavlja sistem kamer nad igriˇ sˇ cem, ki omogoˇ ca hkratno sledenje ˇ zogi in poloˇ zajev igralcev, ter modularni pogonski sistem, ki ga bomo lahko namestili na katero koli igralno palico. 2 Zasnova sistema Avtomatizirana miza za namizni nogomet je sestavljena iz senzorskega, pogonskega in procesorskega sistema (slika 1). Za uspeˇ sno delovanje je potrebno razpoznati poloˇ zaj in smer premikanja ˇ zoge, poloˇ zaje ter rotacije vseh igral- nih palic ter po ustreznem algoritmu voditi krmiljene igralne palice. Osnovna ideja je bila razvoj prilagodljivega sis- tema, ki nam bo omogoˇ cal avtomatizirano vodenje do 4 poljubnih igralnih palic. Predstavljena reˇ sitev je zato za- snovana modularno – senzorski in procesorski sistem je nameˇ sˇ cen fiksno nad in pod igralno mizo, pogonski sis- tem pa je mogoˇ ce namestiti na poljubno izbrana mesta. Tovrsten pristop omogoˇ ca izvedbo kibernetske igre nami- znega nogometa ˇ clovek proti raˇ cunalniku ter igre meˇ sanih ekip, torej ekip ˇ cloveka in raˇ cunalnika proti drugi takˇ sni meˇ sani ekipi. Trak LED Barvna kamera USB 3.0 Ethernet PC za obdelavo slike in vodenje Miza za namizni nogomet Servo motor za translacijo Rotacijski servo motor PoKeys57CNC Jermenski pogon Zna čka Slika 1: Zasnova sistema Sistem za strojni vid predstavlja osnovni senzorski sistem za zajem podatkov o poloˇ zaju ter orientaciji igral- nih palic in poloˇ zaju ˇ zoge [5]. Nad igriˇ sˇ cem sta nameˇ sˇ ceni dve kameri proizvajalca Basler z loˇ cljivostjo1;6 milijona toˇ ck. ˇ Sirok kot (53;2 ) uporabljenih leˇ c omogoˇ ca po- kritje celotnega igriˇ sˇ ca ˇ ze z eno kamero, vendar sta dve kameri uporabljeni za izboljˇ sanje delovanja zaradi pogo- stega prekrivanja ˇ zoge s strani igralnih palic ali igralcev (slika ene od kamer je prikazana na sliki 2). Obdelava slike se izvaja na osebnem raˇ cunalniku, celoten sistem pa omogoˇ ca zajem slik s frekvenco do200 slik na sekundo. Neodvisnost delovanja sistema za zajem slike od ambi- entalne svetlobe je zagotovljena z umetno osvetlitvijo v obliki traku LED nad igriˇ sˇ cem. 137 Slika 2: Slika zajeta z eno od kamer Pogonski sistem je sestavljen iz krmilnika PoKeys57CNC, linearnega ter rotacijskega pogona. Linearni pogon je iz- veden s pomoˇ cjo jermensko gnane linearno pomiˇ cne osi, rotacijski pogon pa uporablja direkten sklop osi servo motorja na igralno palico preko potisnega leˇ zaja in adap- terja za roˇ caj palice. 2.1 Detekcija poloˇ zajev igralcev Za uspeˇ sno izvajanje naprednejˇ sih strategih igre pri na- miznem nogometu je potrebno poznati poloˇ zaje vseh po- sameznih figur igralcev – poznati je potrebno linearne poloˇ zaje ter rotacije vseh8 igralnih palic. Namesto fiziˇ cnih senzorjev smo se odloˇ cili za uporabo barvne kamere, kot predlagajo avtorji v [6]. V ta namen smo vse palice opre- mili z znaˇ ckami, ki omogoˇ cajo sledenje po obeh prosto- stnih stopnjah. Znaˇ cka (slika 3) je sestavljena iz dveh de- lov, ˇ crtne kode na levi ter zapis s5-bitno Grayevo kodo na desni. Pri zajemu slike igriˇ sˇ ca s kamero pride zaradi upo- Slika 3: Grafika znaˇ cke z oznaˇ cenim nizom toˇ ck L m (rdeˇ ca vodoravna ˇ crta) in podroˇ cji za vzorˇ cenje Grayeve kode (preseˇ ciˇ sˇ ce modrih in rdeˇ cih ˇ crt) rabe ˇ sirokokotne leˇ ce na kameri do sodˇ ckastih popaˇ cenj v sliki[7] – ravne ˇ crte so tako preslikane v krivulje na sliki. Da se izognemo ˇ casovno potratni operaciji odpra- vljanja popaˇ cenj na celotni zajeti sliki, iz slike izluˇ sˇ cimo le toˇ cke, ki pripadajo igralni palici. Za vsako od palic z indeksom palicem uporabimo preslikavo g m h 0 2 1+ tanf (t) tan= 2 I o [x m (t);t]; (1) kjer zx m (t) =a m t 2 +b m t+c m opiˇ semo krivuljo, ki ustreza obliki popaˇ cene slike ravne palice. Parame- ter t uporabimo za glavno spremenljivko preslikave, ki oznaˇ cuje toˇ cko na loku v popaˇ ceni sliki). h 0 ustreza ver- tikalni loˇ cljivosti zajete slike, = 53;2 vidnemu kotu kamere, s funkcijo f (t) = t ho=2 ho pa preslikamo spremenljivko t v kotni prostor kamere (slika 4). Para- metrea m ,b m inc m doloˇ cimo za vsako palico posebej v postopku kalibracije sistema pred uporabo. Kamera Objekt t y 0 0 h 0 h 0 0 f (t) h0tanf (t) 2tan= 2 h0 2 Slika 4: Compensation for the distance variation between tracked object and the camera Slika 5: Obmoˇ cje palice S preslikavo podano z enaˇ cbo (1) za vsako igralno palico pridemo do niza toˇ ck L m , ki ga nato najprej fil- triramo s pasovno prepustnim filtrom ter uporabimo za iskanje linearnega poloˇ zaja palice. Poloˇ zaj je doloˇ cen s poloˇ zajem maksimuma kriˇ zno-korelacijske funkcije med binarno kodo znaˇ cke (zaporedje1001101010000101) ter niza zajetih toˇ ckL m . S pomoˇ cjo poznanega linearnega poloˇ zaja palice se nato osredotoˇ cimo na merjenje rotacije igralne palice. Na podlagi vrednosti toˇ ck v nizu toˇ ckL m na mestih, ki ustre- zajo posameznim bitom Grayeve kode (na sliki 3 oznaˇ cenimi z vertikalnimi modrimi ˇ crtami), doloˇ cimo kodiran zapis kota. Prednost kodiranega zapisa v Grayevi kodi je v Hammingovi razdalji 1 med zaporednimi zapisi kotov – ˇ sum pri doloˇ canju vrednosti posameznih bitov v kodnem zapisu (te so lahko slabo doloˇ cene na meji med svetlim in temnim poljem) je tako omejen le na najmanjˇ si bit v konˇ cnem zapisu kota. Slika 6: Obmoˇ cje za izraˇ cun faze Z uporabo zapisa kota s 5-bitno Grayevo kodo lahko doseˇ zemo loˇ cljivost po kotu pribliˇ zno11 , kar ne omogoˇ ca dovolj natanˇ cne igre. Loˇ cljivost zato izboljˇ samo z upo- rabo interpolacije nad podatki zadnjega (najmanjˇ sega) bita kodnega zapisa. Na zajeti sliki izberemo dodatne vzorce D m v preˇ cni smeri (vzdolˇ z obsega znaˇ cke na igralni pa- lici, kot je prikazano na sliki 6) ter izraˇ cunamo fazo vzorca m kot m = arctan P Np i= Np D m (i) sin2i= ^ T P Np i= Np D m (i) cos2i= ^ T ; (2) 138 kjer jeN p ˇ stevilo uporabljenih vzorcev, ^ T pa priˇ cakovana perioda kodnega zapisa zadnjega bita kode. Dobljena vrednost faze glede na zasuk palice je ilustrirana na sliki 7. Ker perioda kodnega zapisa zadnjega bita ustreza raz- Slika 7: ˇ Casovni potek vzorca v sliki (zgoraj) z izraˇ cunano fazo (spodaj). dalji 4 v zapisu rotacije oz. kotu 45 , lahko zadnja dva bita v dekodiranem zapisu rotacije m zamenjamo z ustre- zno transformirano vrednostjo faze m . 1. m zamaknemo za offset glede na izhodiˇ sˇ ce Gra- yeve kode ter preskaliramo, da doseˇ zemo periodo 4: 0 m = 4 2 [ m offset ], 2. odstranimo 2 bita iz dekodiranega zapisa kota m s pomoˇ cjo binarne IN operacije z maskob11100), 0 m = m INb11100, 3. vrednostj2 Z doloˇ cimo tako, da se vrednost iz- raza 0 m + 0 m +4j m nahaja na intervalu[ 2;2], 4. konˇ cno vrednost kota m 2 [0;32)\R izraˇ cunamo z m = 0 m + 0 m +4j. Konˇ cna loˇ cljivost, ki jo lahko doseˇ zemo s predlagano metodo, je vezana na nivo ˇ suma v zajetem signalu, ta pa je ocenjen s standardno deviacijo zajetih podatkov. Pri dobri osvetlitvi z nameˇ sˇ cenim trakom LED smo tako do- segli natanˇ cnost 0;7 po kotu ter 0;6 0;8 mm po tran- slaciji palici (odvisno od poloˇ zaja palice v sliki). Za isto loˇ cljivost z uporabo Grayeve kode bi potrebovali kodni zapis z 9 biti. Ker trenutna postavitev kamere omogoˇ ca zanesljivo zaznavanje in dekodiranje le 6 bitov, smo iz- boljˇ sali loˇ cljivost meritve po kotu za faktor8. 2.2 Detekcija ˇ zoge Detekcija ˇ zoge je eden pomembnejˇ sih postopkov za za- nesljivo delovanje avtomatiziranega sistema namiznega nogometa. ˇ Ceprav je v literaturi zaslediti razliˇ cne po- stavitve sistema za zajem slike, veˇ cina avtorjev upora- blja pristop sledenja ˇ zoge od spodaj. To zahteva name- stitev steklene igralne povrˇ sine, ki pa ˇ zal vpliva na samo igro (moteˇ ci odboji za igralce, drugaˇ cen koeficient trenja ˇ zogice ipd.). Naˇ s pristop za sledenje uporablja par kamer, nameˇ sˇ cenih nad igriˇ sˇ ce, s ˇ cimer se zagotovi redundanca meritve in zmanjˇ sa teˇ zava s prekrivanjem ˇ zoge s strani igralcev. Zaradi hitrih premikov in pogostih prekrivanj ne uporabljamo algoritmov sledenja, temveˇ c le optimizirano detekcijo na podlagi filtriranja po barvi v prostoru HSV (uporabljena je bila rumena igralna ˇ zoga), postopkov ero- zije in dilatacije (za odstranitev morebitnega ˇ suma), nato pa iskanje in filtriranje po konturah. Poloˇ zaj ˇ zoge je na koncu doloˇ cen na podlagi slikovnih momentov izbrane konture. Izmerjen poloˇ zaj ˇ zoge se nato filtrira z namenom ugo- tavljanja vektorja hitrosti ˇ zoge (ocenjevanje smeri in hi- trosti). Sistem za detekcijo ˇ zoge je ˇ se v testno-razvojni fazi, a ˇ ze deluje z eno od kamer ter omogoˇ ca sledenje poloˇ zaja ˇ zoge s frekvenco100 Hz. 3 Pogonski sistem Kot je omenjeno v uvodu, je pogonski sistem zasnovan modularno, posamezna pogonska enota je namenjena pre- mikanju igralne palice po linearni in rotacijski osi. Po- gonske enote so pritrjene na aluminijasto ogrodje, ki je bilo nemoteˇ ce nameˇ sˇ ceno na igralno mizo, sama igralna palica pa je na pogonsko enoto pritrjena preko adapterja, ki smo ga natisnili s 3-D tiskalnikom (slika 8). Adapter objame roˇ caj palice ter omogoˇ ca hitro pritrditev ali sne- manje pogonske enote. Slika 8: Pogonska enota in kamere z osvetlitvijo 3.1 Mehanska izvedba Mehanska konstrukcija je sestavljena iz standardnih 45 mm industrijskih aluminijastih profilov ter plastiˇ cnih po- vezovalnih elementov, ki so bili natisnjeni na 3D tiskal- niku. Linearen pomik je doseˇ zen z uporabo igus jermen- skega pogona, ki je nameˇ sˇ cen navpiˇ cno. Ker smo lahko pogonski servo motor namestili v navpiˇ cni smeri, je iz- vedba pogonske enote kompaktna ter dovoljuje namesti- tev dveh pogonskih enot tudi na igralne palice, ki so na- razen le150 mm. Pogonski servo motor za rotacijsko os je preko par- kljaste sklopke in potisnega leˇ zaja direktno sklopljen z adapterjem igralne palice ter omogoˇ ca prenos sile v aksi- alni smeri ter navora. 3.2 Sistem vodenja Ker je treba v realnem ˇ casu voditi8 motorjev v poloˇ zajnem naˇ cinu (4 pogonske enote, vsaka z linearno in rotacijsko osjo), smo izbrali krmilnik PoKeys57CNC. PoKeys57CNC omogoˇ ca krmiljenje motorjev s signali korak/smer (angl. step/direction) po trapeznem hitrostnem profilu, ki ga lahko sproti prilagajamo (spreminjanje poloˇ zajne reference in hitrosti). Preko vodila USB ali Ethernet je krmilnik po- vezan na osebni raˇ cunalnik, kjer se izvajajo analiza slike in algoritmi vodenja. 139 3.3 Algoritem branilca Za namene testiranja in razvoja smo pogonsko enoto na- mestili na drugo igralno palico (obrambni igralec) ter im- plementirali enostaven algoritem branilca. Iz podatkov o trenutnem poloˇ zaju in vektorju hitrosti ˇ zoge najprej ugo- tovimo preseˇ ciˇ sˇ ce med potjo ˇ zoge in linijo obrambnih fi- gur (slika 9), ki predstavlja ˇ zeleni poloˇ zaj obrambne fi- gure (oznaˇ cen s C). Nato moramo na podlagi trenutnih poloˇ zajev in omejitev pri premikanju izbrati s katero obrambo figuro bomo igrali (premika oznaˇ cena z A in B). Pri izbiri najprej upoˇ stevamo omejitve ter izloˇ cimo figure, s kate- rimi ciljnega poloˇ zaja ne moremo doseˇ ci, nato pa izbe- remo figuro, ki je ˇ ze trenutno najbliˇ zje ˇ zelenemu poloˇ zaju. A B v p C Slika 9: Pokrivanje predvidenega poloˇ zaja ˇ zoge Algoritem ima nato dve dodatni stanji, t.j. umik in napad. ˇ Ce ˇ zogo zaznamo za linijo obrambnih figur, le- te umaknemo za bolj uˇ cinkovit napad iz zadnjih vrst. V primeru, da ˇ zogo z obrambno figuro ustavimo in ju po- ravnamo, izvedemo napad, ki je sestavljen iz zamaha in udarca. Za dosego ˇ zelene hitrosti figure ob udarcu ob ˇ zogo, moramo figure najprej umakniti, nato pa jo po- speˇ sevati po trapeznem profilu proti ˇ zogi. S kompaktnimi servo motorji za pogon rotacijske osi tako doseˇ zemo hi- trosti ˇ zoge, ki tudi presegajo hitrosti ˇ cloveˇ skih igralcev (izmerjene hitrosti ˇ zoge okoli10 m/s). V prihodnjih nad- gradnjah bomo algoritemski pristop poskusili nadome- stiti z nevronskimi mreˇ zami[8]. 4 Varnostni sistem Zaradi kopice raˇ cunalniˇ sko vodenih premiˇ cnih delov v podroˇ cju igralne povrˇ sine smo se za zagotavljanje varno- sti pri uporabi naprave odloˇ cili za namestitev varnostne zavese Sick miniTwin4 nad igralno povrˇ sino. V primeru poseganja v igralno podroˇ cje ali preko pritiska na gumb za zaustavitev sistema preko kontaktorjev za enosmerno napetost izklopimo napajanje servo motorjev. Logika var- nostnega krmiljenja je implementirana v programirljivem Sick Flexisoft varnostnem releju. Dodatne varnostne ukrepe smo upoˇ stevali tudi pri ra- zvoju pogonskih enot, ki bodo zaprte s prozornim pokro- vom, ter pri izbiri same mize za namizni nogomet. Iz- brana miza ima teleskopske igralne palice, ki ne posegajo v prostor nasprotnikov. 5 Zakljuˇ cek ˇ Ceprav je predstavljen projekt ˇ se v razvojni fazi, preje- mamo predvsem pozitivne odzive testnih uporabnikov. Zavedamo pa se, da je sama izvedba senzorskega in po- gonskega sistema le majhen del na poti do naprave, ki bo omogoˇ cala zanimivo igro tudi bolj veˇ sˇ cim igralcem namiznega nogometa. Pri izbiri samih komponent smo stremeli k izenaˇ cevanju zmogljivosti ˇ cloveˇ skega igralca, vendar bo na konˇ cni rezultat vplivalo predvsem pravilno delovanje implementiranih algoritmov. 6 Zahvala Zahvaljujemo se Fakulteti za elektrotehniko, Univerze v Ljubljani, za financiranje projekta v sklopu internih pro- jektov FE za izboljˇ sanje kakovosti pedagoˇ skega procesa in promocije – IPP&P 2019. Zahvaljujemo se tudi indu- strijskim ’partnerjem’, ki so podprli izvedbo projekta: Inea RBT d.o.o. (alu konstrukcija) igus (Hennlich d.o.o.) (jermenski pogon) PoLabs d.o.o. (krmilnik PoKeys57CNC) IKU d.o.o. (DC kontaktor) SICK d.o.o. (varnostna zavesa, varnostni rele) FOBMARK d.o.o. (LED osvetlitev) Literatura [1] A. Zdeˇ sar, S. Blaˇ zic, and G. Klanˇ car, “Engineering Edu- cation in Wheeled Mobile Robotics,” IFAC-PapersOnLine, vol. 50, pp. 12173–12178, jul 2017. [2] E. Guenat, C. Picard, R. Serigado, and B. Ulrich, “Automa- tic Foosball - Concurrent engineering project,” tech. rep., 2012. [3] R. Janssen, J. De Best, and R. Van De Molengraft, “Real- time ball tracking in a semi-automated foosball table,” in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 5949 LNAI, pp. 128–139, Sprin- ger, Berlin, Heidelberg, 2010. [4] P. Riden, “It’s only a game: Robots defeat hu- mans on foosball playing field - New Atlas - Ro- botics, https://newatlas.com/epfl-robot-table-soccer- foosball/44863/ [Accessed 2020-06-15],” 2016. [5] M. Boˇ snak and G. Klanˇ car, “Fast and Reliable Alterna- tive to Encoder-Based Measurements of Multiple 2-DOF Rotary-Linear Transformable Objects Using a Network of Image Sensors with Application to Table Football,” Sen- sors, vol. 20, p. 3552, jun 2020. [6] A. Zdeˇ sar, I. ˇ Skrjanc, and G. Klanˇ car, “Visual Trajectory- Tracking Model-Based Control for Mobile Robots,” Inter- national Journal of Advanced Robotic Systems, vol. 10, p. 323, sep 2013. [7] G. Klanˇ car, M. Kristan, and R. Karba, “Wide-angle ca- mera distortions and non-uniform illumination in mobile robot tracking,” Robotics and Autonomous Systems, vol. 46, pp. 125–133, feb 2004. [8] G. Cerne and I. Skrjanc, “Initial study on evolving state space neural networks (eSSNN),” in 2018 IEEE Internati- onal Conference on Evolving and Adaptive Intelligent Sy- stems, EAIS 2018, pp. 1–8, Institute of Electrical and Elec- tronics Engineers Inc., jun 2018.