o: ActiveSupport::Cache::Entry :@compressedF: @value"4À"-À
Designs/ROBOTS/Camerus/htm/index.htm
1
<html>
2

  
3
<head>
4
<meta http-equiv="Content-Language" content="cs">
5
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
6
<title>Camerus</title>
7
</head>
8

  
9
<body>
10

  
11
<p align="center"><font face="Arial"><font size="7">Robot CAMERUS<br>
12
</font><font size="4">Jak se d?l? robot na IstRobot<br>
13
</font><br>
14
<a href="mailto:kaklik@mlab.cz">kaklik@mlab.cz</a>; <a href="mailto:kakl@i.cz">
15
kakl@i.cz</a><span lang="en-us">; <font size="2">M. Novot</font></span><font size="2">n?</font><br>
16
&nbsp;</font></p>
17
<p align="center"><a href="pic/image001.jpg">
18
<img border="0" src="pic/image001_small.jpg" xthumbnail-orig-image="pic/image001.jpg"></a></p>
19
<p align="left"><font face="Times New Roman">Tato dokumentace popisuje 
20
konstrukci robota Camerus, kter? byl zkonstruov?n pro sout?? IstRobot pro 
21
kategorii Stop?r (<a href="http://www.robotika.sk/contest/">http://www.robotika.sk/contest/</a>).
22
<br>
23
<br>
24
Sna?ili jsme se technickou dokumentaci pojmout pon?kud netradi?n?. Krom? popisu 
25
fin?ln? verze robota zde naleznete chronologick? popis jeho v?voje a popis v?ech 
26
slep?ch uli?ek. Douf?me, ?e takov?to forma dokumentace bude m?t pro na?e 
27
n?sledovn?ky v?t?? hodnotu ne? pouh? n?vod na zopakov?n? konstrukce.<br>
28
&nbsp;</font></p>
29
<p align="left"><font face="Times New Roman" size="4"><b>Robot 3Orbis</b></font></p>
30
<p align="left"><font face="Times New Roman"><span lang="cs">V?voj robota 
31
Camerus za?al p?ed v?ce jak dv?ma roky v?vojem robota 3Orbis. Robot 3Orbis m?l 
32
m?t novou revolu?n? koncepci podvozku. Pou?ili jsme t??kol? podvozek, kter? m?l 
33
dv? hnan? kola, ka?d? s&nbsp;nez?visl?m motorem a t?et? kolo, kter? m?lo ??zen? 
34
zat??en?. Jednalo se tedy o nonholonomn? podvozek. Koncepci podvozku jsme 
35
nejd??ve ov??ovali se dv?ma senzory na ??ru, jako to m?ly na?i p?edchoz? 
36
holonomn? roboti. To moc nefungovalo a proto jsme p?idali dal?? senzory, pomoc? 
37
kter?ch se diskr?tn? nastavoval ?hel zat??ec?ho kole?ka.</span></font></p>
38
<p align="center"><font face="Times New Roman"><a href="pic/image003.jpg">
39
<img border="0" src="pic/image003_small.jpg" xthumbnail-orig-image="pic/image003.jpg"></a></font></p>
40
<p align="center"><font face="Times New Roman">Ob<span lang="en-us">r.</span>1: 
41
Prvn? pokusy s&nbsp;t??kol?m a t??motorov?m robotem<br>
42
<br>
43
<a href="pic/image005.jpg">
44
<img border="0" src="pic/image005_small.jpg" xthumbnail-orig-image="pic/image005.jpg"></a></font></p>
45
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 2: 
46
Baterie senzor? na ??ru</font></p>
47
<p align="left"><font face="Times New Roman"><br>
48
P?id?n?m dal??ch senzor? na ??ru jsme se dostali do probl?m? s&nbsp;po?tem vstup? 
49
pou?it?ho procesoru (PIC16F88). Tento probl?m jsme vy?e?ili tak, ?e jsme na 
50
zpracov?n? sign?l? ze senzor? na ??ru pou?ili dal?? samostatn? procesor. Toto 
51
?e?en? se v?ak pozd?ji neuk?zalo jako v?hodn?, proto?e ladit distribuovan? k?d 
52
bylo ??dov? obt??n?j?? a nav?c se musela naprogramovat komunikace mezi 
53
procesory. ?asto se n?m tak? st?valo, ?e jsme b?hem v?voje do jednoho procesoru 
54
nahr?li k?d pro druh? procesor, co? kupodivu <span lang="en-us">v</span>?dy trvalo ur?itou dobu, ne? jsme 
55
na to p?i?li.<br>
56
&nbsp;</font></p>
57
<p align="center"><font face="Times New Roman"><a href="pic/image007.jpg">
58
<img border="0" src="pic/image007_small.jpg" xthumbnail-orig-image="pic/image007.jpg"></a></font></p>
59
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">. </span>3: 
60
P?edn? n?hon; p?id?no druh? patro na elektroniku<br>
61
&nbsp;</font></p>
62
<p align="left"><font face="Times New Roman">P?vodn? koncepce p?edpokl?dala 
63
hnan? kola vp?edu a zat??ec? kolo vzadu. Model??sk? servo v?ak nedok?zalo 
64
dostate?n? rychle zat??et, p?esto?e bylo zp?evodov?no do rychla p?evodem 1:2. 
65
Zm?nili jsme proto uspo??d?n? na hnanou n?pravu vzadu a zat??ec? kole?ko vp?edu. 
66
To n?m umo??ovalo ?ost?e ?ezat zat??ky?, ale objevily se dal?? probl?my. 
67
Podvozek se v&nbsp;zat??k?ch dost?val do smyku a proto?e hmotnost ?idel byla 
68
nezanedbateln?, doch?zelo i k&nbsp;jeho nakl?p?n? a n?sledn? k&nbsp;fale?n?mu sign?lu 
69
z&nbsp;?idel, proto?e ?idla nebyla dr?ena v&nbsp;konstantn? vzd?lenosti od povrchu.<br>
70
<br>
71
Pro 3Orbise byla vysoustru?ena duralov? kola, pro kter? bylo pl?nov?no obut? ?O? 
72
krou?ky. To se pak uk?zalo jako nepou?iteln?. ?O? krou?ky se nedok?zaly udr?et 
73
v&nbsp;dr??k?ch na kolech. P?vodn? kola byla tedy nahrazena plastov?mi z&nbsp;d?tsk? 
74
hra?ky. Kola m?la men?? pr?m?r, co? zlep?ilo p?evodov? pom?r, kter? byl pro 
75
vyroben? p?evodovky 5:1. Jako obut? byly pou?ity ust?i?en? prsty z&nbsp;latexov?ch 
76
rukavic pro dom?cnost. Jako obut? zat??ec?ho kole?ka bylo pou?ito pry?ov? 
77
t?sn?n? 12x10x2. Na zat??ec? kole?ko bylo obuto tak, ?e se jelo po hran? 
78
t?sn?n?.</font></p>
79
<p align="center"><font face="Times New Roman">
80
<br>
81
<a href="pic/image009.jpg">
82
<img border="0" src="pic/image009_small.jpg" xthumbnail-orig-image="pic/image009.jpg"></a></font></p>
83
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 4: 
84
Robot 3Orbis. Zadn? n?hon a men?? kole?ka z&nbsp;autobusu od syna pana Hronka.<br>
85
Je vid?t ?idlo na hled?n? hrany cihly.</font></p>
86
<p align="left"><font face="Times New Roman"><br>
87
Pro detekci a obj??d?n? cihly byly na robotovi namontov?ny IR senzory. Jeden m?l 
88
detekovat p?ek??ku na dr?ze a zbyl? dva m?ly slou?it pro jej? objet?. Objet? 
89
cihly pomoc? IR senzor? jsme v?ak nedok?zali odladit. Obj??d?n? nebylo 
90
spolehliv? a tak robot nakonec obj??d?l cihlu naslepo. <br>
91
P?i sout??i se objevil ne?ekan? probl?m, kv?li kter?mu robot nakonec nedojel. 
92
Sout??n? dr?ha je tvo?ena dv?ma deskami. Desky nejsou dokonale sl?cov?ny a tak 
93
mezi nimi vznik? tmav? mezera. Tato mezera byla na sout??n? dr?ze p?elepena 
94
b?lou lepic? p?skou. Bohu?el ?idla na ??ru, kter? robot pou??val, vyhodnocovala 
95
b?lou lepic? p?sku jako ?ernou (?idla pracuj? bl?zko ultrafialov? oblasti). 
96
Tento probl?m by ?el kompenzovat programov?, ale na sout??i se nepoda?ilo 
97
program v&nbsp;?asov? t?sni spr?vn? upravit. Robot tedy nakonec nedojel.<br>
98
<br>
99
Odhadovali jsme, ?e n?m chyb?l tak t?den na odlad?n? firmware, proto?e v&nbsp;roce 
100
2006 u n?s byla povode? a ztratili jsme tak nejm?n? jeden kalend??n? m?s?c ve?er?/weekend? na 
101
programov?n?. Nyn? s&nbsp;odstupem ?asu vid?me, ?e co se t?k? objet? cihly, chyb?lo 
102
n?m mnohem v?ce.<br>
103
&nbsp;</font></p>
104
<p align="left"><font face="Times New Roman" size="4"><b>Robot Laserus</b></font></p>
105
<p align="left"><font face="Times New Roman">Dal?? verz? robota se shodn?m 
106
podvozkem byl robot Laserus. Snahou bylo odstranit ?t??k?? ?idla p?edsunut? p?ed 
107
robota a tak odstranit p?ekl?p?n? v&nbsp;ostr?ch zat??k?ch. ?e?en?m by bylo zv?t?en? 
108
dosahu ?idel na ??ru tak, aby mohla b?t um?st?na co nejbl??e k&nbsp;ose ot??en? 
109
robota. Z?rove? by se t?m sn??ila obvodov? setrva?n? hmotnost robota. Znovu jsme 
110
pou?ili t??kol? podvozek s&nbsp;jedn?m ??zen?m zat??ec?m kole?kem, p?esto?e na 
111
IstRobotu 2006 byla tato konfigurace diskutov?na a auto?i druh?ho robota 
112
s&nbsp;podobnou koncepc? se v&nbsp;diskusi vyj?d?ili, ?e to nebyl dobr? n?pad, ?e robot 
113
p?i v?t??ch rychlostech m? snahu se rozkmit?vat. ?e?en? tohoto probl?mu jsme 
114
vid?li ve zjemn?n? sn?m?n? ??ry tak, aby se precizn?ji nastavovalo zat??ec? 
115
kole?ko.<span lang="en-us"> </span>Napadlo n?s pou??t laserovou ?te?ku ??rov?ho 
116
k?du a skute?n? jsme postavili funk?n?ho robota (viz Obr?zek 5), kter? dok?zal, 
117
ale pomalu, jezdit po ???e. </font></p>
118
<p align="center"><font face="Times New Roman"><a href="pic/image011.jpg">
119
<img border="0" src="pic/image011_small.jpg" xthumbnail-orig-image="pic/image011.jpg"></a></font></p>
120
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 5: 
121
Robot Laserus. Na obr?zku je vid?t ?erven? stopa LASERu.</font></p>
122
<p align="left"><font face="Times New Roman"> <br>
123
Probl?my s&nbsp;touto konstrukc? byly dva. Pokud byl na dr?ze hrbol, tak se 
124
v&nbsp;d?sledku vibrac? zmen?il rozkmit laseru, proto?e laser je ve ?tec?m za??zen? 
125
rozm?t?v?n mechanicky zrc?tkem, kter? vibruje a velk? stranov? zrychlen? p?i 
126
p?ejet? hrbolu zp?sobovalo, ?e elektromagnetick? mechanismus, kter? pohybuje 
127
zrc?tkem vypadl z&nbsp;rezonance. Tento probl?m by ov?em z?ejm? ?lo kompenzovat 
128
softwarem, proto?e se ??ra ?etla v&nbsp;obou sm?rech pohybu zrc?tka. Jednou jsme tedy 
129
dostali polohu ??ry m??enou z leva a jednou z prava.<br>
130
<br>
131
Druh? probl?m byl z?va?n?j??. Proto?e bylo pou?ito za??zen? na ?ten? ??rov?ho 
132
k?du, sn?mali jsme vlastn? polohu jedn? ??ry fiktivn?ho ??rov?ho k?du ve scanovan?m prostoru. V&nbsp;prudk? 
133
zat??ce v?ak doch?z? k&nbsp;tomu, ?e ??ru vid? sn?ma? ?ikmo a tak se relativn? 
134
zv?t?uje jej? tlou??ka. Vnit?n? elektronika sn?ma?e vyhodnotila tento stav, jako 
135
?e se nejedn? o ??rov? k?d a ??ru vyfiltrovala. To samoz?ejm? m?lo v&nbsp;ostr? 
136
zat??ce fat?ln? n?sledky. D?le jsme touto cestou nepokra?ovali, p?esto, ?e v?me, 
137
?e v&nbsp;z?vod? DARPA se ?asto pou??vaj? laserov? d?lkom?ry. Na sout??n?ch vozech je 
138
v?ak vid?t, ?e konstrukt??i tak? maj? probl?my s&nbsp;odtlumen?m vibrac?.<br>
139
&nbsp;</font></p>
140
<p align="left"><font face="Times New Roman" size="4"><b>Robot Camerus</b></font></p>
141
<p align="left"><font face="Times New Roman">Znovu se vyno?il n?pad, pou??t pro 
142
sn?m?n? ??ry kameru. To u? n?s napadlo n?kolikr?t, ale kdy? jsme n?pad 
143
analyzovali, v?dy se uk?zalo, ?e jednoduch?m jedno?ipov?m mikropo??ta?em nelze 
144
zpracov?vat obraz kamery. Druh?m probl?mem je, ?e b??n? dostupn? kamery maj? 
145
sn?mkov? kmito?et 50Hz, co? se n?m zd?lo na sn?m?n? ??ry pomal?.<span lang="en-us"> </span>
146
P?esto jsme zakoupili jednu kameru a za?ali jsme osciloskopem testovat, co tak 
147
kamera vid? a jak by se to dalo zpracovat. Kupodivu jsme zjistili, ?e 
148
s&nbsp;procesorem na 20MHz st?h?me na??st jeden obrazov? ??dek asi s&nbsp;polovi?n?m 
149
rozli?en?m. To bylo povzbudiv? a zam??ili jsme se t?mto sm?rem.<br>
150
Druh?m probl?mem bylo, ?e kamera nesn?m? kontrastn? obraz. Jak se vypo??dat 
151
v&nbsp;jedno?ipov?m po??ta?i s&nbsp;t?mto probl?mem, kdy? jeho v?po?etn? v?kon sta?? sotva 
152
na na?ten? ??dku a je?t? se mus? po??tat regulace pro elektronick? diferenci?l? 
153
(Pro zvolenou koncepci podvozku je nutn? diferencovat ot??ky motor? na hnan?ch 
154
n?prav?ch.)<br>
155
<br>
156
Probl?m jsme vy?e?ili n???m, ?emu jsme pracovn? za?ali ??kat ?digit?ln? 
157
kompar?tor?. Jednodu?e jsme pomoc? logick?ch hradel provedli OR t?ech nejvy???ch 
158
bit? jasov?ho sign?lu z&nbsp;kamery. V?echno co bylo pod 0x1F bylo tedy ?ern? a 
159
v?echno nad bylo b?l?. Expozici kamery pak bylo nutn? nastavit tak, aby 
160
nejsv?tlej?? ?ern? ??ra, byla je?t? ?ern?. To se ud?lalo snadno osciloskopem, 
161
ale pro z?vod bylo nutn? vyvinout n?jakou strategii, jak robot provede ur?en? 
162
expozice. ?e?en?m byla rutina ?Expozimetr?, kter? postupn? zvy?uje expozi?n? ?as 
163
a hled? ve sn?mku (samoz?ejm?, ?e v&nbsp;na?em p??pad? na jedn? ??dce) ??ru 
164
definovan? tlou??ky. Vych?z? se z&nbsp;toho, ?e nejd??ve p?i podexponov?n? je ?ern? 
165
cel? obr?zek, pak se postupn? obr?zek vyjas?uje, co? je ov?em d?ky chyb? 
166
apertury objektivu nerovnom?rn?. Dal??m zvy?ov?n?m ?asu expozice se nakonec 
167
objev? ??ra spr?vn? tlou??ky, ta se pak d?le zten?uje a nakonec je sn?mek 
168
p?ep?len a ??ra zmiz?. Samoz?ejm? se p?edpokl?dalo, ?e na startu robot ??ru vid? 
169
a ta je p?ed n?m p?ibli?n? uprost?ed. <br>
170
<br>
171
Prvn? pokusy vypadaly velmi optimisticky, robot se dr?el ??ry a vyjel jenom 
172
ob?as. Zaj?mav? bylo, ?e robot dok?zal jezdit jenom po dr?ze, kde nebyly zat??ky 
173
doleva! Proto?e jsme nem?li k&nbsp;dispozici obraz z&nbsp;kamery, aby bylo mo?n? 
174
zkontrolovat co kamera vid?, bylo nutn? tento probl?m ?e?it pouhou ?vahou. 
175
Napadlo n?s, ?e m??e doch?zet k ?vytrh?v?n? obrazu? na kraj?ch sn?mku. 
176
Kompenzovalo se to t?m, ?e se zahazovaly okraje ??dku a skute?n? to pomohlo, 
177
robot spolehliv?, i kdy? pomalu, sledoval ??ru. To byl velk? ?sp?ch, proto?e 
178
kdyby n?m n?kdo ?ekl p?ed rokem, ?e to s&nbsp;kamerou a jedno?ipov?m po??ta?em jde, a 
179
?e je to spolehliv?, asi by jsme mu nev??ili.<br>
180
<br>
181
Po prvotn?ch ?sp???ch jsme zkusili zrychlit jen?e to nefungovalo, robot v?dy 
182
vypadl z&nbsp;dr?hy, kdy? se zat??ec? kole?ko oto?ilo o velk? ?hel. Napadlo n?s, ?e 
183
to m??e b?t zp?sobeno proudov?mi ?pi?kami, kter? zp?sobuje motor serva. Pro 
184
stabilizaci nap?jen? pro elektroniku byl toti? pou?it line?rn? stabiliz?tor 
185
s&nbsp;velk?m drop-outem. Proto jsme vyvinuli m?ni?, kter? i p?i poklesu nap?t? 
186
bateri? o 2V dok?zal udr?et nap?t? pro ??d?c? elektroniku a zejm?na kameru 
187
stabiln?. Po tomto vylep?en? u? robot dosahoval pom?rn? slu?n? rychlosti a 
188
nejzaj?mav?j?? bylo, ?e d?ky ?velk?? rozli?ovac? schopnosti kamery (procesor 
189
dok?zal rozli?it asi 50 bod?) byla j?zda v&nbsp;zat??k?ch velmi plynul?.<br>
190
<br>
191
Probl?m s&nbsp;tmou v&nbsp;tunelu byl vy?e?en jednodu?e tak, ?e si robot celou cestu 
192
sv?til. Na osv?tlen? dr?hy byly pou?ity ?erven? LED. Nev?me, jak? barva pro 
193
osv?tlen? dr?hy je nejlep??, eventueln?, jestli je lep?? sv?tit b?le. S&nbsp;t?m jsme 
194
u? nestihli p?ed sout??? experimentovat.<br>
195
<br>
196
Proto?e pou?it? procesor PIC16F876A neum? n?sobit a v?bec jeho v?po?etn? v?kon 
197
nen? omra?uj?c? (kdybychom ho ale m?li p?ed lety, tak by jsme si ur?it? 
198
nest??ovali), byl celkem probl?m naprogramovat elektronick? diferenci?l na 
199
hnanou n?pravu. Nakonec se to vy?e?ilo procedurou ?jakon?soben??, kter? 
200
kombinac? rotac? a podm?n?n?ho s??t?n? prov?d? rychle pot?ebn? v?po?et 
201
s&nbsp;uspokojivou p?esnost?.</font></p>
202
<p align="center"><font face="Times New Roman"><a href="pic/image013.jpg">
203
<img border="0" src="pic/image013_small.jpg" xthumbnail-orig-image="pic/image013.jpg"></a></font></p>
204
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 6: 
205
M?ni? v&nbsp;krabi?ce od ?aje a primitivn? osv?tlen? dr?hy.<br>
206
&nbsp;</font></p>
207
<p align="center"><font face="Times New Roman"><a href="pic/image015.jpg">
208
<img border="0" src="pic/image015_small.jpg" xthumbnail-orig-image="pic/image015.jpg"></a></font></p>
209
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 7: 
210
Robot, p??tel ?lov?ka.</font></p>
211
<p align="left"><font face="Times New Roman">Za?ali jsme tedy testovat pro 
212
sledov?n? ??ry asi nejobt??n?j?? v?c, dlouhou rovinku a na konci pravo?hlou 
213
zat??ku. P?i dal??m zvy?ov?n? rychlosti za?al robot v&nbsp;takov? zat??ce vypad?vat. 
214
Ne, ?e by p??mo vyjel a nevr?til se na dr?hu, ale polom?r zat??en? byl men?? ne? 
215
polom?r zat??ky a hrozilo tedy, ?e v&nbsp;Bratislav? spadne ze stolu. Ud?lali jsme 
216
p?edpoklad, ?e je to zp?sobeno pomal?m sn?mkov?m kmito?tem kamery, ne? si robot 
217
sta?il v?imnout, ?e je zat??ka ostr?, zmizela mu ??ra ze zorn?ho pole.<br>
218
<br>
219
Dal??m probl?mem bylo, ?e pokud bylo nerovnom?rn? osv?tlen? dr?hy, vypad?val 
220
kame?e obraz. Kamera m? sice AGC, ale samoz?ejm?, ?e je schopna kompenzovat 
221
rozd?ly jasu jenom v&nbsp;ur?it?ch mez?ch. Kupodivu nebyl probl?m v&nbsp;tunelu, kde si 
222
robot sv?t?, ale velk? probl?m byl s&nbsp;denn?m sv?tlem, pokud p?ich?zelo pouze 
223
z&nbsp;jednoho sm?ru.<br>
224
<br>
225
Konstruk?n? ?e?en?, kter? n?sledovalo, bylo dopln?n? dvou p?vodn?ch modr?ch ?idel po 
226
stran?ch robota na sledov?n? ??ry. ?idla byla um?st?na tak, ?e vid?la ??ru, a? 
227
kdy? ??ra byla mimo zorn? pole kamery a uplat?ovala se pouze v&nbsp;p??pad?, ?e 
228
kamera ??ru nevid?. To velmi zv??ilo spolehlivost sledov?n? ??ry. Z?rove? jsme 
229
tato ?idla pou?ili pro op?tovn? vyhled?n? ??ry po objet? cihly, proto?e jsme se 
230
b?li pro tento ?kol pou??t kameru, proto?e po dobu obj??d?n? cihly kamera nevid? 
231
kontrastn? obr?zek (nevid? ??ru) a d?ky AGC by mohla zaznamenat st?n nebo ?p?nu 
232
na trati jako ??ru. <br>
233
<br>
234
Na obj??d?n? cihly byl robot Camerus vybaven odometri? na prav?m kole. Vyu?ili 
235
jsme otvor? ve v?t??m kole p?evodovky a IR z?vory z&nbsp;tisk?rny. Citlivost o<span lang="en-us">d</span>ometrie 
236
nebyla velk? (4 impulzy na jednu ot??ku kole?ka (12,6mm)).<br>
237
&nbsp;</font></p>
238
<p align="left"><b><font face="Times New Roman" size="4">Jak jsme jeli ?ladit? 
239
do V?dn?</font></b></p>
240
<p align="left"><font face="Times New Roman">V?e pot?ebn? bylo naprogramov?no, 
241
robot sledoval ??ru. P?eru?en? ned?lalo probl?my, prost? byl v?padek obrazu a 
242
robot pokra?oval v&nbsp;p?vodn?m sm?ru p?ed p?eru?en?m. Cihla byla ?e?ena pomoc? 
243
odometrie. Takto vybaveni jsme odjeli do V?dn? na Robot Challenge 2007. ?ekli 
244
jsme si, ?e to tam odlad?me, proto?e jsou tam jednodu??? podm?nky ne? 
245
v&nbsp;Bratislav? (alespo? na prvn? pohled, robot m??e b?t v?t?? a tunel je tak? 
246
v?t??, tak?e men?? robot nemus? jet tak p?esn?).<br>
247
<br>
248
Rozhodnut? ladit robota na Robot Challenge se uk?zalo jako spr?vn?. Podm?nky 
249
toti? byly n?ro?n?. Bodov? osv?tlen?, dr?ha slo?en? z&nbsp;desek s&nbsp;mezerami, styl 
250
sout??e play-off.<br>
251
<br>
252
Camerus ur?it? jezdil nejrychleji, ale nedok?zal objet cihlu! Jednou se stalo, 
253
?e uvid?l mezeru mezi deskami, podruh? mu z?ejm? proklouzlo kole?ko s&nbsp;odometri?, 
254
prost? katastrofa! Alespo?, ?e byl t?et? v&nbsp;paraleln?m slalomu, to jsme mu ale 
255
zavinili my, proto?e jsme mu p?i zkou?en? objet? cihly st?hli v?kon motor? a pak 
256
jsme na to zapomn?li. Za t?et? m?sto tedy nemohl robot, ale lidsk? faktor.<br>
257
<br>
258
&nbsp;</font></p>
259
<p align="center"><font face="Times New Roman"><a href="pic/image017.jpg">
260
<img border="0" src="pic/image017_small.jpg" xthumbnail-orig-image="pic/image017.jpg"></a></font></p>
261
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 8: 
262
Robot Challenge 2007, Parallel Slalom. Robot Camerus na dr?ze ??slo 1. Na dr?ze 
263
jsou patrn? st?ny od bodov?ho osv?tlen?.<br>
264
&nbsp;</font></p>
265
<p align="center"><font face="Times New Roman"><a href="pic/image019.jpg">
266
<img border="0" src="pic/image019_small.jpg" xthumbnail-orig-image="pic/image019.jpg"></a><span lang="en-us">
267
</span><a href="pic/P3180028.JPG">
268
<img border="0" src="pic/P3180028_small.JPG" xthumbnail-orig-image="pic/P3180028.JPG"></a><br>
269
<br>
270
Obr<span lang="en-us">.</span> 9: Robot Camerus na Robot Challenge 2007. Robot 
271
nem? dostatek ?idel na bezpe?n? objet? p?ek??ky.<br>
272
&nbsp;</font></p>
273
<p align="left"><font face="Times New Roman">Jednozna?n? se uk?zalo, ?e obj??d?t 
274
p?ek??ku ?nap?l naslepo? nen? dobr? strategie a zejm?na, pokud je odometrie na hnan? 
275
n?prav?.<br>
276
&nbsp;</font></p>
277
<p align="left"><font face="Times New Roman" size="4"><b>Co s&nbsp;cihlou?</b></font></p>
278
<p align="left"><font face="Times New Roman">Dal?? v?voj jsme v?novali obj??d?n? 
279
cihly za pomoci ?idel. Jak? ?idla ale pou??t? M?li jsme ?patn? zku?enosti s&nbsp;IR 
280
?idly z&nbsp;3Orbise a roboty s&nbsp;ultrazvukem jsme zase na minul?ch ro?n?c?ch vid?li, 
281
?e si spletli tunel s&nbsp;cihlou, p??padn? nevid?li cihlu, pokud se k&nbsp;n? bl??ili 
282
ze?ikma.<br>
283
<br>
284
Nev?d?li jsme co s&nbsp;t?m a tak jsme za?ali zkou?et. M??ili jsme, co ?vid?? 
285
ultrazvuk a co r?zn? optick? ?idla. P?i m??en? se uk?zaly v?echny p?edpokl?dan? 
286
probl?my. Ultrazvuk vid? kde co, jenom ne cihlu, kdy? je ?ikmo. IR sn?ma? vid? 
287
cihlu sice spolehliv?, ale stejn? dob?e jako velkou b?lou ze? n?kolik metr? 
288
daleko. Nakonec byla pro cihlu zvolena kombinace sedmi senzor?. Skute?n? ?tete 
289
dob?e, sedmi! Jeden IR senzor vp?edu na detekci p?ibl??en? se k&nbsp;cihle. Funguje 
290
na principu triangulace. IR vys?lac? dioda m? ?zkou hlin?kovou trubi?kou z??en 
291
paprsek, aby nedoch?zelo k&nbsp;jeho integraci na velk? vzd?len? plo?e. Dal?? dva 
292
senzory jsou mikrosp?na?e na mechanick?m n?razn?ku, kdyby se stalo, ?e 
293
triangula?n? ?idlo cihlu p?ehl?dne. To se m??e st?t v&nbsp;prudk? zat??ce. Z&nbsp;boku 
294
jsou pak ultrazvukov? senzor a on/off d?lkom?r s&nbsp;?ervenou LED. Tyto ?idla udr?uj? 
295
konstantn? vzd?lenost od cihly p?i jej?m obj??d?n?. K&nbsp;tomu je?t? ji? zm?n?n? odometrie na prav?m kole?ku, kter? zaji??uje prudkou zat??ku doleva jakmile je 
296
cihla detekov?na a nakonec kompas, kter? zabra?uje, aby se robot vracel zp?t po 
297
trati (to se m??e st?t, proto?e mezi p?edn?m ?idlem a bo?n?mi ?idly je slep? 
298
?hel).<br>
299
<br>
300
P?id?n? dal??ch ?idel se neobe?lo bez konstruk?n?ch probl?m?. Bo?n? LED ?idlo se 
301
uk?zalo jako m?lo citliv? a bylo to z?ejm? zp?sobeno t?m, ?e se jedn? o 
302
pr?myslov? ?idlo, kter? je norm?ln? nap?jeno nap?t?m 12 a? 48V. S&nbsp;na??m 
303
nap?jec?m nap?t?m 7,2V a to je?t? ob?as, nebylo moc spokojeno. Byl tady p?id?n 
304
dal?? m?ni? nahoru na 12V. Byl pou?it m?ni? ze star? s??ov? karty.</font></p>
305
<p align="left"><font face="Times New Roman">Samostatn?m konstruk?n?m probl?mem 
306
bylo um?st?n? kompasu. Nakonec musel b?t kompas um?st?n nad v?echny desky s 
307
elektronikou a musel b?t orientov?n tak, aby ?idla kompasu byla pod ?hlem 45<span lang="en">? 
308
k </span>ose robota.<span lang="en"> Pokud byla ?idla v ose robota, byl kompas 
309
ovliv?ov?n zbytkov?m magnetick?m polem v kovov?ch (zejm?na ?elezn?ch) ??stech 
310
robota.</span><br>
311
&nbsp;</font></p>
312
<p align="left"><font face="Times New Roman" size="4"><b>Posledn? weekend p?ed 
313
sout???</b></font></p>
314
<p align="left"><font face="Times New Roman">P?id?n? kompasu na I2C sb?rnici si 
315
vy??dalo p?eadresaci kamery, proto?e kamera a kompas m?ly na I2C sb?rnici 
316
stejnou adresu a adresa kompasu se nedala zm?nit. To kupodivu byl velk? probl?m, 
317
kter? jsme ?e?ili a? posledn? weekend p?ed sout??? a p?itom vy?adoval tak z?sadn? 
318
z?sah jako rozebr?n? objektivu kamery, co? znamenalo pe?liv? ?i?t?n? pouzdra a
319
?ipu kamery, proto?e p??padn? sm?tko na pouzd?e ?ipu by m?lo p?i sout??i fat?ln? 
320
n?sledky. ?ip kamery sice p?eadresaci um?, ale bylo nutn? p?ipojit v?vod MULT 
321
(47) na <span lang="en-us">log_1 </span>a na to kupodivu na plo?n?m spoji kamery 
322
nebylo pamatov?no, p?esto, ?e na plo?n?m spoji jsou plo?ky na odpory, kter? 
323
umo??uj? zm?nu adresy.<br>
324
&nbsp;</font></p>
325
<p align="center"><font face="Times New Roman"><a href="pic/image021.jpg">
326
<img border="0" src="pic/image021_small.jpg" xthumbnail-orig-image="pic/image021.jpg"></a></font></p>
327
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 
328
10: Propojka na PCB kamery umo??uj?c? jej? p?eadresaci.<br>
329
&nbsp;</font></p>
330
<p align="left"><font face="Times New Roman">Posledn? weekend p?ed sout??? n?s 
331
napadlo je?t? jednou proj?t seznam probl?m?, kter? jsme si poznamenali v&nbsp;pr?b?hu 
332
lo?sk? sout??e. Hned na za??tku tam bylo: ?Zkontrolovat, jestli neprokluzuj? 
333
kole?ka na h??deli.? Prokluzovala... Zkusili jsme je p?ilepit anaerobn?m lepidlem. 
334
V?sledek byl, ?e se zalepily h??delky do lo?isek a kole?ka prokluzovala d?l. 
335
Zkusili jsme je p?ilepit epoxidem. Nane?t?st? n?m trochu epoxidu z?ejm? nateklo 
336
do lo?isek a kole?ka se zase utrhla. Posledn? ned?li p?ed sout??? jsme tedy 
337
m?li zatuhl? p?evodovky a kole?ka prokluzovala. Sna?ili jsme se do h??delek 
338
vyvrtat d?rky a d?t tam kol?k, ale vrt?k v?bec nitridovanou ocel z&nbsp;CD mechanik 
339
nebral. Nakonec jsme do h??delek pouze vypilovali dr??ky a op?t jsme je zalili 
340
epoxidem. Jestli neprokluzuj?, jsme pro jistotu u? nezkou?eli. </font></p>
341
<p align="left"><font face="Times New Roman">P?i manipulaci s pravou p?evodovkou 
342
se poda?ilo ulomit v?vod od IR z?vory na odometrii. Proto?e ne?la vym?nit (je 
343
zalepen? v p?evodovce)a necht?li jsme m?nit celou p?evodovku, natavili jsme jej? 
344
pouzdro p?jkou a dr?tek p?iletovali na pah?l v?vodu.<br>
345
<br>
346
Po rozebr?n? bylo nutn? p?evodovky nechat znovu zab?hnout, to jsme d?lali p?es noc z&nbsp;pond?l? 
347
na ?ter? (IstRobot b?v? ve st?edu a my tam obvykle jedeme v&nbsp;?ter? dopoledne). 
348
Motory se to?ily do r?na do posledn? chv?le p?ed nalo?en?m robota do auta.<br>
349
&nbsp;</font></p>
350
<p align="left"><font face="Times New Roman" size="4"><b>Noc p?ed sout???</b></font></p>
351
<p align="left"><font face="Times New Roman">?Kdyby nebylo posledn? noci, tak 
352
nen? ??dn? projekt dokon?en.? Odpoledne jsme p?ijeli do Bratislavy na ubytovnu, 
353
rozlo?ili dr?hy a za?ali ladit posledn? ??dky programu. V&nbsp;na?em p??pad? to m?lo 
354
b?t zpracov?n? logu z&nbsp;j?zdy.<br>
355
<br>
356
A v?bec to nejezdilo. Robot m?l mal? v?kon v&nbsp;levoto?iv? zat??ce, p?i obj??d?n? 
357
cihly se dokonce ob?as zastavil. No jasn?, ?ekli jsme si, jsou st?le zatuhl? 
358
p?evodovky, zm?nili jsme p?r konstant v&nbsp;programu a jak? tak? to zase jezdilo. 
359
Situace se ale o p?lnoci zase zhor?ila a za?al smrd?t H-m?stek. Vym?nili jsme 
360
tedy H-m?stek a nepomohlo to. Vym?nili jsme tedy motor a pomohlo to! (Pozd?j?? anal?zou z?znamu pou?it?ho d?lu bylo zji?t?no, ?e motor ?.2 byl pou?it spolu s p?vodn?m podvozkem na v?stav? Vzd?l?n? a ?emeslo v ?esk?ch Bud?jovic?ch, kde byla levoto?iv? tra? a jeho provozn? doba tak vzrostla o des?tky hodin proti motoru ?.1<span lang="en">&nbsp;.</span>) 
361
Po v?m?n? motoru jsme vr?tili do 
362
robota p?vodn? H-m?stek (asi tak v&nbsp;jednu hodinu r?no) a zase to nejelo. M??en?m 
363
jsme pak zjistili dv? v?ci, jednak byly p?es p?jec? lak odizolov?ny zemn?c? 
364
?rouby na plo?n?m spoji H-m?stku a tak v?echen proud tekl p?es h?eb?nkov? 
365
konektor a pak tam je?t? byl zkrat p?es jeden tranzistor H-m?stku, tak?e jeden 
366
motor nereverzoval. P?edstavte si, ?e tyto z?vady byly vykompenzov?ny 
367
jednak regul?torem v&nbsp;software a tak? koncepc? podvozku, a ?e s&nbsp;nimi byl Camerus na Robot Challenge t?et?!<br>
368
<br>
369
Pak u? jenom sta?ilo doprogramovat tu logovac? proceduru (p?episovala pam??). A 
370
kolem p?t? hodiny rann? byl robot p?ipraven na sout??.<br>
371
&nbsp;</font></p>
372
<p align="left"><font face="Times New Roman" size="4"><b>IstRobot 2007</b></font></p>
373
<p align="left"><font face="Times New Roman">IstRobot 2007 n?s skute?n? 
374
p?ekvapil, byla na n?m z&nbsp;na?eho pohledu nejslo?it?j?? dr?ha, jakou jsme kdy 
375
vid?li. Extr?mn? dlouh? p?eru?en?, nav?c v&nbsp;inflexn?m bod? (to n?s v?bec 
376
nenapadlo, ?e je mo?n?), cihla hned za pravo?hlou zat??kou (sotva robot vyjede 
377
ze zat??ky, b?c, a je tu cihla), viz Obr?zek 11. </font></p>
378
<p align="left">&nbsp;</p>
379
<p align="center"><font face="Times New Roman"><a href="pic/image023.jpg">
380
<img border="0" src="pic/image023_small.jpg" xthumbnail-orig-image="pic/image023.jpg"></a></font></p>
381
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 
382
11: IstRobot 2007 ? tvar dr?hy.</font></p>
383
<p align="left"><font face="Times New Roman">Potenci?ln?m probl?mem byly 
384
magnetick? stoj?nky na kter?ch st?la ?idla ?asom?ry. Magnetick? pole nad dr?hou 
385
bylo d?ky nim zna?n? nehomogenn? (stoj?nek na Obr. 11 vlevo dole a dva stoj?nky 
386
na startu). Robot vyu??val kompas pouze u cihly, a z?ejm? byl stoj?nek 
387
dostate?n? daleko/bl?zko, ?e nakonec nevadil. ?daje z kompasu se zpracov?valy 
388
diferen?n?, tak?e nevadilo, ?e byla d?ky stoj?nk?m odchylka v celkov? orientaci 
389
magnetick?ho pole Zem?, podstatn? bylo, aby nedoch?zelo k velk?m zak?iven?m pole 
390
v oblasti cihly. K ?emu?, jak jsme zm??ili, ??ste?n? doch?zelo, ale software se 
391
s t?m vypo??dal, kdy? v??il ?daje ze v?ech ?idel p?i obj??d?n? p?ek??ky.</font></p>
392
<p align="left"><font face="Times New Roman">Obt??nost trati se uk?zala hned 
393
v&nbsp;prvn? j?zd?, Camerus vypadnul na p?eru?en?. V&nbsp;druh? j?zd? jsme sn??ili v?kon 
394
motor?, zde ale zase hrozilo, ?e se robot nerozjede, pokud n?kde (nap??klad p?i 
395
obj??d?n? cihly) v?razn? zpomal?. Robot jel plynuleji, p?esto vyjel v&nbsp;p?eru?en? 
396
(to d? rozum, proto?e kop?roval tvar dr?hy p?ed p?eru?en?m), vyhnul se tunelu, 
397
znovu na?el dr?hu (to fungovalo dob?e) a na podruh? projel. Byl to ?sp?ch, ale 
398
velk? ?asov? ztr?ta a nav?c si robot ?patn? zapamatoval dr?hu pro dal?? j?zdu, 
399
proto?e bloudil.</font></p>
400
<p align="left"><font face="Times New Roman">Programovali jsme m?sto ob?da a 
401
nakonec jsme to p?eru?en? vy?e?ili. Prost? jsme zohlednili, ?e dr?ha za 
402
p?eru?en?m m??e pokra?ovat i na druhou stranu. Zn? to jednodu?e, ale ?prava 
403
programu nebyla tak jednoduch?, viz sout??n? verzi 
404
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/sw/#_Designs_ROBOTS_Camerus_sw_">
405
firmware</a>.</font></p>
406
<p align="left"><font face="Times New Roman">Fin?lov? j?zda prob?hla bez 
407
probl?m?, robot sice jel na m?n? jak polovinu regula?n?ho rozsahu a bez na?eho 
408
z?sahu by se s&nbsp;dr?hou dob?e nevypo??dal, ale jsme r?di, ?e dojel a nakonec 
409
stejn? za to nemohl robot, ale my, ?e jsme mu naprogramovali, ?e dr?ha za 
410
p?eru?en?m nem??e v?st na druhou stranu. Nakonec se poda?ilo s&nbsp;robotem s&nbsp;?asem 
411
12,5s ud?lat ?rekord trati? <span lang="en-us">;-)</span><br>
412
&nbsp;</font></p>
413
<p align="center"><font face="Times New Roman"><a href="pic/image025.jpg">
414
<img border="0" src="pic/image025_small.jpg" xthumbnail-orig-image="pic/image025.jpg"></a></font></p>
415
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>12: 
416
Robot Camerus - fin?ln? verze robota.<br>
417
<br>
418
&nbsp;</font></p>
419
<p align="center"><a href="pic/index.2.gif">
420
<img border="0" src="pic/index.1.gif" xthumbnail-orig-image="pic/index.2.gif"></a></p>
421
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">. </span>
422
13: Blokov? sch?ma propojen? modul? robota.<br>
423
&nbsp;</font></p>
424
<p align="left"><font face="Arial">Desky plo?n?ch spoj? a popis jednotliv?ch 
425
modul? robota naleznete na 
426
<a href="http://www.mlab.cz/">http://www.mlab.cz/</a> 
427
.<br>
428
&nbsp;</font></p>
429
<p align="left"><font face="Arial">Deska procesoru<br>
430
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/PIC16F87x/#_Modules_PIC16F87x_">
431
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC16F87x%2F#_Modules_PIC16F87x_</a>
432
<br>
433
&nbsp;</font></p>
434
<p align="left"><font face="Arial">H-m?stky<br>
435
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/HBRIDGE/#_Modules_HBRIDGE_">
436
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FHBRIDGE%2F#_Modules_HBRIDGE_</a>
437
<br>
438
&nbsp;</font></p>
439
<p align="left"><font face="Arial">LEDbar<br>
440
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/LEDbar/#_Modules_LEDbar_">
441
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FLEDbar%2F#_Modules_LEDbar_</a><br>
442
&nbsp;</font></p>
443
<p align="left"><font face="Arial">M?ni?<br>
444
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/PowerSupply/BATPOWER02A/#_Modules_PowerSupply_BATPOWER02A_">
445
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPowerSupply%2FBATPOWER02A%2F#_Modules_PowerSupply_BATPOWER02A_</a><br>
446
&nbsp;</font></p>
447
<p align="left"><font face="Arial">IR modul?tor<br>
448
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/TXIR/#_Modules_TXIR_">
449
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FTXIR%2F#_Modules_TXIR_</a><br>
450
&nbsp;</font></p>
451
<p align="left"><font face="Arial">Osv?tlen? dr?hy<br>
452
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/LEDpanel/#_Designs_ROBOTS_Camerus_LEDpanel_">
453
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel_</a></font><br>
454
&nbsp;</p>
455
<p align="left"><font face="Arial">Univerz?lka pro 7432<br>
456
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/UNI/UNIDIL1601A/#_Modules_UNI_UNIDIL1601A_">
457
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FUNI%2FUNIDIL1601A%2F#_Modules_UNI_UNIDIL1601A_</a><br>
458
&nbsp;</font></p>
459
<p align="left"><font face="Arial">Trimry<br>
460
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/TRIMQUAD01A/#_Modules_TRIMQUAD01A_">
461
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_</a><br>
462
&nbsp;</font></p>
463
<p align="left"><font face="Arial">Dokumentace k&nbsp;pou?it?mu kamerov?mu ?ipu je na 
464
<a href="http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF">
465
http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF</a> 
466
.<br>
467
&nbsp;</font></p>
468
<p align="left"><font face="Arial">Dokumentace k&nbsp;US senzoru je na 
469
<a href="http://www.robot-electronics.co.uk/htm/srf08tech.shtml">
470
http://www.robot-electronics.co.uk/htm/srf08tech.shtml</a> .<br>
471
&nbsp;</font></p>
472
<p align="left"><font face="Arial">Dokumentace ke kompasu je na<span lang="en-us">
473
</span><a href="http://www.robot-electronics.co.uk/htm/cmps3doc.shtml">
474
http://www.robot-electronics.co.uk/htm/cmps3doc.shtml</a> .<br>
475
&nbsp;</font></p>
476
<p align="left"><font face="Arial">Dokumentace k&nbsp;robotu 3Orbis, ze kter?ho 
477
Camerus vy?el, je na<span lang="en-us">
478
</span>
479
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/3Orbis/#_Designs_ROBOTS_3Orbis_">
480
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2F3Orbis%2F#_Designs_ROBOTS_3Orbis_</a> 
481
.</font></p>
482
<p align="left"><font face="Arial"><span lang="en-us">Videoz</span>?znam, jak 
483
Camerus jezdil p?i sout??i IstRobot 2007:<br>
484
<a href="video/1.wmv">1. j?zda</a>, <a href="video/2.wmv">2. j?zda</a>,
485
<a href="video/3.wmv">3. j?zda</a>.</font></p>
486

  
487
</body>
488

  
489
</html>
Designs/ROBOTS/Camerus/DOC/HTML/Camerus.cs.html
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
<html>
3
  <head>
