ˇ ´ VYSOKE ´ UCEN ˇ ´I TECHNICKE ´ V PRAZE CESK E ´ FAKULTA ELEKTROTECHNICKA katedra ˇ r´ıdic´ı techniky
Diplomov´ a pr´ ace Robotick´ y stoln´ı fotbal
Bc. Vojtˇ ech Myslivec
Vedouc´ı pr´ace:
Ing. Pavel Burget, Ph.D.
Kvˇeten 2015
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem pˇredloˇzenou pr´aci vypracoval samostatnˇe (pokud nen´ı uvedeno jinak) pouze pod odborn´ ym veden´ım vedouc´ıho pr´ace, a ˇze jsem uvedl veˇsker´e pouˇzit´e informaˇcn´ı zdroje v souladu s Metodick´ ym pokynem o dodrˇzov´an´ı etick´ ych princip˚ u pˇri pˇr´ıpravˇe vysokoˇskolsk´ ych z´avˇereˇcn´ ych prac´ı.
V Praze, dne 11. 5. 2015
...................................................... Vojtˇech Myslivec
Podˇ ekov´ an´ı Dˇekuji pˇredevˇs´ım vedouc´ımu diplomov´e pr´ace, Ing. Pavlu Burgetovi, Ph.D., za ˇcas str´aven´ y nad mou prac´ı pˇr´ı ˇreˇsen´ı probl´em˚ u v jej´ım pr˚ ubˇehu, kter´eho nebylo m´alo, i za cenn´e pˇripom´ınky k v´ ysledn´e podobˇe pr´ace. D´ale dˇekuji sv´e rodinˇe za z´azem´ı a klid nejen pˇri zpracov´an´ı t´eto pr´ace ale pˇredevˇs´ım bˇehem cel´eho studia. V neposledn´ı ˇradˇe dˇekuji tak´e Bc. Martinovi Gurtnerovi, kter´ y bˇehem zimn´ıho semestru v´ yznamnˇe pˇrispˇel k souˇcasn´e podobˇe ˇr´ıdic´ıho syst´emu. Dˇekuji Bohu.
Obsah ´ 1 Uvod do problematiky
9
2 Podobn´ aˇ reˇ sen´ı
10
2.1
Ecole polytechnique f´ed´erale de Lausanne . . . . . . . . . . . . . . . . . . . 10
2.2
Technical University of Denmark . . . . . . . . . . . . . . . . . . . . . . . 11
2.3
University of Freiburg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4
Shrnut´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Struktura pr´ ace
13
4 Hardware
13
4.1 4.2
Stoln´ı fotbal s robotizovanou osou . . . . . . . . . . . . . . . . . . . . . . . 13 ˇ ıdic´ı syst´em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 R´
4.3
Bezpeˇcnostn´ı syst´em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ˇ ızen´ı jedn´ 5 R´ e osy fotbalu
17
5.1
Anal´ yza moˇznost´ı osy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2
Struktura programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3
Konfigurace regul´ator˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.4
Synchronizace horizont´aln´ıho a rotaˇcn´ıho pohybu . . . . . . . . . . . . . . 21
5.5
Inicializace os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.6
M´ody ˇr´ıdic´ıho syst´emu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.6.1 5.6.2
M´od zachycen´ı m´ıˇce . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ´ cn´ Utoˇ y m´od . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6 Detekce pohybu m´ıˇ ce a hr´ aˇ c˚ u
33
6.1
Moˇzn´e pˇr´ıstupy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2
Barvy a svˇeteln´e podm´ınky . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3
Inteligentn´ı kamera Cognex In-Sight 7402 . . . . . . . . . . . . . . . . . . . 37
6.4
6.3.1
Maximalizace rychlosti kamery
. . . . . . . . . . . . . . . . . . . . 38
6.3.2
Dynamick´a oblast vyhled´av´an´ı . . . . . . . . . . . . . . . . . . . . . 38
Inteligentn´ı kamera Cognex In-Sight 500 . . . . . . . . . . . . . . . . . . . 40
7 Zhodnocen´ı v´ ysledk˚ u
42
8 N´ avrhy na zlepˇ sen´ı
42
9 Z´ avˇ er
44
5
Seznam obr´ azk˚ u 1
ˇ Fotb´alek na Katedˇre ˇr´ıdic´ı techniky CVUT FEL . . . . . . . . . . . . . . .
2
Robotick´ y stoln´ı fotbal vyv´ıjen´ y na ˇsv´ ycarsk´e EPFL[2] . . . . . . . . . . . . 10
3
Robotick´ y stoln´ı fotbal vyv´ıjen´ y na D´ansk´e technick´e univerzitˇe[4] . . . . . 11
4
Komerˇcn´ı robotick´ y stoln´ı fotbal vyv´ıjen´ y ve Freiburgu[6] . . . . . . . . . . 12
5
Principi´aln´ı sch´ema uspoˇr´ad´an´ı servomotor˚ u . . . . . . . . . . . . . . . . . 14
6
Detaily hardware motor˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7
Principi´aln´ı sch´ema ˇr´ıdic´ıho syst´emu . . . . . . . . . . . . . . . . . . . . . 15
8
Pr˚ ubˇeh pˇrejezdu osy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9
Struktura programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10
V´ yvojov´ y diagram inicializace osy . . . . . . . . . . . . . . . . . . . . . . . 24
11
Sektory hˇriˇstˇe vzhledem k ose . . . . . . . . . . . . . . . . . . . . . . . . . 25
12
V´ yvojov´ y diagram volby m´odu osy . . . . . . . . . . . . . . . . . . . . . . 26
13
Situace v pˇr´ıpadˇe zachycen´ı m´ıˇce smˇeˇruj´ıc´ıho pˇr´ımo k ose . . . . . . . . . . 27
14 15
Situace v pˇr´ıpadˇe zachycen´ı m´ıˇce smˇeˇruj´ıc´ıho k ose odrazem . . . . . . . . 28 ´ Uhel dopadu a odrazu ve dvoudimenzion´aln´ı vektorov´e reprezentaci . . . . 29
16
Vliv tvaru hr´aˇce na smˇer v´ ykopu m´ıˇce . . . . . . . . . . . . . . . . . . . . 30
17
Z´avislost u ´hlu v´ ykopu na pozici m´ıˇce vzhledem k hr´aˇci . . . . . . . . . . . 30
18
Vliv tvaru hr´aˇce na smˇer v´ ykopu m´ıˇce . . . . . . . . . . . . . . . . . . . . 31
19
Situace pˇri nahr´avce bokem hr´aˇci na stejn´e ose . . . . . . . . . . . . . . . . 31
20
V´ yvojov´ y diagram pr˚ ubˇehu v´ ykopu s nahr´avkou . . . . . . . . . . . . . . . 32
21
Proces zpracov´an´ı obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
22
Proces zpracov´an´ı obrazu pˇri pouˇzit´ı extern´ıho poˇc´ıtaˇce . . . . . . . . . . . 34
23
Proces zpracov´an´ı obrazu pˇri pouˇzit´ı inteligentn´ı pr˚ umyslov´e kamery . . . . 34
24
Uspoˇr´ad´an´ı a barvy hrac´ı plochy
25
Korkov´ y m´ıˇc nabarven´ y na ˇcerno . . . . . . . . . . . . . . . . . . . . . . . 36
26
Inteligentn´ı kamera Cognex In-Sight 7402 . . . . . . . . . . . . . . . . . . . 37
27
Oblast vyhled´av´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
28
Dynamick´a oblast vyhled´av´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . 39
29
Inteligentn´ı kamera Cognex In-Sight 500 . . . . . . . . . . . . . . . . . . . 40
30
Sch´ematick´ y n´avrh u ´pravy osy . . . . . . . . . . . . . . . . . . . . . . . . . 43
9
. . . . . . . . . . . . . . . . . . . . . . . 35
6
Seznam tabulek 1
Vybran´e parametry stolu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
Vybran´e parametry motor˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3
Vybran´e parametry hlavn´ıch komponent ˇr´ıdic´ıho syst´emu . . . . . . . . . . 16
4
Vybran´e parametry kamery Cognex In-Sight 7402 . . . . . . . . . . . . . . 37
5
Vybran´e parametry kamery Cognex In-Sight 500 . . . . . . . . . . . . . . . 41
Pˇ r´ılohy 1. Detailn´ı konfigurace syst´emu Siemens Simotion s Profinet IRT 2. Detailn´ı konfigurace inteligentn´ı kamery Cognex In-Sight 3. Popis implementovan´ ych funkc´ı a jejich rozhran´ı 4. Detailn´ı sch´ema zapojen´ı ˇr´ıdic´ıho syst´emu (na pˇriloˇzen´em CD) 5. Kompletn´ı zdrojov´e soubory program˚ u (na pˇriloˇzen´em CD) 6. Komentovan´ y zdrojov´ y k´od (na pˇriloˇzen´em CD) 7. Manu´al u ´drˇzby (na pˇriloˇzen´em CD)
7
Anotace C´ılem t´eto pr´ace je navrhnout ˇr´ızen´ı jedn´e osy stoln´ıho fotbalu na z´akladˇe sn´ım´an´ı polohy m´ıˇce vhodnou kamerou a toto navrˇzen´e ˇreˇsen´ı implementovat a ovˇeˇrit. Pohyb osy umoˇzn ˇuj´ı dva motory, jeden osou rotuje a druh´ y pohybuje v horizont´aln´ım smˇeru, jejich pohyby na sobˇe ale nejsou nez´avisl´e, proto je nutn´e implementovat vz´ajemnou synchronizaci mezi nimi. Syst´em je ˇr´ızen pomoc´ı pr˚ umyslov´eho ˇreˇsen´ı od firmy Siemens, pˇrenos dat mezi ˇr´ıdic´ım syst´emem, kamerou a motory zajiˇst’uje v re´aln´em ˇcase s´ıt’ Profinet. V´ ystupem je funkˇcn´ı ˇr´ızen´ı jedn´e osy, inicializace relativn´ıch senzor˚ u polohy po zapnut´ı, funkˇcn´ı monitorov´an´ı situace na hˇriˇsti vhodnou kamerou, a d´ale tak´e n´avrh hardwarov´ ych u ´prav osy, anal´ yza moˇznost´ı cel´eho syst´emu a pˇr´ıpadn´ y n´avrh dalˇs´ıch modifikac´ı pro zlepˇsen´ı parametr˚ u cel´eho syst´emu.
Kl´ıˇ cov´ a slova Robotick´ y stoln´ı fotbal, Simotion, Cognex, Profinet, ˇr´ızen´ı servomotoru, synchronizace pohybu, sledov´an´ı pohybu m´ıˇce kamerou, inteligentn´ı pr˚ umyslov´a kamera.
Annotation The aim of this work is to propose a single axis control of table football with measuring the position of the ball with suitable camera and validate this proposed solution. Axis is moved by two motors, one rotates with the axis and the other moves with axis in a horizontal direction, but their movements are not independent, therefore it is necessary to implement synchronization between them. The system is controlled by an industrial solution from Siemens, data transfer between the controller, camera and the engines is provided by a real-time Profinet network. The output of this work is the functional control of one axis, initialization of relative position sensors after turning on, the functional monitoring of the situation on the playing surface with suitable camera, and also the draft of hardware modifications of axis, analysis of the system possibilities and eventually design of further modifications to improve performance of the whole system.
Keywords Robotic table football, Simotion, Cognex, Profinet, control of servomotor, synchronization of movements, tracking ball with the camera, inteligent industrial camera.
8
1
´ Uvod do problematiky
C´ılem u ´lohy je automatizovat jednu stranu stoln´ıho fotbalu, tedy zkonstruovat robotick´eho soupeˇre, kter´ y by byl schopen konkurovat lidsk´emu hr´aˇci. Obecnˇe lze ˇr´ıci, ˇze c´ılem hry je um´ıstit do soupeˇrovy branky v´ıce m´ıˇc˚ u, neˇz se podaˇr´ı protihr´aˇci. Hra prob´ıh´a na ohraniˇcen´em hˇriˇsti nejˇcastˇeji o rozmˇerech 120 x 70 cm[1] , kter´e je osazeno nejˇcastˇeji osmi tyˇcemi, na kter´ ych jsou um´ıstˇeni hr´aˇci v r˚ uzn´em poˇctu, od jednoho v pˇr´ıpadˇe tyˇce u br´any, aˇz po pˇet v pˇr´ıpadˇe tyˇc´ı u stˇredu hˇriˇstˇe. Nejprve je tedy tˇreba st˚ ul vybavit technologi´ı, kter´a je schopn´a tˇemito osami pohybovat s dostateˇcnou rychlost´ı a razanc´ı. Rychlost m´ıˇcku m˚ uˇze u profesion´aln´ıch hr´aˇc˚ u dosahovat aˇz hodnoty 15,5 m.s−1
[1]
, tedy je
tˇreba podobnou rychlost m´ıˇci nejen umˇet udˇelit, ale tak´e dok´azat pˇresunout hr´aˇce na ose do poˇzadovan´e polohy dostateˇcnˇe rychle. N´aslednˇe je tˇreba vhodn´ ym zp˚ usobem detekovat pˇredevˇs´ım pohyb samotn´eho m´ıˇcku po hrac´ı ploˇse, ale tak´e pohyby protihr´aˇc˚ u. Na z´akladˇe tˇechto informac´ı je n´aslednˇe moˇzn´e pomoc´ı vhodn´eho algoritmu navrhnout a prov´est akˇcn´ı z´asahy tak, aby byl v ide´aln´ım pˇr´ıpadˇe m´ıˇcek um´ıstˇen do soupeˇrovy branky.
ˇ Obr´azek 1: Fotb´alek na Katedˇre ˇr´ıdic´ı techniky CVUT FEL Tato pr´ace se zab´ yv´a inicializac´ı osy a jej´ım ˇr´ızen´ım, kter´e m˚ uˇze v budoucnu slouˇzit pˇri implementaci sloˇzitˇejˇs´ıch hern´ıch algoritm˚ u. D´ale se pr´ace zab´ yv´a sledov´an´ım polohy m´ıˇcku a situace na hˇriˇsti vhodnou kamerou. St˚ ul, na kter´em v´ yvoj prob´ıhal a d´ale bude prob´ıhat je na obr. 1.
9
2
Podobn´ aˇ reˇ sen´ı
Snahy o zkonstruov´an´ı poˇc´ıtaˇcem ˇr´ızen´eho stoln´ıho fotbalu lze pozorovat teprve nˇekolik let, tedy jde o pomˇernˇe novou z´aleˇzitost. Nicm´enˇe jak je patrn´e z n´asleduj´ıc´ıho pˇrehledu dohledan´ ych podobn´ ych ˇreˇsen´ı, existuje nˇekolik u ´spˇeˇsn´ ych realizac´ı, jedna dokonce v komerˇcn´ı verzi.
2.1
Ecole polytechnique f´ ed´ erale de Lausanne
Robotick´ y stoln´ı fotbal vyv´ıjen´ y na ˇsv´ ycarsk´e univerzitˇe Ecole polytechnique f´ed´erale de Lausanne m´a dle dostupn´ ych informac´ı robotizovanou zat´ım jen jednu osu, osazenou dvˇema stejnosmˇern´ ymi elektromotory o v´ ykonech 120 W pro rotaˇcn´ı pohyb (v´ ykop) a 200 W pro translaˇcn´ı (pˇrem´ıstˇen´ı hr´aˇc˚ u). Motor pro rotaˇcn´ı pohyb je pevnˇe spojen s osou, pˇriˇcemˇz cel´a tato sestava je pˇripevnˇena k pohybliv´emu p´asu, pˇres kter´ y druh´ y ´ motor zajiˇst’uje translaˇcn´ı pohyb hrac´ı osy. Udaje o konkr´etn´ıch dosaˇzen´ ych rychlostech nejsou dostupn´e, nicm´enˇe z uveˇrejnˇen´ ych videonahr´avek se zd´a, ˇze rotaˇcn´ı pohyb m´a dostateˇcnou razanci, translaˇcn´ı pohyb je ve srovn´an´ı s jin´ ymi realizacemi i pohyby osy v rukou lidsk´eho hr´aˇce zat´ım o nˇeco pomalejˇs´ı.
Obr´azek 2: Robotick´ y stoln´ı fotbal vyv´ıjen´ y na ˇsv´ ycarsk´e EPFL[2] Pohyb m´ıˇcku po hrac´ı ploˇse je sledov´an pomoc´ı kamery, um´ıstˇen´e pod hrac´ım stolem, pˇriˇcemˇz deska je z bl´ıˇze nespecifikovan´eho pr˚ uhledn´eho materi´alu. Oproti kameˇre um´ıstˇen´e nad hrac´ı plochou je m´ıˇcek viditeln´ y vˇzdy a nem˚ uˇze se dostat do z´akrytu osy. Kamera pracuje s rozliˇsen´ım 1280 px x 1024 px a sn´ımky poˇrizuje rychlost´ı 90 FPS. Vyhodnocovac´ı algoritmy jsou schopn´e naj´ıt m´ıˇc na hrac´ı ploˇse v ˇcase okolo 20 ms, pˇriˇcemˇz d´ıky tomu, ˇze se m´ıˇcek nem˚ uˇze dostat do z´akrytu, perioda sledov´an´ı po nalezen´ı m´ıˇce dosahuje ˇr´ad˚ u jednotek milisekund[3] .
10
Oproti ˇreˇsen´ı, kter´ ym se zab´ yv´a tato pr´ace, jsou zde uˇzity mnohem slabˇs´ı motory, i z vide´ı je patrn´a niˇzˇs´ı razance v´ ykopu m´ıˇce. Co se t´ yˇce um´ıstˇen´ı kamery, v tomto pˇr´ıpadˇe (kamera zespodu stolu) umoˇzn ˇuje jednoznaˇcnˇe lepˇs´ı v´ yhled na samotn´ y m´ıˇc, naopak horˇs´ı v´ yhled na pozici hr´aˇc˚ u soupeˇre.
2.2
Technical University of Denmark
V´ yvoj robotick´eho stoln´ıho fotbalu na D´ansk´e technick´e univerzitˇe skonˇcil v roce 2007. St˚ ul m´a robotizovan´e vˇsechny ˇctyˇri osy na jedn´e stranˇe. Stejnˇe jako v pˇredchoz´ım pˇr´ıpadˇe i zde jsou oba motory um´ıstˇeny z jedn´e strany a je kladen d˚ uraz na snadnou mont´aˇz a demont´aˇz cel´eho syst´emu. Tak´e technick´e ˇreˇsen´ı motor˚ u a jejich interakce s osou jsou velmi podobn´e. Z´asadn´ı rozd´ıl je v um´ıstˇen´ı kamery, kter´a je v tomto pˇr´ıpadˇe nad hrac´ı plochou, viz obr. 4. Pˇri podobn´em rozliˇsen´ı jako v pˇredchoz´ım pˇr´ıpadˇe sn´ım´a rychlost´ı 25 sn´ımk˚ u za sekundu, vˇcetnˇe zpracov´an´ı z´ıskan´eho sn´ımku. Vyhodnocen´ı dat z kamery a samotn´e ˇr´ızen´ı os zajiˇst’uje poˇc´ıtaˇc s bl´ıˇze nespecifikovanou real-time distribuc´ı Linuxu. Pˇrestoˇze doba vyhodnocen´ı pozice m´ıˇcku je delˇs´ı neˇz v pˇredchoz´ım pˇr´ıpadˇe a um´ıstˇen´ı kamery nezaruˇcuje viditelnost m´ıˇcku ve vˇsech situac´ıch, dle dostupn´ ych videoz´aznam˚ u se ˇreˇsen´ı jev´ı jako plnˇe funkˇcn´ı a schopn´e minim´alnˇe konkurovat lidsk´emu protivn´ıkovi.
Obr´azek 3: Robotick´ y stoln´ı fotbal vyv´ıjen´ y na D´ansk´e technick´e univerzitˇe[4]
2.3
University of Freiburg
Nej´ uspˇeˇsnˇejˇs´ı pr´ace ze vˇsech uveden´ ych, podle dostupn´ ych materi´al˚ u, kter´ ych ale nen´ı mnoho, je robotizace jedn´e strany stol˚ u plnˇe funkˇcn´ı. Existuj´ı dvˇe verze, jedna pro v´ yzkumn´e u ´ˇcely a jedna komerˇcn´ı, kter´a je i patentov´ana. Konstrukce je opˇet podobn´a jako v pˇredchoz´ıch 11
pˇr´ıpadech. Sn´ımky z kamery, kter´a je u v´ yzkumn´e verze um´ıstˇena nad hrac´ı plochou a u komerˇcn´ı verze jiˇz pod n´ı, jsou vyhodnocov´any opˇet s periodou zhruba 20 ms.
Obr´azek 4: Komerˇcn´ı robotick´ y stoln´ı fotbal vyv´ıjen´ y ve Freiburgu[6]
2.4
Shrnut´ı
Oproti v´ yˇse uveden´ ym robotizovan´ ym stoln´ım fotbal˚ um je ˇreˇsen´ı prezentovan´e v t´eto pr´aci dle dostupn´ ych informac´ı prvn´ı, kter´e vyuˇz´ıv´a pr˚ umyslov´e syst´emy. To samo o sobˇe pˇrin´aˇs´ı mnoho v´ yhod (robustnost syst´emu, odolnost pouˇzit´ ych komponent, vyˇsˇs´ı bezpeˇcnost), ale tak´e nˇekter´e nev´ yhody, napˇr´ıklad cenu nˇekter´ ych komponent. Vhledem k tomu, ˇze v nˇekter´ ych pˇr´ıpadech jsou informace o konkurenˇcn´ıch ˇreˇsen´ıch stroh´e, je obt´ıˇzn´e pˇrin´est objektivn´ı srovn´an´ı, nicm´enˇe dle doposud dosaˇzen´ ych v´ ysledk˚ u lze ˇr´ıci, ˇze v budoucnu (po robotizaci zbyl´ ych os atd.) se m˚ uˇze navrˇzen´ y robotick´ y stoln´ı fotbal souˇcasn´e konkurenci minim´alnˇe vyrovnat.
12
3
Struktura pr´ ace
Pr´ace na robotick´em stoln´ım fotbalu prob´ıhala v akademick´em roce 2014/2015. Bˇehem ˇ ıdic´ı syst´emy navrˇzen, zimn´ıho semestru byl v r´amci pˇredmˇet˚ u Individu´aln´ı projekt a R´ instalov´an a konfigurov´an ˇr´ıdic´ı syst´em. Bˇehem letn´ıho semestru byly v r´amci pˇredmˇetu Diplomov´a pr´ace navrˇzeny a implementov´any ˇr´ıdic´ı algoritmy. D´ale byla instalov´ana inteligentn´ı kamera pro sledov´an´ı situace na hˇriˇsti a byla zprovoznˇena komunikace mezi n´ı a ˇr´ıdic´ım syst´emem po s´ıti PROFINET.
4
Hardware
Cel´ y syst´em je tvoˇren samotn´ ym stolem, kter´ y je nav´ıc osazen motory s mechanikou, osvˇetlen´ım a bezpeˇcnostn´ımi prvky, a d´ale ˇr´ıdic´ım syst´emem um´ıstˇen´ ym v k tomu urˇcen´e skˇr´ıni. N´asleduj´ıc´ı odstavce popisuj´ı hardwarovou konfiguraci tohoto ˇreˇsen´ı.
4.1
Stoln´ı fotbal s robotizovanou osou
Stoln´ı fotbal World Champion znaˇcky Garlando patˇr´ı mezi bˇeˇzn´e typy stol˚ u, je osazen ˇctyˇrmi osami z kaˇzd´e strany, smˇerem od br´any osou s jedn´ım brank´aˇrem, osou se dvˇema obr´anci, osou s pˇeti z´aloˇzn´ıky a osou se tˇremi u ´toˇcn´ıky. Jiˇz od v´ yrobce je vybaven i LED osvˇetlen´ım a pˇr´ısluˇsn´ ym nap´ajec´ım zdrojem 230/5V 60W, toto osvˇetlen´ı se ale ukazuje jako nedostateˇcn´e pro potˇreby sn´ım´an´ı kamerou, viz pˇr´ısluˇsn´a kapitola d´ale. Jiˇz pˇred zaˇc´atkem t´eto pr´ace byla jedna osa obr´ance se dvˇema hr´aˇci osazena servomotory. Vybran´e parametry stolu jsou uvedeny v tabulce 1 a jeho fotografie na obr. 1. Typ
ITSF World Champion
V´ yrobce
Garlando
Rozmˇery
156 x 76,5 x 96 cm
Hmotnost
∼100 kg
Rozmˇery hrac´ı plochy
120 x 70,5 cm
Barva
ˇcern´a a stˇr´ıbrn´a
Tabulka 1: Vybran´e parametry stolu
Principi´aln´ı n´aˇcrtek uspoˇra´d´an´ı servomotor˚ u a jejich pˇripojen´ı k ose je na obr. 5, nˇekolik detail˚ u pak na obr. 6. Z jedn´e strany je na osu pˇripevnˇeno ozuben´e kolo, jehoˇz pohyb pod´el osy je veden dr´aˇzkou v hˇr´ıdeli a kter´e je pˇres ˇremen spojeno s hˇr´ıdel´ı servomotoru. Tento motor slouˇz´ı pro ovl´ad´an´ı rotaˇcn´ıho pohybu (v´ ykop m´ıˇce). Druh´ y servomotor je opˇet ˇremenem spojen s ozuben´ ym kolem, kter´e pˇres ˇsroubovici na ose pohybuje hr´aˇci v horizont´aln´ım smˇeru (pˇresun hr´aˇc˚ u). Je tedy patrn´e, ˇze oba pohyby na sobˇe nejsou nez´avisl´e (viz d´ale). 13
M1
M2
Obr´azek 5: Principi´aln´ı sch´ema uspoˇra´d´an´ı servomotor˚ u
Obr´azek 6: Detaily hardware motor˚ u Oba motory jsou shodnˇe typu 1FK7 SIMOTICS S od firmy Siemens, jejich vybran´e parametry jsou v tabulce 2. Jsou pˇripevnˇeny na spodn´ı stranˇe stolu. ˇ Rada
SIMOTICS S
Typ
1FK7 COMPACT
Proveden´ı
synchronn´ı servomotor
Pˇr´ıkon
0,38 KW
Maxim´aln´ı ot´aˇcky
6 000 RPM
Brzda
ano
Konektivita
pˇr´ıpojka Siemens IM B5
Sn´ımaˇc polohy
relativn´ı s Drive-CliQ
Tabulka 2: Vybran´e parametry motor˚ u
14
4.2
ˇ ıdic´ı syst´ R´ em
ˇ ıdic´ı syst´em je postaven na komponent´ach od firmy Siemens, konkr´etnˇe na pr˚ R´ umyslov´em automatu Simotion D435 (Motion Controller), doplnˇen´em komponenty z ˇrady Sinamics S120, jako jsou ˇr´ıdic´ı jednotky nebo nap´ajec´ı moduly pro motory. Souˇca´st´ı ˇr´ıdic´ıho syst´emu je tak´e inteligentn´ı kamera InSight 7402 (pˇr´ıpadnˇe In-Sight 500) od firmy Cognex. Principi´aln´ı sch´ema je na obr. 7
ETHERNET LabLink
Siemens Simotion D435
DMM
CU
MC
Cognex In-Sight 7402 / In-Sight 500
Siemens Sinamics CU-320
4x
Řízení jedné osy
DRIVE-CLiQ
Siemens Double Motor Module
SR Siemens Servomotory 1FK7
V
M1
M2
DRIVE-CLiQ PROFINET IO RT
PROFINET IO IRT
SICK UE-10
8
V
SICK V300
Bezpečnostní systém
SIEMENS Power Cable IM B5
Obr´azek 7: Principi´aln´ı sch´ema ˇr´ıdic´ıho syst´emu Cel´ y syst´em je ˇr´ızen pr˚ umyslov´ ym automatem Simotion D435, kter´ y je pˇripojen pomoc´ı bˇeˇzn´e s´ıtˇe Ethernet do ˇskoln´ı pods´ıtˇe LabLink, cel´ y syst´em proto m˚ uˇze b´ yt konfigurov´an a programov´an z libovoln´eho poˇc´ıtaˇce v t´eto s´ıti s pˇr´ısluˇsnou softwarovou v´ ybavou (Siemens Step7 a Scout). Pomoc´ı pr˚ umyslov´e s´ıtˇe PROFINET IO automat izochronnˇe komunikuje s ˇr´ıdic´ımi jednotkami Sinamics CU320, z nichˇz kaˇzd´a pˇres Double Motor Modul a komunikaˇcn´ı rozhran´ı DRIVE-CLiQ ˇr´ıd´ı pohyb dvou motor˚ u, tedy jedn´e osy. Zpˇetnou vazbu z motor˚ u zajiˇst’uj´ı integrovan´e relativn´ı sn´ımaˇce polohy, opˇet pˇripojen´e pˇres rozhran´ı DRIVE-CLiQ. Vybran´e parametry pouˇzit´ ych komponent jsou v tabulce 3. Detailn´ı sch´ema cel´eho ˇr´ıdic´ıho syst´emu je v pˇr´ıloze.
15
Simotion D435 Max. poˇcet pˇripojen´ ych motor˚ u 32 Operaˇcn´ı pamˇet’ 48 MB Min. doba komunikaˇcn´ıho cyklu
500 µs (1 ms pro PROFINET IO IRT)
Komunikaˇcn´ı rozhran´ı
Ethernet, PROFIBUS, PROFINET IO (s kartou CBE30) digit´aln´ı IO (celkem 24)
Nap´ajen´ı
24 V
Sinamics CU320-2 DP Min. doba komunikaˇcn´ıho cyklu
500 µs (1 ms pro PROFINET IO IRT)
Komunikaˇcn´ı rozhran´ı
DRIVE-CLiQ (4x), PROFIBUS, PROFINET IO (s kartou CBE30) digit´aln´ı IO (celkem 20)
Nap´ajen´ı
24 V
Double Motor Module V´ ykon
1,6 kW
Komunikaˇcn´ı rozhran´ı
DRIVE-CLiQ (4x) pˇr´ıpojka pro motor Siemens IM B5 (2x)
Nap´ajen´ı
24 V
Tabulka 3: Vybran´e parametry hlavn´ıch komponent ˇr´ıdic´ıho syst´emu
4.3
Bezpeˇ cnostn´ı syst´ em
St˚ ul je vybaven bezpeˇcnostn´ım syst´emem, kter´ y se skl´ad´a z bezpeˇcnostn´ıho plexiskla ˇctvercov´e postavy pˇripevnˇen´eho shora stolu, inteligentn´ı bezpeˇcnost´ı kamery SICK V300 a bezpeˇcnostn´ıho rel´e SICK UE-10 (viz obr. 7). Plexisklo zabraˇ nuje sv´evoln´emu pˇribl´ıˇzen´ı k pohybuj´ıc´ı se ose ze stran. Na horn´ım okraji plexiskla je um´ıstˇena bezpeˇcnost´ı kamera, kter´a monitoruje jeho vrchn´ı otvor. V pˇr´ıpadˇe pr˚ uchodu tˇelesa o pr˚ umˇeru vˇetˇs´ım jak 30 mm (lidsk´a ruka toto splˇ nuje) t´ımto otvorem kamera generuje pˇr´ısluˇsn´ y sign´al, kter´ y je pˇres bezpeˇcnostn´ı rel´e pˇriveden aˇz na pˇr´ısluˇsn´e vstupy ˇr´ıdic´ıch jednotek a Double Motor Modul˚ u, kter´e zastav´ı vykon´avan´ y pohyb.
16
Vzd´alenost bezpeˇcnostn´ı kamerou monitorovan´eho prostoru od nejbliˇzˇs´ı pohybliv´e ˇca´sti je urˇcena jako d = kT + 8(d–14) + h[22] = 298mm ∼ 300mm,
(1)
kde k je maxim´aln´ı rychlost pohybu lidsk´e ruky dle norem (2000 mm/s), d je rozliˇsen´ı kamery (tomto pˇr´ıpadˇe 30 mm), h je maxim´aln´ı pˇresah hr´aˇce pˇres okraj stolu (40 mm) a T je doba, za kterou je syst´em schopen zastavit pohyb. Tato doba se skl´ad´a z detekˇcn´ı doby kamery (25 ms), doby sepnut´ı bezpeˇcnostn´ıho rel´e (20 ms), reakˇcn´ı doby ˇr´ıdic´ıho syst´emu (25 ms) a doby zastaven´ı motoru. Vzhledem k tomu, ˇze setrvaˇcn´a s´ıla osy (moment setrvaˇcnosti, tˇren´ı) je zanedbateln´a, rotuj´ıc´ı osa bez hnac´ı s´ıly motor˚ u jiˇz nen´ı nebezpeˇcn´a, a je moˇzn´e uvaˇzovat dobu zastaven´ı motoru 0 ms. Bezpeˇcnost´ı kamera tedy mus´ı b´ yt um´ıstˇena ve v´ yˇsce alespoˇ n 30 cm nad hranou stolu.
ˇ ızen´ı jedn´ R´ e osy fotbalu
5
Element´arn´ım ˇcl´ankem cel´eho syst´emu je jedna osa, kter´a mus´ı dok´azat let´ıc´ı m´ıˇc zachytit a odehr´at poˇzadovan´ ym smˇerem a rychlost´ı.
5.1
Anal´ yza moˇ znost´ı osy
Kl´ıˇcov´ ymi vlastnostmi osy je rychlost, s jakou dok´aˇze pˇrem´ıstit hr´aˇce na poˇzadovan´e m´ısto, a rychlost ot´aˇcen´ı, respektive schopnost udˇelit m´ıˇci co moˇzn´a nejvyˇsˇs´ı rychlost. Co se t´ yˇce rychlosti m´ıˇce pˇri v´ ykopu, vzhledem k tomu, ˇze motor pro rotaˇcn´ı pohyb se m˚ uˇze ot´aˇcet aˇz rychlost´ı 100 ot´aˇcek za sekundu, coˇz je po uvaˇzov´an´ı pˇrevodu (faktor 3,05) pˇres 32 ot´aˇcek fotbalov´e osy za sekundu, je rychlost v´ ykopu v´ıce neˇz dostateˇcn´a. Za optim´aln´ı ot´aˇcky (vzhledem k hluˇcnosti pˇri n´arazu m´ıˇce) byla po nˇekolika experimentech zvolena zhruba tˇretinov´a rychlost 30 ot´aˇcek motoru za sekundu, respektive necel´ ych 10 ot´aˇcek osy po pˇrevodu. Rychlost m´ıˇcku je v tomto pˇr´ıpadˇe necel´ ych 10 m.s−1 . V pˇr´ıpadˇe potˇreby ale nic nebr´an´ı aˇz trojn´asobn´emu zv´ yˇsen´ı rychlosti ot´aˇcen´ı. Sloˇzitˇejˇs´ı je situace v pˇr´ıpadˇe translaˇcn´ıho pohybu. Jak bylo uvedeno, zde je kl´ıˇcov´a rychlost pˇresunu. Projevuje se zde nˇekolik faktor˚ u. Motory jsou v dobˇe neˇcinnosti zabrzdˇen´e, aby nemohlo doj´ıt ke ztr´atˇe informace o jejich poloze nechtˇen´ ym pootoˇcen´ım, a jejich uvolnˇen´ı trv´a urˇcitou dobu, konkr´etnˇe Tb = 30 ms. N´asleduje rozjezd se zrychlen´ım a = 100000 mm/s2 , se stejn´ ym zrychlen´ım prob´ıh´a i dojezd, pouze se z´aporn´ ym znam´enkem. Po rozbˇehu se osa pohybuje rychlost´ı v = 700 mm/s. Celou situaci shrnuje graf na obr. 8.
17
v = 700 mm/s
v [mm/s]
0
30
37
37 + T
44 + T
t [ms]
Obr´azek 8: Pr˚ ubˇeh pˇrejezdu osy Doba pˇrejezdu τ je urˇcena na z´akladˇe celkov´e vzd´alenosti l, kterou mus´ı osa urazit. Ta se skl´ad´a ze dvou ˇca´st´ı. Tou prvn´ı je vzd´alenost, kterou osa uraz´ı bˇehem zrychlov´an´ı a zpomalov´an´ı, Z
0,007
a.t dt = 4, 9mm.
la = 2.
(2)
0
Snadno lze nahl´ednout, ˇze doba, za kterou probˇehne zrychlen´ı z nulov´e rychlosti na rychlost v, je Ta = 7ms, stejnˇe jako doba, za kterou probˇehne zastaven´ı. Dr´aha, kterou za tuto dobu osa uraz´ı, je rovna integr´alu z pr˚ ubˇehu rychlosti, kter´ ym v tomto pˇr´ıpadˇe popisuje vztah a.t. Hodnotu integr´alu je tˇreba uvaˇzovat dvakr´at, pr´avˇe kv˚ uli pˇr´ıtomnosti rozbˇehu i dobˇehu osy a tomu, ˇze oba troj´ uheln´ıkov´e u ´tvary jsou obsahovˇe totoˇzn´e. Druhou sloˇzkou celkov´e dr´ahy je dr´aha, kterou osa uraz´ı bˇehem pˇresunu konstantn´ı rychlost´ı, lb = v.T = 700.T.
(3)
Nejhorˇs´ı situace m˚ uˇze nastat ve chv´ıli, kdy je osa jedn´ım hr´aˇcem u jednoho kraje hˇriˇstˇe, zat´ımco m´ıˇc se pohybuje pod´el druh´eho. Pro osu se dvˇema hr´aˇci plat´ı, ˇze vzd´alenost, kterou je tˇreba v tomto pˇr´ıpadˇe urazit, je 300 mm. Tedy lze ps´at, ˇze 300 − 4, 9 ≈ 422 ms (4) 700 je doba potˇrebn´a k pˇresunu konstantn´ı rychlost´ı v nejhorˇs´ım moˇzn´em pˇr´ıpadˇe, kter´ y m˚ uˇze l = 300 = la + lb = 4, 9 + 700.T => T =
pro osu nastat. Nakonec je tˇreba pˇriˇc´ıst rozbˇehov´ y a dobˇehov´ y ˇcas, a dobu potˇrebnou pro odbrzdˇen´ı motoru. Dost´av´ame celkovou maxim´aln´ı dobu pˇresunu Tcmax = T + Ta + Tb ≈ 466 ms.
(5)
Za dobu maxim´alnˇe 466 ms m˚ uˇze tedy b´ yt osa na kter´ekoli pozici, coˇz je dostateˇcnˇe kr´atk´a doba vzhledem k moˇznostem kamery (viz kapitola 6). Tuto dobu lze jeˇstˇe zkr´atit zv´ yˇsen´ım ot´aˇcek motoru, ale vyˇsˇs´ı rychlosti zat´ım nebyly testov´any.
18
Alternativou k brzdˇen´ı motor˚ u pomoc´ı mechanick´ ych brzd po kaˇzd´em pohybu je brzdˇen´ı momentem, respektive udrˇzov´an´ım konstantn´ı pozice pomoc´ı regul´atoru. Toto ˇreˇsen´ı nav´ıc ˇsetˇr´ı mechanick´e brzdy a prodluˇzuje tak ˇzivotnost motor˚ u.
5.2
Struktura programu
Programy v ˇr´ıdic´ım syst´emu se dˇel´ı do jednotliv´ ych kategori´ı podle periody spouˇstˇen´ı. Nejd˚ uleˇzitˇejˇs´ımi kategoriemi jsou 1. StartupTask - programy spouˇstˇen´e pˇri startu syst´emu. 2. ShutdownTask - programy spouˇstˇen´e pˇri vyp´ınan´ı syst´emu. 3. MotionTask - sekvenˇcn´ı programy obsahuj´ıc´ı ˇr´ızen´ı motor˚ u, mohou b´ yt spuˇstˇeny po startu syst´emu, nebo b´ yt vol´any z jin´ ych program˚ u. 4. BackgroundTask - programy bˇeˇz´ıc´ı periodicky na pozad´ı, nez´avisle na komunikaˇcn´ıch cyklech. 5. ServoSynchronousTask - programy bˇeˇz´ıc´ı periodicky synchronnˇe s komunikaˇcn´ım cyklem, kter´ y zajiˇst’uje ˇr´ızen´ı servomotor˚ u. 6. SystemInteruptTasks - programy volan´e pˇri chyb´ach v programu ˇci selh´an´ı technologie. Struktura cel´eho programu je na obr. 9. Kategorie MotionTask je ide´aln´ı pro bˇeh programu pro inicializaci (kapitola 5.5) a kategorie ServoSynchronousTask je ide´aln´ı pro bˇeh ˇr´ıdic´ıho programu. Inicializační program
Spuštění programu
Inicializace osy
Načtení polohy míče z kamery
Výpočet vektoru rychlosti a budoucí pozice
Výběr herního módu osy
Provedení příslušné akce dle módu
Nastavení vyhledávacího regionu pro další cyklus
Časovač vypnutí napájení motorů
Řídicí program
Obr´azek 9: Struktura programu Po spuˇstˇen´ı ˇr´ıdic´ıho programu je provedena inicializace osy (funkce axesInitialization), kter´a zajist´ı zjiˇstˇen´ı aktu´aln´ı polohy osy (vzhledem k pouˇzit´ı relativn´ıch sn´ımaˇc˚ u polohy na servomotorech nen´ı jejich poloha po spuˇstˇen´ı zn´am´a). Po inicializaci n´asleduje samotn´a ˇr´ıdic´ı smyˇcka. Nejprve jsou naˇctena data o poloze m´ıˇce z kamery, vˇcetnˇe pˇrepoˇctu na souˇradnice v mm (funkce coordinateSystemTransfer ). Ze z´ıskan´ ych dat je n´aslednˇe vypoˇcten vektor rychlosti pohybu m´ıˇce a odhadnuta jeho budouc´ı pozice (funkce countVectorAndEstimateNextPosition). Na z´akladˇe tˇechto u ´daj˚ u je n´aslednˇe zvolen vhodn´ y hern´ı 19
m´od osy (funkce selectMode) a provedena pˇr´ısluˇsn´a akce (funkce returnAction, defenseAction a selectAndDoAttack ). Nakonec je na z´akladˇe odhadnut´e budouc´ı pozice urˇcena nov´a oblast, ve kter´e m´a kamera hledat m´ıˇc v pˇr´ıˇst´ım cyklu (funkce setSearchRegion) a otestov´an ˇcasovaˇc neˇcinnosti motor˚ u, v pˇr´ıpadˇe jeho pˇreteˇcen´ı je vypnuto nap´ajen´ı. Tento ˇcasovaˇc je resetov´an pˇri kaˇzd´em pohybu osy (viz obr. 12). Uveden´e funkce jsou detailnˇeji pops´any v pˇr´ısluˇsn´e pˇr´ıloze. Celkov´a doba bˇehu programu nen´ı konstantn´ı ale liˇs´ı se podle aktu´aln´ı situace, protoˇze program proch´az´ı r˚ uznˇe v´ ypoˇcetnˇe n´aroˇcn´ ymi sekvencemi. Dobu bˇehu programu tedy lze vyj´adˇrit nˇekolika hodnotami. Minim´aln´ı doba bˇehu programu je ∼0,5 ms (v pˇr´ıpadˇe obrann´e akce, kter´a vyˇzaduje m´enˇe v´ ypoˇct˚ u), maxim´aln´ı je ∼2 ms (v pˇr´ıpadˇe v´ ykopu s nahr´avkou, kter´a je v´ ypoˇcetnˇe n´aroˇcn´a). Pr˚ umˇern´a doba bˇehu programu je ∼1,2 ms.
5.3
Konfigurace regul´ ator˚ u
Do ˇr´ıdic´ıho syst´emu jsou jiˇz tov´arnˇe implementov´ano ˇr´ızen´ı servomotor˚ u, a to jak ˇr´ızen´ı polohy, tak ˇr´ızen´ı rychlosti ot´aˇcen´ı. Bˇehem konfigurace ˇr´ıdic´ıho syst´emu postaˇc´ı spustit automatickou identifikaci parametr˚ u, kter´a zmˇeˇr´ı vˇsechny potˇrebn´e hodnoty a nastav´ı pˇres dvacet parametr˚ u regul´atoru pro optim´aln´ı chod servomotor˚ u. Smyslem t´eto pr´ace nen´ı detailnˇe popsat implementovan´e ˇr´ıdic´ı algoritmy, nicm´enˇe kv˚ uli komplexnosti pr´ace je vhodn´e pˇripomenout pˇr´ıtomnost t´eto funkcionality v syst´emu. Nastaven´e parametry regul´ator˚ u jsou univerz´aln´ı pro vˇsechny situace, kter´e mohou nastat (inicializace, pomal´e a rychl´e pˇresuny osy atd.), zmiˇ novanou identifikaci tedy postaˇc´ı prov´est pouze jednou a bˇehem hry nen´ı tˇreba nastaven´e parametry mˇenit.
20
5.4
Synchronizace horizont´ aln´ıho a rotaˇ cn´ıho pohybu
Jak jiˇz bylo zm´ınˇeno, pohyby osou v horizont´aln´ı i rotaˇcn´ı ose nejsou vz´ajemnˇe nez´avisl´e. Motory jsou vybaveny brzdami, kter´e jsou v pˇr´ıpadˇe, ˇze se motor nem´a pohybovat, sepnut´e, tedy osou nelze samovolnˇe pohybovat v ˇz´adn´em smˇeru a nav´ıc nehroz´ı neˇza´douc´ı zmˇeny polohy v d˚ usledku setrvaˇcnosti a podobnˇe. Z obr. 5 je patrn´e, ˇze bˇehem hry mohou nastat n´asleduj´ıc´ı situace: 1. posun osy v horizont´aln´ım smˇeru bez nutnosti rotace ⇒ nez´avisl´ y pohyb pouze v horizont´aln´ım smˇeru 2. rotace osy bez posunu ⇒ z´avisl´ y pohyb, druh´ y pohon mus´ı kompenzovat vzniklou rotaci, jinak z´aroveˇ n doch´az´ı k posunu v horizont´aln´ım smˇeru 3. posun osy a rotace z´aroveˇ n ⇒ z´avisl´ y pohyb, rotace osy ovlivˇ nuje posun v horizont´aln´ım smˇeru Obecnˇe tedy lze ˇr´ıci, ˇze v pˇr´ıpadech 2 a 3 je nutn´e pohybovat obˇema motory z´aroveˇ n. Protoˇze oba motory nemaj´ı stejn´ y pˇrevod (ozuben´a kola a ˇremeny), je nutn´e pouˇz´ıt pˇrevodn´ı pomˇer mezi ot´aˇckami motoru pro translaˇcn´ı pohyb ωt a ot´aˇckami motoru pro rotaˇcn´ı pohyb ωr , plat´ı vztah ωr = Gωt ,
(6)
kde G je pˇrevodn´ı pomˇer, jehoˇz zmˇeˇren´a hodnota je ∼ 0.0185. Toto ˇc´ıslo v sobˇe zahrnuje jednak pˇrevodn´ı pomˇer mezi obˇema motory a ozuben´ ymi koly pˇres ˇremen (kola nemaj´ı stejn´e poˇcty zub˚ u) a jednak pˇrevodn´ı pomˇer mezi rotac´ı osy a stoup´an´ım z´avitu. Pouˇzit´ y ˇr´ıdic´ı syst´em m´a funkcionalitu t´eto synchronizace mezi motory jiˇz implementovanou od v´ yrobce, tzv. gearing, kter´ y tedy postaˇc´ı jen spr´avnˇe nakonfigurovat. V programu pak mohou b´ yt nakonfigurov´any dva druhy os, tzv. Leading axis (hlavn´ı osa), jej´ıˇz pohyb je ˇr´ızen programem, a d´ale tzv. Following axis (sleduj´ıc´ı osa), jej´ıˇz pohyb je podle zadan´eho kl´ıˇce odvozen od pohybu hlavn´ı osy. T´ımto kl´ıˇcem je v tomto pˇr´ıpadˇe pˇrevodn´ı pomˇer G. Tedy v pˇr´ıpadˇe 2 je rotaˇcn´ı osa nastavena jako hlavn´ı, zat´ımco translaˇcn´ı osa pouze kompenzuje vznikl´ y posun a bude tedy nastavena jako sleduj´ıc´ı, s opaˇcn´ ym smˇerem pohybu. N´asleduje u ´sek k´odu demonstruj´ıc´ı tuto situaci (kompletn´ı komentovan´ y zdrojov´ y k´od je na pˇriloˇzen´em CD). Nejprve je nastavena rotaˇcn´ı osa jako hlavn´ı (Leading axis, master) pro translaˇcn´ı osu, respektive pro objekt t´eto osy reprezentuj´ıc´ı vˇsechny synchronn´ı operace s touto osou. retDINT := _setMaster ( followingObject := _ t o . A x i s _ 1 _ T r a n s l a t i o n _ S Y N C H R O N O U S _ O P E R A T I O N , master := _ to . A xi s _ 1_ R o ta t i on ) ;
21
N´aslednˇe je zapnuta synchronizace rychlosti translaˇcn´ı osy (podle nastaven´e hlavn´ı osy pˇredchoz´ım pˇr´ıkazem) v opaˇcn´em smˇeru (negative) tak, aby byl kompenzov´an translaˇcn´ı posun vznikl´ y rotaˇcn´ım pohybem. Synchronizace prob´ıh´a podle zadan´eho pˇrevodn´ıho pomˇeru (gearRatio) (viz rovnice (6)). retDINT := _ e n a b l e V e l o c i t y G e a r i n g ( followingObject := _ t o . A x i s _ 1 _ T r a n s l a t i o n _ S Y N C H R O N O U S _ O P E R A T I O N , direction := NEGATIVE , gearingRatioType := DIRECT , gearingRatio := gearRatio , posi tiveAc celTyp e := DIRECT , positiveAccel :=100000 , nega tiveAc celTyp e := DIRECT , negativeAccel :=100000 , nextCommand := W H E N _ A X I S _ S Y N C H R O N I Z E D ) ;
D´ale je jiˇz moˇzn´e prov´est potˇrebn´ y pohyb rotaˇcn´ı osou, napˇr´ıklad o 200 stupˇ n˚ u (ot´aˇcek motoru) vpˇred (positive) rychlost´ı 5000 ot´aˇcek motoru za minutu, pˇriˇcemˇz synchronizace jiˇz prob´ıh´a zcela automaticky. Pokud je zvolena pˇri nastaven´ı synchronizace i pˇri samotn´em otoˇcen´ı stejn´a akcelerace, budou oba pohyby synchronizov´any jiˇz od zaˇc´atku pohybu. retDINT := _pos ( axis := _to.Axis_1_Rotation , direction := POSITIVE , positioningMode := RELATIVE , position :=200 , velocityType := DIRECT , velocity :=5000 , posi tiveAc celTyp e := DIRECT , positiveAccel :=100000 , nega tiveAc celTyp e := DIRECT , negativeAccel :=100000 , nextCommand := WHEN_MOTION_DONE ) ;
Po dokonˇcen´ı pohybu je moˇzn´e v pˇr´ıpadˇe potˇreby vypnout synchronizaci mezi osami n´asleduj´ıc´ım pˇr´ıkazem. retDINT := _ d i s a b l e V e l o c i t y G e a r i n g ( followingObject := _ t o . A x i s _ 1 _ T r a n s l a t i o n _ S Y N C H R O N O U S _ O P E R A T I O N , nextCommand := WHEN_MOTION_DONE ) ;
Syst´em nav´ıc umoˇzn ˇuje, aby kter´akoli osa byla nakonfigurov´ana jako sleduj´ıc´ı a z´aroveˇ n mohla b´ yt jeˇstˇe ˇr´ızena jin´ ym programem. V tomto pˇr´ıpadˇe se oba pohyby superponuj´ı do jednoho v´ ysledn´eho. To umoˇzn ˇuje splnit poˇzadavky 3. pˇr´ıpadu, kdy bude translaˇcn´ı osa jednak nastavena pro sledov´an´ı pohybu rotaˇcn´ı osy a jednak s n´ı bude programem samostatnˇe pohybov´ano. V´ ysledkem bude konstantn´ı rychlost jej´ıho pohybu nez´avisle na pohybu rotaˇcn´ı osy. Konkr´etn´ı k´od pro tento u ´ˇcel je t´emˇeˇr identick´ y s pˇredchoz´ım 22
uveden´ ym pro pˇr´ıpad 2, pouze pokud je potˇreba pohybovat v´ıce motory z´aroveˇ n, je nutn´e u vˇsech pˇr´ıkaz˚ u pro pohyb kromˇe posledn´ıho nastavit nextCommand := AT_MOTION_START .
Tento parametr zajist´ı, ˇze po zapnut´ı pohybu bude program pokraˇcovat na n´asleduj´ıc´ı pˇr´ıkaz, d´ıky ˇcemuˇz je moˇzn´e spustit v´ıce pohyb˚ u t´emˇeˇr souˇcasnˇe (se zpoˇzdˇen´ım rovnaj´ıc´ım se dobˇe zpracov´an´ı instrukce).
5.5
Inicializace os
Vzhledem k tomu, ˇze pouˇzit´e senzory aktu´aln´ı polohy motor˚ u jsou relativn´ı, po zapnut´ı ˇr´ıdic´ıho syst´emu, nebo po jeho zotaven´ı z chyby nen´ı v programu informace o aktu´aln´ı poloze osy. Proto je nutn´e prov´est inicializaci osy, a to jak pro horizont´aln´ı, tak i pro rotaˇcn´ı pohyb. Inicializace prob´ıh´a ve dvou kroc´ıch, nejprve je osa inicializov´ana horizont´alnˇe. Je nastaven pomal´ y posun smˇerem k okraji stolu (40 mm/s). Detekce dosaˇzen´ı tohoto okraje je realizov´ana sledov´an´ım momentu motoru. Pˇri jeho zv´ yˇsen´ı je pohyb zastaven a aktu´aln´ı pozice je nastavena jako nulov´ y bod osy pro horizont´aln´ı pohyb. Tento proces demonstruje n´asleduj´ıc´ı u ´sek k´odu (kompletn´ı komentovan´ y zdrojov´ y k´od je na pˇriloˇzen´em CD). Nejprve je tedy iniciov´an posun osy k prav´emu okraji stolu (pˇri pohledu od vlastn´ı br´any, positive) rychlost´ı 40 mm/s. Program pokraˇcuje d´ale v okamˇziku zpracov´an´ı pˇr´ıkazu (viz kapitola 5.4). retDINT := _move ( axis := _to.Axis_1_Translation , direction := POSITIVE , velocityType := DIRECT , velocity :=40 , nextCommand := AT_MOTION_START ) ;
N´asleduje zapnut´ı sledov´an´ı momentu motoru pro translaˇcn´ı pohyb s limitn´ı hodnotou momentu 30 Nm. Program bude pokraˇcovat aˇz ve chv´ıli, kdy bude dosaˇzeno t´eto limitn´ı hodnoty, tedy aˇz osa naraz´ı na okraj stolu. retDINT := _ e n a b l e T o r q u e L i m i t i n g ( axis := _to.Axis_1_Translation , torqueLimit :=30 , torqueLimitType := USER_DEFAULT , torqueLimitUnit := TORQUE , nextCommand := W H E N _ T O R Q U E L I M I T _ R E A C H E D ) ;
Po dosaˇzen´ı limitu momentu je zastaven pohyb osy bez generov´an´ı chyby (stopMode). Program bude pokraˇcovat po u ´spˇeˇsn´em z´apisu informace o zastaven´ı do z´asobn´ıku diagnostick´ ych zpr´av. 23
retDINT := _stop ( axis := _to.Axis_1_Translation , stopMode := STOP_WITHOUT_ABORT , nextCommand := WHEN _BUFFE R_READ Y ) ;
N´asleduje nastaven´ı nulov´eho bodu translaˇcn´ıho pohybu osy na aktu´aln´ı pozici (homePosition). Program pokraˇcuje po u ´spˇeˇsn´em proveden´ı pˇr´ıkazu. retDINT := _homing ( axis := _to.Axis_1_Translation , homingMode := DIRECT_HOMING , homePositionType := DIRECT , homePosition :=0 , nextCommand := WHEN_AXIS_HOMED ) ;
N´asleduje pˇresun hr´aˇc˚ u doprostˇred hrac´ı plochy, tedy o zhruba 185 mm. V t´eto pozici je hr´aˇci pomalu rotov´ano (∼10◦ /s) a pomoc´ı kamery prob´ıh´a vyhled´av´an´ı vhodn´e pozice. Pro tento u ´ˇcel je v kameˇre implementov´ana speci´aln´ı u ´loha, kter´a je mimo proces inicializace vypnut´a (v´ıce v pˇr´ısluˇsn´e pˇr´ıloze). Po detekci vhodn´e pozice (hr´aˇci jsou t´emˇeˇr svisle dol˚ u, ale m´ırnˇe vych´ yleni smˇerem k vlastn´ı br´anˇe) je rotaˇcn´ı pohyb zastaven. T´ım je dokonˇcen proces inicializace obou motor˚ u. Cel´ y v´ yˇse popsan´ y proces shrnuje v´ yvojov´ y diagram na obr. 10.
Start inicializace
Pomalý posun osy vpravo
Pomalá rotace vpřed Osa rotace ve správné poloze
Překročen limit momentu motoru Ano
Ne
Ne
Ano Nastavení nulové polohy rotační osy
Zastavení posunu vpravo
Nastavení nulové polohy translační osy
Konec inicializace
Přesun na střed
Obr´azek 10: V´ yvojov´ y diagram inicializace osy
24
5.6
M´ ody ˇ r´ıdic´ıho syst´ emu
Bˇehem hry doch´az´ı k r˚ uzn´ ym situac´ım, kter´e je tˇreba spr´avnˇe vyhodnotit a na jejich z´akladˇe zvolit optim´aln´ı strategii (m´od osy). Stavy, kter´e mohou nastat, mapuje n´aˇcrtek na obr. 11.
[vxball, vyball] [xball, yball]
y
xaxis r
x
Obr´azek 11: Sektory hˇriˇstˇe vzhledem k ose Pokud je m´ıˇc detekov´an v oranˇzov´em sektoru, tedy za osou smˇerem k vlastn´ı br´anˇe tak, ˇze plat´ı xball > xaxis ,
(7)
nen´ı potˇreba prov´adˇet ˇza´dnou akci, pouze pokud je osa mimo svou v´ ychoz´ı polohu, je do n´ı pˇresunuta. Je tedy zvolen m´od [1] n´ avrat do v´ ychoz´ı pozice. To zajist´ı jednak vˇzdy stejn´e podm´ınky pro pˇr´ıpadnou stˇrelbu z jin´e osy zpoza t´eto, a jednak je v´ ychoz´ı pozice optim´aln´ı vhledem k moˇzn´ ym dalˇs´ım z´asah˚ um proti akc´ım soupeˇre. Pokud je m´ıˇc detekov´an v ˇcerven´em sektoru, neboli xball ≤ xaxis ,
(8)
z´avis´ı d´ale v´ ysledn´ y zvolen´ y m´od na rychlosti, jakou se m´ıˇc pohybuje. Pokud je jeho pohyb ve smˇeru k ose, tedy ohroˇzuje br´anu, a m´a dostateˇcnou rychlost (je nutn´e vylouˇcit chyby vznikl´e otˇresy kamery a mal´ ymi v´ ychylkami na v´ ystupu algoritmu hledaj´ıc´ıho m´ıˇc), tedy vxball > vd ,
(9)
kde vd > 0 je pr´ah rychlosti v ose x, je zvolen m´od [2] zachycen´ı m´ıˇ ce, jehoˇz c´ılem je zastavit pohyb m´ıˇce ve smˇeru ohroˇzuj´ıc´ım br´anu.
25
Naopak, pokud je pohyb ve smˇeru od osy, m´ıˇc se neh´ ybe, nebo se smˇerem k ose pohybuje jen pomalu, a z´aroveˇ n je v dosahu hr´aˇc˚ u na ose (zelen´y sektor), tedy ||vxball || < va ∧ xball > xaxis − r,
(10)
je zvolen m´od [3] u ´ tok na br´ anu, jehoˇz c´ılem je um´ıstit m´ıˇc do br´any soupeˇre. V pˇr´ıpadˇe, ˇze nen´ı po delˇs´ı dobu (nˇekolik sekund) provedena ˇza´dn´a akce, je osa vr´acena tak´e do v´ ychoz´ı pozice, napˇr´ıklad v pˇr´ıpadˇe, ˇze m´ıˇc stoj´ı, nebo po um´ıstˇen´ı m´ıˇce do br´any a ˇcek´an´ı na nov´ y m´ıˇc. V´ yvojov´ y diagram, shrnuj´ıc´ı v´ yˇse uveden´ y algoritmus, je na obr. 12. Volba módu
xball ≤ xaxis
vxball > vd Ne
Ano
||vball|| < va &
Xball > xaxis - r
Ne
Přetečení časovače
Ano
[2] Zachycení míče
[3] Útok na bránu
Start/nulování časovače
Start/nulování Nulování časovače
Ano
Ne
[0] Žádná akce
[1] Návrat do výchozí pozice
Obr´azek 12: V´ yvojov´ y diagram volby m´odu osy
5.6.1
M´ od zachycen´ı m´ıˇ ce
Jak bylo pops´ano v´ yˇse, v tomto m´odu je c´ılem zamezit pohybu m´ıˇce smˇerem k vlastn´ı br´anˇe, tedy nastavit osu do polohy, ve kter´e bude jeden z hr´aˇc˚ u t´eto osy na trajektorii pohybuj´ıc´ıho se m´ıˇce. Situaci popisuje obr. 13.
26
[vxball, vyball] [xball, yball]
y
[xaxisl, yaxis]
xaxis
x
Obr´azek 13: Situace v pˇr´ıpadˇe zachycen´ı m´ıˇce smˇeˇruj´ıc´ıho pˇr´ımo k ose Na z´akladˇe dvou po sobˇe n´asleduj´ıc´ıch u ´daj˚ u o poloze m´ıˇce je urˇcen smˇer jeho pohybu, reprezentovan´ y vektorem
vball = [vxball , vyball ] = [xball (k) − xball (k − 1), yball (k) − yball (k − 1)],
(11)
kde k je diskr´etn´ı ˇcasov´ y krok odpov´ıdaj´ıc´ı aktualizaci u ´daj˚ u o poloze m´ıˇce. D´ale je potˇreba z´ıskat pr˚ useˇc´ık pˇr´ımky reprezentuj´ıc´ı budouc´ı trajektorii m´ıˇce a pˇr´ımky reprezentuj´ıc´ı osu. Obecn´a rovnice pˇr´ımky m´a tvar
ax + by + c = 0,
(12)
pˇriˇcemˇz konstanty a a b jsou urˇceny norm´alov´ ym vektorem, kter´ y lze ve dvoudimenzion´aln´ım prostoru snadno z´ıskat z vektoru vball vypoˇcten´eho pomoc´ı (11) prohozen´ım souˇradnic a zmˇeny znam´enka u jedn´e z nich, tedy napˇr´ıklad
a = −vyball ,
b = vxball .
(13)
Zb´ yv´a dopoˇc´ıtat konstantu c dosazen´ım bodu, kter´ ym pˇr´ımka proch´az´ı, lze tedy pouˇz´ıt napˇr´ıklad posledn´ı zn´amou pozici m´ıˇce, dost´av´ame
c = −axball (k) − byball (k).
(14)
Mnoˇzina bod˚ u, vyhovuj´ıc´ıch obecn´e rovnici pˇr´ımky (12), je mnoˇzinou vˇsech bod˚ u, kterou tato pˇr´ımka proch´az´ı. Vzhledem k tomu, ˇze osa s hr´aˇci je rovnobˇeˇzn´a s osou y syst´emu souˇradnic, jej´ı pr˚ useˇc´ık s vypoˇctenou pˇr´ımkou ve tvaru (12), a tedy bod, do kter´eho je potˇreba nastavit hr´aˇce aby doˇslo k zamezen´ı pohybu, z´ısk´ame prost´ ym dosazen´ım souˇradnice x = xaxis do rovnice pˇr´ımky, tedy 27
yaxis =
axaxis + c vxball yball + vyball (xaxis − xball ) =− . b vxball
(15)
Pomoc´ı vztahu (17) lze tedy snadno z´ıskat referenˇcn´ı bod na pˇr´ımce reprezentuj´ıc´ı osu, do kter´eho je tˇreba um´ıstit hr´aˇce tak, aby byl zastaven pohyb m´ıˇcku v neˇz´adouc´ım smˇeru. V´ ysledkem m˚ uˇze b´ yt tak´e bod, do kter´eho osu nelze nastavit, pˇredevˇs´ım v pˇr´ıpadˇe pohybu ve smˇeru osy y takov´ y bod v˚ ubec neexistuje, nebo pˇri pohybu t´emˇeˇr rovnobˇeˇzn´em s osou y, kdy je takov´ y bod mimo hˇriˇstˇe, to jsou ale situace, kter´e nejsou u ´tokem na br´anu, tedy postaˇc´ı pouze oˇsetˇrit v´ ypoˇcetn´ı algoritmy tak, aby nedoch´azelo k chybˇe a neprov´adˇet ˇza´dnou akci.
Ke komplikaci m˚ uˇze doj´ıt v pˇr´ıpadˇe, ˇze se soupeˇr pokus´ı pˇrekonat obranu pomoc´ı odrazu od stˇeny hˇriˇstˇe. Tuto situaci popisuje obr. 14.
[xaxisl, yaxis]
y
[xball, yball] [vxball, vyball] xaxis
x
Obr´azek 14: Situace v pˇr´ıpadˇe zachycen´ı m´ıˇce smˇeˇruj´ıc´ıho k ose odrazem Takovou situaci je tˇreba detekovat, vypoˇcten´ y vektor vball je otestov´an, zda nesmˇeˇruje k nˇekter´emu z okraj˚ u hˇriˇstˇe, pokud tomu tak je, je tˇreba aplikovat z´akon o u ´hlu dopadu a odrazu, v tomto pˇr´ıpadˇe postaˇc´ı zmˇenit znam´enko souˇradnice podle toho, zda se jedn´a o odraz od stˇeny rovnobˇeˇzn´e s x nebo y osou souˇradn´eho syst´emu, viz obr. 15 a um´ıstit tento nov´ y vektor do m´ısta dopadu urˇcen´eho podobn´ ym zp˚ usobem jako v pˇr´ıpadˇe v´ ypoˇctu pr˚ useˇc´ıku s osou s hr´aˇci ve vztahu (17), kde je m´ısto x = xaxis dosazena pˇr´ısluˇsn´a pˇr´ımka reprezentuj´ıc´ı okraj hˇriˇstˇe.
Na tomto m´ıstˇe je vhodn´e zm´ınit fakt, ˇze okraje hˇriˇstˇe nejsou vodorovn´e, ale jsou osazeny naklonˇen´ ymi plochami (n´aklon v jednotk´ach stupˇ n˚ u), kter´e maj´ı za u ´kol vracet m´ıˇc do hry v pˇr´ıpadˇe, ˇze se dostane ke stˇenˇe. Tyto plochy jsou sch´ematicky zn´azornˇeny 28
y [vxball, vyball] -> [-vxball, vyball]
[vxball, vyball] -> [vxball, -vyball]
x
´ Obr´azek 15: Uhel dopadu a odrazu ve dvoudimenzion´aln´ı vektorov´e reprezentaci na obr. 11. N´aklon roviny ovˇsem vn´aˇs´ı jistou nepˇresnost do v´ ypoˇctu u ´hlu odrazu dle obr. 15. Experiment´alnˇe ale bylo ovˇeˇreno, ˇze v pˇr´ıpadˇe vysok´ ych rychlost´ı m´ıˇcku je chyba zp˚ usoben´a tˇemito naklonˇen´ ymi plochami srovnateln´a s chybou vyhodnocen´ı pozice m´ıˇcku, a v pˇr´ıpadˇe n´ızk´ ych rychlost´ı je dostatek ˇcasu pro n´aslednou korekci vypoˇcten´e trajektorie. Tedy vzhledem k nutnosti co moˇzn´a nejrychlejˇs´ıho algoritmu vyhodnocen´ı situace a v´ ypoˇctu odpov´ıdaj´ıc´ıho z´asahu je tento fakt zanedb´an. 5.6.2
´ cn´ Utoˇ y m´ od
´ cn´ Utoˇ y m´od je zvolen, pokud je m´ıˇc detekov´an v dosahu hr´aˇc˚ u osy a pokud se pohybuje dostateˇcnˇe pomalu na to, aby mohl b´ yt efektivnˇe odehr´an (zhruba do 20 mm.s−1 , tento u ´daj z´avis´ı pˇredevˇs´ım na rychlosti kamery). C´ılem je tedy odehr´at m´ıˇc smˇerem k soupeˇrovˇe br´anˇe. Nav´ıc je v´ yhodn´e, aby syst´em dok´azal m´ıˇc odehr´at nejen pouze dopˇredu, ale v poˇzadovan´em smˇeru nebo do poˇzadovan´eho m´ısta. To m˚ uˇze b´ yt d´ale vyuˇzito pˇredevˇs´ım po anal´ yze rozestaven´ı soupeˇrov´ ych hr´aˇc˚ u a nalezen´ı vhodn´e trajektorie pro um´ıstˇen´ı m´ıˇce do br´any, kde jiˇz nestaˇc´ı m´ıˇc pouze odehr´at dopˇredu ale je tˇreba s m´ıˇcem pracovat l´epe. Nejprve je tedy tˇreba analyzovat dostupn´e moˇznosti. Existuj´ı dvˇe moˇznosti, jak m´ıˇc hr´aˇcem odehr´at jin´ ym smˇerem, neˇz pˇr´ımo kupˇredu. Prvn´ı moˇznost´ı je trefit m´ıˇc jinak neˇz prostˇredkem hr´aˇce. Plocha na hr´aˇci, kter´a pˇri v´ ykopu pˇrich´az´ı do kontaktu s m´ıˇcem, nen´ı rovn´a, ale je prohnut´a smˇerem dovnitˇr. Situaci popisuje obr. 16.
29
α
d
-d
0
+d
Obr´azek 16: Vliv tvaru hr´aˇce na smˇer v´ ykopu m´ıˇce Prohnut´ y tvar nohy“ hr´aˇce usnadˇ nuje lidsk´emu hr´aˇci v´ ykop, protoˇze i pˇresto, ˇze se ” mu nepodaˇr´ı m´ıˇc trefit pˇresnˇe, tedy vznikne posun d mezi osou hr´aˇce a osou m´ıˇce, m´ıˇc let´ı dopˇredu. Z d˚ uvodu potˇreby podrobnˇejˇs´ı anal´ yzy bylo provedeno mˇeˇren´ı, jehoˇz v´ ysledek je na obr. 17, graf popisuje zmˇeˇrenou z´avislost u ´hlu α odehran´eho m´ıˇce posunu d. 40 30 20
α [°]
10 0 −10 −20 −30 −40 −20
−15
−10
−5
0 d [mm]
5
10
15
20
Obr´azek 17: Z´avislost u ´hlu v´ ykopu na pozici m´ıˇce vzhledem k hr´aˇci Jak je vidˇet, v rozsahu zhruba ± 1 cm posunu je smˇer v´ ykopu st´ale pˇr´ımo vpˇred, tedy s nulov´ ym u ´hlem. Po pˇrekroˇcen´ı t´eto hranice se charakteristika zaˇc´ın´a ostˇre l´amat a konˇc´ı zhruba na ± 2 cm, za touto hranic´ı se jiˇz m´ıˇc s hr´aˇcem m´ıj´ı. Zmˇeˇren´a charakteristika tedy nen´ı line´arn´ı. Hr´aˇci jsou nav´ıc plastov´ı, bˇehem hry se opotˇrebov´avaj´ı, charakteristika se proto liˇs´ı i pro jednotliv´e hr´aˇce. Z toho d˚ uvodu nen´ı metoda vhodn´a pro pˇresn´e odehr´an´ı m´ıˇce. Pˇri experimentech se podaˇrilo spolehlivˇe um´ıstit m´ıˇc na vzd´alenost poloviny hˇriˇstˇe (60 cm) do prostoru o ˇs´ıˇrce 10 cm, vyˇsˇs´ı pˇresnosti se nepodaˇrilo dos´ahnout.
30
Druhou moˇznost´ı, jak odehr´at m´ıˇc poˇzadovan´ ym smˇerem, je nahr´avka jin´emu hr´aˇci na stejn´e ose a teprve pot´e v´ ykop. Jde o profesion´aln´ımi hr´aˇci ˇcasto pouˇz´ıvanou techniku. Graficky je tato technika zn´azornˇena na obr. 18.
A
B
Obr´azek 18: Vliv tvaru hr´aˇce na smˇer v´ ykopu m´ıˇce V pˇr´ıpadˇe osy s v´ıce hr´aˇci (vˇsechny kromˇe osy brank´aˇre) postaˇc´ı jedn´ım hr´aˇcem m´ıˇc postrˇcit smˇerem ke druh´emu, kter´ y na poˇzadovan´e pozici (podle m´ısta, do kter´eho m´a b´ yt m´ıˇc um´ıstˇen) provede v´ ykop m´ıˇce. V pˇr´ıpadˇe osy brank´aˇre, nebo nutnosti odehr´at m´ıˇc na m´ıstˇe, na kter´e nelze nahr´at jin´emu hr´aˇci na stejn´e ose, je nutn´e prov´est nahr´avku i samotn´ y v´ ykop stejn´ ym hr´aˇcem, coˇz je moˇzn´e, ale pomalejˇs´ı. Detekce spr´avn´e pozice pro odpal je zajiˇstˇena pr˚ ubˇeˇzn´ ym vyhodnocov´an´ım polohy m´ıˇce. Pr˚ ubˇeh tohoto zp˚ usobu odehr´an´ı m´ıˇce pro osy se dvˇema hr´aˇci je vyj´adˇren pomoc´ı v´ yvojov´eho diagramu na obr. 20. Odehr´an´ı m´ıˇce touto metodou je mnohem pˇresnˇejˇs´ı neˇz v pˇr´ıpadˇe odehr´an´ı za pomoci zmˇeny u ´hlu v´ ykopu, dosahuje pˇresnosti nˇekolika cm. Pˇresnost nahr´avky pod´el osy je v tomto pˇr´ıpadnˇe pro spr´avn´ y v´ ykop kl´ıˇcov´a. Vzhledem k tomu, ˇze noha“ hr´aˇce je z boku velmi u ´zk´a, smˇer boˇcn´ı pˇrihr´avky silnˇe z´avis´ı ” na vz´ajemn´e poloze m´ıˇce a hr´aˇce. Z toho d˚ uvodu je nutn´e urˇcit u ´hel natoˇcen´ı hr´aˇce β v z´avislosti na vzd´alenosti m´ıˇce od osy. Situaci popisuje n´aˇcrtek na obr. 19.
l
β
X
Obr´azek 19: Situace pˇri nahr´avce bokem hr´aˇci na stejn´e ose
31
V´ ysledn´ yu ´hel natoˇcen´ı je urˇcen jako β = sin
−1
x l
= sin
−1
xaxis − xball l
,
(16)
kde l je d´elka hr´aˇce od stˇredu osy ke stˇredu jeho nohy“ a x je vzd´alenost m´ıˇce od osy ” s hr´aˇci, viz obr. 19. V´ yˇse pˇredstaven´e metody odpalu je vhodn´e kombinovat. Pro u ´tok na br´anu je vhodnˇejˇs´ı druh´a metoda pomoc´ı nahr´avky vlastn´ımu hr´aˇci, protoˇze je pˇresnˇejˇs´ı. Proti t´eto metodˇe je ale pro soupeˇre snazˇs´ı prov´est odpov´ıdaj´ıc´ı protiakci (jednoduch´ ym sledov´an´ım pozice y m´ıˇce vlastn´ım hr´aˇcem), proto je vhodn´e pro pˇrekon´an´ı soupeˇrov´ ych obr´anc˚ u pouˇz´ıt prvn´ı metodu zaloˇzenou na zmˇenˇe u ´hlu v´ ykopu, kdy je pro protihr´aˇce tˇeˇzˇs´ı odehran´ y m´ıˇc zachytit.
Výkop s nahrávkou
Přemístění hráče A k míči
Postrčení míče podél osy směrem k místu výkopu
Přesun hráče B k místu výkopu
Ne Míč na místě výkopu
Ano Uplynul čas
Ne
Výkop míče
Ano
Úspěšný výkop
Přerušení akce
Obr´azek 20: V´ yvojov´ y diagram pr˚ ubˇehu v´ ykopu s nahr´avkou
32
6
Detekce pohybu m´ıˇ ce a hr´ aˇ c˚ u
Aˇz doposud se pr´ace zab´ yvala t´ım, jak interagovat s pohybuj´ıc´ım se m´ıˇcem, jak ho zastavit a odehr´at co moˇzn´e nejl´epe. To ovˇsem vyˇzaduje znalost jeho polohy. Proto se problematikou detekce polohy m´ıˇce na hrac´ı ploˇse zab´ yvaj´ı n´asleduj´ıc´ı kapitoly.
6.1
Moˇ zn´ e pˇ r´ıstupy
Existuje mnoho moˇznost´ı, jak sn´ımat polohu kulat´eho objektu na omezen´e hrac´ı ploˇse, n´asleduje kr´atk´ y v´ yˇcet nˇekter´ ych metod. 1. Detekce pomoc´ı optick´e s´ıtˇe dostateˇcnˇe n´ızko nad povrchem tak, aby hr´aˇci na os´ach nepˇredstavovaly pro paprsky pˇrek´aˇzku. 2. Vyhodnocen´ı pozice pomoc´ı rezistivn´ıho panelu na hrac´ı ploˇse, podobn´eho jako u starˇs´ıch mobiln´ıch telefon˚ u. 3. Detekce pomoc´ı s´ıtˇe indukˇcn´ıch prvk˚ u um´ıstˇen´ ych tˇesnˇe pod hrac´ı plochou, vyˇzaduje speci´aln´ı m´ıˇcek s j´adrem z feromagnetick´eho materi´alu. 4. Vyhodnocen´ı za pouˇzit´ı kamery a n´asledn´e detekce m´ıˇce v z´ıskan´em obraze pomoc´ı vhodn´ ych algoritm˚ u. Prvn´ı tˇri uveden´e moˇznosti vyˇzaduj´ı jednak velk´ y z´asah do konstrukce stolu (instalace ˇcidel) a jednak neumoˇzn ˇuj´ı z´aroveˇ n detekovat pozici hr´aˇc˚ u na hˇriˇsti. Naopak jejich v´ yhodou je jednoduchost zpracov´an´ı informac´ı, kter´e poskytuj´ı (pˇredevˇs´ım 1 a 2) a d´ıky tomu rychlost. Naopak vyhodnocen´ı pomoc´ı kamery je instalaˇcnˇe m´enˇe n´aroˇcn´e (obvykle instalujeme pouze samotnou kameru a osvˇetlen´ı), ale vyhodnocovac´ı algoritmy jsou v´ ypoˇcetnˇe n´aroˇcnˇejˇs´ı, tedy pro dosaˇzen´ı n´ızk´e odezvy je nutn´e disponovat v´ ykonn´ ym procesorem a rychl´ ym, optimalizovan´ ym algoritmem. Vzhledem k potˇrebˇe sledovat pozici hr´aˇc˚ u, napˇr´ıklad bˇehem hry nebo pˇri inicializaci, je pro nalezen´ı m´ıˇcku na hrac´ı ploˇse pouˇzita pr´avˇe kamera. Cel´ y proces od z´ısk´an´ı sn´ımku aˇz po pˇrenos zmˇeˇren´e pozice do ˇr´ıdic´ıho syst´emu je zn´azornˇen na obr. 21. Získání snímku z kamery
Vyhodnocení pozice míče / hráčů
Transfer výsledků do řídicího systému
Obr´azek 21: Proces zpracov´an´ı obrazu Nejd˚ uleˇzitˇejˇs´ımi poˇzadavky na syst´em vyhodnocen´ı pozice m´ıˇce je spolehlivost a rychlost. Pokud m´ıˇc na hrac´ı ploˇse je, mus´ı tak´e b´ yt detekov´an a mus´ı b´ yt spr´avnˇe urˇcena 33
jeho pozice, nav´ıc nesm´ı doch´azet k tomu, aby vyhodnocovac´ı algoritmus mylnˇe povaˇzoval za m´ıˇc napˇr´ıklad hlavu nˇekter´eho z hr´aˇc˚ u na ose nebo kresbu na hrac´ı ploˇse. To vˇse mus´ı prob´ıhat velmi rychle, ˇra´dovˇe v nˇekolika m´alo des´ıtk´ach milisekund. Vzhledem k tomu, ˇze pouˇzit´ y ˇr´ıdic´ı syst´em nedisponuje dostateˇcn´ ym v´ ypoˇcetn´ım v´ ykonem pro zpracov´an´ı obrazu a pouˇzit´e komunikaˇcn´ı kan´aly nedisponuj´ı dostateˇcnou kapacitou pro rychl´ y pˇrenos, je nutn´e pouˇz´ıt vyhodnocen´ı v nˇejak´em extern´ım zaˇr´ızen´ı a do ˇr´ıdic´ıho syst´emu pˇren´aˇset pouze v´ ysledky. Nab´ız´ı se dvˇe ˇreˇsen´ı. 1. Pouˇzit´ı rychl´e kamery a extern´ıho poˇc´ıtaˇce s komunikaˇcn´ımi kartami pro z´ısk´an´ı dat z kamery (napˇr´ıklad pomoc´ı protokolu Camera Link) a komunikaci po s´ıti PROFINET. Sch´ematick´e zn´azornˇen´ı takov´eho ˇreˇsen´ı je na obr. 22.
Získání snímku z kamery
Transfer obrazových dat
Vyhodnocení pozice míče / hráčů
Transfer výsledků do řídicího systému
Rychlá kamera
Camera Link
PC
PROFINET IO
Řídicí systém Simotion D435
Obr´azek 22: Proces zpracov´an´ı obrazu pˇri pouˇzit´ı extern´ıho poˇc´ıtaˇce 2. Pouˇzit´ı vhodn´e pr˚ umyslov´e inteligentn´ı kamery, tedy kamery, kter´a disponuje moˇznost´ı zpracovat obraz, s komunikaˇcn´ım rozhran´ım PROFINET. Sch´ematick´e zn´azornˇen´ı tohoto ˇreˇsen´ı je na obr. 23.
Získání snímku z kamery
Vyhodnocení pozice míče / hráčů
Transfer výsledků do řídicího systému
Inteligentní průmyslová kamera
Řídicí systém Simotion D435
PROFINET IO
Obr´azek 23: Proces zpracov´an´ı obrazu pˇri pouˇzit´ı inteligentn´ı pr˚ umyslov´e kamery
ˇ sen´ı za pouˇzit´ı rychl´e kamery nespornˇe pˇrin´aˇs´ı flexibilitu ˇreˇsen´ı, kterou pr˚ Reˇ umyslov´e inteligentn´ı kamery obvykle nenab´ızej´ı, protoˇze jejich algoritmy a jim pˇrizp˚ usoben´ y v´ ypoˇcetn´ı v´ ykon jsou omezeny na nˇekolik standardn´ıch pr˚ umyslov´ ych aplikac´ı. Naopak co se t´ yˇce rychlosti pˇrenosu dat, m´a pr˚ umyslov´a kamera nespornou v´ yhodu. Vzhledem k tomu, ˇze cel´e ˇreˇsen´ı je integrov´ano v jedin´em obvodu uvnitˇr kamery, je pˇrenos v´ ysledk˚ u do ˇr´ıd´ıc´ıho syst´emu moˇzn´e realizovat ve velmi kr´atk´em ˇcase, ˇr´adovˇe v jednotk´ach milisekund. Zde je hlavn´ı probl´em prvn´ıho ˇreˇsen´ı. Pˇren´est data z kamery do poˇc´ıtaˇce a n´aslednˇe z poˇc´ıtaˇce na s´ıt’ PROFINET a do ˇr´ıdic´ıho syst´emu za tak kr´atk´ y ˇcasov´ y interval je u ´loha pˇresahuj´ıc´ı 34
zejm´ena ˇcasov´ y r´amec t´eto pr´ace. Proto bylo po t´eto anal´ yze pˇristoupeno k pouˇzit´ı inteligentn´ı pr˚ umyslov´e kamery.
6.2
Barvy a svˇ eteln´ e podm´ınky
Bez ohledu na zvolenou metodu zpracov´an´ı obrazu mus´ı spolehliv´ y a pouˇziteln´ y algoritmus splˇ novat dvˇe podm´ınky, 1. spolehliv´e rozpozn´an´ı hledan´eho objektu 2. dostateˇcnˇe rychlou odezvu na dan´e platformˇe. Prvn´ım krokem ke splnˇen´ı tˇechto podm´ınek je u ´prava sn´ıman´e scen´erie. Pokud se podaˇr´ı zajistit, ˇze se na hrac´ı ploˇse bude vyskytovat vˇzdy pouze jeden m´ıˇc (to je d´ano pravidly hry) a ˇze se na t´eto sn´ıman´e hrac´ı ploˇse nebudou vyskytovat objekty tvarem nebo barvou jemu podobn´e, je moˇzn´e sn´ıˇzit v´ ypoˇcetn´ı n´aroˇcnost pouˇzit´ ych algoritm˚ u, respektive pouˇz´ıt jin´e, m´enˇe sloˇzit´e. Nab´ız´ı se nˇekolik moˇznost´ı, jak zv´ yˇsit unik´atnost sledovan´eho objektu. Konkr´etnˇe v naˇsem pˇr´ıpadˇe sledujeme m´ıˇcek urˇcit´e barvy (d´ale) na zelen´e hrac´ı ploˇse, kter´a obsahuje b´ıl´e okraje a b´ıl´e dˇel´ıc´ı ˇc´ary, viz obr. 24.
Obr´azek 24: Uspoˇra´d´an´ı a barvy hrac´ı plochy Z toho d˚ uvodu byla postupnˇe pˇrijata n´asleduj´ıc´ı opatˇren´ı: 1. Osv´ıcen´ı hrac´ı plochy pomoc´ı celkem pˇeti LED p´ask˚ u o celkov´em v´ ykonu necel´ ych 60W, ˇctyˇri po stran´ach hˇriˇstˇe (z nichˇz dva na kratˇs´ıch stran´ach byly instalov´any od v´ yrobce) a jeden nad hˇriˇstˇe. T´ımto kokem byla zajiˇstˇena st´alost expozice nez´avisle na okoln´ım osvˇetlen´ı nebo denn´ı dobˇe.
35
2. Zmˇena barvy m´ıˇcku z b´ıl´e na ˇcernou, protoˇze rozpozn´an´ı b´ıl´eho m´ıˇce by vyˇzadovalo tmav´e pozad´ı, kter´e ale nelze garantovat a nelze zajistit jeho stabilitu, naopak b´ıl´e pozad´ı lze stabilizovat pomoc´ı osvˇetlen´ı. Vzhledem k tomu, ˇze ˇcern´e m´ıˇce pro stoln´ı fotbal na trhu nejsou dostupn´e, je nutn´e je vyrobit za pouˇzit´ı korkov´eho m´ıˇce barven´eho ˇcern´ ym matn´ ym sprejem. Kombinac´ı korku a matn´eho spreje dojde k eliminaci neˇza´douc´ıch odlesk˚ u, d´ıky ˇcemuˇz se na v´ ysledn´em sn´ımku m´ıˇc jev´ı tmavˇs´ı (obr. 25).
Obr´azek 25: Korkov´ y m´ıˇc nabarven´ y na ˇcerno 3. Zmˇena barvy gumov´ ych zar´aˇzek na os´ach z ˇcern´e na b´ılou, d´ıky tomu m˚ uˇze b´ yt vyhodnocovac´ı algoritmus m´enˇe robustn´ı. Pˇred touto u ´pravou doch´azelo k faleˇsn´e klasifikaci tˇechto zar´aˇzek jako m´ıˇce, protoˇze byly tvarovˇe i rozmˇerovˇe podobn´e. ´ 4. Uprava expozice kamery tak, aby doˇslo k tzv. pˇrepalu“, tedy stavu, kdy je co moˇzn´a ” nejvˇetˇs´ı plocha ve sn´ıman´em obraze s hodnotou maxim´aln´ı b´ıl´e, pouze ˇcern´ y m´ıˇcek vynik´a. To opˇet sniˇzuje n´aroky na vyhodnocovac´ı algoritmus a zvyˇsuje rychlost zpracov´an´ı.
36
6.3
Inteligentn´ı kamera Cognex In-Sight 7402
Prvn´ı testovanou kamerou je kamera od firmy Cognex, kter´a se zab´ yv´a pr˚ umyslov´ ym strojov´ ym vidˇen´ım. Kamera In-Sight 7402 na obr. 26 je rychl´a inteligentn´ı kamera s ˇsirokou ˇsk´alou integrovan´ ych n´astroj˚ u, od ˇcten´ı ˇc´arov´ ych k´od˚ u, pˇres vyhled´av´an´ı objekt˚ u ve sn´ıman´em obraze, aˇz po mˇeˇric´ı funkce, napˇr´ıklad mˇeˇren´ı vzd´alenost´ı nebo u ´hl˚ u natoˇcen´ı, vˇcetnˇe integrovan´ ych transformac´ı zabraˇ nuj´ıc´ıch chybn´ ym v´ ysledk˚ um mˇeˇren´ı v d˚ usledku deformace sn´ıman´eho prostoru. Disponuje tak´e rozhran´ım pro pˇripojen´ı do s´ıtˇe PROFINET, coˇz je v tomto pˇr´ıpadˇe kl´ıˇcov´e.
Obr´azek 26: Inteligentn´ı kamera Cognex In-Sight 7402
Kameru je tedy moˇzn´e pomoc´ı softwarov´eho bal´ıˇcku s n´azvem In-Sight Explorer nakonfigurovat pro hled´an´ı m´ıˇce na hrac´ı ploˇse, pˇr´ıpadnˇe pro mˇeˇren´ı polohy jednotliv´ ych os a hr´aˇc˚ u, at’ uˇz bˇehem procesu inicializace vlastn´ıch os, nebo bˇehem hry pro vyhodnocov´an´ı pohyb˚ u soupeˇre. Pˇrehled vybran´ ych parametr˚ u t´eto kamery je v tabulce 4. Rozliˇsen´ı a typ ˇcipu
1280 x 1024 px CMOS
Sn´ımkovac´ı frekvence (bez algoritm˚ u)
60 FPS
Rozmˇery
75 x 55 x 47 mm
Optika
C-mount Tamron 8mm
Konektivita
PROFINET IO (konektor M12)
Tˇr´ıda ochrany
IP 67
Nap´ajen´ı
24 V
Tabulka 4: Vybran´e parametry kamery Cognex In-Sight 7402
Spolu s kamerou je pouˇzit objektiv Tamron 8mm s manu´aln´ım ostˇren´ım a nastavitelnou clonou v rozsahu 1,4 - 16. 37
6.3.1
Maximalizace rychlosti kamery
Vzhledem k tomu, ˇze kamera je prim´arnˇe urˇcen´a pro sledov´an´ı pomalejˇs´ıch proces˚ u, neˇz je pohyb m´ıˇce, kter´ y se m˚ uˇze pohybovat aˇz rychlost´ı 15,5 m.s−1 , je nutn´e vyuˇz´ıt vˇsech dostupn´ ych moˇznost´ı pro sn´ıˇzen´ı v´ ypoˇcetn´ı n´aroˇcnosti pouˇzit´ ych algoritm˚ u tak, aby bylo moˇzn´e vyhodnocovat pozici m´ıˇce na hrac´ı ploˇse v co moˇzn´a nejkratˇs´ıch ˇcasov´ ych intervalech. Celkov´a doba zpracov´an´ı sn´ımku je v´ ysledkem doby z´ısk´an´ı sn´ımku, kter´a je dle v´ yrobce rovna necel´ ym 17 ms (60 FPS) a nelze ji ovlivnit, a dobou bˇehu vyhodnocovac´ıho algoritmu. Pr´avˇe dobu bˇehu algoritmu lze v´ yraznˇe ovlivnit, jednak konfigurac´ı kamery a jednak jiˇz zmiˇ novan´ ymi u ´pravami sn´ıman´e sc´eny. Pro sn´ıˇzen´ı v´ ypoˇcetn´ı n´aroˇcnosti je nutn´e prov´est n´asleduj´ıc´ı kroky: ´ 1. Uprava sn´ıman´e scen´erie, viz kapitola 6.2. D´ıky tˇemto krok˚ um m˚ uˇze b´ yt pouˇzit´ y algoritmus vyhled´av´an´ı m´enˇe robustn´ı, postaˇc´ı testovat m´enˇe podezˇrel´ ych objekt˚ u atd. 2. Pouˇzit´ı dynamick´e oblasti vyhled´av´an´ı. Na z´akladnˇe vlastnost´ı hry lze omezit oblast, na kterou je moˇzn´e omezit vyhled´av´an´ı m´ıˇce bez u ´jmy na kvalitˇe ˇr´ızen´ı. Touto problematikou se zab´ yv´a samostatn´a kapitola 6.3.2. Po tˇechto u ´prav´ach je celkov´a doba vyhodnocen´ı 24,5 ms, tedy samotn´ y algoritmus potˇrebuje ke sv´emu bˇehu necel´ ych 8 ms. Celkov´a doba vˇcetnˇe pˇrenosu po s´ıti do ˇr´ıdic´ı jednotky je 25,5 ms (1 ms trv´a cyklus s´ıtˇe). Detailn´ım postupem konfigurace kamery se zab´ yv´a zvl´aˇstn´ı pˇr´ıloha t´eto pr´ace, viz seznam pˇr´ıloh. 6.3.2
Dynamick´ a oblast vyhled´ av´ an´ı
Bˇehem hry je u ´daj o pozici m´ıˇce pouˇzit ve dvou pˇr´ıpadech. Poprv´e, kdyˇz soupeˇr u ´toˇc´ı a m´ıˇc se pohybuje smˇerem k ose vysokou rychlost´ı, a podruh´e bˇehem v´ ykopu, kdy je potˇreba zn´at pozici m´ıˇce pro spr´avn´ y v´ ykop. Sledov´an´ı m´ıˇce po v´ ykopu nen´ı prioritn´ı. Z t´eto u ´vahy zle vyvodit z´avˇer, ˇze m´ıˇc je tˇreba sledovat pˇredevˇs´ım pokud stoj´ı (pohybuje se pomalu) nebo se pohybuje smˇerem od soupeˇre. Na z´akladˇe tohoto z´avˇeru je navrˇzena oblast sledov´an´ı na obr. 27.
38
Obr´azek 27: Oblast vyhled´av´an´ı Tato oblast je po kaˇzd´e novˇe vyhodnocen´e pozici m´ıˇce dynamicky zmˇenˇena (viz obr. 9), na z´akladˇe znalosti aktu´aln´ı pozice m´ıˇce b = [xball , yball ] a vektoru jeho rychlosti vball je odhadnuta budouc´ı pozice m´ıˇce jako
bnew = b + vball ,
(17)
a okolo n´ı je um´ıstˇena nov´a oblast vyhled´av´an´ı, viz obr. 28. V pˇr´ıpadˇe, ˇze nen´ı m´ıˇc v dan´e oblasti nalezen (nebo po spuˇstˇen´ı programu), je oblast rozˇs´ıˇrena na cel´e hˇriˇstˇe.
Obr´azek 28: Dynamick´a oblast vyhled´av´an´ı Z nutnosti zmˇeny vyhled´avac´ı oblasti je tˇreba vymˇen ˇovat data mezi kamerou obˇema smˇery, nejen pˇren´aˇset zmˇeˇrenou pozici m´ıˇce z kamery do ˇr´ıdic´ıho syst´emu. Detailn´ı nastaven´ı t´eto v´ ymˇeny dat je opˇet pops´ano v pˇr´ısluˇsn´e pˇr´ıloze. 39
Z v´ yˇse uveden´eho vypl´ yv´a, ˇze doba vyhodnocen´ı polohy m´ıˇce se m˚ uˇze v´ yraznˇe mˇenit. Po vhozen´ı m´ıˇce do hˇriˇstˇe nebo po jeho vynoˇren´ı se ze z´akrytu osy je zmˇeˇren´a doba jeho nalezen´ı a pˇrenesen´ı u ´daj˚ u o jeho poloze do ˇr´ıdic´ıho syst´emu zhruba 42 ms. Naopak, pokud je jiˇz m´ıˇc nalezen a prob´ıh´a pouze jeho sledov´an´ı, je tato doba mnohem niˇzˇs´ı a ˇcin´ı uveden´ ych 25,5 ms. To m´a vliv pˇredevˇs´ım bˇehem obrann´ ych akc´ı, kdy je reakˇcn´ı doba rozhoduj´ıc´ı. Pˇri um´ıstˇen´ı kamery shora se m˚ uˇze st´at, ˇze pˇri v´ ykopu m´ıˇce soupeˇrem se bude m´ıˇc nach´azet v z´akrytu osy a reakˇcn´ı doba osy se tak prodluˇzuje na t´emˇeˇr dvojn´asobek.
Pˇri uveden´ ych dob´ach zpracov´an´ı a rozliˇsen´ı sn´ıman´eho obrazu je pˇresnost urˇcen´ı pozice m´ıˇce 2 mm v obou os´ach. Tato hodnota vych´az´ı pouze z proveden´ ych experiment˚ u, v´ yrobce kamery samozˇrejmˇe neumoˇzn ˇuje pˇr´ıstup ke zdrojov´ ym k´od˚ um algoritm˚ u v kameˇre, urˇcen´ı pˇresnosti mˇeˇren´ı pomoc´ı experimentu je tedy prakticky jedinou moˇznost´ı.
Pomoc´ı kamery je tak´e moˇzn´e vyhodnocovat pozici soupeˇrov´ ych hr´aˇc˚ u, k tomu lze snadno nakonfigurovat pˇr´ısluˇsn´e u ´lohy pˇr´ımo v kameˇre (podobnˇe jako u ´lohu pro inicializaci osy, viz pˇr´ısluˇsn´a pˇr´ıloha). Kv˚ uli u ´spoˇre v´ ypoˇcetn´ıho ˇcasu ale musej´ı b´ yt tyto u ´lohy zap´ın´any a vyp´ın´any ˇr´ıd´ıc´ım syst´emem tak, aby bˇehem obrann´ ych akc´ı, kdy je rychlost vyhodnocen´ı polohy m´ıˇce kl´ıˇcov´a, zbyteˇcnˇe neprodluˇzovaly doby potˇrebnou k jeho nalezen´ı. Mˇeˇren´ı polohy soupeˇrov´ ych hr´aˇc˚ u je potˇrebn´e pouze v pˇr´ıpadˇe u ´toku, kde je na reakci mnohem v´ıce ˇcasu neˇz v pˇr´ıpadˇe obrany. V takov´em pˇr´ıpadˇe se doba zpracov´an´ı sn´ımku prodluˇzuje zhruba na 60 ms.
6.4
Inteligentn´ı kamera Cognex In-Sight 500
Podobnˇe jako kamera In-Sight 7402, i In-Sight 500 (obr. 29) je vybavena rozhran´ım PROFINET a jedn´a se opˇet o inteligentn´ı kameru vybavenou mnoha n´astroji pro rozpozn´an´ı a sledov´an´ı objekt˚ u. Jej´ı vybran´e parametry jsou v tabulce 5.
Obr´azek 29: Inteligentn´ı kamera Cognex In-Sight 500 40
U ˇz´adn´e z pouˇzit´ ych kamer v´ yrobce neuv´ad´ı konkr´etn´ı v´ ypoˇcetn´ı s´ılu pouˇzit´ ych komponent, v´ ykon kamery lze tedy pouze odhadnout z jin´ ych uveden´ ych parametr˚ u, pˇredevˇs´ım z uveden´eho poˇctu sn´ımk˚ u za sekundu. Tato kamera by tedy mˇela poskytnout v´ yznamnˇe vyˇsˇs´ı v´ ykon i v pln´em rozliˇsen´ı, nav´ıc je moˇzn´e experimentovat s rozliˇsen´ım kamery a tento v´ ykon d´ale zvyˇsovat, ovˇsem za cenu niˇzˇs´ı pˇresnosti. 1
Rozliˇsen´ı a typ ˇcipu
1024 x 768 px CMOS
Sn´ımkovac´ı frekvence (bez algoritm˚ u)
98 FPS
Rozmˇery
80 x 80 x 60 mm
Optika
C-mount Tamron 8mm
Konektivita
PROFINET IO (konektor M12)
Tˇr´ıda ochrany
IP 65
Nap´ajen´ı
24 V PoE class 3
2
Tabulka 5: Vybran´e parametry kamery Cognex In-Sight 500
Po nastaven´ı kamera vykazuje dobu zpracov´an´ı jednoho sn´ımku 17 ms (oproti 24,5 ms v pˇredchoz´ım pˇr´ıpadˇe) pˇri pln´em rozliˇsen´ı, tedy vykazuje o zhruba 46% vyˇsˇs´ı rychlost. V pˇr´ıpadˇe tˇretinov´eho rozliˇsen´ı (320 x 240 px) kles´a potˇrebn´a doba na 13 ms. Co se t´ yˇce pˇresnosti zmˇeˇren´e pozice, v pˇr´ıpadˇe pln´eho rozliˇsen´ı je experiment´alnˇe urˇcen´a pˇresnost podobn´a jako u prvn´ı kamery (2 mm v ose x a 3 mm v ose y), v pˇr´ıpadˇe zmiˇ novan´eho tˇretinov´eho rozliˇsen´ı pˇresnost kles´a na 3 mm v ose x a 4 mm v ose y. Rozd´ıl v pˇresnostech nen´ı pˇr´ıliˇs velk´ y, coˇz je zapˇr´ıˇcinˇeno tvarem sledovan´eho objektu, kruhov´ y objekt lze snadno a pˇresnˇe detekovat i pˇri niˇzˇs´ıch rozliˇsen´ıch. Pˇresnost se pro tuto kameru liˇs´ı podle osy, protoˇze rozd´ıl mezi rozliˇsen´ımi v jednotliv´ ych os´ach je vˇetˇs´ı neˇz u pˇredchoz´ı kamery. U t´eto kamery je ovˇsem probl´em se souborem GSDML - General station description XML, kter´ y popisuje parametry zaˇr´ızen´ı a komunikace s n´ım po s´ıti PROFINET. Tato kamera je dle v´ yrobce jak´ ymsi v´ yvojov´ ym meziˇcl´ankem a do term´ınu dokonˇcen´ı t´eto pr´ace se nepodaˇrilo potˇrebn´ y soubor z´ıskat, navzdory intenzivn´ı e-mailov´e komunikaci pˇr´ımo s v´ yrobcem. Kamera tedy byla nakonfigurov´ana a otestov´ana, ale nebylo moˇzn´e propojit ji s ˇr´ıdic´ım syst´emem. Po z´ısk´an´ı potˇrebn´eho souboru lze oˇcek´avat bezprobl´emov´e zprovoznˇen´ı komunikace se stejn´ ymi parametry jako v pˇr´ıpadˇe prvn´ı kamery. 1
Kamera disponuje moˇznost´ı sn´ıˇzit rozliˇsen´ı kamery aˇz na 320 x 240 px, pˇri kter´em dosahuje rychlosti
430 FPS (opˇet bez algoritm˚ u). 2 Technologie Power over Ethernet umoˇzn ˇuje nap´ajet zaˇr´ızen´ı pˇres kabel s´ıtˇe Ethernet, v tomto pˇr´ıpadˇe vyˇzaduje tˇr´ıdu 3, tedy nap´ ajec´ı proud max. 20 mA.
41
7
Zhodnocen´ı v´ ysledk˚ u
Podaˇrilo se konfigurovat ˇr´ıdic´ı syst´em i jednotliv´e motory pro plynul´ y chod syst´emu, razance v´ ykopu je v´ıce neˇz uspokojiv´a, pˇri tˇretinov´ ych ot´aˇck´ach motoru dosahuje m´ıˇc rychlosti zhruba 10 m/s a ot´aˇcky lze d´ale zvyˇsovat. V aktu´aln´ı konfiguraci je moˇzn´e hr´aˇce na ose pˇresunout do libovoln´e pozice za dobu kratˇs´ı neˇz 500 ms, rychlost lze d´ale zvyˇsovat, ovˇsem za cenu vyˇsˇs´ıch vibrac´ı a hluˇcnosti syst´emu, tedy v tomto pˇr´ıpadˇe nen´ı zvyˇsov´an´ı rychlosti bez komplikac´ı. Vyskytly se probl´emy, kter´e se nepodaˇrilo odstranit softwarovˇe, jejich odstranˇen´ı je navrˇzeno v n´asleduj´ıc´ı kapitole 8.
K syst´emu byla pˇripojena inteligentn´ı kamera komunikuj´ıc´ı pomoc´ı s´ıtˇe PROFINET, kamera byla nakonfigurov´ana pro spolehliv´e a co moˇzn´a nejrychlejˇs´ı nalezen´ı m´ıˇce na hˇriˇsti. D´ale byly testov´any moˇznosti anal´ yzy pozice hr´aˇc˚ u na hˇriˇsti, v tomto pˇr´ıpadˇe se kamera ukazuje b´ yt tak´e efektivn´ım n´astrojem. Z experiment˚ u vyplynula doba zmˇeˇren´ı polohy m´ıˇce 25,5 ms vˇcetnˇe pˇrenosu dat do syst´emu s pˇresnost´ı 2 mm. K dispozici byla tak´e v´ ykonnˇejˇs´ı kamera, se kterou se dobu mˇeˇren´ı podaˇrilo sn´ıˇzit na 14 ms s pˇresnost´ı 4 mm, tuto kameru se ale kv˚ uli chybˇej´ıc´ım ovladaˇc˚ um nepodaˇrilo pˇripojit k ˇr´ıdic´ımu syst´emu, komunikace s v´ yrobcem ale st´ale prob´ıh´a.
8
N´ avrhy na zlepˇ sen´ı
Bˇehem realizace se vyskytly probl´emy, kter´e nebylo moˇzn´e ˇreˇset softwarovˇe. N´asleduje seznam n´avrh˚ u na u ´pravy, kter´e povedou k zlepˇsen´ı v´ ysledk˚ u, a to pˇredevˇs´ım rychlosti reakce na pohyb m´ıˇce iniciovan´ y soupeˇrem. 1. Pˇrevod rotaˇcn´ıho pohybu na posuvn´ y pomoc´ı z´avitu a ˇsnekov´eho loˇziska nab´ız´ı prostor pro vylepˇsen´ı. Uloˇzen´ı loˇziska nen´ı upevnˇeno kolmo k ose, ale vykazuje drobnou odchylku, v jej´ımˇz d˚ usledku je odpor osy v˚ uˇci posunu pˇri kaˇzd´e ot´aˇcce v jednom m´ıstˇe o m´alo vˇetˇs´ı. To zp˚ usobuje vznik neˇza´douc´ıch vibrac´ı pˇri pˇresunu osy o r˚ uzn´ ych frekvenc´ıch podle rychlosti pˇresunu. Aktu´alnˇe probl´em ˇc´asteˇcnˇe ˇreˇs´ı podloˇzen´ı, kter´e se ale nezd´a b´ yt ˇcasovˇe st´al´e, do budoucna by bylo vhodn´e minim´alnˇe zp˚ usob podloˇzen´ı vylepˇsit. Pokud se podaˇr´ı sn´ıˇzit generovan´e vibrace a hluk, bude moˇzn´e do budoucna d´ale zvyˇsovat rychlost pˇresunu osy. 2. Bˇehem hry se m´ıˇc ˇcasto dost´av´a do z´akrytu osy, reakce ˇr´ıdic´ıho syst´emu na takov´ y m´ıˇc je pak znaˇcnˇe omezen´a nebo dokonce nemoˇzn´a. Probl´em lze odstranit dvˇema zp˚ usoby. Je moˇzn´e syst´em doplnit o dalˇs´ı kameru sn´ımaj´ıc´ı hrac´ı plochu z jin´eho u ´hlu, coˇz zajist´ı st´al´ y v´ yhled na m´ıˇc vˇzdy alespoˇ n jedn´e kamery. Toto ˇreˇsen´ı je ale 42
cenovˇe n´aroˇcn´e. Druhou moˇznost´ı je um´ıstˇen´ı kamery pod st˚ ul a nahrazen´ı souˇcasn´e hrac´ı plochy pr˚ uhlednou (nebo polopr˚ uhlednou) hrac´ı plochou. To umoˇzn´ı st´al´ y v´ yhled na m´ıˇc. Toto ˇreˇsen´ı ovˇsem vyˇzaduje radik´aln´ı z´asah do konstrukce stolu, bude nutn´e pˇrepracovat svody m´ıˇc˚ u z branek a odstranit dno stolu. Jak ukazuj´ı podobn´a ˇreˇsen´ı popsan´a v kapitole 2 i ˇreˇsen´ı popsan´e v t´eto pr´aci, syst´em m˚ uˇze fungovat i s jednou kamerou um´ıstˇenou nad stolem, ale um´ıstˇen´ım kamery pod st˚ ul lze dos´ahnout v´ yznamnˇe lepˇs´ıch v´ ysledk˚ u, pˇredevˇs´ım co se t´ yˇce obrann´ ych z´akrok˚ u, kter´e vyˇzaduj´ı co nejrychlejˇs´ı reakci. 3. Spojen´ı motoru pro rotaci se samotnou osou vykazuje v˚ uli v ˇr´adech jednotek stupˇ n˚ u. To nepˇredstavuje probl´em pro samotn´ y rotaˇcn´ı pohyb, ale pro pˇresun osy. Pˇri rozbˇehu a dobˇehu pˇresunu se tato v˚ ule projevuje nezanedbateln´ ymi pohyby osy v rotaci. To m´a za n´asledek samovoln´e odkopnut´ı m´ıˇce m´ısto pouh´eho zastaven´ı, n´aslednˇe pak nen´ı moˇzn´e prov´est u ´ˇcinn´ y v´ ykop, protoˇze se m´ıˇc ztrat´ı z dosahu osy. Tento probl´em se nepodaˇrilo vyˇreˇsit softwarovˇe, pˇredevˇs´ım kv˚ uli chybˇej´ıc´ım licenc´ım na programov´e vaˇcky, proto nezb´ yv´a neˇz pokusit se probl´em odstranit hardwarovˇe. Nab´ız´ı se moˇznost zmenˇsit mezeru mezi ˇcepem a dr´aˇzkou na ose, kter´ y tuto v˚ uli zp˚ usobuje. Probl´em by tak´e mohlo vyˇreˇsit pˇrid´an´ı otoˇcn´eho spojen´ı osy s hr´aˇci se z´avitem, nam´ısto souˇcasn´eho pevn´eho. Sch´ematicky je tato u ´prava zn´azornˇena na obr. 30.
Obr´azek 30: Sch´ematick´ y n´avrh u ´pravy osy
4. Posledn´ım probl´emem je zasek´av´an´ı m´ıˇce bˇehem hry. Pˇri pokusu o v´ ykop se m˚ uˇze st´at, ˇze se m´ıˇc vzpˇr´ıˇc´ı mezi hr´aˇcem a hrac´ı deskou. Tato situace je oˇsetˇrena pomoc´ı sledov´an´ı momentu s´ıly motoru a zastaven´ı pohybu v pˇr´ıpadˇe pˇrekroˇcen´ı nastaven´e meze, po nˇemˇz n´asleduje opˇetovn´ y pokus o v´ ykop. To ovˇsem situaci ˇreˇs´ı jen ˇc´asteˇcnˇe, protoˇze se ukazuje, ˇze syst´em nen´ı schopen reagovat tak rychle, aby nedoch´azelo ˇ sen´ım tohoto probl´emu m˚ ke zbyteˇcn´emu nam´ah´an´ı mechaniky. Reˇ uˇze b´ yt napˇr´ıklad instalace pruˇzn´eho spojen´ı osy a jednotliv´ ych hr´aˇc˚ u, pouˇzit´ı hr´aˇc˚ u z pruˇznˇejˇs´ıho materi´alu nebo v´ ymˇena tuh´ ych ˇremen˚ u za pruˇznˇejˇs´ı. Tato pruˇzn´a sloˇzka pak poskytne syst´emu potˇrebn´ y ˇcas na reakci. 43
9
Z´ avˇ er
Byla u ´spˇeˇsnˇe navrˇzena a realizov´ana inicializace relativn´ıch sn´ımaˇc˚ u polohy po zapnut´ı syst´emu. D´ale byly navrˇzeny a otestov´any algoritmy pro vyhodnocen´ı situace na hˇriˇsti a n´asledn´eho zvolen´ı adekv´atn´ı reakce osy, algoritmus pro zastaven´ı u ´toku soupeˇre a dva algoritmy pro v´ ykop m´ıˇce, jeden pˇr´ımo nejbliˇzˇs´ım hr´aˇcem na ose a druh´ y s vyuˇzit´ım nahr´avky jin´emu hr´aˇci na ose. D´ale byly k syst´emu pˇripojeny dvˇe inteligentn´ı kamery pro monitorov´an´ı situace na hˇriˇsti, pˇredevˇs´ım pohybu m´ıˇce. Doba od zachycen´ı sn´ımku aˇz po doruˇcen´ı informace o poloze m´ıˇce do ˇr´ıdic´ıho syst´emu je v pˇr´ıpadˇe prvn´ı kamery Cognex In-Sight 7402 25,5 ms a v pˇr´ıpadˇe druh´e kamery Cognex In-Sight 500 aˇz 14 ms. Druhou kameru se ovˇsem nepodaˇrilo spojit s ˇr´ıdic´ım syst´emem po s´ıti PROFINET kv˚ uli chybˇej´ıc´ım ovladaˇc˚ um (souboru GSDML - General station description XML). V souˇcasn´e st´ale prob´ıh´a komunikace s v´ yrobcem kamery a snaha z´ıskat tento soubor od nˇej, v pˇr´ıpadˇe ne´ uspˇechu je moˇzn´e tento soubor vytvoˇrit podle pˇr´ısluˇsn´ ych manu´al˚ u. Celkov´a reakˇcn´ı doba syst´emu od z´ısk´an´ı sn´ımku aˇz do zaˇc´atku odpov´ıdaj´ıc´ı akce je max. 28,5 ms, pˇripojen´ım druh´e kamery m˚ uˇze b´ yt tato doba sn´ıˇzena aˇz na 18 ms. Na samotn´e akci osy je ˇcasovˇe nejn´aroˇcnˇejˇs´ı jej´ı pˇresun, kter´ y je v aktu´aln´ı konfiguraci moˇzn´ y maxim´alnˇe za dobu 500 ms, nicm´enˇe tato doba se v´ yraznˇe mˇen´ı se vzd´alenost´ı, kterou je nutn´e urazit. Bylo navrˇzeno nˇekolik hardwarov´ ych u ´prav robotizovan´e osy pro zv´ yˇsen´ı reakˇcn´ı schopnosti ˇr´ıdic´ıho syst´emu, nebot’ bˇehem v´ yvoje ˇr´ıdic´ıch algoritm˚ u se vyskytlo nˇekolik probl´em˚ u, kter´e nebylo moˇzn´e vyˇreˇsit softwarovˇe, nebo by byly ˇreˇsiteln´e jen s obt´ıˇzemi.
44
Reference [1] Wikipedia.org,
Table
football,
http: // en. wikipedia. org/ wiki/ Table_
football . 03/2015. ´ [2] Guena E.,Picard C.,Serigado R., Ulrich B., Automatic Foosball. ECOLE POLYTECH´ ERALE ´ NIQUE FED DE LAUSANNE. 10/2012. ´ ´ ERALE ´ [3] Savary M., Vision system for babyfoot. ECOLE POLYTECHNIQUE FED DE LAUSANNE. 06/2013. [4] Myrup A. Ch., Ørding-Thomsen M., Software til automatiseret bordfodbold. Technical University of Denmark. 02/2007. [5] Weigel T., Nebel B., KiRo – An autonomous table soccer player. University of Freiburg. 05/2005. [6] KiRo - The Table Soccer Robot, http: // www2. informatik. uni-freiburg. de/ ~ kiro/ english/ index. html [7] Siemens, Sinamics S120. Function manual. 01/2011. [8] Siemens, Sinamics S120. List manual. 01/2011. R 7000 Series Vision System. Installation Manual. P/N INS-597[9] Cognex, In-Sight
0138-01 Rev. E 08/2014. [10] Cognex, In-Sight 500 Vision System Reference Manual. [11] Siemens, Simotion Scout. Configuration manual. 04/2014. [12] Siemens, Simotion Scout. Getting Started. 04/2014. [13] Siemens, Simotion. Motion Control, Technology Objects Synchronous Operation, Cam. Function manual. 02/2012. [14] Siemens, Simotion D4x5. Manual. 02/2012. [15] Siemens, Simotion Scout Communication. System Manual. 11/2010. [16] Siemens, Sinamics S120. Control Units and additional system components. Manual. 04/2014. [17] Siemens, Sinamics S120. Servo Control Drive System. 04/2014. [18] Siemens, Simatic. Connection of the SINAMICS S120 to the Technology CPU. 09/2011. [19] Siemens, Simatic. Configuring Hardware and Communication Connections with STEP 7. 03/2006. 45
[20] Siemens, Distributed synchronous operation and isochronous modevia PROFINET IRT. 01/2013. [21] Brabec V., Detailn´ı konfigurace Simotion, pˇr´ıloha diplomov´e pr´ace Integrace a modelov´an´ı syst´emu distribuovan´eho ˇr´ızen´ı polohy a pr˚ umyslov´eho robota, 2012. [22] Sick., V300 Safety camera system, Operatin instructions, 12/2009.
46