Rev Author Line No. Line
592 kakl 1 <html>
2  
3 <head>
4 <meta http-equiv="Content-Language" content="cs">
600 kakl 5 <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
597 kakl 6 <title>Camerus</title>
592 kakl 7 </head>
8  
9 <body>
10  
11 <p align="center"><font face="Arial"><font size="7">Robot CAMERUS<br>
600 kakl 12 </font><font size="4">Jak se dìlá robot na IstRobot<br>
592 kakl 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><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>
600 kakl 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>).
592 kakl 22 <br>
23 <br>
600 kakl 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>
592 kakl 28 &nbsp;</font></p>
29 <p align="left"><font face="Times New Roman" size="4"><b>Robot 3Orbis</b></font></p>
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 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>
600 kakl 45 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 2:
46 Baterie senzorù na èáru</font></p>
592 kakl 47 <p align="left"><font face="Times New Roman"><br>
600 kakl 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 obèas trvalo urèitou dobu, než jsme
55 na to pøišli.<br>
592 kakl 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>
600 kakl 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>
592 kakl 61 &nbsp;</font></p>
600 kakl 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>
592 kakl 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
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 86 <p align="left"><font face="Times New Roman"><br>
600 kakl 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>
592 kakl 98 <br>
600 kakl 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 mìsíc veèerù na
101 programování. Nyní s&nbsp;odstupem èasu vidíme, že co se týká objetí cihly, chybìlo
592 kakl 102 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>
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 122 <p align="left"><font face="Times New Roman"> <br>
600 kakl 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>
592 kakl 130 <br>
600 kakl 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 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>
592 kakl 139 &nbsp;</font></p>
140 <p align="left"><font face="Times New Roman" size="4"><b>Robot Camerus</b></font></p>
600 kakl 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
592 kakl 154 nápravách.)<br>
155 <br>
600 kakl 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
592 kakl 159 všechno nad bylo bílé. Expozici kamery pak bylo nutné nastavit tak, aby
600 kakl 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>
592 kakl 170 <br>
600 kakl 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>
592 kakl 180 <br>
600 kakl 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>
592 kakl 190 <br>
600 kakl 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>
592 kakl 195 <br>
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 218 <br>
600 kakl 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>
592 kakl 224 <br>
600 kakl 225 Konstrukèní øešení, které následovalo, bylo doplnìní dvou 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>
592 kakl 233 <br>
600 kakl 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>
592 kakl 237 &nbsp;</font></p>
600 kakl 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 robot nemusí jet tak pøesnì).<br>
592 kakl 247 <br>
248 Rozhodnutí ladit robota na Robot Challenge se ukázalo jako správné. Podmínky
600 kakl 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>
592 kakl 251 <br>
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 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
600 kakl 271 nemá dostatek èidel na bezpeèné objetí pøekážky.<br>
592 kakl 272 &nbsp;</font></p>
600 kakl 273 <p align="left"><font face="Times New Roman">Jednoznaènì se ukázalo, že objíždìt
274 pøekážku „naslepo“ není dobrá strategie a zejména, pokud je odometrie na hnané
275 nápravì.<br>
592 kakl 276 &nbsp;</font></p>
277 <p align="left"><font face="Times New Roman" size="4"><b>Co s&nbsp;cihlou?</b></font></p>
600 kakl 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 s&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>
592 kakl 283 <br>
600 kakl 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
592 kakl 291 paprsek, aby nedocházelo k&nbsp;jeho integraci na velké vzdálené ploše. Další dva
600 kakl 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 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á
296 odometrie na pravém koleèku, která zajišuje prudkou zatáèku doleva jakmile je
297 cihla detekována a nakonec kompas, který zabraòuje, aby se robot vracel zpìt po
298 trati (to se mùže stát, protože mezi pøedním èidlem a boèními èidly je slepý
592 kakl 299 úhel).<br>
300 <br>
600 kakl 301 Pøidání dalších èidel se neobešlo bez konstrukèních problémù. Boèní LED èidlo se
302 ukázalo jako málo citlivé a bylo to zøejmì zpùsobeno tím, že se jedná o
303 prùmyslové èidlo, které je normálnì napájeno napìtím 12 až 48V. S&nbsp;naším
304 napájecím napìtím 7,2V a to ještì obèas, nebylo moc spokojeno. Byl tady pøidán
305 další mìniè nahoru na 12V. Byl použit mìniè ze staré síové karty.</font></p>
306 <p align="left"><font face="Times New Roman">Samostatným konstrukèním problémem
307 bylo umístìní kompasu. Nakonec musel být kompas umístìn nad všechny desky s
308 elektronikou a musel být orientován tak, aby èidla byla pod úhlem 45<span lang="en">°
309 k </span>ose robota.<span lang="en"> Pokud byla èidla v ose robota, byl kompas
310 ovlivòován zbytkovým magnetickým polem v kovových (zejména železných) èástech
593 kakl 311 robota.</span><br>
592 kakl 312 &nbsp;</font></p>
600 kakl 313 <p align="left"><font face="Times New Roman" size="4"><b>Poslední weekend pøed
314 soutìží</b></font></p>
315 <p align="left"><font face="Times New Roman">Pøidání kompasu na I2C sbìrnici si
316 vyžádalo pøeadresaci kamery, protože kamera a kompas mìly na I2C sbìrnici
317 stejnou adresu a adresa kompasu se nedala zmìnit. To kupodivu byl velký problém,
318 který jsme už øešili poslední weekend pøed soutìží a vynutil si tak zásadní
319 zásah jako rozebrání objektivu kamery, což znamenalo peèlivé èištìní pouzdra
320 èipu kamery, protože pøípadné smítko na pouzdøe èipu by mìlo pøi soutìži fatální
321 následky. Èip kamery sice pøeadresaci umí, ale bylo nutné pøipojit vývod MULT
322 (47) na <span lang="en-us">log_1 </span>a na to kupodivu na plošném spoji kamery
323 nebylo pamatováno, pøesto, že na plošném spoji jsou plošky na odpory, které
324 umožòují zmìnu adresy.<br>
592 kakl 325 &nbsp;</font></p>
326 <p align="center"><font face="Times New Roman"><a href="pic/image021.jpg">
327 <img border="0" src="pic/image021_small.jpg" xthumbnail-orig-image="pic/image021.jpg"></a></font></p>
600 kakl 328 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>
329 10: Propojka na PCB kamery umožòující její pøeadresaci.<br>
592 kakl 330 &nbsp;</font></p>
600 kakl 331 <p align="left"><font face="Times New Roman">Poslední weekend pøed soutìží nás
332 napadlo ještì jednou projít seznam problémù, které jsme si poznamenali v&nbsp;prùbìhu
333 loòské soutìže. Hned na zaèátku tam bylo: „Zkontrolovat, jestli neprokluzují
334 koleèka na høídeli.“ Prokluzovaly. Zkusili jsme je pøilepit anaerobním lepidlem.
335 Výsledek byl, že se zalepily høídelky do ložisek a koleèka prokluzovala dál.
336 Zkusili jsme je pøilepit epoxidem. Naneštìstí nám trochu epoxidu zøejmì nateklo
337 do ložisek a koleèka se zase utrhla. Poslední weekend pøed soutìží jsme tedy
338 mìli zatuhlé pøevodovky a koleèka prokluzovala. Snažili jsme se do høídelek
339 vyvrtat dírky a dát tam kolík, ale vrták vùbec nitridovanou ocel z&nbsp;CD mechanik
340 nebral. Nakonec jsme do høídelek pouze vypilovali drážky a opìt jsme je zalili
341 epoxidem. Jestli neprokluzují, jsme pro jistotu už nezkoušeli.<br>
592 kakl 342 <br>
600 kakl 343 Ještì bylo nutné znovu zabìhnout pøevodovky, to jsme dìlali pøes noc z&nbsp;pondìlí
344 na úterý (IstRobot bývá ve støedu a my tam obvykle jedeme v&nbsp;úterý dopoledne).
345 Motory se toèily do rána do poslední chvíle pøed naložením robota do auta.<br>
592 kakl 346 &nbsp;</font></p>
600 kakl 347 <p align="left"><font face="Times New Roman" size="4"><b>Noc pøed soutìží</b></font></p>
348 <p align="left"><font face="Times New Roman">„Kdyby nebylo poslední noci, tak
349 není žádný projekt dokonèen.“ Odpoledne jsme pøijeli do Bratislavy na ubytovnu,
350 rozložili dráhy a zaèali ladit poslední øádky programu. V&nbsp;našem pøípadì to mìlo
351 být zpracování logu z&nbsp;jízdy.<br>
592 kakl 352 <br>
600 kakl 353 A vùbec to nejezdilo. Robot mìl malý výkon v&nbsp;levotoèivé zatáèce, pøi objíždìní
354 cihly se dokonce obèas zastavil. No jasnì, øekli jsme si, jsou stále zatuhlé
355 pøevodovky, zmìnili jsme pár konstant v&nbsp;programu a jakš takš to zase jezdilo.
356 Situace se ale o pùlnoci zase zhoršila a zaèal smrdìt H-mùstek. Vymìnili jsme
357 tedy H-mùstek a nepomohlo to. Vymìnili jsme tedy motor a pomohlo to! Prostì jsme
358 neustálým ladìním programu a zkoušením znièili jeden motor! Vrátili jsme tedy do
359 robota pùvodní H-mùstek (asi tak v&nbsp;jednu hodinu ráno) a zase to nejelo. Mìøením
360 jsme pak zjistili dvì vìci, jednak byly pøes pájecí lak odizolovány zemnící
361 šrouby na plošném spoji H-mùstku a tak všechen proud tekl pøes høebínkový
362 konektor a pak tam ještì byl zkrat pøes jeden tranzistor H-mùstku, takže jeden
363 motor nereverzoval. Pøedstavte si, že tyto závady byly vykompenzovány
364 regulátorem v&nbsp;software a že s&nbsp;nimi byl Camerus na Robot Challenge tøetí!<br>
592 kakl 365 <br>
600 kakl 366 Pak už jenom staèilo doprogramovat tu logovací proceduru (pøepisovala pamì). A
367 kolem páté hodiny ranní byl robot pøipraven na soutìž.<br>
592 kakl 368 &nbsp;</font></p>
369 <p align="left"><font face="Times New Roman" size="4"><b>IstRobot 2007</b></font></p>
600 kakl 370 <p align="left"><font face="Times New Roman">IstRobot 2007 nás skuteènì
371 pøekvapil, byla na nìm z&nbsp;našeho pohledu nejsložitìjší dráha, jakou jsme kdy
372 vidìli. Extrémnì dlouhé pøerušení, navíc v&nbsp;inflexním bodì (to nás vùbec
373 nenapadlo, že je možné), cihla hned za pravoúhlou zatáèkou (sotva robot vyjede
374 ze zatáèky, bác, a je tu cihla), viz Obrázek 11. </font></p>
592 kakl 375 <p align="left">&nbsp;</p>
376 <p align="center"><font face="Times New Roman"><a href="pic/image023.jpg">
377 <img border="0" src="pic/image023_small.jpg" xthumbnail-orig-image="pic/image023.jpg"></a></font></p>
600 kakl 378 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>
379 11: IstRobot 2007 – tvar dráhy.</font></p>
593 kakl 380 <p align="left"><font face="Times New Roman">Potenciálním problémem byly
600 kakl 381 magnetické stojánky na kterých stály èidla èasomíry. Magnetické pole nad dráhou
382 bylo díky nim znaènì nehomogenní (stojánek na Obr. 11 vlevo dole a dva stojánky
383 na startu). Robot využíval kompas pouze u cihly, a zøejmì byl stojánek
384 dostateènì daleko/blízko, že nakonec nevadil. Údaje z kompasu se zpracovávaly
385 diferenènì, takže nevadilo, že byla díky stojánkùm odchylka v celkové orientaci
386 magnetického pole Zemì, podstatné bylo, aby nedocházelo k velkým zakøivením pole
387 v oblasti cihly. K èemuž, jak jsme zmìøili, èásteènì docházelo, ale software se
388 s tím vypoøádal, když vážil údaje ze všech èidel pøi objíždìní pøekážky.</font></p>
389 <p align="left"><font face="Times New Roman">Obtížnost trati se ukázala hned
390 v&nbsp;první jízdì, Camerus vypadnul na pøerušení. V&nbsp;druhé jízdì jsme snížili výkon
391 motorù, zde ale zase hrozilo, že se robot nerozjede, pokud nìkde (napøíklad pøi
392 objíždìní cihly) výraznì zpomalí. Robot jel plynuleji, pøesto vyjel v&nbsp;pøerušení
393 (to dá rozum, protože kopíroval tvar dráhy pøed pøerušením), vyhnul se tunelu,
394 znovu našel dráhu (to fungovalo dobøe) a na podruhé projel. Byl to úspìch, ale
395 velká èasová ztráta a navíc si robot špatnì zapamatoval dráhu pro další jízdu,
592 kakl 396 protože bloudil.</font></p>
600 kakl 397 <p align="left"><font face="Times New Roman">Programovali jsme místo obìda a
398 nakonec jsme to pøerušení vyøešili. Prostì jsme zohlednili, že dráha za
399 pøerušením mùže pokraèovat i na druhou stranu. Zní to jednoduše, ale úprava
400 programu nebyla tak jednoduchá, viz soutìžní verzi
401 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/sw/#_Designs_ROBOTS_Camerus_sw_">
402 firmware</a>.</font></p>
403 <p align="left"><font face="Times New Roman">Finálová jízda probìhla bez
404 problémù, robot sice jel na ménì jak polovinu regulaèního rozsahu a bez našeho
405 zásahu by se s&nbsp;dráhou dobøe nevypoøádal, ale jsme rádi, že dojel a nakonec
406 stejnì za to nemohl robot, ale my, že jsme mu naprogramovali, že dráha za
407 pøerušením nemùže vést na druhou stranu. Nakonec se podaøilo s&nbsp;robotem s&nbsp;èasem
408 12,5s udìlat „rekord trati“ <span lang="en-us">;-)</span><br>
592 kakl 409 &nbsp;</font></p>
410 <p align="center"><font face="Times New Roman"><a href="pic/image025.jpg">
411 <img border="0" src="pic/image025_small.jpg" xthumbnail-orig-image="pic/image025.jpg"></a></font></p>
600 kakl 412 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>12:
413 Robot Camerus - finální verze robota.<br>
592 kakl 414 <br>
415 &nbsp;</font></p>
416 <p align="center"><a href="pic/index.2.gif">
417 <img border="0" src="pic/index.1.gif" xthumbnail-orig-image="pic/index.2.gif"></a></p>
600 kakl 418 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">. </span>
419 13: Blokové schéma propojení modulù robota.<br>
592 kakl 420 &nbsp;</font></p>
600 kakl 421 <p align="left"><font face="Arial">Desky plošných spojù a popis jednotlivých
422 modulù robota naleznete na
592 kakl 423 <a href="http://www.mlab.cz/">http://www.mlab.cz/</a>
424 .<br>
425 &nbsp;</font></p>
426 <p align="left"><font face="Arial">Deska procesoru<br>
600 kakl 427 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/PIC16F87x/#_Modules_PIC16F87x_">
428 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC16F87x%2F#_Modules_PIC16F87x_</a>
592 kakl 429 <br>
430 &nbsp;</font></p>
600 kakl 431 <p align="left"><font face="Arial">H-mùstky<br>
432 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/HBRIDGE/#_Modules_HBRIDGE_">
433 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FHBRIDGE%2F#_Modules_HBRIDGE_</a>
592 kakl 434 <br>
435 &nbsp;</font></p>
436 <p align="left"><font face="Arial">LEDbar<br>
600 kakl 437 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/LEDbar/#_Modules_LEDbar_">
438 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FLEDbar%2F#_Modules_LEDbar_</a><br>
592 kakl 439 &nbsp;</font></p>
600 kakl 440 <p align="left"><font face="Arial">Mìniè<br>
441 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/PowerSupply/BATPOWER02A/#_Modules_PowerSupply_BATPOWER02A_">
442 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FPowerSupply%2FBATPOWER02A%2F#_Modules_PowerSupply_BATPOWER02A_</a><br>
592 kakl 443 &nbsp;</font></p>
444 <p align="left"><font face="Arial">IR modulátor<br>
600 kakl 445 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/TXIR/#_Modules_TXIR_">
446 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FTXIR%2F#_Modules_TXIR_</a><br>
592 kakl 447 &nbsp;</font></p>
600 kakl 448 <p align="left"><font face="Arial">Osvìtlení dráhy<br>
597 kakl 449 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/LEDpanel/#_Designs_ROBOTS_Camerus_LEDpanel_">
450 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel_</a></font><br>
451 &nbsp;</p>
592 kakl 452 <p align="left"><font face="Arial">Univerzálka pro 7432<br>
600 kakl 453 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/UNI/UNIDIL1601A/#_Modules_UNI_UNIDIL1601A_">
454 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FUNI%2FUNIDIL1601A%2F#_Modules_UNI_UNIDIL1601A_</a><br>
592 kakl 455 &nbsp;</font></p>
456 <p align="left"><font face="Arial">Trimry<br>
600 kakl 457 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Modules/TRIMQUAD01A/#_Modules_TRIMQUAD01A_">
458 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FModules%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_</a><br>
592 kakl 459 &nbsp;</font></p>
600 kakl 460 <p align="left"><font face="Arial">Dokumentace k&nbsp;použitému kamerovému èipu je na
461 <a href="http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF">
462 http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF</a>
592 kakl 463 .<br>
464 &nbsp;</font></p>
465 <p align="left"><font face="Arial">Dokumentace k&nbsp;US senzoru je na
600 kakl 466 <a href="http://www.robot-electronics.co.uk/htm/srf08tech.shtml">
467 http://www.robot-electronics.co.uk/htm/srf08tech.shtml</a> .<br>
592 kakl 468 &nbsp;</font></p>
469 <p align="left"><font face="Arial">Dokumentace ke kompasu je na<span lang="en-us">
600 kakl 470 </span><a href="http://www.robot-electronics.co.uk/htm/cmps3doc.shtml">
471 http://www.robot-electronics.co.uk/htm/cmps3doc.shtml</a> .<br>
592 kakl 472 &nbsp;</font></p>
600 kakl 473 <p align="left"><font face="Arial">Dokumentace k&nbsp;robotu 3Orbis, ze kterého
474 Camerus vyšel, je na<span lang="en-us">
592 kakl 475 </span>
600 kakl 476 <a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/3Orbis/#_Designs_ROBOTS_3Orbis_">
477 http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2F3Orbis%2F#_Designs_ROBOTS_3Orbis_</a>
592 kakl 478 .</font></p>
598 kakl 479 <p align="left"><font face="Arial"><span lang="en-us">Videoz</span>áznam, jak
600 kakl 480 Camerus jezdil pøi soutìži IstRobot 2007:<br>
598 kakl 481 <a href="video/1.wmv">1. jízda</a>, <a href="video/2.wmv">2. jízda</a>,
482 <a href="video/3.wmv">3. jízda</a>.</font></p>
592 kakl 483  
484 </body>
485  
486 </html>