4
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
    <title> Camerus </title>
6
    <meta name="keywords" content="MLAB čárový robot Camerus">
7
    <meta name="description" content="Čárový robot Camerus">
8
    <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9
    <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10
    <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
11
    <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
12
    <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13
    <!-- AUTOINCLUDE END -->
14
    <style type="text/css">
15
      p.Obrazek {text-align: center}
16
    </style>
17

  
18
  </head>
19

  
20
  <body lang="cs">
21

  
22
    <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
23
    <!-- ============== HLAVICKA ============== -->
24
    <div class="Header">
25
      <script type="text/javascript">
26
      <!--
27
        SetRelativePath("../../../../../");
28
        DrawHeader();
29
      // -->
30
      </script>
31
      <noscript>
32
        <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
33
      </noscript>
34
    </div>
35
    <!-- AUTOINCLUDE END -->
36

  
37
    <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
38
    <!-- ============== MENU ============== -->
39
    <div class="Menu">
40
      <script type="text/javascript">
41
      <!--
42
        SetRelativePath("../../../../../");
43
        DrawMenu();
44
      // -->
45
      </script>
46
      <noscript>
47
        <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
48
      </noscript>
49
    </div>
50
    <!-- AUTOINCLUDE END -->
51

  
52
    <!-- ============== TEXT ============== -->
