tekmovalno/izobraŽevalni robot socky10 · 1.6.3 prvi udarec (kick-off) ... kp – proporcionalni...

113
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Sandi Rihtarič TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 Diplomsko delo Maribor, avgust 2016

Upload: vuonganh

Post on 09-Apr-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Sandi Rihtarič

TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10

Diplomsko delo

Maribor, avgust 2016

Page 2: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,
Page 3: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 4: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

Sandi Rihtarič

Page 5: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 6: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 7: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 8: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 9: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 10: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 11: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 12: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 13: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 14: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 15: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 16: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 17: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 18: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 19: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 20: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 21: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 22: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 23: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 24: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 25: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 26: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 27: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 28: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 29: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 30: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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;

Page 31: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 32: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 33: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 34: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 35: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 36: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 37: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 38: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 39: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 40: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 41: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 42: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 43: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 44: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 45: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 46: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 47: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 48: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 49: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 50: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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]

Page 51: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 52: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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]

Page 53: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 54: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 55: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 56: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 57: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 58: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 59: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 60: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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)

Page 61: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 62: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 63: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 64: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 65: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 66: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 67: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 68: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 69: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 70: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 71: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 72: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 73: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 74: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 75: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 76: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 77: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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,

Page 78: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 79: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 80: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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),

Page 81: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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)

Page 82: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 83: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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:

Page 84: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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:

Page 85: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 86: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 87: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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)

Page 88: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 89: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 90: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 91: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

)

Page 92: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 93: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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°

Page 94: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 95: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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].

Page 96: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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].

Page 97: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 98: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 99: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 100: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 101: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 102: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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)

Page 103: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 104: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 105: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 106: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 107: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 108: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 109: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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.

Page 110: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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

Page 111: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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).

Page 112: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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]

Page 113: TEKMOVALNO/IZOBRAŽEVALNI ROBOT SOCKY10 · 1.6.3 Prvi udarec (Kick-off) ... kP – proporcionalni člen (konstanta), kI – integralni člen (se izračunava do ponastavitve v primeru,

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]