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">
603 kakl 15 kakl@i.cz</a><span lang="en-us">; <font size="2">M. Novot</font></span><font size="2">ný</font><br>
592 kakl 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
602 kakl 54 nahráli kód pro druhý procesor, což kupodivu <span lang="en-us">v</span>ždy trvalo urèitou dobu, než jsme
600 kakl 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
602 kakl 100 2006 u nás byla povodeò a ztratili jsme tak nejménì jeden kalendáøní mìsíc veèerù/weekendù na
600 kakl 101 programování. Nyní s&nbsp;odstupem èasu vidíme, že co se týká objetí cihly, chybìlo
602 kakl 102 nám mnohem více.<br>
592 kakl 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
602 kakl 132 kódu, snímali jsme vlastnì polohu jedné èáry fiktivního èárového kódu ve scanovaném prostoru. V&nbsp;prudké
600 kakl 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>
601 kaklik 225 Konstrukèní øešení, které následovalo, bylo doplnìní dvou pùvodních modrých èidel po
600 kakl 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é
601 kaklik 246 vìtší, takže menší 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
602 kakl 274 pøekážku „napùl naslepo“ není dobrá strategie a zejména, pokud je odometrie na hnané
600 kakl 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
602 kakl 280 èidly z&nbsp;3Orbise a roboty s&nbsp;ultrazvukem jsme zase na minulých roènících vidìli,
600 kakl 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
602 kakl 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
600 kakl 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ý
592 kakl 298 úhel).<br>
299 <br>
600 kakl 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
601 kaklik 307 elektronikou a musel být orientován tak, aby èidla kompasu byla pod úhlem 45<span lang="en">°
600 kakl 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
593 kakl 310 robota.</span><br>
592 kakl 311 &nbsp;</font></p>
600 kakl 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,
601 kaklik 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
600 kakl 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>
592 kakl 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>
600 kakl 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>
592 kakl 329 &nbsp;</font></p>
600 kakl 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í
601 kaklik 333 koleèka na høídeli.“ Prokluzovala... Zkusili jsme je pøilepit anaerobním lepidlem.
600 kakl 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
601 kaklik 336 do ložisek a koleèka se zase utrhla. Poslední nedìli pøed soutìží jsme tedy
600 kakl 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
602 kakl 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>
592 kakl 345 <br>
602 kakl 346 Po rozebrání bylo nutné pøevodovky nechat znovu zabìhnout, to jsme dìlali pøes noc z&nbsp;pondìlí
600 kakl 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>
592 kakl 349 &nbsp;</font></p>
600 kakl 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>
592 kakl 355 <br>
600 kakl 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
602 kakl 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
600 kakl 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
602 kakl 367 jednak regulátorem v&nbsp;software a také koncepcí podvozku, a že s&nbsp;nimi byl Camerus na Robot Challenge tøetí!<br>
592 kakl 368 <br>
600 kakl 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>
592 kakl 371 &nbsp;</font></p>
372 <p align="left"><font face="Times New Roman" size="4"><b>IstRobot 2007</b></font></p>
600 kakl 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>
592 kakl 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>
600 kakl 381 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>
382 11: IstRobot 2007 – tvar dráhy.</font></p>
593 kakl 383 <p align="left"><font face="Times New Roman">Potenciálním problémem byly
601 kaklik 384 magnetické stojánky na kterých stála èidla èasomíry. Magnetické pole nad dráhou
600 kakl 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,
592 kakl 399 protože bloudil.</font></p>
600 kakl 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>
592 kakl 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>
600 kakl 415 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>12:
416 Robot Camerus - finální verze robota.<br>
592 kakl 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>
600 kakl 421 <p align="center"><font face="Times New Roman">Obr<span lang="en-us">. </span>
422 13: Blokové schéma propojení modulù robota.<br>
592 kakl 423 &nbsp;</font></p>
600 kakl 424 <p align="left"><font face="Arial">Desky plošných spojù a popis jednotlivých
425 modulù robota naleznete na
592 kakl 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>
600 kakl 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>
592 kakl 432 <br>
433 &nbsp;</font></p>
600 kakl 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>
592 kakl 437 <br>
438 &nbsp;</font></p>
439 <p align="left"><font face="Arial">LEDbar<br>
600 kakl 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>
592 kakl 442 &nbsp;</font></p>
600 kakl 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>
592 kakl 446 &nbsp;</font></p>
447 <p align="left"><font face="Arial">IR modulátor<br>
600 kakl 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>
592 kakl 450 &nbsp;</font></p>
600 kakl 451 <p align="left"><font face="Arial">Osvìtlení dráhy<br>
597 kakl 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>
592 kakl 455 <p align="left"><font face="Arial">Univerzálka pro 7432<br>
600 kakl 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>
592 kakl 458 &nbsp;</font></p>
459 <p align="left"><font face="Arial">Trimry<br>
600 kakl 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>
592 kakl 462 &nbsp;</font></p>
600 kakl 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>
592 kakl 466 .<br>
467 &nbsp;</font></p>
468 <p align="left"><font face="Arial">Dokumentace k&nbsp;US senzoru je na
600 kakl 469 <a href="http://www.robot-electronics.co.uk/htm/srf08tech.shtml">
470 http://www.robot-electronics.co.uk/htm/srf08tech.shtml</a> .<br>
592 kakl 471 &nbsp;</font></p>
472 <p align="left"><font face="Arial">Dokumentace ke kompasu je na<span lang="en-us">
600 kakl 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>
592 kakl 475 &nbsp;</font></p>
600 kakl 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">
592 kakl 478 </span>
600 kakl 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>
592 kakl 481 .</font></p>
598 kakl 482 <p align="left"><font face="Arial"><span lang="en-us">Videoz</span>áznam, jak
600 kakl 483 Camerus jezdil pøi soutìži IstRobot 2007:<br>
598 kakl 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>
592 kakl 486  
487 </body>
488  
489 </html>