53
    <div class="Text">
54

  
55
      <p class="Title">
56
        Robot CAMERUS
57
      </p>
58

  
59
      <p class="Autor">
60
        <a href="mailto:kaklik@mlab.cz">kaklik@mlab.cz</a>;
61
        <a href="mailto:kakl@i.cz">kakl@i.cz</a>
62
        M. Novotný
63
      </p>
64

  
65
      <p class="Subtitle">
66
        Jak se dělá robot na IstRobot
67
      </p>
68

  
69

  
70
      <p class="Subtitle">
71
        <a href="Pictures/image001.jpg"><img src="Pictures/image001_small.jpg" alt="Obrázek robotu"></a>
72
      </p>
73
      
74
      <h1> Úvodem </h1>
75
      
76
      <p>
77
        Tato dokumentace popisuje konstrukci robota Camerus, který byl
78
        zkonstruován pro soutěž IstRobot pro kategorii Stopár
79
        (<a href="http://www.robotika.sk/contest/">http://www.robotika.sk/contest/</a>).
80
      </p>
81
      
82
      <p>
83
        Snažili jsme se technickou dokumentaci pojmout poněkud netradičně.
84
        Kromě popisu finální verze robota zde naleznete chronologický popis
85
        jeho vývoje a popis všech slepých uliček. Doufáme, že takováto forma
86
        dokumentace bude mít pro naše následovníky větší hodnotu než pouhý
87
        návod na zopakování konstrukce.
88
      </p>
89

  
90
      <h1> První pokusy </h1>
91

  
92
      <h2> Robot 3Orbis </h2>
93

  
94
      <p>
95
        Vývoj robota Camerus začal před více jak dvěma roky vývojem robota
96
        3Orbis. Robot 3Orbis měl mít novou revoluční koncepci podvozku. Použili
97
        jsme tříkolý podvozek, který měl dvě hnaná kola, každé s&nbsp;nezávislým
98
        motorem a třetí kolo, které mělo řízené zatáčení. Jednalo se tedy o
99
        nonholonomní podvozek. Koncepci podvozku jsme nejdříve ověřovali se
100
        dvěma senzory na čáru, jako to měly naši předchozí holonomní roboti.
101
        To moc nefungovalo a proto jsme přidali další senzory, pomocí kterých
102
        se diskrétně nastavoval úhel zatáčecího kolečka.
103
      </p>
104
      
105
      <p class="Obrazek">
106
        <a href="Pictures/image003.jpg"><img src="Pictures/image003_small.jpg" alt="Pohled na jízdu"></a>
107
        <br>
108
        Obr.1: První pokusy s&nbsp;tříkolým a třímotorovým robotem
109
      </p>
110

  
111
      <p  class="Obrazek">
112
        <a href="Pictures/image005.jpg"><img src="Pictures/image005_small.jpg" alt="Baterie senzorů"></a>
113
        <br>
114
        Obr.2: Baterie senzorů na čáru
115
      </p>
116
      
117
      <p>
118
        Přidáním dalších senzorů na čáru jsme se dostali do problémů
119
        s&nbsp;počtem vstupů použitého procesoru (PIC16F88). Tento problém jsme
120
        vyřešili tak, že jsme na zpracování signálů ze senzorů na čáru použili
121
        další samostatný procesor. Toto řešení se však později neukázalo jako
122
        výhodné, protože ladit distribuovaný kód bylo řádově obtížnější a navíc
123
        se musela naprogramovat komunikace mezi procesory. Často se nám také
124
        stávalo, že jsme během vývoje do jednoho procesoru nahráli kód pro
125
        druhý procesor, což kupodivu vždy trvalo určitou dobu, než jsme na to
126
        přišli.
127
      </p>
128
      
129
      <p class="Obrazek">
130
        <a href="Pictures/image007.jpg"><img src="Pictures/image007_small.jpg"
131
                                             alt="Přední náhon"></a>
132
        <br>
133
        Obr.&nbsp;3: Přední náhon; přidáno druhé patro na elektroniku
134
      </p>
135
      
136
      <p>
137
        Původní koncepce předpokládala hnaná kola vpředu a zatáčecí kolo vzadu.
138
        Modelářské servo však nedokázalo dostatečně rychle zatáčet, přestože
139
        bylo zpřevodováno do rychla převodem 1:2. Změnili jsme proto uspořádání
140
        na hnanou nápravu vzadu a zatáčecí kolečko vpředu. To nám umožňovalo
141
        „ostře řezat zatáčky“, ale objevily se další problémy. Podvozek se
142
        v&nbsp;zatáčkách dostával do smyku a protože hmotnost čidel byla
143
        nezanedbatelná, docházelo i k&nbsp;jeho naklápění a následně
144
        k&nbsp;falešnému signálu z&nbsp;čidel, protože čidla nebyla držena
145
        v&nbsp;konstantní vzdálenosti od povrchu.
146
      </p>
147
      
148
      <p>
149
        Pro 3Orbise byla vysoustružena duralová kola, pro která bylo plánováno
150
        obutí „O“ kroužky. To se pak ukázalo jako nepoužitelné. „O“ kroužky se
151
        nedokázaly udržet v&nbsp;drážkách na kolech. Původní kola byla tedy
152
        nahrazena plastovými z&nbsp;dětské hračky. Kola měla menší průměr, což
153
        zlepšilo převodový poměr, který byl pro vyrobené převodovky 5:1. Jako
154
        obutí byly použity ustřižené prsty z&nbsp;latexových rukavic pro
155
        domácnost. Jako obutí zatáčecího kolečka bylo použito pryžové těsnění
156
        12x10x2. Na zatáčecí kolečko bylo obuto tak, že se jelo po hraně
157
        těsnění.
158
      </p>
159
      
160
      <p class="Obrazek">
161
        <a href="Pictures/image009.jpg"><img src="Pictures/image009_small.jpg"
162
                                             alt="Zadní náhon"></a>
163
        <br>
164
        Obr.4: Robot 3Orbis. Zadní náhon a menší kolečka z&nbsp;autobusu od
165
        syna pana Hronka.<br>
166
        Je vidět čidlo na hledání hrany cihly.
167
      </p>
168
      
169
      <p>
170
        Pro detekci a objíždění cihly byly na robotovi namontovány IR senzory.
171
        Jeden měl detekovat překážku na dráze a zbylé dva měly sloužit pro její
172
        objetí. Objetí cihly pomocí IR senzorů jsme však nedokázali odladit.
173
        Objíždění nebylo spolehlivé a tak robot nakonec objížděl cihlu
174
        naslepo.
175
      </p>
176
      
177
      <p>
178
        Při soutěži se objevil nečekaný problém, kvůli kterému robot nakonec
179
        nedojel. Soutěžní dráha je tvořena dvěma deskami. Desky nejsou dokonale
180
        slícovány a tak mezi nimi vzniká tmavá mezera. Tato mezera byla na
181
        soutěžní dráze přelepena bílou lepicí páskou. Bohužel čidla na čáru,
182
        které robot používal, vyhodnocovala bílou lepicí pásku jako černou
183
        (čidla pracují blízko ultrafialové oblasti). Tento problém by šel
184
        kompenzovat programově, ale na soutěži se nepodařilo program
185
        v&nbsp;časové tísni správně upravit. Robot tedy nakonec nedojel.
186
      </p>
187
      
188
      <p>
189
        Odhadovali jsme, že nám chyběl tak týden na odladění firmware, protože
190
        v&nbsp;roce 2006 u nás byla povodeň a ztratili jsme tak nejméně jeden
191
        kalendářní měsíc večerů/weekendů na programování. Nyní s&nbsp;odstupem
192
        času vidíme, že co se týká objetí cihly, chybělo nám mnohem více.
193
      </p>
194
      
195
      <h2> Robot Laserus </h2>
196

  
197
      <p>
198
        Další verzí robota se shodným podvozkem byl robot Laserus. Snahou bylo
199
        odstranit „těžká“ čidla předsunutá před robota a tak odstranit
200
        překlápění v&nbsp;ostrých zatáčkách. Řešením by bylo zvětšení dosahu
201
        čidel na čáru tak, aby mohla být umístěna co nejblíže k&nbsp;ose otáčení
202
        robota. Zároveň by se tím snížila obvodová setrvačná hmotnost robota.
203
        Znovu jsme použili tříkolý podvozek s&nbsp;jedním řízeným zatáčecím
204
        kolečkem, přestože na IstRobotu 2006 byla tato konfigurace diskutována
205
        a autoři druhého robota s&nbsp;podobnou koncepcí se v&nbsp;diskusi
206
        vyjádřili, že to nebyl dobrý nápad, že robot při větších rychlostech má
207
        snahu se rozkmitávat. Řešení tohoto problému jsme viděli ve zjemnění
208
        snímání čáry tak, aby se precizněji nastavovalo zatáčecí kolečko.
209
        Napadlo nás použít laserovou čtečku čárového kódu a skutečně jsme
210
        postavili funkčního robota (viz Obrázek 5), který dokázal, ale pomalu,
211
        jezdit po čáře.
212
      </p>
213
      
214
      <p class="Obrazek">
215
        <a href="Pictures/image011.jpg"><img src="Pictures/image011_small.jpg"
216
                                             alt="Robot Laserus"></a>
217
        <br>
218
        Obr.&nbsp;5: Robot Laserus. Na obrázku je vidět červená stopa LASERu.
219
      </p>
220
      
221
      <p>
222
        Problémy s&nbsp;touto konstrukcí byly dva. Pokud byl na dráze hrbol,
223
        tak se v&nbsp;důsledku vibrací zmenšil rozkmit laseru, protože laser je
224
        ve čtecím zařízení rozmítáván mechanicky zrcátkem, které vibruje a
225
        velké stranové zrychlení při přejetí hrbolu způsobovalo, že
226
        elektromagnetický mechanismus, který pohybuje zrcátkem vypadl
227
        z&nbsp;rezonance. Tento problém by ovšem zřejmě šlo kompenzovat
228
        softwarem, protože se čára četla v&nbsp;obou směrech pohybu zrcátka.
229
        Jednou jsme tedy dostali polohu čáry měřenou z leva a jednou z
230
        prava.
231
      </p>
232
      
233
      <p>
234
        Druhý problém byl závažnější. Protože bylo použito zařízení na čtení
235
        čárového kódu, snímali jsme vlastně polohu jedné čáry fiktivního
236
        čárového kódu ve scanovaném prostoru. V&nbsp;prudké zatáčce však
237
        dochází k&nbsp;tomu, že čáru vidí snímač šikmo a tak se relativně
238
        zvětšuje její tloušťka. Vnitřní elektronika snímače vyhodnotila tento
239
        stav, jako že se nejedná o čárový kód a čáru vyfiltrovala. To
240
        samozřejmě mělo v&nbsp;ostré zatáčce fatální následky. Dále jsme touto
241
        cestou nepokračovali, přesto, že víme, že v&nbsp;závodě DARPA se často
242
        používají laserové dálkoměry. Na soutěžních vozech je však vidět, že
243
        konstruktéři také mají problémy s&nbsp;odtlumením vibrací.
244
      </p>
245

  
246
      <h1> Robot Camerus </h1>
247
      
248
      <p>
249
        Znovu se vynořil nápad, použít pro snímání čáry kameru. To už nás
250
        napadlo několikrát, ale když jsme nápad analyzovali, vždy se ukázalo, že
251
        jednoduchým jednočipovým mikropočítačem nelze zpracovávat obraz kamery.
252
        Druhým problémem je, že běžně dostupné kamery mají snímkový kmitočet
253
        50Hz, což se nám zdálo na snímání čáry pomalé. Přesto jsme zakoupili
254
        jednu kameru a začali jsme osciloskopem testovat, co tak kamera vidí a
255
        jak by se to dalo zpracovat. Kupodivu jsme zjistili, že
256
        s&nbsp;procesorem na 20MHz stíháme načíst jeden obrazový řádek asi
257
        s&nbsp;polovičním rozlišením. To bylo povzbudivé a zaměřili jsme se
258
        tímto směrem.
259
      </p>
260
      
261
      <p>
262
        Druhým problémem bylo, že kamera nesnímá kontrastní obraz. Jak se
263
        vypořádat v&nbsp;jednočipovém počítači s&nbsp;tímto problémem, když
264
        jeho výpočetní výkon stačí sotva na načtení řádku a ještě se musí
265
        počítat regulace pro elektronický diferenciál? (Pro zvolenou koncepci
266
        podvozku je nutné diferencovat otáčky motorů na hnaných nápravách.)
267
      </p>
268
      
269
      <p>
270
        Problém jsme vyřešili něčím, čemu jsme pracovně začali říkat „digitální
271
        komparátor“. Jednoduše jsme pomocí logických hradel provedli OR třech
272
        nejvyšších bitů jasového signálu z&nbsp;kamery. Všechno co bylo pod
273
        0x1F bylo tedy černé a všechno nad bylo bílé. Expozici kamery pak bylo
274
        nutné nastavit tak, aby nejsvětlejší černá čára, byla ještě černá. To
275
        se udělalo snadno osciloskopem, ale pro závod bylo nutné vyvinout
276
        nějakou strategii, jak robot provede určení expozice. Řešením byla
277
        rutina „Expozimetr“, která postupně zvyšuje expoziční čas a hledá ve
278
        snímku (samozřejmě, že v&nbsp;našem případě na jedné řádce) čáru
279
        definované tloušťky. Vychází se z&nbsp;toho, že nejdříve při
280
        podexponování je černý celý obrázek, pak se postupně obrázek vyjasňuje,
281
        což je ovšem díky chybě apertury objektivu nerovnoměrné. Dalším
282
        zvyšováním času expozice se nakonec objeví čára správné tloušťky, ta se
283
        pak dále ztenčuje a nakonec je snímek přepálen a čára zmizí. Samozřejmě
284
        se předpokládalo, že na startu robot čáru vidí a ta je před ním
285
        přibližně uprostřed.
286
      </p>
287
      
288
      <p>
289
        První pokusy vypadaly velmi optimisticky, robot se držel čáry a vyjel
290
        jenom občas. Zajímavé bylo, že robot dokázal jezdit jenom po dráze, kde
291
        nebyly zatáčky doleva! Protože jsme neměli k&nbsp;dispozici obraz
292
        z&nbsp;kamery, aby bylo možné zkontrolovat co kamera vidí, bylo nutné
293
        tento problém řešit pouhou úvahou. Napadlo nás, že může docházet k
294
        „vytrhávání obrazu“ na krajích snímku. Kompenzovalo se to tím, že se
295
        zahazovaly okraje řádku a skutečně to pomohlo, robot spolehlivě, i když
296
        pomalu, sledoval čáru. To byl velký úspěch, protože kdyby nám někdo
297
        řekl před rokem, že to s&nbsp;kamerou a jednočipovým počítačem jde, a
298
        že je to spolehlivé, asi by jsme mu nevěřili.
299
      </p>
300
      
301
      <p>
302
        Po prvotních úspěších jsme zkusili zrychlit jenže to nefungovalo, robot
303
        vždy vypadl z&nbsp;dráhy, když se zatáčecí kolečko otočilo o velký
304
        úhel. Napadlo nás, že to může být způsobeno proudovými špičkami, které
305
        způsobuje motor serva. Pro stabilizaci napájení pro elektroniku byl
306
        totiž použit lineární stabilizátor s&nbsp;velkým drop-outem. Proto jsme
307
        vyvinuli měnič, který i při poklesu napětí baterií o 2V dokázal udržet
308
        napětí pro řídící elektroniku a zejména kameru stabilní. Po tomto
309
        vylepšení už robot dosahoval poměrně slušné rychlosti a nejzajímavější
310
        bylo, že díky „velké“ rozlišovací schopnosti kamery (procesor dokázal
311
        rozlišit asi 50 bodů) byla jízda v&nbsp;zatáčkách velmi plynulá.
312
      </p>
313

  
314
      <p>
315
        Problém s&nbsp;tmou v&nbsp;tunelu byl vyřešen jednoduše tak, že si
316
        robot celou cestu svítil. Na osvětlení dráhy byly použity červené LED.
317
        Nevíme, jaká barva pro osvětlení dráhy je nejlepší, eventuelně, jestli
318
        je lepší svítit bíle. S&nbsp;tím jsme už nestihli před soutěží
319
        experimentovat.
320
      </p>
321
      
322
      <p>
323
        Protože použitý procesor PIC16F876A neumí násobit a vůbec jeho
324
        výpočetní výkon není omračující (kdybychom ho ale měli před lety, tak
325
        by jsme si určitě nestěžovali), byl celkem problém naprogramovat
326
        elektronický diferenciál na hnanou nápravu. Nakonec se to vyřešilo
327
        procedurou „jakonásobení“, která kombinací rotací a podmíněného sčítání
328
        provádí rychle potřebný výpočet s&nbsp;uspokojivou přesností.
329
      </p>
330
      
331
      <p class="Obrazek">
332
        <a href="Pictures/image013.jpg"><img src="Pictures/image013_small.jpg"
333
                                             alt="Osvětlení dráhy"></a>
334
        <br>
335
        Obr.&nbsp;6: Měnič v&nbsp;krabičce od čaje a primitivní osvětlení dráhy.
336
      </p>
337
      
338
      <p class="Obrazek">
339
        <a href="Pictures/image015.jpg"><img src="Pictures/image015_small.jpg"
340
                                             alt="Robot přítel člověka"></a>
341
        <br>
342
        Obr.&nbsp;7: Robot, přítel člověka.
343
      </p>
344
      
345
      <p>
346
        Začali jsme tedy testovat pro sledování čáry asi nejobtížnější věc,
347
        dlouhou rovinku a na konci pravoúhlou zatáčku. Při dalším zvyšování
348
        rychlosti začal robot v&nbsp;takové zatáčce vypadávat. Ne, že by přímo
349
        vyjel a nevrátil se na dráhu, ale poloměr zatáčení byl menší než poloměr
350
        zatáčky a hrozilo tedy, že v&nbsp;Bratislavě spadne ze stolu. Udělali
351
        jsme předpoklad, že je to způsobeno pomalým snímkovým kmitočtem kamery,
352
        než si robot stačil všimnout, že je zatáčka ostrá, zmizela mu čára ze
353
        zorného pole.
354
      </p>
355
      
356
      <p>
357
        Dalším problémem bylo, že pokud bylo nerovnoměrné osvětlení dráhy,
358
        vypadával kameře obraz. Kamera má sice AGC, ale samozřejmě, že je
359
        schopna kompenzovat rozdíly jasu jenom v&nbsp;určitých mezích. Kupodivu
360
        nebyl problém v&nbsp;tunelu, kde si robot svítí, ale velký problém byl
361
        s&nbsp;denním světlem, pokud přicházelo pouze z&nbsp;jednoho směru.
362
      </p>
363
      
364
      <p>
365
        Konstrukční řešení, které následovalo, bylo doplnění dvou původních
366
        modrých čidel po stranách robota na sledování čáry. Čidla byla umístěna
367
        tak, že viděla čáru, až když čára byla mimo zorné pole kamery a
368
        uplatňovala se pouze v&nbsp;případě, že kamera čáru nevidí. To velmi
369
        zvýšilo spolehlivost sledování čáry. Zároveň jsme tato čidla použili
370
        pro opětovné vyhledání čáry po objetí cihly, protože jsme se báli pro
371
        tento úkol použít kameru, protože po dobu objíždění cihly kamera nevidí
372
        kontrastní obrázek (nevidí čáru) a díky AGC by mohla zaznamenat stín
373
        nebo špínu na trati jako čáru.
374
      </p>
375
      
376
      <p>
377
        Na objíždění cihly byl robot Camerus vybaven odometrií na pravém kole.
378
        Využili jsme otvorů ve větším kole převodovky a IR závory
379
        z&nbsp;tiskárny. Citlivost odometrie nebyla velká (4 impulzy na jednu
380
        otáčku kolečka (12,6mm)).
381
      </p>
382

  
383
      <h2> Jak jsme jeli „ladit“ do Vídně </h2>
384

  
385
      <p>
386
        Vše potřebné bylo naprogramováno, robot sledoval čáru. Přerušení
387
        nedělalo problémy, prostě byl výpadek obrazu a robot pokračoval
388
        v&nbsp;původním směru před přerušením. Cihla byla řešena pomocí
389
        odometrie. Takto vybaveni jsme odjeli do Vídně na Robot Challenge 2007.
390
        Řekli jsme si, že to tam odladíme, protože jsou tam jednodušší podmínky
391
        než v&nbsp;Bratislavě (alespoň na první pohled, robot může být větší a
392
        tunel je také větší, takže menší robot nemusí jet tak přesně).
393
      </p>
394
      
395
      <p>
396
        Rozhodnutí ladit robota na Robot Challenge se ukázalo jako správné.
397
        Podmínky totiž byly náročné. Bodové osvětlení, dráha složená
398
        z&nbsp;desek s&nbsp;mezerami, styl soutěže play-off.
399
      </p>
400
      
401
      <p>
402
        Camerus určitě jezdil nejrychleji, ale nedokázal objet cihlu! Jednou se
403
        stalo, že uviděl mezeru mezi deskami, podruhé mu zřejmě proklouzlo
404
        kolečko s&nbsp;odometrií, prostě katastrofa! Alespoň, že byl třetí
405
        v&nbsp;paralelním slalomu, to jsme mu ale zavinili my, protože jsme mu
406
        při zkoušení objetí cihly stáhli výkon motorů a pak jsme na to
407
        zapomněli. Za třetí místo tedy nemohl robot, ale lidský faktor.
408
      </p>
409
      
410
      <p>
411

  
412
      <p class="Obrazek">
413
        <a href="Pictures/image017.jpg"><img src="Pictures/image017_small.jpg"
414
                                             alt="Robot Challenge 2007"></a>
415
        <br>
416
        Obr.&nbsp;8: Robot Challenge 2007, Parallel Slalom.
417
        <br>
418
        Robot Camerus na dráze číslo 1. Na dráze jsou patrné stíny od bodového
419
        osvětlení.
420
      </p>
421
      
422
      <p class="Obrazek">
423
        <a href="Pictures/image019.jpg"><img src="Pictures/image019_small.jpg"
424
                                             alt="Příprava"></a>
425
        <a href="Pictures/P3180028.JPG"><img src="Pictures/P3180028_small.JPG"
426
                                            alt="Jízda"></a>
427
        <br>
428
        Obr.&nbsp;9: Robot Camerus na Robot Challenge 2007.
429
        <br>
430
        Robot nemá dostatek čidel na bezpečné objetí překážky.
431
      </p>
432
      
433
      <p>
434
        Jednoznačně se ukázalo, že objíždět překážku „napůl naslepo“ není dobrá
435
        strategie a zejména, pokud je odometrie na hnané nápravě.
436
      </p>
437
      
438
      <h2> Co s&nbsp;cihlou? </h2>
439
      
440
      <p>
441
        Další vývoj jsme věnovali objíždění cihly za pomoci čidel. Jaká čidla
442
        ale použít? Měli jsme špatné zkušenosti s&nbsp;IR čidly z&nbsp;3Orbise
443
        a roboty s&nbsp;ultrazvukem jsme zase na minulých ročnících viděli, že
444
        si spletli tunel s&nbsp;cihlou, případně neviděli cihlu, pokud se
445
        k&nbsp;ní blížili zešikma.
446
      </p>
447

  
448
      <p>
449
        Nevěděli jsme co s&nbsp;tím a tak jsme začali zkoušet. Měřili jsme, co
450
        „vidí“ ultrazvuk a co různá optická čidla. Při měření se ukázaly
451
        všechny předpokládané problémy. Ultrazvuk vidí kde co, jenom ne cihlu,
452
        když je šikmo. IR snímač vidí cihlu sice spolehlivě, ale stejně dobře
453
        jako velkou bílou zeď několik metrů daleko. Nakonec byla pro cihlu
454
        zvolena kombinace sedmi senzorů. Skutečně čtete dobře, sedmi! Jeden IR
455
        senzor vpředu na detekci přiblížení se k&nbsp;cihle. Funguje na
456
        principu triangulace. IR vysílací dioda má úzkou hliníkovou trubičkou
457
        zúžen paprsek, aby nedocházelo k&nbsp;jeho integraci na velké vzdálené
458
        ploše. Další dva senzory jsou mikrospínače na mechanickém nárazníku,
459
        kdyby se stalo, že triangulační čidlo cihlu přehlédne. To se může stát
460
        v&nbsp;prudké zatáčce. Z&nbsp;boku jsou pak ultrazvukový senzor a
461
        on/off dálkoměr s&nbsp;červenou LED. Tyto čidla udržují konstantní
462
        vzdálenost od cihly při jejím objíždění. K&nbsp;tomu ještě již zmíněná
463
        odometrie na pravém kolečku, která zajišťuje prudkou zatáčku doleva
464
        jakmile je cihla detekována a nakonec kompas, který zabraňuje, aby se
465
        robot vracel zpět po trati (to se může stát, protože mezi předním
466
        čidlem a bočními čidly je slepý úhel).
467
      </p>
468
      
469
      <p>
470
        Přidání dalších čidel se neobešlo bez konstrukčních problémů. Boční LED
471
        čidlo se ukázalo jako málo citlivé a bylo to zřejmě způsobeno tím, že
472
        se jedná o průmyslové čidlo, které je normálně napájeno napětím 12 až
473
        48V. S&nbsp;naším napájecím napětím 7,2V a to ještě občas, nebylo moc
474
        spokojeno. Byl tady přidán další měnič nahoru na 12V. Byl použit měnič
475
        ze staré síťové karty.
476
      </p>
477
      
478
      <p>
479
        Samostatným konstrukčním problémem bylo umístění kompasu. Nakonec musel
480
        být kompas umístěn nad všechny desky s elektronikou a musel být
481
        orientován tak, aby čidla kompasu byla pod úhlem 45° k ose robota. Pokud
482
        byla čidla v ose robota, byl kompas ovlivňován zbytkovým magnetickým
483
        polem v kovových (zejména železných) částech robota.
484
      </p>
485

  
486
      <h2> Poslední weekend před soutěží </h2>
487

  
488
      <p>
489
        Přidání kompasu na I2C sběrnici si vyžádalo přeadresaci kamery, protože
490
        kamera a kompas měly na I2C sběrnici stejnou adresu a adresa kompasu se
491
        nedala změnit. To kupodivu byl velký problém, který jsme řešili až
492
        poslední weekend před soutěží a přitom vyžadoval tak zásadní zásah jako
493
        rozebrání objektivu kamery, což znamenalo pečlivé čištění pouzdra a čipu
494
        kamery, protože případné smítko na pouzdře čipu by mělo při soutěži
495
        fatální následky. Čip kamery sice přeadresaci umí, ale bylo nutné
496
        připojit vývod MULT (47) na log_1 a na to kupodivu na plošném spoji
497
        kamery nebylo pamatováno, přesto, že na plošném spoji jsou plošky na
498
        odpory, které umožňují změnu adresy.
499
      </p>
500

  
501
      <p class="Obrazek">
502
        <a href="Pictures/image021.jpg"><img src="Pictures/image021_small.jpg"
503
                                             alt="Úprava kamery"></a>
504
        <br>
505
        Obr.&nbsp;10: Propojka na PCB kamery umožňující její přeadresaci.
506
      </p>
507

  
508
      <p>
509
        Poslední weekend před soutěží nás napadlo ještě jednou projít seznam
510
        problémů, které jsme si poznamenali v&nbsp;průběhu loňské soutěže.
511
        Hned na začátku tam bylo: „Zkontrolovat, jestli neprokluzují kolečka na
512
        hřídeli.“ Prokluzovala... Zkusili jsme je přilepit anaerobním lepidlem.
513
        Výsledek byl, že se zalepily hřídelky do ložisek a kolečka prokluzovala
514
        dál. Zkusili jsme je přilepit epoxidem. Naneštěstí nám trochu epoxidu
515
        zřejmě nateklo do ložisek a kolečka se zase utrhla. Poslední neděli
516
        před soutěží jsme tedy měli zatuhlé převodovky a kolečka prokluzovala.
517
        Snažili jsme se do hřídelek vyvrtat dírky a dát tam kolík, ale vrták
518
        vůbec nitridovanou ocel z&nbsp;CD mechanik nebral. Nakonec jsme do
519
        hřídelek pouze vypilovali drážky a opět jsme je zalili epoxidem. Jestli
520
        neprokluzují, jsme pro jistotu už nezkoušeli.
521
      </p>
522
      
523
      <p>
524
        Při manipulaci s pravou převodovkou se podařilo ulomit vývod od IR
525
        závory na odometrii. Protože nešla vyměnit (je zalepená v pŕevodovce) a
526
        nechtěli jsme měnit celou převodovku, natavili jsme její pouzdro pájkou
527
        a drátek přiletovali na pahýl vývodu.
528
      </p>
529
      
530
      <p>
531
        Po rozebrání bylo nutné převodovky nechat znovu zaběhnout, to jsme
532
        dělali přes noc z&nbsp;pondělí na úterý (IstRobot bývá ve středu a my
533
        tam obvykle jedeme v&nbsp;úterý dopoledne). Motory se točily do rána do
534
        poslední chvíle před naložením robota do auta.
535
      </p>
536

  
537
      <h2> Noc před soutěží </h2>
538
      
539
      <p>
540
        „Kdyby nebylo poslední noci, tak není žádný projekt dokončen.“
541
        Odpoledne jsme přijeli do Bratislavy na ubytovnu, rozložili dráhy a
542
        začali ladit poslední řádky programu. V&nbsp;našem případě to mělo být
543
        zpracování logu z&nbsp;jízdy.
544
      </p>
545
      
546
      <p>
547
        A vůbec to nejezdilo. Robot měl malý výkon v&nbsp;levotočivé zatáčce,
548
        při objíždění cihly se dokonce občas zastavil. No jasně, řekli jsme si,
549
        jsou stále zatuhlé převodovky, změnili jsme pár konstant
550
        v&nbsp;programu a jakš takš to zase jezdilo. Situace se ale o půlnoci
551
        zase zhoršila a začal smrdět H-můstek. Vyměnili jsme tedy H-můstek a
552
        nepomohlo to. Vyměnili jsme tedy motor a pomohlo to! (Pozdější analýzou
553
        záznamu použitého dílu bylo zjištěno, že motor č.2 byl použit spolu s
554
        původním podvozkem na výstavě Vzdělání a Řemeslo v Českých
555
        Budějovicích, kde byla levotočivá trať a jeho provozní doba tak
556
        vzrostla o desítky hodin proti motoru č.1&nbsp;.) Po výměně motoru jsme
557
        vrátili do robota původní H-můstek (asi tak v&nbsp;jednu hodinu ráno)
558
        a zase to nejelo. Měřením jsme pak zjistili dvě věci, jednak byly přes
559
        pájecí lak odizolovány zemnící šrouby na plošném spoji H-můstku a tak
560
        všechen proud tekl přes hřebínkový konektor a pak tam ještě byl zkrat
561
        přes jeden tranzistor H-můstku, takže jeden motor nereverzoval.
562
        Představte si, že tyto závady byly vykompenzovány jednak regulátorem
563
        v&nbsp;software a také koncepcí podvozku, a že s&nbsp;nimi byl Camerus
564
        na Robot Challenge třetí!
565
      </p>
566
      
567
      <p>
568
        Pak už jenom stačilo doprogramovat tu logovací proceduru (přepisovala
569
        paměť). A kolem páté hodiny ranní byl robot připraven na soutěž.
570
      </p>
571
      
572
      <h2> IstRobot 2007 </h2>
573

  
574
      <p>
575
        IstRobot 2007 nás skutečně překvapil, byla na něm z&nbsp;našeho pohledu
576
        nejsložitější dráha, jakou jsme kdy viděli. Extrémně dlouhé přerušení,
577
        navíc v&nbsp;inflexním bodě (to nás vůbec nenapadlo, že je možné),
578
        cihla hned za pravoúhlou zatáčkou (sotva robot vyjede ze zatáčky, bác,
579
        a je tu cihla), viz Obrázek 11.
580
      </p>
581
      
582
      <p class="Obrazek">
583
        <a href="Pictures/image023.jpg"><img src="Pictures/image023_small.jpg"
584
                                             alt="IstRobot 2007"></a>
585
        <br>
586
        Obr.&nbsp;11: IstRobot 2007 – tvar dráhy.
587
      </p>
588
      
589
      <p>
590
        Potenciálním problémem byly magnetické stojánky na kterých stála čidla
591
        časomíry. Magnetické pole nad dráhou bylo díky nim značně nehomogenní
592
        (stojánek na Obr.&nbsp;11 vlevo dole a dva stojánky na startu). Robot
593
        využíval kompas pouze u cihly, a zřejmě byl stojánek dostatečně
594
        daleko/blízko, že nakonec nevadil. Údaje z kompasu se zpracovávaly
595
        diferenčně, takže nevadilo, že byla díky stojánkům odchylka v celkové
596
        orientaci magnetického pole Země, podstatné bylo, aby nedocházelo k
597
        velkým zakřivením pole v oblasti cihly. K čemuž, jak jsme změřili,
598
        částečně docházelo, ale software se s tím vypořádal, když vážil údaje
599
        ze všech čidel při objíždění překážky.
600
      </p>
601
      
602
      <p>
603
        Obtížnost trati se ukázala hned v&nbsp;první jízdě, Camerus vypadnul na
604
        přerušení. V&nbsp;druhé jízdě jsme snížili výkon motorů, zde ale zase
605
        hrozilo, že se robot nerozjede, pokud někde (například při objíždění
606
        cihly) výrazně zpomalí. Robot jel plynuleji, přesto vyjel
607
        v&nbsp;přerušení (to dá rozum, protože kopíroval tvar dráhy před
608
        přerušením), vyhnul se tunelu, znovu našel dráhu (to fungovalo dobře) a
609
        na podruhé projel. Byl to úspěch, ale velká časová ztráta a navíc si
610
        robot špatně zapamatoval dráhu pro další jízdu, protože bloudil.
611
      </p>
612
      
613
      <p>
614
        Programovali jsme místo oběda a nakonec jsme to přerušení vyřešili.
615
        Prostě jsme zohlednili, že dráha za přerušením může pokračovat i na
616
        druhou stranu. Zní to jednoduše, ale úprava programu nebyla tak
617
        jednoduchá, viz soutěžní verzi
618
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Designs/ROBOTS/Camerus/sw/#_Designs_ROBOTS_Camerus_sw_"
619
           >firmware</a>.
620
      </p>
621
      
622
      <p>
623
        Finálová jízda proběhla bez problémů, robot sice jel na méně jak
624
        polovinu regulačního rozsahu a bez našeho zásahu by se s&nbsp;dráhou
625
        dobře nevypořádal, ale jsme rádi, že dojel a nakonec stejně za to nemohl
626
        robot, ale my, že jsme mu naprogramovali, že dráha za přerušením nemůže
627
        vést na druhou stranu. Nakonec se podařilo s&nbsp;robotem s&nbsp;časem
628
        12,5s udělat „rekord trati“ ;-)
