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