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