629
      </p>
630

  
631
      <p class="Obrazek">
632
        <a href="Pictures/image025.jpg"><img src="Pictures/image025_small.jpg"
633
                                             alt="Robot Camerus"></a>
634
        <br>
635
        Obr.&nbsp;12: Robot Camerus - finální verze robota.
636
      </p>
637
      
638
      <p class="Obrazek">
639
        <a href="Pictures/index.2.gif"><img src="Pictures/index.1.gif"
640
                                            alt="Blokové schéma"></a>
641
        <br>
642
        Obr.&nbsp;13: Blokové schéma propojení modulů robota.
643
      </p>
644
      
645
      <h1> Podklady </h1>
646
      
647
      <p>
648
        Desky plošných spojů a popis jednotlivých modulů robota naleznete na
649
        <a href="http://www.mlab.cz/">http://www.mlab.cz/</a>&nbsp;.
650
      </p>
651

  
652
      <h2 class="Small"> Deska procesoru </h2>
653
      <p>
654
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC%2FPIC16F87xSO2801A%2F#_Modules_PIC_PIC16F87xSO2801A_">
655
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/PIC/PIC16F87xSO2801A/#_Modules_PIC_PIC16F87xSO2801A_</a>
656
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC%2FPIC16F87xDIL2801A%2F#_Modules_PIC_PIC16F87xDIL2801A_">
657
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/PIC/PIC16F87xDIL2801A/#_Modules_PIC_PIC16F87xDIL2801A_</a>
658
      </p>
