UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Sandi Rihtarič TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 Diplomsko delo Maribor, avgust 2016
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Sandi Rihtarič
TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10
Diplomsko delo
Maribor, avgust 2016
I
TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10
Diplomsko delo
Študent: Sandi Rihtarič
Študijski program: Univerzitetni študijski program, elektrotehnika
Smer:
Avtomatika
Mentorica: doc. dr. Suzana Uran, univ. dipl. inž. el.
Lektorica: Mojca Patekar, prof.
Sandi Rihtarič
III
Zahvala
Pri izdelavi diplomske naloge bi se za
pomoč zahvalil mentorici, dr. doc. Suzani
Uran. Prav tako bi se rad zahvalil
sodelavcem in dijakom Elektro in
računalniške šole Ptuj za podporo in
sodelovanje. Zahvalo še posvečam
prijateljem in profesorjem iz študijskih let,
saj so me profesorji z svojo vnetostjo,
prijatelji pa z odprtim umom ter
ustvarjalnostjo oblikovali v to, kar sedaj
sem. Prav posebna zahvala pa pripada moji
družini in partnerici za vso podporo in
potrpežljivost.
Sandi Rihtarič
TEKMOVALNO/IZOBRAŽEVALNI ROBOT
SOCKY10
Ključne besede: Arduino MEGA, RoboCupJunior Soccer, Socky10, regulacija.
UDK: 004.896:007.52(043.2)
Povzetek
V diplomskem delu smo postopoma predstavili gradnjo robota Socky10, kar podkrepimo s
praktičnimi vajami za srednješolske izobraževalne programe. V osrednjem delu diplomske
naloge smo obravnavali uporabo in sestavo regulatorjev za naše potrebe. Regulacijske
zanke smo simulirali v programu Matlabu z dodatkom simulinka. Pri programiranju
uporabimo integrirano razvojno okolje za razvojne plošče Arduino, vezja in simbolne sheme
pa sestavimo z odprtokodnimi programom Fritzing, S-plan, Sprin-Layout programi ter
Altium Designer.
V
ROBOT FOR CHALLENGES AND SCHOOL
SOCKY10
Key words: Arduino MEGA, RoboCupJunior, Socky10, Regulations.
UDK: 004.896:007.52(043.2)
Abstract
In this thesis, we gradually build a robot Socky10 presented and reinforced with practical
exercises for upper secondary educational programs. In the central part of the thesis we
discuss the use and composition of Regulators for our needs. Control loop was simulated in
Matlab with the addition of Simulink. For programming we use integrated development
environment for Arduino development board, the circuit and the symbolic scheme being
assembled with the open source program Fritzing, S- Plan and Sprin - layout programs and
Altium Designer.
Sandi Rihtarič
KAZALO
1. UVOD ........................................................................................................................... 1
1.2 Pravila tekmovanja RoboCupJunior nogomet 2016 [1] ............................................................................ 2
1.2.1 Predpisi (Regulations) ......................................................................................................................... 3
1.2.2 Kršitve (Violations) ............................................................................................................................. 3
1.3 Roboti (Robots) ........................................................................................................................................ 4
1.3.1 Število robotov / zamenjava robotov (Numbers of robots / substitution) ............................................ 4
1.3.2 Interferenca (Interference) ................................................................................................................... 4
1.3.3 Vodenje (Control) ................................................................................................................................ 5
1.3.4 Komunikacija (Communication) ......................................................................................................... 5
1.3.5 Okretnost (Agility) ............................................................................................................................... 5
1.3.6 Držalo robota (Handle) ........................................................................................................................ 6
1.3.7 Oznaka robota (Top Markers) .............................................................................................................. 6
1.3.8 Dodatni predpisi za posamezno kategorijo .......................................................................................... 7
1.3.9 Kršitve (Violations) ............................................................................................................................. 7
1.4 Igralna površina (Kind of field) ................................................................................................................ 7
1.4.1 Dimenzije igralne površine (Dimensions of the field) ......................................................................... 7
1.4.2 Stene igralne površine (Walls) ............................................................................................................. 8
1.4.3 Vrata (Goals) ....................................................................................................................................... 8
1.4.4 Tla igrišča (Floor) ................................................................................................................................ 8
1.4.5 Nevtralne točke (Neutral spots) ........................................................................................................... 8
1.4.6 Središčni krog (Center circle) .............................................................................................................. 8
1.4.7 Območja kazenskega strela (Penalty areas) ......................................................................................... 9
1.4.8 Svetlobne in magnetne razmere (Light and Magnetic conditionals) .................................................... 9
1.5 Žoga (Ball) ............................................................................................................................................... 9
1.5.1 Uradni dobavitelj žoge (official supplires for pulsed balls) ................................................................. 9
1.5.2 Tekmovalna žoga (Tournament balls) ................................................................................................. 9
1.6 Potek igre (Gameplay) ............................................................................................................................ 10
1.6.1 Potek in trajanje igre (Game procedure and lenght of a game) .......................................................... 10
1.6.2 Predtekmovalno srečanje (Pre-match meeting) ................................................................................. 10
1.6.3 Prvi udarec (Kick-off) ........................................................................................................................ 10
1.6.4 Človeško posredovanje (Human interference) ................................................................................... 11
1.6.5 Gibanje žoge (Ball movement) .......................................................................................................... 11
1.6.6 Zadetki/goli (Scoring) ........................................................................................................................ 11
1.6.7 Prepovedan položaj (Goalie) ............................................................................................................. 11
1.6.8 Porivanje (Pushing) ........................................................................................................................... 11
1.6.9 Pomanjkanje napredka (Lack off progress) ....................................................................................... 12
1.6.10 Izven igrišča (Out off bounds) ...................................................................................................... 12
VII
1.6.11 Poškodovan robot (Damage robots) ............................................................................................. 13
1.6.12 Multipla obramba (Multiple defense) ........................................................................................... 14
1.6.13 Prekinitev igre (Interruption of game) .......................................................................................... 14
1.7 Kodeks ravnanja (Code of conduct) ....................................................................................................... 14
1.7.1 Poštena igra (Fair Play) ..................................................................................................................... 14
1.7.2 Vedenje (Behavior) ........................................................................................................................... 15
1.7.3 Pomoč (Help) .................................................................................................................................... 15
1.7.4 Delitev (Sharing) ............................................................................................................................... 15
1.7.5 Tekmovalni tuh (Spirit) ..................................................................................................................... 15
1.7.6 Kršitve/diskvalifikacija (Violations/Disqualification) ...................................................................... 15
1.8 Reševanje konfliktov (Conflict resolution) ............................................................................................ 16
1.8.1 Sodnik in pomočnik sodnika (Referee and referee assistant) ............................................................ 16
1.8.2 Pojasnilo pravil (Rule clarification) .................................................................................................. 16
1.8.3 Sprememba pravil (Rule modification) ............................................................................................. 16
1.8.4 Regulativni status (Regulatory statutes) ............................................................................................ 16
1.9 Igralna površina ..................................................................................................................................... 17
1.10 Predpisi za ligo 2016 ......................................................................................................................... 17
1.11 Predpisi (Regulations) ....................................................................................................................... 18
1.11.1 Dimenzije (Dimensions) ............................................................................................................... 18
1.11.2 Omejitve (Limitations) ................................................................................................................. 18
1.11.3 Konstrukcija (constuction) ........................................................................................................... 19
1.11.4 Programiranje (Programing) ......................................................................................................... 20
1.11.5 Pregled in razgovor (Inspection and Interviews) .......................................................................... 20
1.11.6 Kršitve .......................................................................................................................................... 21
1.12 Tehnične specifikacije za pulzno nogometno žogo ........................................................................... 21
1.12.1 IR-svetloba ................................................................................................................................... 21
1.12.2 Premer žoge .................................................................................................................................. 21
1.12.3 Modulacija .................................................................................................................................... 21
1.12.4 Obarvanost ................................................................................................................................... 22
1.13 Tehnične specifikacije za pasivno žogo ............................................................................................ 22
1.14 Naprava za merjenje moči strelne naprave ........................................................................................ 22
2. PREDSTAVITEV ROBOTA ZA IGRANJE NOGOMETA ................................. 23
3. OPIS STROJNE OPREME ...................................................................................... 28
3.2 Napajanje ............................................................................................................................................... 28
3.3 Razvojna plošča ARDUINO MEGA ..................................................................................................... 29
3.4 Elektromotorji ........................................................................................................................................ 30
3.5 Močnostni krmilnik elektromotorjev ..................................................................................................... 32
Sandi Rihtarič
3.6 Kolesa ..................................................................................................................................................... 35
3.7 Ultrazvočni senzorji ................................................................................................................................ 35
3.8 IR-senzorji .............................................................................................................................................. 36
3.9 Fotoupor ................................................................................................................................................. 38
3.10 Stikala in tipke ................................................................................................................................... 39
3.11 Kompas .............................................................................................................................................. 39
3.12 Žiroskop ............................................................................................................................................. 40
3.13 Prikazovalnik ..................................................................................................................................... 41
3.14 Tiskanine ........................................................................................................................................... 43
4. OPIS PROGRAMSKE OPREME ........................................................................... 44
4.2 Integrirano razvojno okolje (IDE) .......................................................................................................... 44
4.3 Odprtokodno programsko orodje za konstruiranje Fritzing .................................................................... 48
4.4 Sprint-Layout .......................................................................................................................................... 49
4.5 Altium Designe ....................................................................................................................................... 49
4.6 Matlab-Simulink ..................................................................................................................................... 50
5. IZVEDBA SESTAVNIH DELOV OGRODJA ...................................................... 51
6. IMPLEMENTACIJA KINEMATIČNEGA MODELA IN REGULACIJE ....... 54
6.2 Kinematika robota z vsesmernimi (omni) kolesi in dinamičnim pogonom ............................................ 55
6.3 Simulacija regulacijske proge ................................................................................................................. 61
6.4 Načrtovanje regulatorja .......................................................................................................................... 66
6.5 Izvedba regulacije. .................................................................................................................................. 77
6.6 Implementacija regulatorja v programsko kodo ..................................................................................... 81
7. REZULTATI ............................................................................................................. 85
7.2 Določanje parametrov PID-regulatorja po Ziegler–Nichols metodi. ...................................................... 90
8. ZAKLJUČEK ............................................................................................................ 93
9. SEZNAM UPORABLJENIH VIROV ..................................................................... 94
10. PRILOGE ................................................ NAPAKA! ZAZNAMEK NI DEFINIRAN.
10.2 Priloga A: Električni načrti ............................................................ Napaka! Zaznamek ni definiran.
10.3 Priloga B ........................................................................................ Napaka! Zaznamek ni definiran.
10.4 Priloga C: Programska koda .......................................................... Napaka! Zaznamek ni definiran.
10.5 Priloga D: Zbrane naloge ............................................................... Napaka! Zaznamek ni definiran.
IX
KAZALO SLIK
Slika 1.1: Število robotov na igrišču .................................................................................... 2
Slika 1.2: Kršitve udeležencev ali drugih prisotnih ............................................................... 3
Slika 1.3: Pravila za vratarja in napadalca ............................................................................. 6
Slika 1.4: Oznaka robota [1] .................................................................................................. 7
Slika 1.5: Igralna miza [1] ................................................................................................... 17
Slika 1.6: Dimenzije konstrukcij robota (pravila) [1].......................................................... 18
Slika 1.7: Naprava za merjenje moči strelne naprave ......................................................... 22
Slika 2.1: Robot ................................................................................................................... 23
Slika 2.2: Sestavni deli zgornje plošče robota ..................................................................... 24
Slika 2.3: IR-sprejemniki ..................................................................................................... 25
Slika 2.4: Kinematika in smeri gibanja vsesmernega (OMNI) kolesa ................................ 26
Slika 2.5: Primerjava gibanja z avtomobilom ..................................................................... 26
Slika 2.6: Spodnja plošča robota ......................................................................................... 27
Slika 2.7: Sestavni deli robota med zgornjo in spodnjo ploščo ........................................... 27
Slika 3.1: Lipo baterija [9] in DC/DC step down pretvornik [10] ....................................... 28
Slika 3.2: Plošča Arduino Mega2560 [3][11] ...................................................................... 29
Slika 3.3: Arduino MEGA [3] ............................................................................................. 30
Slika 3.4: Motorji robota [6] ................................................................................................ 31
Slika 3.5: Gonilnik motorjev [12] ....................................................................................... 32
Slika 3.6: Shema H-mostičnega vezja [13] ......................................................................... 32
Sandi Rihtarič
Slika 3.7: H-mostično vezje [13] ......................................................................................... 33
Slika 3.8: Struktura H-mostičnega vezja ............................................................................. 33
Slika 3.9: Si8231/4 izolirani gonilnik z enim vhodom [15] ................................................ 34
Slika 3.10: Prikaz mrtvih časov pri preklopih [15] ............................................................. 34
Slika 3.11: Prilagajanje vsesmernih (omni) koles ............................................................... 35
Slika 3.12: Pripravljeno kolo za 3D-tiskalnik ..................................................................... 35
Slika 3.13: Prikaz delovanja ultrazvočnega senzorja [16] .................................................. 36
Slika 3.14: IR-sprejemnik SFH 511 [5] in vezalni načrt ..................................................... 37
Slika 3.15: Fotoupor in vezje za detekcijo črt na igrišču .................................................... 38
Slika 3.16: Tipke in stikala .................................................................................................. 39
Slika 3.17: Senzor magnetnega polja in vezalna shema (slika, izdelana v programu Fritzing)
............................................................................................................................................. 40
Slika 3.18: Žiroskop in pripadajoče vezje [2] ..................................................................... 41
Slika 3.19: Prikazovalnik [19] in vezalna shema (slika, izdelana v programu Fritzing) .... 42
Slika 3.20: Zgornja tiskanina, razlika med prvo in zadnjo ustvarjeno ................................ 43
Slika 4.1: Integrirano razvojno okolje ................................................................................. 44
Slika 4.2: Zavihek Datoteka v programu Arduino .............................................................. 45
Slika 4.3: Zavihek Skica v programu Arduino .................................................................... 46
Slika 4.4: Zavihek ''Orodje'' v programu Arduino ............................................................... 46
Slika 4.5: Zavihek ''Pomoč'' v programu Arduino ............................................................... 47
Slika 4.6: Primer aplikacije v programu Fritzing [22] ........................................................ 48
Slika 4.7: Preprost projekt, izdelan v programu Fritzing .................................................... 49
XI
Slika 4.8: Program Sprint Layout ........................................................................................ 49
Slika 4.9: Program Altium Designe ..................................................................................... 50
Slika 4.10: Matematično orodje Matlab-Simulink .............................................................. 50
Slika 5.1: Težišče robota ..................................................................................................... 51
Slika 5.2: Spodnja konstrukcijska plošča ............................................................................ 52
Slika 5.3: Testiranje elektronike .......................................................................................... 52
Slika 5.4: Izdelane tiskanine ................................................................................................ 53
Slika 5.5: Končna konstrukcija prvega izdelanega robota .................................................. 53
Slika 6.1: Regulacija kota med igro .................................................................................... 55
Slika 6.2: Kinematični diagram robota ................................................................................ 56
Slika 6.3: Translacijska hitrost kolesa ................................................................................. 57
Slika 6.4: Simulacijski model regulacijske proge ............................................................... 61
Slika 6.5: Blokovna shema robota (BLOK ROBOT) .......................................................... 62
Slika 6.6: Inverzni kinematični model ................................................................................. 63
Slika 6.7: Originalni kinematični model v lastnem koordinatnem sistemu ......................... 64
Slika 6.8: Prenosna funkcija GONILNIKOV ...................................................................... 64
Slika 6.9: Prenosne funkcije motorjev ................................................................................. 65
Slika 6.10: Prenosna funkcija žiroskopa.............................................................................. 66
Slika 6.11: Regulacijska proga v eksplicitni obliki ............................................................. 67
Slika 6.12: Poenostavljena regulacijska proga .................................................................... 67
Slika 6.13: Končna oblika regulacijske proge za nadaljnjo obravnavo ............................... 68
Sandi Rihtarič
Slika 6.14: Povezava dušenja in prenihaja sistema drugega reda ....................................... 69
Slika 6.15: Ojačenje in hitrost odziva pri dušenju sistema ................................................. 70
Slika 6.16: Odziv na stopnico sistema v odvisnosti od dušenja sistema ............................. 70
Slika 6.17: Zapis prenosnih funkcij v frekvenčnem prostoru ............................................. 72
Slika 6.18: Poli in ničle Fo(s) ter prenosne funkcije (DLK) ............................................... 73
Slika 6.19: Prenosna funkcija pri izbranih polih v KLK. .................................................... 73
Slika 6.20: Funkcija s popravljenim ojačenjem. ................................................................. 74
Slika 6.21: Krivulje lege korenov Fo(s) in pri (Ti=0.1) ...................................................... 74
Slika 6.22: Načrtovanje z Bodejevim diagramom .............................................................. 75
Slika 6.23: Bodejev diagram (Firez=55°, pri Ti=0.1 in K=1) ............................................. 75
Slika 6.24: Zaprtozančni sistem H(s), načrtovanje P-regulatorja z Bodejevim diagramom 76
Slika 6.25: Stopnični odziv funkcije pridobljene z načrtovanjem z KLK .......................... 76
Slika 6.26: Krmilna proga ................................................................................................... 77
Slika 6.27: Regulacijska zanka ............................................................................................ 77
Slika 6.28: Dvotočkovni regulator [30]............................................................................... 78
Slika 6.29: Željena in dejanska smer ................................................................................... 80
Slika 6.30: Prikaz elementov sistema, ki so realizirani s programom mikrokrmilnika. ..... 81
Slika 6.31: Gibanje robota ................................................................................................... 82
Slika 6.32: Gibanje robota naprej ........................................................................................ 83
Slika 6.33: Podprogram za hitrosti koles (gibanje naprej/nazaj) ........................................ 84
Slika 7.1: Tabela izbranih časovnih parametrov [31] ......................................................... 85
Slika 7.2: Natavitev časovnih parametrov (simbolični diagram) [31] ................................ 86
XIII
Slika 7.3: P regulator simulacijskega modela in realnega robota ........................................ 87
Slika 7.4: Odziv na stopnico za dušenje sistema drugega reda (pri D = 0.7) ...................... 87
Slika 7.5: PI-regulator ......................................................................................................... 88
Slika 7.6: PD-regulator ........................................................................................................ 89
Slika 7.7: Graf 1 PID regulator ............................................................................................ 90
Slika 7.8: Odziv PID-regulatorja nastavljenega po Ziegler – Nichols metodi .................... 92
Slika 7.9: Vožnja naprej in izravnava .................................................................................. 92
Sandi Rihtarič
UPORABLJENE KRATICE
(°) – stopinja, enota za merjenje kota,
A – amper, enota za merjenje toka,
c – hitrost v metrih/sekundo,
𝐶 – kapacitivnost RC filtra,
𝑑𝑃
𝑑𝑇 – čas do ponovnega izračuna regulirne veličine,
Hz – hertz, enota za merjenje frekvence,
𝐽𝑖𝑛𝑣 – Inverzna Jacobijeva matrika,
kD – diferencialni člen,
kP – proporcionalni člen (konstanta),
kI – integralni člen (se izračunava do ponastavitve v primeru, ko je pogrešek večji od
maksimalnega željenega),
kΩ – Kilo ohmi, enota za merjenje upornosti,
m – meter,enaota za dolžino,
m/s – metrov na sekundo,
Mp – prekoračitev (najvišja točka prekoračitve),
nF – nanofaradi, enota za merjenje kapacitivnosti,
r – polmer vsesmernega (omni) kolesa,
R – razdalja od središča kolesa do geometrijskega središča robota,
s – razdalja,
ss error – je razlika med regulirano veličino in željeno veličino,
t – čas v sekundah,
tr – čas vzpona od 10% do 90% željene veličine,
ts – nastavitveni čas (ko merjena veličina doseže željeno veličino (se umiri v mejah)),
�̇� – vektor kotne hitrosti na podlago (zunanji koordinatni sistem),
𝑣 – hitrost premikanja robota (m/min),
𝑣𝑖 – Translacijska hitrost posamičnega kolesa v koordinatnem sistemu robota,
𝑣𝑡𝑟𝑎𝑛,𝑖 – translacijska hitrost posamičnega kolesa v koordinatnem sistemu kolesa,
XV
𝑣𝑟𝑜𝑡 – Hitrost zaradi rotacije robota,
vrt/min – vrtljaji na minuto,
V – volt, enota za merjenje napetosti,
W – enota za merjenje moči,
𝑥ž – željena vrednost,
|𝑥| – absolutna vrednost regulirane veličine,
�̇� – Vektor x koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – Vektor y koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
𝛼𝑖 – Kot med osmi motorjev robota,
𝜀 – pogrešek med željeno veličino in regulirano veličino,
∑𝜀 – vsota vseh pogreškov,
∅𝑖 – kotna hitrost vsesmernega (omni) kolesa,
𝜏 – časovna konstanta polnjenja kondenzatorja,
ѡ – hitrost rotacije kolesa (r/min),
𝜔𝑣𝑠𝑡 – Vstopna frekvenca (Bodejev diagram),
𝜃 – Kot med vektorjem gibanja kolesa in gibanja robota,
�̇� – kot zasuka robota,
�̇� – kotna hitrost zasuka robota.
Sandi Rihtarič
UPORABLJENI SIMBOLI
A/D – Analogno digitalnA pretvornik,
DLK – diagram lege korenov,
IR –infrardeči senzorji,
KLK – krivulje lege korenov,
LiPo – litij-polimerska baterija,
DC/CD – Pretvornik iz enosmernega toka napetosti v enosmerni tok napetosti,
µK – mikrokrmilnik,
PWM – pulzno širinska modulacija,
UART – serijska komunikacija mikrokrmilnika,
DC – enosmerni napetostni vir,
OMNI – vsesmerno kolo,
LED-D – led dioda,
MEMS – mikro-električni mehanski sistemi,
IDE – integrirano razvojno okolje,
PID – proporcionalni, integralni in diferenčni krmilnik,
Z-N – Ziegler-Nichols metoda,
Uvod
1
1. Uvod
Povod za to diplomsko nalogo je sodelovanje na tekmovanju RoboCup Junior, na katerem
je zastavljen cilj do leta 2050 sestaviti ekipo robotov, ki se bo sposobna pomeriti v nogometu
s pravimi igralci. Naloga robota za igranje nogometa je na prvi pogled zelo preprosta, v
dvajsetih minutah, s pet minutno prekinitvijo, morata dva robota doseči čim več zadetkov v
nasprotni gol (poglavje 1.6.1), pri čemer morata delovati popolnoma avtonomno1.
Pred dobrimi tremi leti smo si zadali cilj sestaviti prvega robota za igranje nogometa, s
katerim bomo konkurenčni na evropskih tekmovanjih. Prvotno smo bili pozorni, da bo robot
sestavljen iz komponent, ki so cenovno ugodne in tako dosegljiv širši javnosti. Večino
elementov smo naročali iz tujih držav, preko spletnih trgovin, kar pa se ni izkazalo za
najboljšo rešitev. Na začetku se je pojavilo kar nekaj izzivov, ki smo jih morali rešiti.
Najprej, kako na učinkovit način zaznavati žogico, ki je oddajala IR-svetlobni signal s
frekvenco 40 kHz. Prav tako smo imeli težavo, kako pripraviti robota, da v času tekme igra
proti nasprotnemu golu. Težave so še povzročali gonilniki za motorje in odzivnost robota.
V tej diplomski nalogi smo zbrali vse pridobljene izkušnje in naslednjim generacijam
pripravili navodila za gradnjo lastnega robota. Po načinu izločanja bomo poiskali
najprimernejšo IR-sprejemno diodo, izdelali bomo lasten gonilnik za enosmerne
elektromotorje in sestavili regulacijo za izravnavo robota. V prilogo pa bomo dodali naloge
za učenje programiranja, s katerimi imajo mladi nadobudneži možnost pridobiti dovolj
znanja, da si lahko podobnega robota zgradijo sami.
Najprej smo morali predstavili pravila tekmovanja RoboCupJunior za nogomet v letu 2016
[1], da ugotovimo, kakšni so zahtevani pogoji, da smo lahko razložili, zakaj smo izdelek
sestavili tako, kot je zapisano.
1 Avtonomnost: pomeni, da morajo biti roboti samoupravljani.
Sandi Rihtarič
2
1.2 Pravila tekmovanja RoboCupJunior nogomet 2016 [1]
Uradna pravila za tekmovanja RoboCupJunir je izdal tehnični komite RoboCupJunior 2016.
V tekmovanju RoboCupJunior se pomerita ekipi z dvema avtonomnima robotoma drug proti
drugi . Naloga robotov je iskanje IR-žoge (več podatkov o tem v nadaljevanju), ki jo je
potrebno spraviti v nasprotna modro ali rumeno obarvana vrata. Roboti morajo biti povsem
avtonomni, nobeno človeško posredovanje ni dovoljeno.
Slika 1.1: Število robotov na igrišču
Udeleženci tega tekmovanja morajo obvladati znanje programiranja, robotike, elektronike
in mehatronike. Prav tako so primorani sodelovati v timskem delu, izmenjavi znanja in
izkušenj z drugimi udeleženci, ne glede na njihovo kulturo, starost ali rezultate na
tekmovanju.
Robote morajo v popolnosti izdelati udeleženci tekmovanja oz. člani ekipe, tako mentorji ali
profesorji ne smejo sodelovati pri pripravi ali popravilih robotov. Da bi preprečili možnost
diskvalifikacije, je zelo pomembno, da udeleženci upoštevajo navodila o krmiljenju in
komunikaciji robotov, opisana v poglavju [1.10] V primeru, če udeleženci niso prepričani,
ali je robot zgrajen v skladu s pravili, se je potrebno posvetovati z organizatorji tekmovanja.
Uvod
3
1.2.1 Predpisi (Regulations)
Predpisi določajo, da mora ekipo RoboCupJunior na mednarodnih tekmovanjih sestavljati
več kot en član. Ekipni tekmovalci ali roboti ne morejo sodelovati istočasno v več ekipah.
Maksimalno število tekmovalcev na tekmovanjih RoboCupJunior 2016 je lahko šest.
1.2.2 Kršitve (Violations)
Ekipe, ki ne spoštujejo pravil, se ne morejo udeležiti tekmovanja.
Nobena oseba v bližini igrišča ne sme nositi oranžnih, rumenih ali modrih oblačil, ki bi lahko
vplivala na morebitne motnje robotov. V primeru suma motnje lahko sodnik zahteva, da se
član skupine preobleče ali pa se zamenja z drugim članom skupine.
Slika 1.2: Kršitve udeležencev ali drugih prisotnih
V primeru kakršne koli kršitve ekipe (barva oblačil, IR-oddajniki, bliskavica na fotoaparatih,
mobilni telefoni, radijski oddajniki, računalniki ali podobno), ki bi lahko vplivala na potek
igre, ima sodnik pravico igro prekiniti.
Sandi Rihtarič
4
Če se katera od ekip pritoži nad kršitvijo druge ekipe, je to potrebno dokazati oz. pokazati
na dejavnike, ki vplivajo na potek igre.
1.3 Roboti (Robots)
Uradna pravila za tekmovanje so napisana za igranje z RCJ-05 elektronsko žogo. Uporaba
navadne oranžne žoge v igri je dovoljena samo v fazi testiranja in tekme ne bodo upoštevane
za določanje ekipnih dosežkov.
Vseeno pa se pri ekipah, ki želijo uporabljati opremo za vizualno zaznavo žoge med
regularno tekmo, to dovoli.
V regularni tekmi se lahko uporablja oranžna žoga samo v primeru, ko se z njeno uporabo
strinjata obe sodelujoči ekipi.
1.3.1 Število robotov / zamenjava robotov (Numbers of robots / substitution)
Vsaka sodelujoča ekipa lahko ima največ dva robota za sodelovanje na tekmovanju. V času
tekmovanja je menjava robotov med igralnimi ekipami ali v lastni ekipi prepovedana.
1.3.2 Interferenca (Interference)
Roboti ne smejo vsebovati modre, oranžne ali rumene barve. Sestavni deli v modri, rumeni
ali oranžni barvi morajo biti zamenjani z enakimi deli druge barve, bodisi prelepljen bodisi
pobarvan z nevtralno barvo.
Roboti ne smejo oddajati infrardeče svetlobe, optični senzorji razdalje so dovoljeni, dokler
ne vplivajo na druge robote. V primeru pritožbe nasprotne ekipe morajo sodnik ali
ocenjevalna komisija preveriti sum vplivanja na robote z infrardečo svetlobo.
Na zunanji (vidni) strani robota ne sme biti elementov, ki odbijajo infrardečo svetlobo. V
primeru, da so roboti pobarvani, mora biti mat barve. Sestavni deli, ki odbijajo infrardečo
svetlobo, so lahko na robotu, dokler ne vplivajo na robote nasprotne ekipe. Ekipa, ki trdi, da
Uvod
5
robot nasprotne ekipe moti njihovega robota z infrardečo svetlobo, mora sodniku motnjo
dokazati.
Roboti ne smejo ustvarjati magnetnega polja, ki bi vplivalo na druge robote v igri. V primeru
pritožbe mora sodnik ali ocenjevalna komisija sum preveriti.
1.3.3 Vodenje (Control)
Med potekom igre ni dovoljena nobena vrsta oddaljenega vodenja robota. Robota mora
zagnati član ekipe, nato mora robot delovati popolnoma avtonomno.
1.3.4 Komunikacija (Communication)
Med tekmo ni dovoljena nobena komunikacija na robotih, razen vzpostavljene Bluetooth-
(v2 ali v3 dometa 20 m) ali ZigBee-komunikacije med ekipnima robotoma. Za komunikacijo
med robotoma so odgovorne ekipe same in prireditelji tekmovanja ne zagotavljajo
razpoložljivosti željene frekvence za komunikacijo.
1.3.5 Okretnost (Agility)
Roboti morajo biti konstruirani in programirani tako, da nimajo omejenega gibanja samo po
eni osi v ravnini-po eni osi (X). Gibati se morajo v vse smeri. Robot se mora obvezno
odzivati na žogo v direktni smeri gibanja naprej. Ni dovolj gibanje levo in desno tik pred
svojimi vrati, ampak se mora v primeru, da se žoga nahaja neposredno pred njimi zapeljati
naprej v smeri igranja. Vsaj en robot na igrišču mora biti programiran tako, da doseže žogo
kjer koli na igrišču, razen če ekipa igra samo z enim robotom v danem trenutku.
Roboti morajo biti konstruirani in programirani tako, da se ne zapeljejo v nasprotna vrata.
Uporaba prečke na vratih je dovoljena za preprečevanje vstopa vanje. To pravilo mora veljati
za vse robote na igrišču.
Sandi Rihtarič
6
Slika 1.3: Pravila za vratarja in napadalca
1.3.6 Držalo robota (Handle)
Vsak tekmovalni robot mora imeti fiksno prijemalo za zaustavitev in dvig robota z igrišča.
Držalo robota je lahko višje od dovoljenih 22 cm, vendar na njem ne sme biti montiran noben
drug funkcionalen del robota.
1.3.7 Oznaka robota (Top Markers)
Vsak robot mora imeti jasno vidno zaporedno oznako, da ga sodniki lahko prepoznajo.
Roboti, ki niso označeni, ne smejo sodelovati na tekmovanju. Vsak robot mora imeti na vrhu
oznako natančno določene oblike:
oznaka robota mora biti črn krog, manjši ali enak premeru 4 centimetrov,
v sredini mora biti bel kvadrat s stranico, veliko do 2 centimetra,
oznaka mora biti nameščena na vrhu robota in vidna,
vsaka ekipa mora imeti pripravljen komplet preprosto odstranljivih oznak s števili od
1 do 4,
pred tekmovanjem sodniki označijo posamične robote z oznakami.
Uvod
7
Slika 1.4: Oznaka robota [1]
1.3.8 Dodatni predpisi za posamezno kategorijo
Turnir se lahko organizira v različnih podkategorijah, npr. odprta liga (Open League) in
lahka kategorija (Light League), ki imajo svoje dodatne predpise, vključno s predpisi, ki
vplivajo na gradnjo robota. Ti predpisi so objavljeni pri tehničnem odboru RoboCupJuniora
in so del teh pravil.
1.3.9 Kršitve (Violations)
Roboti, ki ne ustrezajo navodilom in specifikacijam za dano kategorijo, ne morejo tekmovati
na tekmovanju RoboCup Junior. Če se zaznajo kršitve na robotih med potekom igre, je ekipa
diskvalificirana za čas tiste igre. V primeru ponavljajočih kršitev na tekmovanju lahko ekipo
diskvalificirajo.
1.4 Igralna površina (Kind of field)
Obstaja samo ena igralna površina za vse kategorije tekmovanja.
1.4.1 Dimenzije igralne površine (Dimensions of the field)
Igralna površina meri 1,22 m in 1,83 m. Površina je označena z belim robom, ki je del igralne
površine. Okrog igralne površine, za belo črto, je razdalja 30 cm do zunanjega roba oz. stene
Sandi Rihtarič
8
igrišča. Celotne dimenzije igrišča z zunanjimi obrobami so 1,82 X 2,43 m. Predlagano je, da
se igrišče namesti 0,7 m do 0.9 m nad tlemi.
1.4.2 Stene igralne površine (Walls)
Stene so nameščene okrog celotne igralne površine in so pobarvane s črno mat barvo ter so
visoke 1,4 m.
1.4.3 Vrata (Goals)
Igrišče ima dvoje vrat in sicer v središču na vsaki strani krajše stranice. Dolžina vrat je 0,6
m, visoka so 0,1 m in globoka 0,074 m. Na vrhu imajo nameščeno vratnico, ki preprečuje
vstop robotov v vrata in pomaga sodnikom pri določanju zadetkov. Gol je nameščen za belo
črto igralne površine, prečka pa je nameščena natančno nad belo črto. Na eni stani igralne
površine se nahajajo vse notranje stene in prečka vrat je pobarvana z rumeno, na drugi strani
pa z modro barvo. Zunanje strani vrat so enake barve kot obrobe igrišča (mat črne).
1.4.4 Tla igrišča (Floor)
Podloga igrišča mora biti zelena in pritrjena na trdo podlago. Biti mora izdelana tako, da
zdrži trenja koles ob premikanju. Vse bele črte na podlagi morajo biti narisane in imeti širino
0,02 m.
1.4.5 Nevtralne točke (Neutral spots)
Nevtralnih točk je na igrišču pet, ena se nahaja v sredini igrišča, ostale štiri pa so narisane v
kotih od vsakega roba odmaknjene 0,45 m. Narisane so s črnim markerjem in imajo premer
0,01 m.
1.4.6 Središčni krog (Center circle)
Nahaja se v sredini igrišča in ima premer 0,60 m. Narisan je s tankim črnim markerjem in
služi za pričetek vsake igre (kick-off).
Uvod
9
1.4.7 Območja kazenskega strela (Penalty areas)
Pred vsakimi vrati se nahaja kazenski prostor širine 0,3 m in dolžine 0,9 m. Območje je
narisano s 0,02 m široko črno črto in predstavlja območje igralne površine. Robot se nahaja
v tem območju takrat, ko je v celoti v njem.
1.4.8 Svetlobne in magnetne razmere (Light and Magnetic conditionals)
Igrišče naj bo nameščeno, kjer je vpad infrardeče svetlobe čim manjši in motnje zemeljskega
magnetnega polja čim manjše. Idealne razmere niso nikoli mogoče, zato morajo biti člani
ekipe pripravljeni na kalibracijo svojih robotov na mestu dogodka.
1.5 Žoga (Ball)
Za tekmovanje se lahko uporablja dobro uravnotežena elektronska žoga, ki oddaja IR-
svetlobo.
1.5.1 Uradni dobavitelj žoge (official supplires for pulsed balls)
Trenutno obstaja samo ena žoga, ki jo je odobril tehnični komite RoboCupJunior.
RoboSoccer RCJ05 ball operating in MODE A (pulsed) made by EK Japan/Elekit
(www.elekit.co.jp)
Tehnične podrobnosti najdete v točki: ''Technical Specification for Pulsed Soccer Ball''.
1.5.2 Tekmovalna žoga (Tournament balls)
Za tekmovalno žogo morajo poskrbeti organizatorji in niso odgovorni za žoge, ki se
uporabljajo za pripravo.
Sandi Rihtarič
10
1.6 Potek igre (Gameplay)
1.6.1 Potek in trajanje igre (Game procedure and lenght of a game)
Igra je sestavljena iz dveh polovic. Vsaka polovica traja 10 minut, med njima so 5-minutni
odmori.
Med vsako polovico igre teče ura neprekinjeno, razen če se želita sodnik in pomočnik
sodnika posvetovati. Čas meri sodnik ali pomočnik sodnika.
Ekipe morajo biti 5 minut pred začetkom igre pripravljene pri igrišču. Pregled robota se ne
šteje v teh pet minut pred tekmo. V primeru, da ekipa zamudi na igro, se nasprotni ekipi
vsako minuto prizna en gol. Če se ekipa v petih minutah po začetku igre ne oglasi, zmaga
nasprotna ekipa 5 : 0.
1.6.2 Predtekmovalno srečanje (Pre-match meeting)
Na začetku prvega polčasa igre sodnik vrže kovanec. Prva tekmovalna ekipa s seznama
lahko izbere grb ali številko. Zmagovalec metanja kovancev lahko izbere s katere strani bo
najprej igral in ali bo njegova ekipa imela prva posest žoge. Ekipa, ki v prvem polčasu ni
imela prva posesti žoge, jo ima prva v drugem polčasu.
1.6.3 Prvi udarec (Kick-off)
Vsak polčas se začne s prvim udarcem. Vsi roboti ekip morajo biti nameščeni na svoji
polovici igrišča in morajo mirovati. Sodnik postavi žogo v središče igrišča na črno nevtralno
točko. Ekipa, ki ima prvi udarec, prva namesti robote na igrišče. Ti ne smejo biti za vrati ali
izven bele črte. Kadar so postavljeni na igrišče, se jih več ne sme premikati iz pozicije
namestitve. Obrambna ekipa, ki nima prvega udarca šele tedaj namesti robote na igrišče. Vsi
roboti obrambne ekipe ne smejo biti bliže kot 0,3 m do tekmovalne žoge, kar pomeni izven
sredinskega kroga. Sodnik lahko položaj robotov popravi v primeru, če niso postavljeni v
skladu s pravili. Vsakega robota mora po pisku sodnika (začetek igre) zagnati vodja ekipe.
V primeru, da kakšnega robota zažene prej, se ga izloči iz igre in se ga obravnava kot
poškodovanega.
Uvod
11
1.6.4 Človeško posredovanje (Human interference)
Posredovanje ekipe med igro ni dovoljeno, razen v primeru zagona robotov pri prvem udarcu
ali če tega ne ukaže sodnik. Udeležence tekmovanja, ki to pravilo prekršijo, diskvalificirajo
iz igre.
1.6.5 Gibanje žoge (Ball movement)
Robot ne sme držati žoge, kar pomeni, da ne sme prevzeti popolne kontrole. Ta se mora med
posestjo robota vsaj vrteti in ne sme biti fiksirana na robotovo konstrukcijo. Če se robot
premika, žoga pa ne vrti, je to dober znak, da je žoga fiksirana na robota. Edina možnost
držanja žoge pri robotu je uporaba driblerja, to je sistem, ki zaradi spina žoge v smeri robota
drži žogo v poziciji. Ostali tekmovalni roboti na igrišču morajo imeti dostop do žoge.
1.6.6 Zadetki/goli (Scoring)
Za zadetek oz. gol se šteje, ko žoga podrsa ali se dotakne notranje zadnje strani vrat. Zadetek
je veljaven, če ga da napadalni ali obrambni robot. Po njem se igra nadaljuje s ponovnim
prvim udarcem nasprotne ekipe. Vsem poškodovanim robotom ali robotom izven igralne
površine (za belo črto) je dovoljeno nadaljevati igro, če so pripravljeni in popolno
funkcionalni.
1.6.7 Prepovedan položaj (Goalie)
Prepovedan položaj je takrat, kadar pride napadalec prvi v nasprotnikov kazenski prostor in
vratar nasprotnikove ekipe zapusti kazenski prostor.
1.6.8 Porivanje (Pushing)
V kazenskem prostoru ima vratar prioriteto. Napadalci ne smejo porivati branilca v katero
koli smer. Če imata robota stik ali ima kateri koli od robotov stik z žogo, se ta nemudoma
umakne na najbližjo nevtralno točko.
Sandi Rihtarič
12
1.6.9 Pomanjkanje napredka (Lack off progress)
Pomanjkanje napredka se zgodi takrat, ko ni pričakovanega napredka v poteku igre v nekem
razumnem času. Tipično pomanjkanje napredka se zgodi, ko žoga obstane zataknjena med
roboti in ni nobenega premika žoge ali robotov. Po glasnem štetju sodnika do pet ob takšnem
dogajanju sodnik izreče besede ''lack off progress'' in premakne žogo na najbližjo nevtralno
pozicijo (črne pike). V primeru, da to dogajanja na igrišču ne spremeni, lahko sodnik
premakne žogo na drugo nevtralno polje.
1.6.10 Izven igrišča (Out off bounds)
Če se robot v celoti premika izven igrišča (bele črte), sodnik izgovori besede ''out off
bounds''. Ko sodnik izgovori besede, dobi robot enominutno kazen in prosi tekmovalno
ekipo za odstranitev robota z igrišča. Čas igre teče naprej (ni zaustavitve ure). Robotu je
dovoljena vrnitev, če se v eno minutnem odmoru zgodi zadetek (gol) in sledi ponovni udarec
s sredine igrišča.
Enominutna kazen se začne, ko je robot izvzet z igrišča. Vsak zadetek ekipe, ki ima robota
izven tekmovalnega polja še na igrišču, medtem ko je sodnik določil out off baunds, se ne
šteje kot zadetek. Robote, ki so izvzeti z igrišča zaradi zapustitve tekmovalnega polja, smejo
biti udeleženci ekipe popravit, če je to potrebno.
Po preteku kazenskega časa (ena minuta), se robota vrne v igro na najbližjo nevtralno točko,
kjer je bil odstranjen z igrišča in ne neposredno pred žogo.
Sodnik lahko robota s porivom vrne nazaj na igrišče, v primeru, da ga je drugi robot porinil
z igrišča (out off bounds).
Žoga lahko zapusti igrišče in se odbije nazaj. V primeru, da sodnik izreče besede ''out off
reach'', premakne žogo iz ''auta'' na najbližjo nevtralno točko na igrišču, kar lahko stori v
naslednjih primerih:
žoga se dalj časa nahaja izven igralne površine;
noben robot ne more žoge vrniti na igrišče, ne da bi v celoti zapustil igralno površino;
Uvod
13
sodnik presodi, če se žoga ne bo vrnila nazaj na igrišče.
1.6.11 Poškodovan robot (Damage robots)
V primeru, da je robot poškodovan, mora biti odstranjen z igrišča in preden se vrne v igro
mora biti popravljen. Tudi če je robot takoj popravljen, ne more nazaj v igro preden poteče
ena minuta, razen če sledi ponovni udarec s sredine igrišča. V primeru, da so vsi roboti izven
igrišča, se kazni izničijo in igra se nadaljuje z nevtralnim prvim udarcem (kickoffom).
Robot je poškodovan v naslednjih primerih:
ne odziva se na žogo ali pa se ne more premikati (izguba dela, napajanja itd.);
v primeru, da ponavljajoče zapušča igrišče ali pa se odpelje v nasprotna vrata;
vrti se v krogu okrog lastne osi.
Računalniki in oprema za servisiranje v območju igralne površine med igo niso dovoljeni.
Po navadi član ekipe odnese robota na dovoljeno mesto za servisiranje v bližini igralne
površine. Sodnik lahko dovoli kalibracijo senzorjev, računalnike in ostalo servisno opremo
na igralni površini samo za 5 minut pred vsako polovico tekme.
Po popravilu robota se ga vrne na najbližjo nevtralno točko, kot je bil odstranjen iz igrišča
in ne neposredno pred žogo. Robot je lahko vrnjen na igrišče le, če je napaka odpravljena.
V primeru, da je sodnik opazil, da ima vrnjen robot po popravilu isto napako, kot jo je imel
prej, se lahko sodnika vpraša, če se da robota odstraniti z igrišča in se igra naprej, brez
enominutne zakasnitve, enako kot da robota z napako sploh ne bi vrnili na igralno površino.
Samo sodnik lahko odloči, kdaj je robot poškodovan in samo on lahko pove, kdaj se robota
odstrani in kdaj vrne na igrišče.
V primeru, da sta poškodovana oba robota iste ekipe, dobi nasprotna ekipa prištet en zadetek,
in za vsako naslednjo minuto, ki jo mora ekipa z delujočima robotoma čakati se ji prišteje
dodaten zadetek.
Sandi Rihtarič
14
Po petih minutah odsotnosti, ekipa s poškodovanimi roboti izgubi igro. Vendar pa se to
pravilo uporablja le, ko ekipa z delujočimi roboti ni kršila nobenih pravil in nasprotnikovi
roboti niso poškodovani zaradi njihovih robotov.
1.6.12 Multipla obramba (Multiple defense)
Prekršek multiple obrambe se zgodi takrat, ko sta oba robota obrambne ekipe v kazenskem
prostoru pred vrati, sodnik izreče besede ''multiple defens'' in odmakne robota, ki je bolj
oddaljeni žogi na najbližjo nevtralno točko na igrišču. Sodnik lahko naredi to v vsakem
trenutku, medtem ko sta oba robota v polju pred vrati.
V primeru večkratne ponovljene kršitve multiple obrambe se robot označi kot poškodovan
(damage).
1.6.13 Prekinitev igre (Interruption of game)
V principu se igre ne prekinjajo. Sodnik lahko prekine igro v primeru kakšne situacije, o
kateri se mora posvetovati s sosodnikom ali ocenjevalno komisijo in v primeru, če neha
delovati elektronska žoga ter jo morajo nadomestiti.
Ko sodnik igro prekine, morajo vse robote ustaviti in ti morajo ostati na igrišču nedotaknjeni.
Sodnik se nato odloči, kako se bo igra nadaljevala, ali na mestu, kje je ostala, ali s ponovnim
udarcem s sredine.
1.7 Kodeks ravnanja (Code of conduct)
1.7.1 Poštena igra (Fair Play)
Pričakovano je, da vse ekipe igrajo pošteno in čisto igro robotskega nogometa. Prav tako je
pričakovano, da so vsi roboti grajeni v skladu s pravili. Roboti ne smejo povzročati namerne
škode ali motenj drugim robotom med regularnim tekmovanjem. Robotom ni dovoljeno
poškodovati igralne površine ali žogi. Ljudje ne smejo namerno motiti robotov ali povzročati
poškodb na igralni površini ali elektronski žogi.
Uvod
15
1.7.2 Vedenje (Behavior)
Od vseh udeležencev se pričakuje, da se obnašajo primerno. Celotno gibanje in obnašanje
naj poteka na prizorišču dogodka mirne narave.
1.7.3 Pomoč (Help)
Mentorji (učitelji, starši, skrbniki in ostali člani ekipe, vključno s prevajalci) nimajo pravice
vstopa na pripravljalno mesto udeležencev, razen če je izrecno dovoli organizacijski komite.
Gibanje znotraj delovnega prostora je dovoljeno samo sodelujočim tekmovalcem.
Mentorji se ne smejo dotikati, graditi, popravljati ali programirati katerega koli robota.
1.7.4 Delitev (Sharing)
Prvotni namen svetovnega RoboCupJunior tekmovanja je razumevanje, da je potrebno
tehnološki in kulturni razvoj deliti med RoboCupJunior udeleženci na turnirjih.
1.7.5 Tekmovalni tuh (Spirit)
Pričakovano je, da vsi udeleženci, študentje, mentorji in starši spoštujejo misijo tekmovanja
RoboCupJunior:
''NI POMEMBNO, ALI ZMAGAŠ ALI IZGUBIŠ, AMPAK ŠTEJE TO, KOLIKO SE
NAUČIŠ.''
1.7.6 Kršitve/diskvalifikacija (Violations/Disqualification)
Ekipe, ki kršijo pravila tekmovanja, so lahko s tekmovanja diskvalificirane. Možno je tudi
izključiti le osebo ali robota.
V manjših primerih kršenja pravil dobi ekipa opozorilo, sodnik oz. komisija jim pokaže
rumeno karto. Pri ponavljajočih se kršitvah ekipe je ta neposredno izključena in pokaže se ji
rdeč karton.
Sandi Rihtarič
16
1.8 Reševanje konfliktov (Conflict resolution)
1.8.1 Sodnik in pomočnik sodnika (Referee and referee assistant)
Vse odločitve med igro sprejme sodnik ali asistent sodnika. Odločata o poteku igranja, ljudeh
in objektih okrog igralne mize. Med igro so odločitve sodnika ali pomočnika sodnika
dokončne.
Kakšna koli diskusija s sodnikom ali pomočnikom sodnika se lahko konča z opozorilom. V
primeru ponavljajočega se pritoževanja ali motenja je oseba lahko nemudoma odstranjena
iz igre. Ob koncu igre sodnik pokliče vodje ekip za podpis rezultatnega lista. S podpisom
vodja ekipe sprejme končni rezultat v imenu celotne ekipe.
1.8.2 Pojasnilo pravil (Rule clarification)
Za pojasnila pravil se lahko obrnemo na člane tekmovanj tehnične ekipe ali organizacijskega
odbora RoboCupJunior, če je potrebno tudi med časom tekmovanja.
1.8.3 Sprememba pravil (Rule modification)
V primeru, da se pojavijo posebne okoliščine, kot so nepredvidene težave z roboti, lahko
predsednik RoboCup Junior organizacijskega odbora v povezavi s tehničnim odborom
pravila spremeni, seveda če je to potrebno tudi med turnirjem.
1.8.4 Regulativni status (Regulatory statutes)
Vsako tekmovanje RoboCup Junior si zastavi lastno proceduro tekmovanja (npr. pregled
robotov, intervjuje, vrstni red itd.). Takrat postane procedura del teh pravil.
Uvod
17
1.9 Igralna površina
Slika 1.5: Igralna miza [1]
1.10 Predpisi za ligo 2016
Glede na pravilo 1.3.8 nogometnih pravil za RoboCup Junior ima vsaka liga svoja pravila in
ta postanejo del pravil.
Sandi Rihtarič
18
Nogomet je sestavljen iz dveh podkategorij, ki se imenujeta odprta liga (Open League) in
lahka liga (Light Weight League). Vsaka se lahko deli na primarno in sekundarno ligo.
Za RoboCup Junior 2016 obstajajo naslednje podkategorije:
lahka liga – primarna,
lahka liga – sekundarna,
odprta liga.
1.11 Predpisi (Regulations)
1.11.1 Dimenzije (Dimensions)
Robot bo merjen postavljen navpično z vsemi sestavnimi deli in mora natančno ustrezati
naslednjim postavkam:
Slika 1.6: Dimenzije konstrukcij robota (pravila) [1]
*Držalo in zgornja oznaka robota smeta presegati višino.
**Masa vključuje ročaj, zgornje oznake pa ne vključuje.
***Udeležence pokličejo k temu, da vključijo varnostne zaščite za litij baterije.
Vsaka vdolbina za lovljenje žoge ne sme presegati globine 3 cm in mora za druge robote
omogočati odvzem žoge.
1.11.2 Omejitve (Limitations)
Komercialni vsesmerni objektivi oz. kamere niso dovoljeni.
Uvod
19
V primeru, da udeleženci uporabljajo vsesmerne kamere oz. leče, morajo na predstavitvi in
zagovoru pojasniti, kako so jih integrirali na svojega robota.
Napetostni pretvorniki navzgor so dovoljeni le za sistem streljanja na vrata (kicker). Ostale
napetosti v elektroniki ne smejo presegati napetosti 15 V za odprto kategorijo in 12 V za
lahko kategorijo. Vsak robot mora biti zgrajen tako, da dovoljuje preverjanje električnega
vezja in napajalne napetosti baterije, razen če je nazivna napetost očitna in se z lahkoto odčita
iz baterije.
Pnevmatski sestavni deli lahko uporabljajo le zrak iz okolice.
Moč naprave za streljanje (kicker) na vrata lahko sodniki preverijo kadarkoli med
delovanjem oz. potekom tekmovanja. Med vsako tekmo, med polčasi, lahko sodnik zahteva
testiranje naprave za streljanje na gol, tudi takrat, ko se vrne poškodovani robot iz popravila
v igro ali takoj po strelu na vrata oz. ob zadetku. Če sodnik presodi, da je naprava za streljanje
na vrata premočna, lahko zahteva uradno merjenje z napravo za merjenje moči strela.
1.11.3 Konstrukcija (constuction)
Robot mora biti konstrukcija ekipe udeležencev. Mentorji, učitelji, starši ali podjetja ne
smejo sodelovati pri dizajniranju, konstruiranju in sestavljanju robota.
Za konstrukcijo robota lahko uporabijo pripravljene kit komplete ali bloke kompletov samo
v primeru, če je primarna in bistvena struktura zamisel ter delo udeležencev ekipe. To
pomeni, da so lahko uporabljeni kit kompleti, ampak morajo biti modificirani od
udeležencev. Ni dovoljeno slediti gradnji kit kompletov in zamenjati nekaterih delov z
drugimi. Znaki kršitve pri gradnji robota iz kit kompleta so vidni na enakosti robotov več
ekip, identični so elektronika, sestavni deli in funkcionalnost robota.
Roboti morajo biti zgrajeni tako, da jih vodja ekipe lahko zažene sam, brez tuje pomoči.
Ker so roboti v stiku drug z drugim in aktivnimi deli, kot so naprava za streljanje na vrata,
morajo biti vsi aktivni deli robota dobro zaščiteni z dovolj odpornim materialom (npr.
električna vezja, pnevmatske naprave, pnevmatski vodi). Zaščiteni morajo biti tako pred
dosegom človeške roke kot drugih robotov. Za transportiranje in premikanje robotov so
Sandi Rihtarič
20
priporočljive varne vreče. Moramo se izogniti tudi kratkim stikom ali kemijskim reakcijam
baterij.
1.11.4 Programiranje (Programing)
Robota morajo programirati izključno člani ekipe. Mentorji, učitelji, starši ali podjetja ne
smejo sodelovati pri programiranju ali razhroščanju programa robotov. Za programiranje
robotov je lahko uporabljen kateri koli jezik, vmesnik ali integrirano razvojno okolje (IDE).
Uporaba programa ali dela programa, ki je priložen h kakšnemu kit kompletu, ni dovoljeno
uporabljati. Ni dovoljeno uporabljati podprogramov, tudi če so modificirani.
1.11.5 Pregled in razgovor (Inspection and Interviews)
Robote je potrebno pregledati in certificirati vsak dan pred pričetkom prve tekme.
Organizacijski komite lahko zahteva tudi druge preglede, če je to potrebno. Rutinski pregled
zajema:
tehtanje robota za podkategorijo (Slika 1.6),
dimenzije robota za podkategorijo (sSlika 1.6),
napajalna napetost baterij za podkategorijo (Slika 1.6),
moč naprave za streljanje na gol, v primeru, da jo robot ima (kicker).
Dokaz, da robot ustreza danim zahtevam, mora biti vedno dosegljiv, na primer dodan mora
biti v podrobni dokumentaciji. Ekipi lahko v vsakem trenutku dogodka sledi intervju o
razvoju njihovega robota. Organizacijski odbor bo uredil vse potrebno, da bodo opravili
intervju ekip v prvih nekaj dneh. Ekipa mora prinesti oba robota in programsko kodo do
mesta, kjer bo opravljen razgovor. Med razgovorjem mora vsaj en član ekipe znati razložiti
podrobnosti o načrtovanju, gradnji in programiranju robota, posebej konstrukcijo ter
program. Član komisije intervjuja lahko prosi ekipo za predstavitev. Prav tako lahko prosi
ekipo, naj napišejo preprosto kodo, da dokažejo, da so sposobni napisati program za svojega
robota.
Uvod
21
1.11.6 Kršitve
Roboti, ki niso v skladu z zgoraj navedenimi pravili, ne smejo sodelovati na tekmovanju. V
primeru, da so kršitve opažene med potekom igre, je ta ekipa diskvalificirana za tisto igro.
Če se kršitve ponavljajo, je ekipa lahko diskvalificirana s tekmovanja.
1.12 Tehnične specifikacije za pulzno nogometno žogo
Žoge s takšno specifikacijo lahko zaznavamo s senzorji proizvajalca HiTechnic (IRSeeker –
poda nam informacijo o razdalji in kotu), prav tako jo lahko zaznavamo s preprostimi IR-
sprejemniki (TSOP1140, TSOP31140, GP1UX511QS, itd. – te nam nudijo on-off detekcijo,
z možnostjo merjenja razdalje).
1.12.1 IR-svetloba
Žoga oddaja infrardečo svetlobo valovne dolžine 920 nm–960 nm, pulzne oblike s frekvenco
40 Khz. Diode v žogi morajo imeti dovolj širok razpon oddajanja, da se zmanjša popačenost
oddajnega signala.
1.12.2 Premer žoge
Premer žoge mora biti 74 mm in dobro uravnotežena žoga je primerna za igranje.
1.12.3 Modulacija
Elektronika žoge modulira izhodni signal s trapezoidnim izmeničnim signalom frekvence
1,2 KHz. Vsak cikel traja 833 mikrosekund in obsega 8 pulzov polne moči, sledijo štirje
pulzi 1 4⁄ moči, nato štirje pulzi 1 16⁄ moči in štirje pulzi 1 64⁄ moči, nato sledi 346
mikrosekund prekinitev (0 moči). Tokovna špica elektronike je nekje 45 mA–55 mA.
Radialna svetilnost je okrog 20 mW v direktni smeri na eno diodo.
Sandi Rihtarič
22
1.12.4 Obarvanost
Lupina žoge je nevtralne barve. Nikakor ne sme vsebovati zelene, rumene ali modre barve,
da ne zmede robotov.
1.13 Tehnične specifikacije za pasivno žogo
Pasivna žoga je v proces razvoja vključena od leta 2016, uradnega dobavitelja žoge še ni.
Tehnične specifikacije za žogo so:
oranžna barva,
na žogi ne sme biti nobenih oznak,
površina mora biti gladka in čvrsta, žoga pa votla,
premer žoge mora biti enak kot original (74 +/- 10 mm).
1.14 Naprava za merjenje moči strelne naprave
Vsi roboti z napravo za streljanje na gol morajo na meritev moči streljanja, tudi če igrajo s
pasivno žogo. Ta naprava na robotu izmeri strelno moč naprave za streljanje, izdelava je zelo
preprosta, s preprosto dobavljivimi materiali. Naprava lahko izmeri moč naprave za
streljanje tudi do dolžine 22 cm.
Slika 1.7: Naprava za merjenje moči strelne naprave
Izvedba meritve poteka na naslednji način:
položite žogo tik pred klanec in zraven robota z napravo za streljanje naprej;
aktivirajte napravo za streljanje za en strel;
izmerite pot žoge na rampi; razdalja ne sme biti večja od 22 cm.
Predstavitev robota za igranje nogometa
23
2. Predstavitev robota za igranje nogometa
Pregled zadnje in dovršene konstrukcije robota (Slika 2.1).
Slika 2.1: Robot
Na zgornji plošči smo namestili tako rekoč ''možgane'' robota, prav tako je dodan napetostni
stabilizator za napajanje plošče Arduino. Ta robot je delo triletnih izkušenj s tekmovanji
Robocup Junior, v celoto so se zlile ideje dijakov, znanje predavateljev in izkušnje
tekmovalcev. Menim, da je konstrukcija dovolj dobra za naslednje generacije dijakov. Prav
tako upamo, da bomo v naslednjih letih uspeli pridobiti konkurenco na domačih tleh. Slika
2.2 prikazuje sestavne dele zgornje konstrukcijske plošče in tiskanine.
Sandi Rihtarič
24
Slika 2.2: Sestavni deli zgornje plošče robota
Oznaka robota je sestavni del robota, velikost in namestitev nalepke določajo mednarodna
pravila za tekmovanje na RoboCupJunior 2016 (poglavje 1.3.7, Slika 1.4: Oznaka robota
[1]).
Žiroskop MCU6050 [2] je potreben za smer igranja in je eden izmed ključnih sestavnih delov
za regulacijo smeri robota. Slika 1.1 prikazuje smer igranja robotov, Slika 6.2 gibanje in
usmeritev robota na podlagi.
Tipke na zgornji plošči služijo zagonu programa, z njimi lahko ob vsakem prvem udarcu
(kick-off) zaženemo oba robota hkrati (poglavje 1.6.3). LED-diode pa smo uporabili za
signalizacijo izvajanja programa.
Plošča Arduino MEGA [3] so ''možgani'' robota, na njem se izvajajo vse operacije, ki
omogočajo robotu nemoteno delovanje. Ploščico napajamo s 5 V-napetostjo iz stabilizatorja
L7805 [4], seveda pa je pred tem nameščena tokovna zaščita. Prav tako so nameščene
tokovne zaščite za vsak posamezni močnostni gonilnik motorjev. Povezovalne žičke na
gonilnike in za napajanje motorjev so vidne na Slika 2.2.
Predstavitev robota za igranje nogometa
25
Držalo robota služi za dvig ali premik robota med tekmovanjem. V pravilniku o gradnji
robota je jasno navedeno, da je držalo lahko višje od dovoljene višine robota pod pogojem,
da na njem ni kakšnega vitalnega dela robota (poglavje 1.3.6).
Na spodnji strani zgornje plošče so nameščeni IR-senzorji [5]. Kot smo že v uvodu omenili,
so nam ti povzročali pravo težavo, saj nikakor nismo uspeli najti pravih senzorjev, s katerimi
bi uspeli dobivati vsaj približno premosorazmeren signal med amplitudo A/D-pretvornika in
razdaljo žogice do robota.
Slika 2.3: IR-sprejemniki
Slika 2.3 prikazuje IR-senzorje [5], s katerimi zajemamo signal elektronske žoge, ki jo je
predpisal tehnični komite RoboCupJunior (poglavje 1.12) [1].
Spodnja konstrukcijska plošča je prav tako izdelana iz vitroplasta, saj je dovolj trden in hkrati
lahek (poglavje 1.11.1). Pri spodnji plošči je pomembno, da se težišče prestavi čim nižje
(Slika 5.1). S prvotnimi roboti smo imeli prav to konstrukcijsko napako, zaradi previsokega
težišča se je namreč robot na igrišču nagibal, kar pa ni dobro ne za usmerjenost in ne za
željeno hitrost robota. Zelo pomembno nam je, da se dijaki in študenti pri vseh teh ovirah
nekaj naučijo. Pred kratim mi je nekdo dejal, da je prav, da se včasih tudi profesorji od
Sandi Rihtarič
26
dijakov ali študentov kaj naučijo. Na spodnji plošči se nahajajo pritrjeni motorji [6] z
vsesmernimi (OMNI) kolesi (SSlika 2.4). Na spodnji strani robota se nahajajo še svetlobni
senzorji [7], ki nam služijo za detekcijo bele črte oz. skrajnih robov igralne površine (Slika
2.6). V pravilih igranja (poglavje 1.6.10) lahko preberemo, kako pomembno je imeti dober
sistem za zaznavanje belih črt, sicer se hitro lahko zgodi, da zaradi teh senzorjev igro
izgubimo.
Slika 2.4: Kinematika in smeri gibanja vsesmernega (OMNI) kolesa
Vsesmerna kolesa se zelo razlikujejo od navadnih koles, njihova prednost je, da se lahko
gibajo v vsakem trenutku v željeno smer. Če vzamemo primer avtomobila (Slika 2.5), se
sicer lahko obrača v vse smeri, vendar v primeru, da ima smer določeno naravnost v
koordinati X, mu kolesa ne dovoljujejo premikov v koordinati Y (Slika 2.4).
Slika 2.5: Primerjava gibanja z avtomobilom
Predstavitev robota za igranje nogometa
27
Slika 2.6: Spodnja plošča robota
Nameščeni motorji [6] so bili izbrani glede na pravila tehničnega komiteja, v glavnem nas
omejuje dovoljena napajalna napetost robota (poglavje 1.11).
Pogledali bomo, kaj še se skriva med ploščama. Nameščeni so gonilniki, baterija [8],
povezave do motorjev ter močnostnih gonilnikov motorjev (Slika 2.7). Gonilniki motorjev
služijo za pogon motorjev s pulzno širinsko modulacijo, ki jo dobimo iz kinematskega
modela robota, motorje poganjamo glede na željeni položaj žoge na igrišču.
Slika 2.7: Sestavni deli robota med zgornjo in spodnjo ploščo
Sandi Rihtarič
28
3. Opis strojne opreme
Robot SOCKY10 je sestavljen za potrebe tekmovanja in izobraževanja srednješolcev, zato
je pomembno, da v tem poglavju natančno opišemo posamezne sestavne dele robota, prav
tako pa navedemo, kje in kako priti do teh komponent.
3.2 Napajanje
Da smo zadostili zastavljenim zahtevam, smo izbrali 3 celično Lipo2 baterijo (Slika 3.1) [8].
Vezje (Slika 3.20: ) zahteva dva napetostna nivoja, tako je napajanje močnostnega gonilnika
motorjev 12 V, za mikroprocesor pa potrebujemo 5-voltno stabilizirano napetost [4].
Pretvorbo napetosti iz 11,1 V na 7 V smo izvedli z nastavljivim DC/DC poretvornikom
navzdol (step down pretvornikom) [9]. Samo ime pretvornika navzdol že pove, da na svojem
izhodu proizvaja nižjo srednjo vrednost napetosti, kot je priključena na vhodu [10]. Paziti
smo morali na medsebojne motnje zaradi večjih tokov motorjev. Ti lahko povzročajo
inducirano napetost, zaradi česar se lahko µK3 izključi oz. vnovično zažene. Rešitev smo
našli v ločenih ploščah in sklenjeni masi v eni sami skupni točki.
Slika 3.1: Lipo baterija [9] in DC/DC step down pretvornik [10]
2 3 celična Li-polimerska baterija z nazivno napetostjo 11,1 V
3 µP: okrajšava za mikroprocesor
Opis strojne opreme
29
3.3 Razvojna plošča ARDUINO MEGA
Uporabili smo razvojno orodje Arudino MEGA 2650 V2.0 (Slika 3.2) [3], ki je v osnovi
namenjeno učenju programiranja. Za to ploščo smo se odločili, ker ponuja veliko možnosti
dograjevanja robota in testiranja v učnih procesih. Tiskanino robota smo izdelali tako, da so
skoraj vse komponente hitro snemljive, zato se lahko v primeru okvare vsaka komponenta
hitro zamenja (Slika 5.5).
Na plošči je 8-bitni Atmelov procesor ATmega 2560 (Slika 3.3 in Slika 3.2) [11], ki ima 54
digitalnih vhodno-izhodnih priključkov in 15 digitalnih I/O priključkov, ki jih lahko
uporabimo za PWM 4 . Na plošči se nahaja še 16 analognih vhodov in štiri UART-
komunikacije5 (8 priključkov).
Procesor deluje s taktom 16 MHz in je sposoben opraviti 16.000.000 ukazov v eni sekundi,
kar lahko razberemo iz podatkovnega lista (1 MIPS/1 MHz) [11]. Na tržišču se je v zadnjih
letih pojavilo veliko različnih razvojnih plošč (Raspberry PI, BeagleBone, RedBoard in še
mnoge druge), ki bi jih prav tako lahko uporabili za našo aplikacijo, vendar smo zaradi
dostopnosti in odprtosti strojne ter programske opreme izbrali to ploščo.
Slika 3.2: Plošča Arduino Mega2560 [3][11]
4 PWM: okrajšava za pulzno širinsko modulacijo
5 UART: strojna serijska dvožična komunikacija
Sandi Rihtarič
30
Slika 3.3: Arduino MEGA [3]
3.4 Elektromotorji
Pogon robota sestavljajo trije 12 V enosmerni motorji [6], ki so pritrjeni na spodnjo ploščo
robota in glede na središče zamaknjeni v krogu za 120°. Debelina osi je 4 mm, kar nam
odgovarja za vsesmerna (OMNI) kolesa6 (Slika 3.11: Prilagajanje vsesmernih (omni) koles).
V lahki kategoriji ne sme teža robota presegati 1,1 kg (poglavje 1.11), zato smo pri izbiri
motorjev še posebej pazili na težo. Vsi motorji skupaj ne presegajo teže 270 g oz. vsak motor
le 90 g (Slika 3.4).
6 Omni kolesa omogočajo gibanje v vse smeri.
Opis strojne opreme
31
Slika 3.4: Motorji robota [6]
Po tehničnih podatkih sodeč doseže motor maksimalno število vrtljajev 500 vrt/min (RPM)
7 pri 12 V. V primeru, da je na motorju nameščeno kolo s premerom 6 cm, bi takšen motor
premagal približno 1,6 m v eni sekundi, ker je dolžina igrišča 1,83 m, bi lahko sklepali, da
potrebujemo okrog sekunde za premik z ene starani igrišča na drugo stran. To so bili prvotni
cilji, ki smo si jih zadali pri načrtovanju. Triletna izkušnja nam je prav tako pomagala pri
izbiri moči motorja. Izbrali smo motor s 6 kg-cm navora, kar pomeni, da lahko na ročici
enega cm dvigne oz. premakne 6 kg. Lahko pa jih pretvorimo v fizikalne enote in dobimo
0,55 Nm navora. Pot, ki jo lahko premaga motor pri nazivni napetosti, je odvisna od števila
vrtljajev na minuto in obsega koles, kar prikazuje enačba (2.1).
𝑣 = ѡ𝑟 = 5002𝜋 𝑟𝑎𝑑 0.03 𝑚
60 𝑠≅ 1,5 𝑚/𝑠 (2.1)
Pri tem je:
𝑣 – hitrost premikanja robota (m/min),
ѡ – hitrost rotacije kolesa (rad/s),
r – polmer kolesa (m),
7 RPM: oznaka za število obratov gredi na minuto in je ekvivalent vrt/min
Sandi Rihtarič
32
3.5 Močnostni krmilnik elektromotorjev
Močnostni krmilniki za elektromotorje [12] so nam predstavljali precejšnjo oviro. Krmilniki
z dovolj velikim tokom so relativno dragi, zato smo pri prvem robotu uporabili gonilnik, ki
ga ponuja proizvajalec opreme Arduino (Slika 3.5). Za prvo implementacijo smo prilagodili
konstrukcijo, da se plošča Arduino MEGA [3] in iz spodnje strani montiran gonilnik [12]
pravilno prilegata (desno na Slika 5.5). Tako smo se izognili dodatnemu ožičenju.
Slika 3.5: Gonilnik motorjev [12]
Nadaljevanje konstruiranja in potreba po močnejših motorjih sta nas privedli do tega, da smo
morali iskati rešitev za močnejši krmilnik. Prva izbira se je ponujala z integriranim vezjem
L298N. Slika 3.6 prikazuje načrt povezav H-mostičnega vezja z L298N. Slika 3.7 prikazuje
modul H-mostičnega vezja z L298N [13].
Slika 3.6: Shema H-mostičnega vezja [13]
Opis strojne opreme
33
Slika 3.7: H-mostično vezje [13]
Integrirano vezje L298N omogoča 2 A konstantnega toka in do 3 A tokovnih konic. V
vmesni fazi nam je ta krmilnik zadostoval, vendar smo za večjo odzivnost in hitrost robota
potrebovali močnejši krmilnik. Odločili smo se za samogradnjo.
Za izdelavo močnostnega krmilnika smo uporabili klasično strukturo H-mostičnega vezja
[13] (Slika 3.8). S pravilno kombinacijo krmiljenja stikal lahko spreminjamo smer vrtenja
gredi DC-motorja (vklop stikala 1 in 4 povzroči tok skozi DC8-motor v eni smeri, vklop
stikala 2 in 3 pa v drugi smeri). Za stikala lahko uporabimo poljubne polprevodniške krmilne
elemente (bipolarne tranzistorje, MOS-FET tranzistorje, IGBT-tranzistorje …). Mi smo se
odločili za cenovno ugodno rešitev in smo izbrali MOS-FET-tranzistor BUZ11 [14].
Slika 3.8: Struktura H-mostičnega vezja
V H-mostičnem vezju je pri krmiljenju posameznih tranzistorjev potrebno upoštevati
zakasnitve vklopov in izklopov. V primeru, da ne krmilimo pravilno, se ob preklopih
gornjega in spodnjega tranzistorja v posamezni polmostični vezavi zgodijo velike tokovne
8 DC –enosmerni motor
Sandi Rihtarič
34
konice, ki ustvarijo velike toplotne izgube in posledično tudi uničenje stikalnih elementov.
Za pravilno krmiljenje tranzistorjev smo se odločili poiskati prožilna integrirana vezja, ki
imajo vgrajene zakasnilne čase ali pa imajo možnost nastavitve le-teh. Na tržišču je veliko
integriranih prožilnih vezij, ki lahko prožijo polmostično vezje (eno vejo, torej en gornji in
en spodnji tranzistor), polnomostično vezavo (dva gornja in dva spodnja tranzistorja) ali
3-fazne mostične vezave (tri gornje in tri spodnje tranzistorje). Za uporabo v naši aplikaciji
smo se odločali med integriranimi vezji HIP2120/21, LM5105, LM5106 in Si8230/1/2/7.
Odločili smo se za vezje Si8231 (Slika 3.9), podjetja Silicon Labs, v SOIC-16 WIDE ohišju
[15].
Slika 3.9: Si8231/4 izolirani gonilnik z enim vhodom [15]
Za to integrirano vezje smo se odločili, ker imamo možnost krmiljenja z enim
PWM-signalom in hkrati možnost nastavljanja mrtvega časa (Slika 3.10).
Slika 3.10: Prikaz mrtvih časov pri preklopih [15]
Opis strojne opreme
35
3.6 Kolesa
Izbira koles nam je v prvotni fazi povzročala velike težave, saj smo poskušali z raznovrstnimi
vsesmernimi (OMNI) kolesi (Slika 3.11) po nekaj odigranih tekmah po Evropi pa smo le
ugotovili, kakšna potrebujemo. Zagotavljati morajo dober oprijem na podlago igralne
površine in neovirano gibanje robota v vse smeri. Levo kolo na Slika 3.11 je bilo najprej
premajhno in je imelo slab oprijem. Sredinsko kolo (Slika 3.11) nam je močno izboljšalo
opijem na podlago, vendar smo bili še zmeraj prepočasni. Zadnje desno kolo na Slika 3.11
in del kolesa na Slika 3.12 pa je dovolj veliko ter ima odličen oprijem na igralni površini.
Tako smo kolesa sami natisnili s 3D-tiskalnikom.
Slika 3.11: Prilagajanje vsesmernih (omni) koles
Slika 3.12: Pripravljeno kolo za 3D-tiskalnik
3.7 Ultrazvočni senzorji
Na robotu je potrebno opravljati meritev razdalje, vsaj pri robotu, ki služi na polju kot vratar,
saj je lokacija robota pomembna. V pravilih je izrecno zapisano (poglavje 1.3.9), da se
meritev razdalje ne sme izvajati s pomočjo svetlobe, saj bi lahko vplivali na nasprotne
robote, zaradi česar bi lahko bili diskvalificirani.
Sandi Rihtarič
36
Na tej točki izkoristimo merjenje hitrosti z metodo zvočnega odboja. Senzor deluje tako, da
odda zvočni signal izven našega slušnega območja in nam vrne dolžino impulza sorazmerno
z razdaljo (Slika 3.13). Po enačbi (2.2), ki je podana za določen tip senzorja v programu,
preračunamo razdaljo.
Slika 3.13: Prikaz delovanja ultrazvočnega senzorja [16]
Ker potujejo ultrazvočni valovi s hitrostjo zvoka9, ki znaša 340,29 m/s, lahko izračunamo
razdaljo v enačbi (2.2).
𝑠 = 𝑐𝑡 (2.2)
Pri tem je:
s – razdalja (m),
c – hitrost (m/s),
t – čas (s).
3.8 IR-senzorji
Detekcija elektronske žoge (poglavje 1.5), ki oddaja svetlobo v infrardečem spektru s
frekvenco 1200 Hz 10 , sodi med najpomembnejše naloge pri gradnji robota za igranje
nogometa. Po mnogih poskusih smo najboljše rezultate dobili z 38 kHz sprejemno IR-diodo
SFH5110-38 (Slika 3.14) [5].
9 Hitrost zvoka se označi s črko c in je v zraku odvisna od gostote zraka ter temperature.
10 Hertz (Hz) ali slovensko herc je izpeljana enota za frekvenco.
Opis strojne opreme
37
Slika 3.14: IR-sprejemnik SFH 511 [5] in vezalni načrt
(slika, izdelana v programu Fritzing.)
Sprejemna dioda ima za boljši vpad svetlobnih žarkov sprednjo lečo jajčaste oblike.
Zagotovo smo s testiranjem in izločanjem sprejemnih diod ugotovili, da nam ta SFH 5110-
38 najbolj ustreza za dano nalogo, saj zagotavlja detekcijo žoge na nekaj metrov. Žal je
potrebno pri sprejemnih diodah paziti na serijo, saj se dogaja, da dobimo pri istem
proizvajalcu iz druge serije različne rezultate. Te nepravilnosti lahko odpravimo programsko
ali s prilagojenim vezjem.
Ugotovili smo, da moramo na izhode sprejemnikov vezati RC-filtre, saj so nam nenatančni
podatki zaradi nihanja napetosti povzročali veliko težav pri odčitavanju vrednosti. Tako
lahko v enačbi (2.3) prikažemo frekvenco odčitavanja.
𝜏 = 𝑅𝐶 (2.3)
Pri tem je:
𝜏 – časovna konstanta polnjenja kondenzatorja,
𝑅 – upornost RC-filtra,
𝐶 – kapacitivnost RC-filtra.
Sandi Rihtarič
38
Za izhodni filter smo izbrali upor 100 kΩ in kondenzator 100 nF (Slika 3.14). Pri teh
elementih dobimo časovno konstanto 10 ms, kar pomeni, da se nam je lahko v eni sekundi
vrednost spremenila 100-krat, kar je bilo za našo aplikacijo več kot dovolj.
3.9 Fotoupor
Fotoupor [5] smo uporabili v elektronskem vezju, ki nam na igrišču omogoča detekcijo bele
in črne črte. Sestavili smo preprost napetostni delilnik (Slika 3.15), zraven pa smo dodali
svetleči diodi (LED-D), ki ustvarita močno svetlobo, da izločimo vplive okolice. LED-D
sveti med 5 in 10 mm nad površino, svetloba se odbija v fotoupor in glede na jakost odboja
svetlobnih žarkov (odvisno od barve odbojne površine) se spreminja napetost delilnika.
Slika 3.15: Fotoupor in vezje za detekcijo črt na igrišču
Svetlobni senzorji služijo predvsem za zunanje robove igrišč, preračunana hitrost robota je
nekje 1,6 m/s oz. 160 cm/s. Pri debelini stranske črte 2 cm bo po teh izračunih pri najvišji
hitrosti malo dlje kot stotinko sekunde. Podobno kot pri IR-senzorjih smo na izhod senzorja
morali dodati RC filter s takšno konstanto (enačba (2.3)). Sicer smo elemente izbrali tako,
da smo bili na zgornji meji. V primeru, da bomo v prihodnje še imeli težave s črtami, bomo
morali časovno konstanto zmanjšati.
Opis strojne opreme
39
3.10 Stikala in tipke
Stikalo ali tipko uporabimo za izbiro menija ali vklop robota. To sta preprosta elementa, s
katerima se razlagajo logična vrata in s tem logične funkcije. Dijaki se pri miktrokrmilnikih
prvič srečajo s stabilizacijo nivoja napetosti na vhodu uK. To lahko izvedejo tako, da
vključijo notranji upor ali pa ga dodajo zunaj. Dejstvo je, da morajo poskusiti obe možnosti
in se naučiti, kašna je razlika in ali sploh je.
Slika 3.16: Tipke in stikala
3.11 Kompas
Zaradi pravilne postavitve robota na igrišču in pravilne smeri igranja je bil kompas
nepogrešljiv element. Pri izdelavi robota lahko uporabimo več vrst kompasov, saj je na trgu
kar nekaj proizvajalcev te opreme. V nalogi smo uporabili pripravljeno ploščico s čipom
tehnologije MEMS [17] HMC5883L [18], (Slika 3.17).
Sandi Rihtarič
40
Slika 3.17: Senzor magnetnega polja in vezalna shema (slika, izdelana v programu
Fritzing)
Izkazalo se je, da kompas vendarle ni prava izbira, saj so se dijakom nenehno pojavljale
težave z železnimi konstrukcijami pod mizo, tako smo se odločili za menjavo opreme, s
katero se v igralni površini izravnavamo. V tej nalogi to predstavlja ključni del, saj je
temeljila regulacija prav na smeri igranja.
3.12 Žiroskop
Kot smo že omenili, smo po mnogih poskusih tekmovanja s kompasom ugotovili, da bomo
morali poiskati boljšo rešitev. Merjenje kotov z žiroskopom je preprosto, seveda pod
pogojem, da imamo knjižnice v IDE-programu za programiranje arduinov. Veliko teh
senzorjev že ima celovito rešitev oz. vgrajen pomnilnik, kamor zabeleži izmerjene podatke,
Opis strojne opreme
41
naša naloga pa je bila te podatke zbrati in obdelati. MPU6050 [2] je senzor (Slika 3.18)
nizkega cenovnega razreda, vendar zadostuje našim potrebam. Po kalibraciji ima zelo
majhno lezenje, v večini primerov za nas zanemarljivo. Za srednješolce bi priporočali, da
začnejo z žiroskopom ali kompasom, ki ima smeri podane z analognimi vrednostmi, saj je
mogoče začetnikom lažje prebrati analogno vrednost z mikrokrmilnikom kot vzpostavljati
I2C-komunikacijo. Seveda pa je tudi to preprosto, če uporabniki znajo poiskati prave
informacije. Opažamo, da se dijaki, ki sodelujejo v teh projektih, veliko naučijo in so na
koncu šolanja in med šolanjem veliko ustvarjalnejši kot ostali.
Slika 3.18: Žiroskop in pripadajoče vezje [2]
3.13 Prikazovalnik
Elektronika nam omogoča veliko možnosti preverjanja delovanja strojne opreme ali
pravilnega delovanja programa. Te naloge bi lahko opravile na primer LED-lučke, sedem-
segmentni prikazovalnik ali grafični prikazovalnik. Na robota smo namestili grafični
prikazovalnik 12864B [19] (Slika 3.19), velikosti 128 X 64 pik in paralelno štiribitno
komunikacijo. Prav tako omogoča serijsko komunikacijo, ki jo bomo zagotovo uporabili pri
nadgradnjah robotov.
Pri novih generacijah robotov teh zaslonov sicer ne uporabljamo več, saj imajo preveliko
težo in ker je teža ena izmed omejitev (poglavje 1.11.2), smo ga morali odstraniti. Seveda
pa se moramo zavedati, da je tudi ta element dandanes predvsem za elektronike neizbežen.
Dijaki imajo predstavo, da je implementacija grafičnega prikazovalnika umetnost, a vemo,
Sandi Rihtarič
42
da je v okolju, kjer so vse knjižnice in primeri za izpis že pripravljeni, to dejansko zelo
preprosto.
Slika 3.19: Prikazovalnik [19] in vezalna shema (slika, izdelana v programu Fritzing)
Opis strojne opreme
43
3.14 Tiskanine
Tiskanine smo izrisali s programom Sprint Layout. Pri tem je najpomembneje, da smo se
naučili, kako izdelati tiskanino dovolj robustno, da med igro ne pride do prekinitev oziroma
razpok na tiskanem vezju. Na Slika 3.20 je razvidno, kakšne korenite spremembe smo
naredili med prvimi in zadnjimi izdelanimi roboti. Seveda se še zmeraj pojavljajo
pomanjkljivosti, saj zlato pravilo govori, kakor hitro rešimo eno težavo, se nam pojavi ducat
drugih.
Največje težave so se pojavljale pri IR-senzorjih, ker so na robu plošč izpostavljeni
neposrednim udarcem drugih robotov. Težavo smo odpravili tako, da smo jih zamaknili
navznoter in močno odebelili zunanje vezi tiskanega vezja.
Omenili smo že, da smo prve robote zgradili iz dvojnih tiskanih vezij, ki smo jih med seboj
povezali. Kot se je kasneje izkazalo, je bila tudi ta metoda zgrešena.
Slika 3.20: Zgornja tiskanina, razlika med prvo in zadnjo ustvarjeno
Pri izdelovanju tiskanin postanejo dijaki pravi strokovnjaki za načrtovanje in tisti, ki imajo
voljo ter željo, se tudi posvetijo izdelovanju. Večina tiskanin je izdelana z LPKF ProtoMat
C30 rezkalnikom. V splošnem dijaki med izobraževanjem ne morejo rezkati sami, saj so
svedri in rezkarji relativno dragi in zelo krhki, kar pomeni, da jih lahko hitro zlomimo.
Znanje in veščine dijakov, ki jih pridobijo pri izdelavi teh robotov, so tako rekoč
neprecenljive za nadaljnje šolanje ali zaposlitev.
Sandi Rihtarič
44
4. Opis programske opreme
4.2 Integrirano razvojno okolje (IDE)
Italijanski proizvajalec strojne opreme Arduino ponuja brezplačno programsko opremo [20],
ki je bila že v začetku namenjena za učenje programiranja. IDE prikazuje Slika 4.1. ''Mirno
lahko rečemo, da je eden najbolj popularnih razvojnih sistemov v zadnjih petih letih.
Takšnega razmaha verjetno tudi avtorji Arduina niso pričakovali.'' [21].
Slika 4.1: Integrirano razvojno okolje
Programsko opremo smo namestili z uradne spletne strani [20], tik za tem je bilo potrebno
še namestiti gonilnike za strojno opremo.
Pravilno bi bilo, če povemo več o programiranju, saj je diplomsko delo namenjeno
predvsem izobraževanju mladih. Slika 4.1 prikazuje programsko okolje, pobliže smo si
ogledali orodno vrstico.
Implementacija segmentov na konstrukcijo
45
Klik na zavihek »Datoteka« v orodni vrstici nam je ponudil naslednje možnosti (Slika 4.2):
Slika 4.2: Zavihek Datoteka v programu Arduino
Nova – odpremo novo datoteko.
Odpri – odpremo shranjene datoteke.
Primeri – programe, ki jih imamo v mapi »Primeri« shranjene, si lahko ogledamo.
veliko jih je že nameščenih ob namestitvi samega programa. Priporočljivo je, da se
tega poslužijo začetniki in si olajšajo marsikatero zagato.
Zapri – program se zapre.
Shrani – shranimo program.
Shrani kot … – program shranimo na poljubno mesto.
Naloži – nalaganje programa v mikrokontroler.
Postavitev strani – pred tiskanjem lahko uredimo stran.
Natisni – tiskanje dokumenta.
Zapri – program se zapre.
Naslednjega v orodni vrstici, ki ga na kratko opišemo, je zavihek »Uredi« (Slika 4.3). Ta
meni je namenjeni zgolj urejanju besedila. Za nas ni zelo pomemben, je pa prav, da so končni
programi urejeni, poravnani in komentirani.
Sandi Rihtarič
46
Zavihek »Skica« (Slika 4.3) nam ponuja naslednje možnosti:
Slika 4.3: Zavihek Skica v programu Arduino
Preveri/prevedi – sintaktično preveri program in ga prevede.
Naloži – naloži program v pomnilnik mikrokrmilnika.
Naloži s programatorjem – v primeru, da imamo programator s SPI vodilom.
Export compiled Binary – izvozi strojno kodo.
Pokaži mapo skice – odpre mapo, v kateri je program shranjen.
Include Library – uvozi knjižnico.
Dodaj datoteko … – programu lahko priložimo poljubno datoteko.
Sledi zavihek »Orodja« (Slika 4.4), pri katerem bomo opisali največ pomembnih nastavitev,
predvsem za začetnike. Ta zavihek vsebuje sledeče:
Slika 4.4: Zavihek ''Orodje'' v programu Arduino
Avtomatsko formatiranje – pobrišemo vse hranjene podatke v pomnilnikih.
Arhiviraj skico – izdela arhiv programa (ustvari zip datoteko).
Implementacija segmentov na konstrukcijo
47
Popravi kodiranje in ponovno naloži – pregleda pravilnost kode in ponovno naloži
program.
Serijski vmesnik – pokaže nastavitve serijskega vmesnika.
Plošča:____ – izberemo testno ploščo Arduino.
Vrata:_____ – izberemo serijska komunikacijska vrata (ta najdemo v nastavitvah
računalnika, v meniju ''Naprave in tiskalniki'').
Programator: ''AVRISP mk2'' – izbira programatorja za programiranje z ISP-
vmesnikom.
Zapeči zagonski nalagalnik – naloži bootloader11 na testno ploščo.
Naslednji zavihek (Slika 4.5) predstavlja »Pomoč«. Predlagamo, da se vsi začetni koraki
pričnejo natanko tukaj, vse podrobne informacije se nahajajo v spodnjih zavihkih. Osnovne
informacije za delo s testnimi ploščicami Arduino so navedene v tem sklopu.
Slika 4.5: Zavihek ''Pomoč'' v programu Arduino
Testne plošče Arduino so se prav zaradi odprtosti programske kode in primerov, ki so jih
ljudje že ustvarili tako močno razširile. Vendar se moramo zavedati, da se veliko dijakov loti
gradnje takšnega ali podobnega robota z zelo malo izkušenjami, kako z programiranjem tako
z načrtovanjem. Prav iz tega razloga se zdi smiselno, da dijaki poskusijo nekaj začet in kot
11 Paket ukazov za zagon mikrokrmilnika
Sandi Rihtarič
48
pravijo vsak začetek je težak, v tem primeru skoraj, da to ne velja. Priporočilo je, da si vsak
dijak naredi aplikacijo, robota ali nek izdelek s katerim bo zadovoljen in prav Arduino
ponuja to možnost. Preprosto z malo začetnega znanja se lahko skoraj vsake stvari, ki je
dobro pripravljena in ima podrobna navodila lotimo.
4.3 Odprtokodno programsko orodje za konstruiranje Fritzing
Programska oprema Fritzing [22] je nastala na pobudo odprtokodne strojne opreme Arduino.
Namenjena je izdelovanju preprostih in naprednih aplikacij (Slika 4.6), uporabljajo jo
predavatelji, študenti, dijaki in hobi ustvarjalci. Glavni namen programske opreme je deliti
znanje in izkušnje z ostalimi. Oprema omogoča vizualno predstavitev shem in načrtovanje
ter kreiranje elektronskih vezij na razvojnih ploščicah Arduino.
Slika 4.6: Primer aplikacije v programu Fritzing [22]
Implementacija novih elementov je v programu zelo preprosta, konec koncev ponuja
celovito rešitev od ideje do realizacije pri sestavljanju raznovrstnih aplikacij (Slika 4.7).
Pomembno je, da začetniki ne potrebujejo dodatnih znanj in dodatnih orodij, saj v programu
ustvarimo popoln pregled od grafičnega izgleda, električne sheme in tiskanine. Tako se da
preproste aplikacije celovito izdelati.
Implementacija segmentov na konstrukcijo
49
Slika 4.7: Preprost projekt, izdelan v programu Fritzing
4.4 Sprint-Layout
Program Sprint-Layout [24] je preprosto programsko orodje, v njem se predvsem
srednješolci naučijo risati tiskana vezja. Praksa je takšna, da dijaki v času šolanja narišejo
vsaj eno tiskano vezje, vendar so to minimalna vezja. Tako dijaki tudi pri tem pridobijo
ogromno na izkušnjah in slišijo stvari, ki jih drugače ne bi.
Slika 4.8: Program Sprint Layout
4.5 Altium Designe
Altium Designer [25] (Slika 4.9) je profesionalno orodje za risanje tiskanih vezij, električnih
načrtov itd. Pravilno je, da mlade spodbudimo in učimo stvari, s katerimi se morajo slej ko
Sandi Rihtarič
50
prej srečati v delovnem okolju. Altium Designer uporabljajo velike korporacije, kot so Texas
Instruments, prav tako pa manjša domača podjetja, kot je Emsiso.
Slika 4.9: Program Altium Designe
4.6 Matlab-Simulink
Matematično profesionalno orodje Matlab-Simulunk (Slika 4.10) [23] nam omogoča
simuliranje in analiziranje sistemov. Sestavljen kinematični model (enačba 6.9) našega
robota nam pred izgradnjo omogoča simuliranje sistema (Slika 6.4).
Slika 4.10: Matematično orodje Matlab-Simulink
Implementacija segmentov na konstrukcijo
51
5. Izvedba sestavnih delov ogrodja
Opisali smo sestavo ključnih elementov konstrukcije. Pri tem moramo poudariti, da smo v
začetku naredili kar nekaj napak, kot je npr. previsoko težišče. Pri prvi izvedbi robota (Slika
5.2, levo spodaj), smo namestili motorje pod nosilno ploščo, s tem smo povzročili, dvig
težišča, kjer se nahajajo ostali elementi (baterija), ki veliko prispevajo k teži robota. Logika
je zelo preprosta, če sedimo na stolu z višino 30 cm, smo zelo stabilni oz. se težko
prevrnemo, v primeru, da pa se sedemo na stol, ki je visok 2 m, je naše težišče (Slika 5.1,
T1) zelo visoko, pri čemer težko vzdržujemo ravnovesje. Enako je pri robotu (Slika 5.2,
desno spodaj). Sedež motorjev smo spustili pod njih oz. bliže k tlom, s tem smo znižali
težišče (Slika 5.1,T2) in robot se lahko giblje hitreje, ne da bi se nagibal v katero smer.
Slika 5.1: Težišče robota
Glavni del konstrukcije predstavlja nosilo motorjev. Prvotno smo tega izdelovali iz
aluminija, sledila je vitroplast plošča, na koncu pa smo še preizkusili leseno konstrukcijo.
Omejitev teže nas je tako znova vrnila nazaj k izdelavi konstrukcijske iz vitroplast plošče.
Sandi Rihtarič
52
Slika 5.2: Spodnja konstrukcijska plošča
Naslednje pomembne sestavne dele sestavljajo električna vezja. Ta smo skonstruirali tako,
da so vse komponente hitro snemljive. Seveda smo komponente najprej sestavili na
eksperimentalnih ploščah, nato pa jih povezali in testirali delovanje (Slika 5.3).
Slika 5.3: Testiranje elektronike
Električno vezje smo izrisali s programom Sprint-Layout [24]. Ta program se uporablja na
mnogih tehniških šolah po Sloveniji. Primer narisane tiskanine prikazuje Slika 3.20.
Implementacija segmentov na konstrukcijo
53
Priprava vseh potrebnih elementov je zahtevala veliko časa in vztrajnosti, vendar se je trud
izplačal. Na Slika 5.4 so vidne izdelane tiskanine in že pripravljene za sestavo robota.
Slika 5.4: Izdelane tiskanine
Končna konstrukcija je prikazana na spodnji Slika 5.5. To je prvi in cenovno najugodnejši
robot, ki ga je bilo mogoče sestaviti za potrebe na tekmovanju RoboCup Junior.
Slika 5.5: Končna konstrukcija prvega izdelanega robota
Sandi Rihtarič
54
6. Implementacija kinematičnega modela in regulacije
V prvem poglavju (Slika 1.1) smo že opisali potek igre, kljub vsemu pa v tem poglavju
predstavljamo še nekoliko bolj razdelano različico. Na igrišču so prisotni štirje roboti in par
robotov igra proti nasprotnemu paru, pri tem je zelo pomembno, da roboti obdržijo smer
igranja. Tukaj se je začela naša potreba po regulaciji kota oz. smeri igranja. Slika 6.1
prikazuje nekaj primerov, kjer smo na vsak način morali robota imeti pravilno usmerjenega
oz. se ta ni smel zavrteti. Roboti morajo zmeraj igrati proti nasprotnim vratom, v primeru 1
na Slika 6.1 vidimo, da je robot s sprednjim delom, kjer ima utor za vodenje elektronske
žoge usmerjen proti nasprotnim vratom in to je tudi cilj igre, najti žogo in jo odpeljati v
nasprotna vrata. Pri vsem tem je pomembno, da ostane v isti smeri. Primer 3 na Slika 6.1
prikazuje eno izmed možnosti motnje pri usmeritvi. Če upoštevamo, da oba robota iščeta
žogo in se z neko hitrostjo znajdeta v takšni situaciji, se bo zgodilo, da bo po vsej verjetnosti
močnejši robot zavrtel drugega. Primer 5 na Slika 6.1 prikazuje lovljenje žoge pred golom.
Vratar je najučinkovitejši takrat, ko se mu žoga ustavi v sprednjem utoru za žogo, saj mu jo
v tem primeru nasprotni robot najtežje izmakne. V primeru 6 na Slika 6.1 je vidno, da se
robot, ki išče žogo, lahko zatakne na vrata, to pa lahko povzroči motnjo in robot se zavrti.
Prav tako je v primeru 2. Ko je žoga za robotom se robot žoge ne sme dotakniti, preden pride
direkt pred njo, saj ji v vsakem drugem primeru izbije na kakšno drugo mesto ali celo v
lastna vrata.
Implementacija kinematičnega modela in regulacije
55
Slika 6.1: Regulacija kota med igro
Regulacijo izvajamo takrat, ko želimo nadzorovati krmiljeno veličino in posredovati v
primeru odstopanja od željene vrednosti. Za to nalogo smo morali imeti izmerjeno vrednost
krmiljene veličine. Regulacijo je v osnovi zelo preprosto razumeti, izmerjeno vrednost
moramo primerjati z nastavljeno željeno vrednostjo. V primeru odstopanja mora poseben
dodatni sistem poskrbeti, da se ti vrednosti izravnata. Celotni sistem imenujemo regulacijski
sistem [26].
6.2 Kinematika robota z vsesmernimi (omni) kolesi in dinamičnim pogonom
Preden bomo začeli z regulacijo, si še oglejmo kinematični model robota. Model nam daje
informacije, kako se morajo vrteti kolesa glede na željeno lego in smer robota. Željeno lego
robota smo pridobivali od pozicije IR-žoge, iz žiroskopa pa smo dobili usmerjenost robota.
Sandi Rihtarič
56
Slika 6.2: Kinematični diagram robota
Površino oz. zunanji koordinatni sistem, kjer se robot nahaja, lahko zapišemo z (𝑋,̇ 𝑌,̇ �̇�)
(Slika 6.2). Robotu priredimo lastni (lokalni) koordinatni sistem (Xl, Yl), ki ima izhodišče v
geometrijskem središču robota. Za kolesa vemo, da so glede na lastni koordinatni sistem
zamaknjena za 120°. Zapišemo si lahko 𝛼𝑖 (𝑖 = 1,2,3), če upoštevamo, da je lokalna os Xl
v smeri kolesa K1 in prištejemo k vsakemu kotu proti urinemu kazalcu 120°. Tako dobimo
3 kote 𝛼1 = 0°, 𝛼2 = 120°, 𝛼3 = 240° [27].
Iz Slika 5.5 je razvidno, da ima robot stik s podlago samo v eni točki vsakega kolesa, kar je
bilo za nas dobro izhodišče za načrtovanje kinematičnega modela. Translacijska hitrost
kolesa 𝑣𝑖 je enaka obodni hitrosti kolesa 𝑣. Razdelimo pa jo lahko na translacijsko hitrost
kolesa in celega robota, kar lahko zapišemo z enačbo (6.1) [27].
𝑣𝑖 = 𝑣𝑡𝑟𝑎𝑛,𝑖 + 𝑣𝑟𝑜𝑡 (6.1)
Tu je:
𝑣𝑖 – translacijska hitrost posamičnega kolesa v koordinatnem sistemu robota,
𝑣𝑡𝑟𝑎𝑛,𝑖 – translacijska hitrost i-tega kolesa v koordinatnem sistemu kolesa,
Implementacija kinematičnega modela in regulacije
57
𝑣𝑟𝑜𝑡 – hitrost zaradi rotacije robota.
Na Slika 6.3 vidimo, da se translacijska hitrost 𝑣𝑡𝑟𝑎𝑛,1 razdeli na vektor hitrosti 𝑣𝑥1 in 𝑣𝑦1.
Tako lahko za lažje izračunavanje zapišemo vse hitrosti vektorsko �̇� in �̇�.
Slika 6.3: Translacijska hitrost kolesa
Za translacijsko hitrost kolesa lahko zapišemo naslednjo enačbo (6.2):
𝑣𝑡𝑟𝑎𝑛𝑠,1 = −sin(𝜃)�̇� + cos(𝜃) �̇� (6.2)
Tu je:
𝑣𝑡𝑟𝑎𝑛𝑠,1 – translacijska hitrost v koordinatnem sistemu kolesa K1,
𝜃 – kot med vektorjem gibanja kolesa in gibanja robota,
�̇� – vektor x koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – vektor y koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
Sedaj lahko zapišemo v vektorski obliki in velja za vsa kolesa, glej enačbo (6.3):
𝑣𝑡𝑟𝑎𝑛𝑠,𝑖 = −sin(𝜃 + 𝛼𝑖)�̇� + cos(𝜃 + 𝛼𝑖) �̇� (6.3)
Tu je:
𝑣𝑡𝑟𝑎𝑛𝑠,𝑖 – translacijska hitrost v koordinatnem sistemu kolesa Ki,
𝜃 – kot med vektorjem gibanja kolesa in gibanja robota,
Sandi Rihtarič
58
�̇� – vektor x koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – vektor y koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
𝛼𝑖 – kot med osmi motorjev robota.
V primeru vrtenja robota, pomeni da se njegovo koordinatno izhodišče se ne primika, vsa
kolesa pa se vrtijo v isto smer z enako hitrostjo, mora veljati enačba (6.4).
𝑣𝑟𝑜𝑡 = 𝑅�̇� (6.4)
Tu je:
𝑣𝑟𝑜𝑡 – hitrost rotacije koordinatnega sistema robota,
R – razdalja od središča kolesa do geometrijskega središča robota, v našem primeru je to
0.08 m,
�̇� – kot zasuka robota.
Dobljeni enačbi vstavimo v enačbo (6.1) in dobimo rezultirajoče hitrosti kolesa Ki.
𝑣𝑖 = −sin(𝜃 + 𝛼𝑖)�̇� + cos(𝜃 + 𝛼𝑖) �̇� + 𝑅�̇� (6.5)
𝑣𝑖 – hitrost posameznega kolesa Ki,
𝜃 – kot med vektorjem gibanja kolesa in gibanja robota,
�̇� – vektor x koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – vektor y koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
𝛼𝑖 – kot med osmi motorjev robota,
R – razdalja od središča kolesa do geometrijskega središča robota; v našem primeru je to
0.08 m,
�̇� – kotna hitrost zasuka robota.
Implementacija kinematičnega modela in regulacije
59
S tem smo transformirali kotne hitrosti koles v kotne hitrosti koordinatnega sistema robota,
vendar še lahko gremo korak dalje. Translacijske hitrosti kolesa so neposredno povezane z
rotacijo kolesa, kar prikazuje enačba (6.6).
𝑣𝑖 = 𝑟∅𝑖̇ (6.6)
Tu je:
r – polmer vsesmernega (omni) kolesa (v našem primeru 0.03 m),
∅𝑖 – kotna hitrost vsesmernega (omni) kolesa.
Če sedaj enačimo enačbi (6.5) in (6.6), dobimo enačbo (6.7):
∅𝑖̇ =
1
𝑟(−sin(𝜃 + 𝛼𝑖)�̇� + cos(𝜃 + 𝛼𝑖) �̇� + 𝑅�̇�) (6.7)
Iz enačbe (6.7) smo zapisali matriko (enačba (6.9),(6.8)):
∅𝑖̇ = 𝐽𝑖𝑛𝑣�̇� (6.8)
Tu je:
∅𝑖̇ – kotne hitrosti robota,
�̇� – vektor kotne hitrosti na podlago (zunanji koordinatni sistem),
𝐽𝑖𝑛𝑣 – inverzna Jacobijeva matrika.
Inverzna Jacobijeva matrika določa neposredno povezavo med zgornjima spremenljivkama.
Zapis smo podali še v matrični obliki.
[
∅1̇
∅2̇
∅3̇
] =1
𝑟∙ [
−sin(𝜃) cos(𝜃) 𝑅
−sin(𝜃 + 𝛼2) cos(𝜃 + 𝛼2) 𝑅
−sin(𝜃 + 𝛼3) cos(𝜃 + 𝛼3) 𝑅
] ∙ [�̇��̇��̇�
] (6.9)
Tu je:
∅𝑖̇ – kotne hitrosti robota,
r – polmer vsesmernega kolesa,
Sandi Rihtarič
60
R – razdalja od središča kolesa do geometrijskega središča robota,
�̇� – vektor x koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – vektor y koordinate translacijske hitrosti kolesa v koordinatnem sistemu robota,
�̇� – kotna hitrost zasuka robota.
Običajno ne postavljamo robota v koordinatni sistem podlage, bolj naravno in preprostejše
je razmišljati, če ga obravnavamo v lastnem koordinatnem sistemu. V lokalni koordinatni
sistem ga transformiramo z enačbo (6.10), kar predstavlja rotacija okrog z osi za kot 𝜃.
[�̇��̇��̇�
] = [cos(𝜃) −sin (𝜃) 0sin (𝜃) cos(𝜃) 0
0 0 1
] ∙ [
�̇�𝑙
�̇�𝑙
�̇�
] (6.10)
Enačbo (6.10) vstavimo v enačbo (6.9) in dobimo enačbo (6.11), [21].
[
∅1̇
∅2̇
∅3̇
] =1
𝑟∙ [
−sin(𝜃) cos(𝜃) 𝑅
−sin(𝜃 + 𝛼2) cos(𝜃 + 𝛼2) 𝑅
−sin(𝜃 + 𝛼3) cos(𝜃 + 𝛼3) 𝑅
] ∙ [cos(𝜃) −sin (𝜃) 0sin (𝜃) cos(𝜃) 0
0 0 1
] ∙ [
�̇�𝑙
�̇�𝑙
�̇�
] (6.11)
Iz te matrike je razvidno, da prikazuje razmerje lokalnih veličin na platformi robota in iz nje
lahko izpišemo tri preproste enačbe, ki jih lahko implementiramo v programsko kodo robota,
prav tako pa lahko s tem kinematičnim modelom izvedemo simulacije v programu
MATLAB (Slika 6.4).
Za simulacije potrebujemo tudi originalno matriko, pri kateri so iskane vrednosti obrnjene
�̇�𝑙 , �̇�𝑙 , �̇� . Zapišemo lahko sledečo matriko, ki velja za vse robote, zamaknjene z
zamaknjenimi kolesi za 120° (6.12)[27],[28].
[
�̇�𝑙
�̇�𝑙
�̇�𝑙
] = 𝑟
[ √3
3−
√3
30
1
3
1
3−
2
31
3𝑅
1
3𝑅
1
3𝑅 ]
∙ [
∅1̇
∅2̇
∅3̇
] (6.12)
Matrika (6.12) predstavlja direktni kinematični model v lasnem koordinatnem sistemu in
medsebojno odvisnost vseh potrebnih podatkov za regulirano vodenje robota v prostoru. Ta
Implementacija kinematičnega modela in regulacije
61
enačba velja za vse robote, ki imajo zamaknjene osi za 120°. Iz enačbe (6.12) vidimo, da
vpliva le še razdalja od geometrijskega središča robota do posameznega kolesa in polmer
koles na posamezne vektorje v koordinatnem sistemu robota.
6.3 Simulacija regulacijske proge
Slika 6.30 prikazuje regulacijsko progo našega sistema. Zanimala nas je simulacija izravnave
robota, ki smo jo v programu obravnavali zvezno. Obravnavo bi morali izvesti v diskretnem
prostoru, vendar je naša najmanjša časovna konstanta v sistemu najmanj pet krat večja, kot
je časovna konstanta tipanja, kar po Shannonovem teoremu (enačba 6.13) zadostuje za
tipanje signala.
𝑓𝑣𝑧 > 2𝑓𝑠 (6.13)
Slika 6.4 prikazuje posamezne podsisteme, ki so potrebni za čim natančnejšo obravnavo in
primerjavo z realnim sistemom. Za obravnavo zasuka robota smo predpostavili, da hitrost
robota v katero koli smer ni potrebna. Tako smo premike robota iz ene točke v drugo točko
zunanjega koordinatnega sistema obravnavali kot motnje in predpostavimo, da so te enake
nič (Slika 6.4, X = 0 (m/s) in Y = 0 (m/s)).
Slika 6.4: Simulacijski model regulacijske proge
Sandi Rihtarič
62
Prenosno funkcijo Fr(s) za P-, PI-, PD- ali PID-regulator poznamo in smo nekatere tudi
uporabili za analizo celotnega sistema. Posebej smo si ogledali in razdelali prenosno funkcijo
robota, ki je predstavljen z blokovno shemo na Slika 6.5.
Slika 6.5: Blokovna shema robota (BLOK ROBOT)
Direktni in inverzni kinematični model
Najprej smo sestavili inverzni kinematični model robota in ga vnesli kot koeficiente sistema
v orodje Simulink. Enačba 6.9 podaja kotne hitrosti (rad/s) v odvisnosti od željene kotne
hitrosti zasuka robota (rad/s). Ob pogoju, da je kot zasuka 𝜃 enak nič (𝜃 = 0), motorji pa so
na robotu zamaknjeni za kot 𝛼 (𝛼1 = 0, 𝛼2 = 120, 𝛼3 = 240) in razdalja od kolesa do
geometrijskega središča robota R (R=0.08) ter polmer kolesa r (r=0.03) prikazuje enačba
(6.14) in izračun inverzne Jakobijeve matrike.
[
∅1̇
∅2̇
∅3̇
] =1
𝑟∙ [
−sin(𝜃) cos(𝜃) 𝑅
−sin(𝜃 + 𝛼2) cos(𝜃 + 𝛼2) 𝑅
−sin(𝜃 + 𝛼3) cos(𝜃 + 𝛼3) 𝑅
] ∙ [
�̇�𝑙
�̇�𝑙
�̇�
]= (6.14)
= [28.8675 16.6667 2.6667
0.5 16.6667 2.66670 −33.3333 2.6667
] ∙ [
�̇�𝑙
�̇�𝑙
�̇�𝑙
]
Tu je:
∅𝑖̇ – kotna hitrost i-tega kolesa (rad/s),
�̇�𝑙 – kotna hitrost zasuka robota (rad/s),
�̇�𝑙 – hitrost robota v smeri y lastnega koordinatnega sistema (m/s),
Implementacija kinematičnega modela in regulacije
63
�̇�𝑙 – hitrost robota v smeri x lastnega koordinatnega sistema (m/s).
Tako smo sestavili blok inverznega kinematičnega modela (Slika 6.6), ki se skriva v bloku
ROBOT (Slika 6.4 in Slika 6.5).
Slika 6.6: Inverzni kinematični model
Prav tako smo potrebovali prvotno originalno matriko (enačba 6.15 in Slika 6.7), iz katere
smo v simulaciji pridobili podatke o dejanskem kotu zasuka, v realnem okolju tega odčitamo
iz žiroskopa (Slika 3.18.). Ker je 𝜃 enaka nič, dobimo iz matrike za transformacijo (enačba
(6.11)) enotno matriko. Če to pomnožimo z inverzno Jakobijevo matriko (enačba (6.14)),
dobimo originalno matriko v enačbi (6.15).
[
�̇�𝑙
�̇�𝑙
�̇�𝑙
] = [0.0173 −0.0173 00.01 0.01 0.020.125 0.125 0.125
] ∙ [
∅1̇
∅2̇
∅3̇
] (6.15)
Sandi Rihtarič
64
Slika 6.7: Originalni kinematični model v lastnem koordinatnem sistemu
Blok za gonilnike in motorje
V naslednjem koraku smo sestavili blok GONILNIKI (Slika 6.5). Gonilnike smo zapisali z
lastnim ojačenjem 𝐾𝐻𝑚_𝑘𝑖 (enačba 6.16), ki je izhodna maksimalna vrednost gonilnika,
deljena z vhodno maksimalno vrednostjo pulzno širinske modulacije (PWM) (Slika 6.8).
Slika 6.8: Prenosna funkcija GONILNIKOV
Na robotu imamo 12 V-motorje. Izbrali smo maksimalno izhodno napetost iz močnostnega
gonilnika motorjev 12 V. Gonilnik poganjamo s pulzno širinsko modulacijo, ki je podana v
digitalni vrednosti od 0 do 255 in pomeni pri nič nič odstotkov obratovalnega cikla (Duty
cycle), 255 pa pomeni 100 odstotkov obratovalnega cikla.
Implementacija kinematičnega modela in regulacije
65
𝐾𝐻𝑚_𝑘𝑖 =𝑈𝑖𝑧_𝑖
𝑈𝑣ℎ_𝑖=
12 𝑉
255 (𝑑𝑒𝑙𝑐𝑒𝑣)= 0,047 𝑉 𝑑𝑒𝑙𝑒𝑐⁄ (6.16)
Tu je:
𝑈𝑖𝑧_𝑖 – izhodna napetost gonilnika v voltih (V),
𝑈𝑣ℎ_𝑖 – digitalna vrednost v deležu,
𝐾𝐻𝑚_𝑘𝑖 – ojačenja gonilnika motorjev.
Sledil je zapis prenosne funkcije motorja, za katero smo predvideli člen prvega reda (enačba
6.17). Zapisana enačba velja za i-ti motor (Slika 6.9).
Slika 6.9: Prenosne funkcije motorjev
Za časovno konstanto motorja smo izbrali Tm = 10 ms.
𝐹𝑚_𝑖(𝑠) =𝐾𝑚_𝑖
𝑇𝑚_𝑖
1
𝑠+1
𝑇𝑚_𝑖
(6.17)
Ojačenje 𝐾𝑚_𝑖 (enačba 6.18) smo dobili z deljenjem izhodnih maksimalnih vrtljajev motorja
in vhodne napetosti.
𝐾𝑚_𝑖 =𝜔𝑘𝑖
𝑈𝑖=
50 𝑟𝑎𝑑𝑠⁄
12 𝑉= 4,16 𝑟𝑎𝑑
𝑉𝑠⁄ (6.18)
Tu je:
Sandi Rihtarič
66
𝐾𝑚𝑖 – ojačenja motorja (rad/Vs),
𝜔𝑘𝑖 – vrtljaji na s (rad/s),
𝑈𝑖 – napetost (V).
Izhodne vrednosti simulacijskega modela so hitrosti v �̇�𝑙 in �̇�𝑙 osi (m/s) ter hitrost zasuka
robota �̇�𝑙 (rad/s) v koordinatnem sistemu robota. Ker nas zanima kot in ne kotna hitrost,
moramo vključiti integrator 1
𝑠 (Slika 6.5).
Žiroskop
Zaradi lažje izvedbe simulacije smo rekli, da ima žiroskop ojačenje Kž=1 (Slika 6.10).
Vrednost žiroskopa v realnem okolju odčitamo s serijsko komunikacio in ima zagotovo
ojačenje prenosne funkcije različno od 1.
Slika 6.10: Prenosna funkcija žiroskopa
6.4 Načrtovanje regulatorja
Za načrtovanje robota se bomo sklicevali na prenosne funkcije iz prejšnjega poglavja,
ponovno zapišemo kinematični model robota (enačba 6.14) za kote 𝛼1 = 30, 𝛼2 = 150,
𝛼3 = 270. Ob predpostavki, da naš robot miruje in se lahko vrti le okrog z osi pomeni, da
so vrednosti �̇�𝑙 = 0, �̇�𝑙 = 0, �̇�, tedaj smo lahko zapisali poenostavljeno matriko v enačbi
6.19.
𝑟 [
∅1̇
∅2̇
∅3̇
] = [0 + 0 + 𝑅�̇�0 + 0 + 𝑅�̇�0 + 0 + 𝑅�̇�
] → 𝑟 [
∅1̇
∅2̇
∅3̇
] = 𝑅�̇� [111] → [
∅1̇
∅2̇
∅3̇
] =𝑅�̇�
𝑟[111] (6.19)
Ob upoštevanju poenostavljene matrike smo sestavili novo blokovno shemo (Slika 6.11) v
preglednejši obliki.
Pri tem so podatki za progo:
Implementacija kinematičnega modela in regulacije
67
R = 0,08 (m) – razdalja od kolesa do geometrijskega središča robota,
r = 0,03 (m) – polmer kolesa,
KHm_ki = 0,047 (V/delec) – ojačenje gonilnika,
Km_ki = 4,166 (rad/V) – ojačenje motorja,
Tm = 0,01 (s) – časovna konstanta motorja,
Kr – faktor ojačenja P-regulatorja.
Slika 6.11: Regulacijska proga v eksplicitni obliki
Ob predpostavki, da so vsi gonilniki popolnoma enaki, prav tako vsi trije motorji, ki
prispevajo vsak po 1/3 hitrosti k rotaciji robota, lahko regulacijsko progo (Slika 6.11)
preuredimo in narišemo poenostavljeno regulacijsko progo (Slika 6.12).
Slika 6.12: Poenostavljena regulacijska proga
V primeru, da v sistemu ne bi imeli členov s časovnimi konstantami oz. v našem primeru
časovne konstante motorja, bi moral izhod iz kinematičnega modela biti popolnoma enak
kot vhod v inverznem kinematičnem modelu. Seveda pri predpostavki, da se vsa ojačenja v
Sandi Rihtarič
68
progi kompenzirajo. Ob tej predpostavki smo lahko sestavili novo posplošeno regulacijsko
progo (Slika 6.13), z nekompenziranim ojačenjem 𝐾 ≅ 0.2.
Slika 6.13: Končna oblika regulacijske proge za nadaljnjo obravnavo
Pregulator
Po blokovni obravnavi regulacijske proge ob danih pogojih smo lahko zapisali enačbe
regulacijske proge. Funkcijo sistema F(s) (enačba 6.20) sestavljajo F1(s) ojačenje proge, ki
se ni kompenziralo, F2(s) prenosna funkcija motorja in še F3(s) integrator, s katerim dobimo
nazaj informacijo o kotu zasuka v (°).
𝐹(𝑠) = 𝐹1(𝑠)𝐹2(𝑠)𝐹3(𝑠) =𝐾
(1+𝑠𝑇𝑚)𝑠 (6.20)
Funkcija regulatorja je konstanta (Fr(s) = Kr). V nadaljevanju smo zapisali celotno
odprtozančno prenosno funkcijo Fo(s) (enačba 6.21).
𝐹𝑜(𝑠) = 𝐹𝑟(𝑠)𝐹(𝑠) =𝐾𝑟𝐾
𝑠(1+𝑠𝑇𝑚) (6.21)
Regulacijsko progo smo dopolnili z negativno povratno vezavo in zapisali prenosno funkcijo
H(s) (enačba 6.22).
𝐻(𝑠) =𝐹𝑜(𝑠)
1+𝐹𝑜(𝑠)=
𝐾𝑟𝐾
𝑠(1+𝑠𝑇𝑚)
1+𝐾𝑟𝐾
𝑠(1+𝑠𝑇𝑚)
= 𝐾𝑟𝐾
𝑠(1+𝑠𝑇𝑚)+𝐾𝑟𝐾=
𝐾𝑟𝐾
𝑠2𝑇𝑚+𝑠+𝐾𝑟𝐾 (6.22)
Takoj opazimo, da je zaprtozančna funkcija (enačba 6.22) sistema s P-regulatorjem sistem
drugega reda. Zapisali smo splošno enačbo drugega reda Fs(s), ki vsebuje 2 koeficienta z
lastnostmi. Koeficient D enačbe 6.23 drugega reda nam predstavlja dušenje sistema, obenem
nam nastavitev regulatorja po tem koeficientu zagotavlja stabilnost sistema. Drugi koeficient
pa je 𝜔0, ki predstavlja hitrost odziva sistema.
Implementacija kinematičnega modela in regulacije
69
𝐹𝑠(𝑠) =𝐾
𝑠2
𝜔02+
2𝐷
𝜔0𝑠+1
(6.23)
Tu je:
K – ojačenje,
𝜔0 – hitrost odziva,
D – dušenje sistema,
Enačbo 6.22 smo preuredili v takšno obliko (enačba 6.24), da smo lahko izrazili koeficiente
sistema.
𝐻(𝑠) =𝐾𝑟𝐾
𝑠2𝑇𝑚+𝑠+𝐾𝑟𝐾=
1
𝑠2 𝑇𝑚𝐾𝑟𝐾
+𝑠1
𝐾𝑟𝐾+1
(6.24)
Zapišemo koeficiente sitema:
1
𝜔02 =
𝑇𝑚
𝐾𝑟𝐾 in
2𝐷
𝜔0=
1
𝐾𝑟𝐾 (6.25)
Sedaj lahko izpeljemo dušenje sistema (D določimo po tabeli, Slika 6.14) in s tem
izračunamo potrebno ojačenje sistema. Dušenje sistema je neposredno povezano s
prenihajem odziva sistema, in sicer je amplituda prenihaja ( 𝐴𝑝𝑟(%) = 100𝑒−𝐷𝜔0𝑡 ).
Upoštevali smo odvisnost iz tabele na Slika 6.14.
D Apr(%)
0.2 50
0.5 16
0.7 4
1 0
Slika 6.14: Povezava dušenja in prenihaja sistema drugega reda
Odločili smo se, da lahko prenihaj doseže maksimalno 4 odstotke, pri tem pogoju smo izbrali
dušenje sistema D = 0.7. Ko smo izbrali D, smo se v enačbi 6.25 znebili ene neznanke in
smo dobili dve enačbi z eno neznanko. Iz druge enačbe izpeljemo 𝜔0 in jo vstavimo v prvo,
tako dobimo eno enačbo z eno neznanko.
2𝐷
𝜔0=
1
𝐾𝑟𝐾 →
1
𝜔0=
1
𝐾𝑟𝐾2𝐷 → 𝜔0 = 𝐾𝑟𝐾2𝐷 (6.26)
Sandi Rihtarič
70
1
(𝐾𝑟𝐾2𝐷)2=
𝑇𝑚
𝐾𝑟𝐾 → 𝐾𝑟
2𝐾2𝐷2 −𝐾𝐾𝑟
𝑇𝑚= 0 → 𝐾𝐾𝑟 =
1
4𝐷2𝑇𝑚 (6.27)
Zapisali smo tabelo izračunanih koeficientov prenosne funkcije (Slika 6.15):
D ω K*Kr Kr
0,2 250 625 3125
0,5 100 100 500
0,7 71,42857143 51,02041 255,102
1 50 25 125
Slika 6.15: Ojačenje in hitrost odziva pri dušenju sistema
Slika 6.16 prikazuje odziv sistema ob izbiri dušenja. Lepo je vidno, da se je sistem z
večanjem dušenja umirjal in postal stabilen. Tako izberemo ojačenje sistema pri dušenju
D = 0.7, saj nam zagotavlja hiter in dovolj stabilen odziv.
Slika 6.16: Odziv na stopnico sistema v odvisnosti od dušenja sistema
PI regulator
V nadaljevanju smo P-regulator zamenjali s PI-regulatorjem. Prenosna funkcija regulatorja
je podana z enačbo 6.28.
𝐹𝑟𝑃𝐼(𝑠) = 𝐾𝑝 (1 +1
𝑠𝑇𝑖) = 𝐾𝑝
𝑠𝑇𝑖+1
𝑠𝑇𝑖 (6.28)
Prenosne funkcije posamičnih sistemov in celotnega sistema smo obravnavali v matlabu.
Zapisali smo prenosno funkcijo F(s) robota (enačba 6.20), prenosno funkcijo regulatorja
𝐹𝑟𝑃𝐼(𝑠) (enačba 6.28) in odprtozančno prenosno funkcijo 𝐹𝑜(𝑠) (enačba 6.29), na koncu smo
0 0.05 0.1 0.15 0.2 0.250
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
t (s)
Ko
t (°
)
Stopnični odziv sistema pri nastavitvi dušenja
D=0.2
D=0.5
D=0.7
D=1
Implementacija kinematičnega modela in regulacije
71
zapisali še zaprtozančno prenosno funkcijo 𝐻𝑃𝐼(𝑠) (Slika 6.17), pri čemer smo izbrali
prenosno funkcijo regulatorja 𝐹𝑟𝑃𝐼(𝑠), ki je opisana z enačbo (6.28).
𝐹𝑜(𝑠) = 𝐹𝑟𝑃𝐼(𝑠)𝐹(𝑠) = 𝐾𝑝 (𝑠𝑇𝑖+1
𝑠𝑇𝑖
𝐾
(1+𝑠𝑇𝑚)𝑠) = 𝐾𝑝(
𝑠𝑇𝑖𝐾+𝐾
𝑠2𝑇𝑖(1+𝑠𝑇𝑚) ) (6.29)
Če sedaj zapremo zanko z negativno povratno vezavo z ojačenjem Kp, dobimo zaprtozančno
prenosno funkcijo (Slika 6.13) z enačbo 6.30.
𝐻(𝑠) =𝐾𝑝𝐹𝑜(𝑠)
1+𝐾𝑝𝐹𝑜(𝑠) (6.30)
Regulator nam vnese novo časovno konstanto Ti, ki jo izberemo po priporočilih [29] za
načrtovanje PI-regulatorja. Ti konstanto izberemo na podlagi časovnih konstant proge, tako
mora biti Ti večja od največje časovne konstante (T1<T2<T3<Ti). Največja časovna
konstanta proge je v našem primeru (simulacija) časovna konstanta motorja Tm=10ms, zato
izberemo časovno konstanto desetkrat večjo in dobimo Ti=0.1. Enačbo smo zapisali v
matlabu (Slika 6.17).
Sandi Rihtarič
72
Slika 6.17: Zapis prenosnih funkcij v frekvenčnem prostoru
Stabilnost sistema določajo poli odprtozančne funkcije Fo(s) (enačba 6.29, Slika 6.18),
narisani so v diagramu lege korenov in za tega najdemo v literaturi okrajšavo DLK.
Stabilnost sistema določajo koreni v imenovalcu odprtozančne prenosne funkcije, ti morajo
ležati na levi polravnini koordinatnega sistema, krivuljo lege korenov prikazuje Slika 6.21.
Ker ležijo poli na levi polravnini, je sistem stabilen pri vsakem ojačenju, saj krivulje lege
korenov (KLK) ne sekajo imaginarne osi. Drugače povedano, poli gredo v neskončnost
vzporedno z imaginarno osjo in se zaradi tega nikoli ne preselijo na pozitivno stran realne
osi.
Implementacija kinematičnega modela in regulacije
73
Slika 6.18: Poli in ničle Fo(s) ter prenosne funkcije (DLK)
S spreminjanjem ojačenja Kp spreminjamo pomikanje polov v DLK (Napaka! Vira
klicevanja ni bilo mogoče najti.), ničle nas ne zanimajo, saj na stabilnost sistema vplivajo
samo poli. Prenosno funkcijo zaprtozančnega sistema prikazuje Slika 6.17. Sistemi s
faktorjem dušenja med 0,5<D<0,8 najhitreje dosežejo bližino referenčne vrednosti. Vse tri
pole nastavimo na točko kjer imajo isto ojačenje (Gain = 170) in odčitamo lege polov
imenovalca. Tako smo dobili 3 pole:
Pol 1: -41,3+16.5i
Pol 2: -41,3-16.5i
Pol 3: -17
Upoštevati moramo še lego ničle v števcu (N = -10), sedaj lahko z ukazom ''zpk'' vpišemo
prenosno funkcijo v MATLAB (Slika 6.19, Slika 6.21).
Slika 6.19: Prenosna funkcija pri izbranih polih v KLK.
Da popravimo ojačenje prenosne funkcije smo morali upoštevati člene, ki ostanejo ko gre
𝑠 → 0 in izračunamo ojačenje po enačbi 𝑘 =17∙1978
10 (Slika 6.20). Funkcijo še smo enkrat
zapisali v Matlabu in izrisali odziv na stopnico (Slika 6.25).
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
10.9940.9980.999111
1
1
0.9940.9980.999111
1
1
20406080100
Pole-Zero Map
Real Axis (seconds-1)
Imagin
ary
Axis
(seconds-1
)
Sandi Rihtarič
74
Slika 6.20: Funkcija s popravljenim ojačenjem.
Slika 6.21: Krivulje lege korenov Fo(s) in pri (Ti=0.1)
Poli z dominantnim vplivom so tisi, ki se nahajajo najbližje realne osi.
Za ugotavljanje relativne stabilnosti smo morali iz Bodejevega diagrama odčitati fazo kjer
amplituda pade na nič. V tej točki smo na faznem grafu odčitali kot, ki smo ga odšteli od
180°, tako dobimo fazno rezervo, ki pa mora biti večja od 45° (𝜑𝑟𝑒𝑧 ≥ 45°) (Slika 6.22).
Root Locus
Real Axis (seconds-1)
Imagin
ary
Axis
(seconds-1
)
-120 -100 -80 -60 -40 -20 0 20-150
-100
-50
0
50
100
1500.080.160.260.360.480.62
0.78
0.94
0.080.160.260.360.480.62
0.78
0.94
20
40
60
80
100
120
140
20
40
60
80
100
120
140
System: Fos
Gain: 170
Pole: -41.3 + 16.5i
Damping: 0.929
Overshoot (%): 0.0379
Frequency (rad/s): 44.5
System: Fos
Gain: 170
Pole: -41.3 - 16.5i
Damping: 0.929
Overshoot (%): 0.0378
Frequency (rad/s): 44.5
System: Fos
Gain: 171
Pole: -17
Damping: 1
Overshoot (%): 0
Frequency (rad/s): 17
Implementacija kinematičnega modela in regulacije
75
Slika 6.22: Načrtovanje z Bodejevim diagramom
Če vzamemo odprtozančno funkcijo brez ojačenja in nastavljamo časovno konstanto Ti tako
dolgo, da dobimo vrh fazne karakteristike v točki s fazno rezervo 55°, odčitamo ojačenje v
dB na amplitudnem grafu (Slika 6.23).
Slika 6.23: Bodejev diagram (Firez=55°, pri Ti=0.1 in K=1)
Da dobimo potrebno ojačenje Kp za sistem, moramo uporabiti enačbo 6.31 ojačenja. Iz
diagrama je razvidno, da je ojačenje negativno, zavedati pa se moramo, da želimo v vrhu
fazne karakteristike nastaviti 𝜔𝑣𝑠𝑡 , kar se zgodi pri frekvenci, pri kateri je amplituda
Bodejevega diagrama enaka nič. Zaradi tega je ojačenje pozitivno, saj izberemo tisto
Bode Diagram
Frequency (rad/s)
-100
-50
0
50
100
150
Magnitude (
dB
)
System: Fo
Frequency (rad/s): 24.2
Magnitude (dB): 0.00693
10-2
100
102
104
-180
-135
-90
System: Fo
Frequency (rad/s): 24.2
Phase (deg): -104
Phase (
deg)
10-1
100
101
102
103
104
-180
-150
-120
System: Fobs
Frequency (rad/s): 32
Phase (deg): -125
Phase (
deg)
Načrtovanje P regulatorja z bodejevim diagramom
Frequency (rad/s)
-150
-100
-50
0
50
100
Magnitude (
dB
)
System: Fobs
Frequency (rad/s): 32
Magnitude (dB): -44.1
Firez=55°
Sandi Rihtarič
76
vrednost, ki smo jo prišteli k trenutni vrednosti (-44,1) do vrednosti nič. Po izračunu
vrednosti ojačenja smo zanko zaprli in izrisali odziv na stopnico. (Slika 6.24).
𝐴(𝑑𝐵) = 20𝑙𝑜𝑔10(𝐾𝑝) (6.31)
𝐾𝑝 = 10𝐴20 = 10
44,120 ≅ 102,2 = 158
Tu je:
𝐴 – ojačenje podano v decibelih,
𝐾𝑝 – faktor ojačenja,
Slika 6.24: Zaprtozančni sistem H(s), načrtovanje P-regulatorja z Bodejevim diagramom
Slika 6.25: Stopnični odziv funkcije pridobljene z načrtovanjem z KLK
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
0.2
0.4
0.6
0.8
1
1.2
1.4
t (s)
Ko
t (°
)
Stopnični odziv zaprto zančnega sistema (T= 0.1, K=158)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
0.2
0.4
0.6
0.8
1
1.2
1.4
t (s)
Ko
t (°
)
Stopnični odziv za prenosno funkcijo pridobleno z KLK
Implementacija kinematičnega modela in regulacije
77
6.5 Izvedba regulacije.
Tekmovanje RoboCupJunior, kategorije SOOCER je zelo zahtevno, saj se roboti iz leta v
leto vidno izboljšujejo in konkurenca je zmeraj večja. Zato smo zgradili sistem, s katerim
bomo še nekaj časa lahko konkurirali mednarodnim ekipam. Verjetno bo snov oz.
razumevanje zgornjih, npr. enačbe (6.12) za srednješolce težavna. Pa vendarle nadaljujemo
z razlago regulacijskih prog in regulacijo našega robota.
Najprej razložimo, kaj je odprtozančno krmiljenje in kaj zaprtozančno krmiljenje
(regulacija). Med krmiljenjem in regulacijo je razlika ta, da pri regulaciji zapremo krmilno
progo (Slika 6.26 in Slika 6.27).
Slika 6.26: Krmilna proga
Slika 6.27: Regulacijska zanka
Tako pridemo do spoznanja, da je regulacija zaprtozančno krmiljenje. To je samo zvrst
krmiljenja, pri katerem uporabimo informacijo izhodne vrednosti za gradnjo regulacijske
zanke, ki je prikazana na Slika 6.27.
Poznamo različne regulacije. Regulatorje delimo na zvezne in nezvezne glede na njihovo
delovanje, potem pa še na analogne, ki so izvedeni z operacijskimi ojačevalniki, diskretne,
ki jih izvedemo s programom mikrokrmilnika [28].
Sandi Rihtarič
78
Regulacije prav tako delimo po zvrsteh reguliranja. Poznamo sledilne regulacije, časovno
programirane regulacije in regulacije s konstantno željeno vrednostjo. Slednja nas je najbolj
zanimala, saj smo hoteli doseči, da se robot izravnava vedno v isto smer oz. med igranjem
drži smer (Slika 1.1, Slika 6.29).
Krmiljenje robota je zahtevna naloga. V kinematičnem diagramu robota (Slika 6.2) lahko
vidite, da se je zmožen gibati v ravnini v vse smeri (Slika 6.2, Slika 2.5), prav tako pa se
lahko vrti okrog z koordinate lastnega koordinatnega sistema. Na tekmovalnem polju (Slika
1.5, Slika 1.1) je zelo pomembno, da je naš robot zmeraj usmerjen proti nasprotni ekipi, oz.
nasprotnim vratom. To diplomsko delo ponuja rešitev prav za ta problem.
Do sedaj smo smer robota izravnavali s tako imenovanim dvotočkovnim nezveznim
regulatorjem [30] (Slika 6.28). Slabost nezveznih regulatorjev je nenatančnost.
Dvotočkovno regulacijo smo realizirali tako, da smo med vsakim prehodom zanke izračunali
razliko med željeno in dejansko vrednostjo. V primeru, če smo ugotovili, da je absolutna
vrednost pogreška večja od 15°, je program izvedel izravnavo. Izravnavali smo ga na zelo
preprost način. Za trenutek smo vstavili kolesa in robota z majhno vrednostjo (PWM)
zavrteli v željeni smeri igranja (Slika 6.29). V primeru, da je odklon kota veliko večji, smo
to v vsakem naslednjem obhodu zanke ponovili, dokler se robot ni izravnal v dovoljeno
odstopanje odklona (∓15°).
Slika 6.28: Dvotočkovni regulator [30]
Kot smo že dejali, če hočemo krmilje spremeniti v regulacijski sistem, moramo zagotoviti
meritev regulirane izhodne veličine, primerjanje željene in izmerjene vrednosti in sistem, ki
bo sposoben posredovati v primeru neenakosti [26].
Implementacija kinematičnega modela in regulacije
79
Členi, ki so potrebni za izpolnitev regulacije, so sledeči:
referenčna vrednost oz. referenčni člen,
merilni člen,
primerjalni člen,
regulator,
povratna vezava.
Referenčni člen daje željeno vrednost xž in opravlja funkcijo dajalnika željene vrednosti.
Primerjalni člen primerja željeno in izmerjeno vrednost, vrne pa pogrešek v enačbi (6.32),
kar je vhodna vrednost našega regulatorja.
𝜀 = 𝑥ž − |𝑥| (6.32)
Pri tem je:
𝜀 – pogrešek med željeno in regulirano veličino,
|𝑥| – absolutna vrednost regulirane veličine,
𝑥ž – željena vrednost.
Regulator je krmiljen s pogreškom in na svojem izhodu ustvarja regulirno veličino y,
sorazmerno regulacijskemu odstopu [26].
Regulatorji delujejo v večini primerov na izvršne člene preko močnostnih stopenj. V našem
primeru smo za to porabili močnostne gonilnike motorjev (Slika 3.6) in z njim vplivali
neposredno na motor. Tako regulator skrbi za to, da regulirana veličina sledi željeni veličini
(Slika 6.29).
Sandi Rihtarič
80
Slika 6.29: Željena in dejanska smer
Za izravnavo smeri smo uporabili PID-regulator (priloga [C]).
PID-regulator je kombinacija proporcionalne, integralne in diferencialne regulacije,
zapišemo jo s preprosto enačbo (6.33)[30].
𝑋 = 𝑘𝑃𝜀 + 𝑘𝐼 ∑ 𝜀 + 𝑘𝐷𝑑𝑃
𝑑𝑇 (6.33)
Pri tem je:
𝜀 – diferenca med željeno veličino in regulirano veličino,
∑𝜀 – vsota vseh pogreškov,
𝑑𝑃
𝑑𝑇 – čas do ponovnega izračuna regulirne veličine,
kP – proporcionalni člen (konstanta),
kI – integralni člen (se izračunava do ponastavitve v primeru, ko je pogrešek večji od
maksimalnega željenega),
kD – diferencialni člen.
Implementacija kinematičnega modela in regulacije
81
6.6 Implementacija regulatorja v programsko kodo
Ko smo v programu pridobili vse potrebne podatke, smo z lahkoto napisali program [32]
(priloga C) za regulator smeri. Žiroskop nam je dal podatek o smeri v obliki kota, in sicer
vrednosti med -180° in 180°. Slika 6.30 prikazuje v grobem polno strukturo delovanja
robota. Fizični deli, kot so IR-diode in žiroskop, nam podajajo podatke za obdelavo v
programu. Program iz pridobljenih podatkov preračuna, kakšna je napaka in se glede na
specifikacije modela robota odzove, inverzni kinematični model pa preračuna potrebne
vrednosti pulzno širinske modulacije, s katero krmilimo močnostne gonilnike motorjev. V
grobem smo predstavili kaj se bo dogajalo ob morebitni napaki.
Slika 6.30: Prikaz elementov sistema, ki so realizirani s programom mikrokrmilnika.
V začetku igre smo postavili robota proti nasprotnemu golu in nastavili željeno vrednost
(smer robota). Med igro nenehno izvajamo regulacijo izravnave, zato se mora program za
reguliranje izravnave izvajati v neskončni zanki. V programu nimamo rutinske prekinitve,
ki se v diskretnih sistemih najpogosteje uporablja za enakomerno tipanje signalov, zato je
naš sistem občutljiv na časovne konstante v zanki. Največja časovna konstanta mora biti vsaj
petkrat manjša od največje časovne konstante koristnega signala. Prav zaradi tega smo lahko
simulacijski model obravnavali v frekvenčnem prostoru.
Sandi Rihtarič
82
Pri simuliranju regulacijske proge (Slika 6.4) s programom Matlab-simulink nismo
upoštevali morebitnih motenj, ampak smo simulirali sistem s popolnimi pogoji.
Predpostavili smo, da motenj v sistemu ni, seveda pa to v realnem okolju ne obstaja, zaradi
tega se nam bodo pojavila vidna odstopanja med simuliranim in realnim sistemom.
Izvajanje naloge robota zahteva premikanje po igralni površini in hkrati izravnavo robota v
določeni smeri. To pa pomeni, da imamo opravka z vzporedno regulacijo k ostalim
funkcionalnostim robota. Predpostavili smo šest smeri gibanja robota (Slika 6.31) s
konstantno hitrostjo.
Slika 6.31: Gibanje robota
Že s Slika 6.31 je razvidno, da bo robot za premikanje v določeno smer potreboval le dve
kolesi, medtem ko bo regulator z regulirno veličino vplival na vsa tri kolesa. Kako se bo to
dogajalo, smo opisali v nadaljevanju.
Opisali smo gibanje in izravnavo robota naravnost naprej/nazaj. Za to nalogo smo najprej
morali predpostaviti vrtenje koles robota in opisati dogajanje ob morebitnih motnjah v
sistemu. Kolesa poganjajo močnostni gonilniki motorjev, te pa krmilimo z pulznoširinsko
modulacijo (PWM) iz mikrokrmilnika. Prenosno funkcijo smo zapisali v enačbi 6.16,
podana je z ojačenjem (0,047 V/delec) močnostnega gonilnika motorjev.
Implementacija kinematičnega modela in regulacije
83
Za vožnjo naprej se morata kolo 1 (k1) in kolo 2 (k2) vrteti v željeni smeri robota (Slika
6.32), med tem kolo 3 (k3) miruje, razen ko pride do pogreška v regulacijski zanki (Slika
6.4).
Slika 6.32: Gibanje robota naprej
Tako je hitrost posameznega kolesa (enačba 6.34) vsota željene hitrosti v določeno smer in
hitrosti, ki je potrebna za izravnavo robota (Slika 6.32).
𝑉𝑘1 = 𝑉 + 𝑣𝑘1 , 𝑉𝑘2 = 𝑉 − 𝑣𝑘2 , 𝑉𝑘3 = 𝑣𝑘3 (6.34)
Pokazali smo, kako se morajo obnašati kolesa za gibanje naprej, tedaj smo lahko to vnesli v
program in napisali programsko kodo (Slika 6.33). Ko smo izvajali simulacijo izravnave
kota, nismo upoštevali hitrosti robota v neko smer, kar pomeni, da se naš simuliran model
robota nahaja zmeraj v eni in isti točki zunanjega koordinatnega sistema (Slika 6.4) �̇�𝑙 = 0,
�̇�𝑙 = 0.
Na Slika 6.5 lahko vidimo omejitve izhodov iz inverznega kinematičnega modela, ki je
zapisan z enačbama 6.14 in 6.11. Omejitve izhodov smo morali vključiti zaradi regulacijske
veličine, saj bi se ta lahko pri velikem odklonu kota zelo povečala in bi iz inverznega
kinematičnega modela (Slika 6.33) dobili višjo vrednost kot 255 delcev za krmiljenje
močnostnih krmilnikov motorja. Prav tako pa je iz Slika 6.33 razvidno, da imamo
Sandi Rihtarič
84
maksimalno vrednost krmiljene veličine in s tem rezerve za regulacijo 100 delcev, kar
pomeni, če upoštevamo prenosno funkcijo gonilnikov podano z enačbo 6.16, je
100 (delec) * 0.047 (V/delec) = 4,7 V maksimalna vrednost (Slika 7.9) s katero lahko
vplivamo na posamezno kolo in s tem izravnavamo robota.
Slika 6.33: Podprogram za hitrosti koles (gibanje naprej/nazaj)
Prej smo razložili, s kakšno rezervo lahko izravnavamo robota, iz česa sledi, da nam je ostalo
za hitrost robota 155 delcev, kar je po enačbi prenosne funkcije enakovredno 7,85 V.
Ojačenje (enačba 6.18) prenosne funkcije motorja i-tega kolesa nam predstavlja razmerje
med vrtljaji motorja in vhodno napetostjo. V primeru, da je pogrešek v regulacijsko zanko
enak nič, je hitrost posameznega kolesa podan z enačbo 6.35.
𝜔 = 𝑈𝐾𝑚 = 7.85𝑉 ∙ 4,17𝑟𝑎𝑑
𝑉≅ 31 𝑟𝑎𝑑 (6.35)
Rezultati
85
7. Rezultati
Prvo vprašanje, ki se nam je porodilo ob načrtovanju robota je, kakšne rezultate sploh želimo
imeti. Seveda je za dijake zelo pomembno, da se uvrstijo čim više na vsakem tekmovanju,
kar pomeni, da morajo temu zadostiti konstrukcija, elektronika in na koncu tudi program, ki
poganja našega robota. Program za regulacijo smeri robota najdemo v prilogi C.
Za lažje razumevanje moramo predstaviti tipanju in obdelavo veličin v mikroprocesorju.
Glede na hitrost procesorja oz. njegovega delovnega takta nam za hitrost ni potrebno skrbeti,
saj je pri frekvenci delovnega takta 16 MHz, procesor sposoben opraviti 16 mio. ukazov v
eni sekundi. Pri zahtevnosti našega programa ne bo nobene težave. Ker usmerjenosti robota
ne odčitavamo analogno, ampak digitalno preko I2C vodila, nam tudi to vzame le malo časa,
da procesor prebere podatke iz pomnilnika na žiroskopu. Ko smo že sestavili program za
robota (priloga C), nam ostane le še nastavitev regulacijskih konstant Ki, Kp, in Kd.
Nekako smo si morali zastaviti robne pogoje, ki nam bodo zadostovali za našo aplikacijo in
pri katerih se bo robot obnašal stabilno [30].
Tako smo zapisali naslednjo tabelo (Slika 7.1), ki se navezuje na Slika 7.2.
Parametri Za vse regulatorje
Pogrešek smeri (ss error) < 6°
Prekoračitev (Mp) < 6%
Nastavitveni čas (ts) < 0.6 s
Čas vzpona (tr) < 0. 4s
Slika 7.1: Tabela izbranih časovnih parametrov [31]
tr – čas vzpona od 10 % do 90 % željene veličine,
ts – nastavitveni čas (ko merjena veličina doseže željeno veličino oz. se umiri v mejah),
Mp – prekoračitev (najvišja točka prekoračitve),
ss error – statični pogrešek.
Sandi Rihtarič
86
Slika 7.2: Natavitev časovnih parametrov (simbolični diagram) [31]
Lotili smo se testiranja z različnimi regulatorji in prvi je P-regulator, ki pa je konstanta
pomnožena s pogreškom glej (enačbo (6.34)). Poskušali smo narediti primerjavo realnega
robota in simulacijskega modela. Na Slika 7.3 vidimo oba odziva, v simulacijskem modelu
in realnem robotu smo nastavili ojačenje Kp na 100. Rezultati simuliranega modela in
realnega robota se ne morejo ujemati popolno, saj pri načrtovanju nismo upoštevali vseh
potrebnih faktorjev simulacijskega modela, ki so v realnem robotu prisotni.
Rezultati
87
Slika 7.3: P regulator simulacijskega modela in realnega robota
Na vsak način smo dobili odstopanja pravega modela od simuliranega, saj nimamo
upoštevanih vseh faktorjev popolnoma natančno. V primeru, da se nam vsa ojačenja v
regulacijski progi res izničijo, še vedno rezultata odzivov (Slika 7.4) zaradi drsenja koles in
drugih časovnih faktorjev ne moreta biti enaka.
Slika 7.4: Odziv na stopnico za dušenje sistema drugega reda (pri D = 0.7)
0
20
40
60
80
100
120
0 500 1000 1500 2000 2500 3000 3500
Ko
t
t (ms)
Naslov grafikona
ROBOT Željena vrednost SIMULACIJA
0
10
20
30
40
50
60
70
80
0 200 400 600 800 1000 1200
Ko
t (°
)
t (ms)
Dušenje D=0.7
ROBOT SIMULATOR Željena vrednost
Sandi Rihtarič
88
Iz Slika 7.4 smo lahko razbrali, da se vsi faktorji ojačenja v regulacijski zanki skorajda
izničijo. Do manjšega odstopanje pride zaradi motenj, ki smo jih že navedli. Napako v času
odzivnosti pa smo pripisali pomanjkljivemu načrtovanju pri simulacijskem modelu robota.
Težava regulacije pri-regulatorju je ta, da moramo skrbno izbrati ojačenje Kp, če želimo, da
sistem ostane stabilen, brez nihanja, in nam istočasno zadostuje za našo aplikacijo. V
poglavju Načrtovanje regulatorja smo že ugotovili, da se čas nastavitve povečuje z
manjšanjem ojačenja in obratno (Slika 6.15). Proporcionalni regulator spreminja izhod
proporcionalno z regulacijskim pogreškom. Večji kot je pogrešek, večji bo izhod iz
regulatorja.
PI-regulator nam za razliko integracijskih pogreškov zmanjša število nihajev, v primeru, da
se po nihanju dejanska vrednost ne ustali na željeni vrednosti. Koeficient Ki lahko
povečamo, dokler ne pridemo do točke kjer se dejanska vrednost ne približa željeni. Takrat
ga moramo začeti manjšati. Pravilna vrednost Ki, pa se skriva nekje vmes.
Slika 7.5: PI-regulator
PD-regulator je zelo zanimiv, saj nam bi lahko ob zadostnih pogojih zelo zvišal strmino
naraščanja in ob pravih koeficientih tudi zadostil stabilnosti oz. natančnosti. Iz grafa na Slika
7.6 je lepo razvidno kako koeficient Kd vpliva na regulacijsko progo sistema.
0
20
40
60
80
100
120
0 200 400 600 800 1000 1200
Ko
t (°
)
t (ms)
PI regulator (Kr=50)
Ki=20 Ki=10 Ki=0.1 Željena vrednost
Rezultati
89
Slika 7.6: PD-regulator
PID-regulator združi vse lastnosti integracijskega člena, ki tako rekoč odbija seštevke
pogreškov in s tem upočasni nastavitev na željeno vrednost, diferencialni del to vrednost
prišteva in s tem regulatorjem moramo dobiti najboljšo možno rešitev. Tudi tega bomo
testirali.
Z nastavljanjem koeficientov PID-regulatorja smo uspeli doseči, da se dejanska vrednost
počasi približuje končni vrednosti (Slika 7.7), vendar se pri teh nastavitvah močno poveča
čas vzpona. Sicer je ta čas še vedno v mejnih okvirjih vendar bi vseeno radi dobili sistem, ki
se odziva hitreje.
0
10
20
30
40
50
60
70
0 200 400 600 800 1000 1200
Ko
t (°
)
t (ms)
PD (Kp = 50, Kd = 100)
Dejanska vrednost kota Željena vrednost kota
Sandi Rihtarič
90
Slika 7.7: Graf 1 PID regulator
7.2 Določanje parametrov PID-regulatorja po Ziegler–Nichols metodi.
Metoda [34] prikazuje kako učinkovito poiskati koeficiente PID-regulatorja. Lahko nam je
v veliko pomoč in nam prihrani veliko časa, ki bi ga sicer vložili v ugotavljanje s testiranjem
[33].
Metodo smo izvedli tako, da smo nastavili spremembo kota iz 0° na 80°. Pri tem smo
upoštevali naslednja navodila za nastavitev PID regulatorja.
Za določanje koeficientov PID-regulatorja sledimo navodilom:
Najprej nastavimo koeficienta Ki in Kd na nič.
Koeficient Kp smo nastavili na 40, zagnali robota in opazovali, kaj se zgodi ob
spremembi kota. V primeru, da pride do močnih nihanj, koeficient Kp zmanjšamo
in to ponavljamo tako dolgo, dokler nihanj več ni in smo zadovoljni z odzivom. To
točko v literaturi označujejo kot kritično ojačenje Kc. V našem primeru je kritično
ojačenje Kc = 7.
Pri točki kritičnega ojačenja določimo čas odziva na spremembo in ga označimo z
Pc. Mi smo to izvedli tako, da smo zagnali spremembo in na odzivu odčitali čas
spremembe kota iz 0° do 80°. V našem primeru znaša Pc = 0,99 s.
-10
0
10
20
30
40
50
60
70
0 200 400 600 800 1000 1200
Ko
t (°
)
t (ms)
PID (Kp=50, Ki=20, Kd=100)
Nizi1 Nizi2
Rezultati
91
V naslednjem koraku smo morali ugotoviti, kako dolgo traja ena zanka našega
programa. Merjenja časa ene zanke smo se lotili tako, da smo zagnali zanko tisoč
krat in izmerili vmesni čas. V našem primeru se je zanka ponovila v 33 s in temu
sledi izračun enačbe (7.1).
𝑑𝑡 = č𝑎𝑠
š𝑡.𝑧𝑎𝑛𝑘=
33 𝑠
1000= 0,033 𝑠 (7.1)
Nato pa po Ziegler – Nichols metodi preračunamo koeficiente za PID-regulator
Najprej izračunamo koeficient proporcionalnega člena Kp, prikazuje ga enačba (7.2).
𝐾𝑝 = 0,6𝐾𝑐 (7.2)
Naslednji koeficient je integracijski Ki, ki je podan z enačbo (7.3).
𝐾𝑖 =2𝐾𝑝𝑑𝑡
𝑃𝑐 (7.3)
Zadnji potreben člen za PID-regulator je diferencialni Kd in je podan z enačbo (7.4).
𝐾𝑑 =𝐾𝑝𝑃𝑐
8𝑑𝑡 (7.4)
Zapisali smo vse potrebne enačbe za določitev koeficientov, te sedaj zapišimo v tabelo 1.
Tabela 1: Pridobljeni koeficienti po metodi Z-N [33]
Ziegler – Nichols metoda
REG/KOE Kp Ki Kd
PID 4,2 2,77 111
Ko smo vnesli koeficiente PID-regulatorja in robota preizkusili, smo ugotovili, da je
metoda zelo učinkovita, še zmeraj smo v zgoraj navedenih omejitvah (Slika 7.2) za naše
potrebe. Rezultat metode prikazuje Slika 7.8.
Sandi Rihtarič
92
Slika 7.8: Odziv PID-regulatorja nastavljenega po Ziegler – Nichols metodi
Rezultati vožnje oz. iskanje žoge so več zadovoljivi, Slika 7.9 prikazuje gibanje robota in
izravnavo.
Slika 7.9: Vožnja naprej in izravnava
-60
-40
-20
0
20
40
60
80
100
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145
Ko
t (°
)
Čas (t)
Nastavitev PID-regulatorja po Zigler-Nichols metodi
Željena vrednost kota Dejanska vrednost kota
-200
-150
-100
-50
0
50
0 200 400 600 800 1000 1200 1400 1600 1800
Hit
rost
(d
elci
), k
ot
(°)
t (ms)
Hitrosti koles pri vožnji naprej (željena hitrost 140 (delcev), željen kot=0°)
Željena vrednost Hitrost kolesa 2
Hitrost kolesa 1 hitrost kolesa 3
Zaključek
93
8. Zaključek
V diplomskem delu smo pokazali načrtovanje in gradnjo robota SOCKY10 za igranje
nogometa na tekmovanjih RoboCupJunir. Sestavljeni robot se s pomočjo žiroskopa na
igralni površini izravnava proti nasprotnemu golu oz. nasprotni ekipi.
Dosegli smo zastavljene cilje, ki smo si jih zastavili v začetku izdelave naloge. Robotu smo
regulacijo smeri robota izboljšali z zvezno PID-regulacijo, izvedeno s programom. V osnovi
je bil cilj naloge sestaviti program za Arduino MEGA 2560, ki nam bi omogočal hitre in
dovolj natančne odzive robota pri odstopanju smeri igranja od željene smeri igranja robota.
To smo dosegli z vključitvijo inverznega kinematičnega modela robota in zveznega-PID
regulatorja. Regulator smo nastavili po metodi poskušanja in s preverjeno Ziegler-Nichols
metodo. Rezultati so več kot zadovoljivi, izboljšali smo odzivni čas pri spremembi kota brez
nihanj, natančnost pa smo uspeli zmanjšati iz 15° odklona na maksimalno 5° odklona od
željene vrednosti. Nalogo smo dopolniti z algoritmom iskanja žoge.
Za prihajajoča tekmovanja se spreminjajo pravila in bomo morali implementirati grafično
prepoznavo žoge, saj ima tehnični komite RoboCupJunior organizacije namen zamenjati
elektronsko žogo z navadno oranžno žogo. Prav tako bi bilo smiselno robota nadgradili z
napravo za streljanje na gol.
Pot razvoja nas pelje v implementacijo hitrejših procesorjev in s tem povezano elektroniko,
zato razmišljamo o menjavi razvojne plošče. Tako že načrtujemo naslednjo generacijo
robota z Raspberry Pi mini računalnikom (Single-board Computer).
94
9. Seznam uporabljenih virov
[ 1 ] Soccer Technical Committee 2016. RoboCupJunior Soccer Rules 2016. Dostopno
na: http://rcj.robocup.org/rcj2016/soccer_2016.pdf [13. 7. 2016]
[ 2 ] InvenSense. MPU6050 6DOF IMU. Dostopno na:
http://42bots.com/tutorials/arduino-uno-and-the-invensense-mpu-6050-6dof-imu/
[8.7.2016]
[ 3 ] Arduino. Arduino MEGA 2560. Dostop na:
https://www.arduino.cc/en/Main/ArduinoBoardMega2560 [13. 7. 2016]
[ 4 ] STMicroelectronics. L8705CV3. Dostopno na:
http://datasheet.octopart.com/L7805CV-STMicroelectronics-datasheet-7264666.pdf
[22.7.16]
[ 5 ] Simens. IR-Reciver for Remote Control Systems. Dostopno na:
http://www.datasheet.hk/view_download.php?id=1053324&file=0035\sfh5110_270
806.pdf [14. 7. 2016]
[ 6 ] Pololu. Metal Gearmotor 25DX50L mm HP 12V. Dostopno na:
https://www.pololu.com/product/3203 [10. 7. 2016]
[ 7 ] General Resistors. CDS Photo resistor. Dostopno na:
https://www.pololu.com/product/3203 [10. 7. 2016]
[ 8 ] Turnigy. Turnigy nano tech 1300 mAh. Dostopno na:
http://www.hobbyking.com/hobbyking/store/__18207__Turnigy_nano_tech_1300
mAh_3S_45_90C_Lipo_Pack.html [10. 7. 2016]
[ 9 ] Texas Instruments. LM 2596 Simple Switcher. Dostopen na:
http://www.ti.com/lit/ds/symlink/lm2596.pdf [12. 7. 2016]
[ 10 ] Milanovič Miro. Uvod v močnostno elektroniko [1. izdaja]. Maribor: Fakulteta za
elektrotehniko, računalništvo in informatiko, 1997.
[ 11 ] Atmel. Atmel Atmega 640/V-1280/V-1281/V-2560/V2561/V. 8 bit Atmel
Microcontroller. Dostopen na:
http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-
ATmega640-1280-1281-2560-2561_datasheet.pdf [14. 7. 2016]
[ 12 ] Arduino. Motor Shield. Dostopen na:
http://playground.arduino.cc/Main/AdafruitMotorShield [14. 7. 2016]
[ 13 ] DX dealextreme. L298N Stepper Motor Driver Controller Board Module – Blue
Dostopno na:
http://www.dx.com/p/l298n-stepper-motor-driver-controller-board-module-blue-
149662#.VtgY2_nhAdU [14. 7. 2016]
[ 14 ] Micropik. TRANSISTORES. Dostopno na:
http://www.micropik.com/PDF/BUZ11.pdf [14. 7. 2016]
[ 15 ] Silicon Laboratories. Si823x 0.5 AND 4.0 AMP ISODRIVERS (2.5 and 5 kVRMS).
Dostopno na:
https://www.silabs.com/Support%20Documents/TechnicalDocs/Si823x.pdf
[14. 7. 2016]
[ 16 ] Parallax. Parallax ping sensor. Dostopno na:
http://learn.parallax.com/tutorials/robot/activitybot/activitybot/navigate-
ultrasound/build-and-test-ping-sensor-circuit [8. 7. 2015]
95
[ 17 ] Đonlagič Denis. Mems in njihova uporaba. Maribor: Inštitut za avtomatiko, Fakulteta
za elektrotehniko, računalništvo in informatiko.
[ 18 ] Honeywell. 3-Axis Digital Compass IC HMC 5883L. Dostopen na:
https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-
Axis_Digital_Compass_IC.pdf [7. 7. 2016]
[ 19 ] Arduino. 12864 Graphic LCD. Dostopno na:
http://playground.arduino.cc/Code/LCD12864 [15. 7. 2016]
[ 20 ] Arduino. Software. Dostopno na:
https://www.arduino.cc/en/Main/Software [16. 7. 2016]
[ 21 ] Krkoč Peter, Programirajmo Arduino z lahkoto :zbrani članki iz revije Svet
elektronike, Ljubljana : AX elektronika, 2014 [16.7.206]
[ 22 ] Fritzing. Programska oprema Fritzzing. Dostopno na:
http://fritzing.org/home/ [19. 7. 2016]
[ 23 ] Matlab. Programska oprema Matlab. Dosegljivo na:
http://www.mathworks.com/products/matlab/ [19. 7. 2016]
[ 24 ] Abacom. Sprint-Layout. Dostopno na:
http://www.abacom-online.de/uk/html/sprint-layout.html [19. 7. 2016]
[ 25 ] Altium. Altium Designer. Dostono na:
http://www.altium.com/ [19. 7. 2016]
[ 26 ] Cvetko Štandeker. Krmilja in regulacije. [1. ponatis]. Ljubljana: Tehniška založba
Slovenije, 1993. [15. 7. 2016]
[ 27 ] Baede, T.A., 2006. Motion Control of an omnidirectional mobile robot. Internal
report DCT 2006.084. Eindhoven University of Technology, the Netherlands. [20. 7. 2016] [ 28 ] Xiang Li and Andreas Zell. Motion control of an omnidirectional mobile robot.
In Proceedings of the 4th International Conference on Informatics in Control,
Automation and Robotics, ICINCO'07), volume 24 of Lecture Notes in Electrical E
ngineering, pages 181-193, Angers, France, 2007. Springer. [20. 7. 2016]
[ 29] K. Jezernik, Teorija regulacij I, zbrano gradivo, TF Maribor 1989 [1.8. 2016]
[ 30 ] dr. Suzana Uran. Navodila za laboratorijske vaje pri predmetu SISTEMI
MEHATRONIKE 1. del. KINEMATIKA ROBOTA S KOLESI IN
DIFERENCIALNIM POGONOM TER REGULACIJA VOŽNJE ROBOTA V
LABIRINTU. Maribor 2015. [21. 7. 2016]
[ 31 ] PID Control: A Brief introductin and guide, using Arduino. Dostopno na:
http://www.maelabs.ucsd.edu/mae156alib/control/PID-Control-Ardunio.pdf
[21 . 7. 2016]
[ 32 ] Krkoč Peter, Programirajmo Arduino z lahkoto :zbrani članki iz revije Svet
elektronike, Ljubljana : AX elektronika, 2014. [17. 7. 2016]
[ 33 ] Josef Lücking. Regelungstechnik auf zwei Rädern mit LEGO MINDSTORMS: Vom
Zweipunktregler zur PID-Regelung ines Selbstbalance-Roboters: April 2012
[18. 7. 2016]
[ 34 ] Metoda Ziegler Nichols. Dostopno na :
https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method [11.8.2016]