659
      
660
      <h2 class="Small"> H-můstky </h2>
661
      
662
      <p>
663
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FH_Bridge%2F#_Modules_H-Bridge_">
664
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/H_Bridge/#_Modules_H-Bridge_</a>
665
      </p>
666

  
667
      <h2 class="Small"> LEDbar </h2>
668
      
669
      <p>
670
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FHumanInterfaces%2FLEDbar%2F#_Modules_LEDbar_">
671
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/HumanInterfaces/LEDbar/#_Modules_LEDbar_</a>
672
      </p>
673
      
674
      <h2 class="Small"> Měnič </h2>
675
      
676
      <p>
677
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPowerSupply%2FBATPOWER02A%2F#_Modules_PowerSupply_BATPOWER02A_">
678
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/PowerSupply/BATPOWER02A/#_Modules_PowerSupply_BATPOWER02A_</a>
679
      </p>
680
      
681
      <h2 class="Small"> IR modulátor </h2>
682
      
683
      <p>
684
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FCommIR%2FTXIR%2F#_Modules_CommIR_TXIR_">
685
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/CommIR/TXIR/#_Modules_CommIR_TXIR_</a>
686
      </p>
687
      
688
      <h2 class="Small"> Osvětlení dráhy </h2>
689
      
690
      <p>
691
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel_">
692
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Designs/ROBOTS/Camerus/LEDpanel/#_Designs_ROBOTS_Camerus_LEDpanel_</a>
693
      </p>
694

  
695
      <h2 class="Small"> Univerzálka pro 7432 </h2>
696

  
697
      <p>
698
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/Universal/UNIDIL1601A/">
699
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/Universal/UNIDIL1601A/</a>
700
      </p>
701
      
702
      <h2 class="Small"> Modul trimrů </h2>
703
      
704
      <p>
705
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FHumanInterfaces%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_">
706
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/HumanInterfaces/TRIMQUAD01A/#_Modules_TRIMQUAD01A_</a>
707
      </p>
708
      
709
      <h2 class="Small"> Dokumentace k&nbsp;použitému kamerovému čipu </h2>
710

  
711
      <p>
712
        <a href="http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF">
713
        http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF</a>
714
      </p>
715
      
716
      <h2 class="Small"> Dokumentace k&nbsp;US senzoru </h2>
717

  
718
      <p>
719
        <a href="http://www.robot-electronics.co.uk/htm/srf08tech.shtml">
720
        http://www.robot-electronics.co.uk/htm/srf08tech.shtml</a>
721
      </p>
722
      
723
      <h2 class="Small"> Dokumentace ke kompasu </h2>
724
      
725
      <p>
726
        <a href="http://www.robot-electronics.co.uk/htm/cmps3doc.shtml">
727
        http://www.robot-electronics.co.uk/htm/cmps3doc.shtml</a>
728
      </p>
729
      
730
      <h2 class="Small"> Dokumentace k&nbsp;robotu 3Orbis </h2>
731
      
732
      <p>
733
        <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2F3Orbis%2F#_Designs_ROBOTS_3Orbis_">
734
        http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Designs/ROBOTS/3Orbis/#_Designs_ROBOTS_3Orbis_</a>
735
      </p>
736
      
737
      
738
      <h2 class="Small"> Video </h2>
739
      
740
      <p>
741
        Videozáznam, jak Camerus jezdil při soutěži IstRobot 2007:
742
        <br>
743
        <a href="../video/1.wmv">1.&nbsp;jízda</a>,
744
        <a href="../video/2.wmv">2.&nbsp;jízda</a>,
745
        <a href="../video/3.wmv">3.&nbsp;jízda</a>.
746
      </p>
747
      
748
    </div>
749

  
750
    <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
751
    <!-- ============== PATIČKA ============== -->
752
    <div class="Footer">
753
      <script type="text/javascript">
754
      <!--
755
        SetRelativePath("../../../../../");
756
        DrawFooter();
757
      // -->
758
      </script>
759
      <noscript>
760
        <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
761
      </noscript>
762
    </div>
763
    <!-- AUTOINCLUDE END -->
764

  
765
  </body>
766
</html>
... Этот diff ограничен, так как превышает максимальный отображаемый размер. :@created_atf1415983660.7312Ëû:@expires_in0