<html>

<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Camerus</title>
</head>

<body>

<p align="center"><font face="Arial"><font size="7">Robot CAMERUS<br>
</font><font size="4">Jak se dìlá robot na IstRobot<br>
</font><br>
<a href="mailto:kaklik@mlab.cz">kaklik@mlab.cz</a>; <a href="mailto:kakl@i.cz">
kakl@i.cz</a><br>
&nbsp;</font></p>
<p align="center"><a href="pic/image001.jpg">
<img border="0" src="pic/image001_small.jpg" xthumbnail-orig-image="pic/image001.jpg"></a></p>
<p align="left"><font face="Times New Roman">Tato dokumentace popisuje 
konstrukci robota 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>).
<br>
<br>
Snažili jsme se technickou dokumentaci pojmout ponìkud netradiènì. Kromì popisu 
finální verze robota zde naleznete chronologický popis jeho vývoje a popis všech 
slepých ulièek. Doufáme, že takováto forma dokumentace bude mít pro naše 
následovníky vìtší hodnotu než pouhý návod na zopakování konstrukce.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Robot 3Orbis</b></font></p>
<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 robota 3Orbis. Robot 3Orbis mìl 
mít novou revoluèní koncepci podvozku. Použili jsme tøíkolý podvozek, který mìl 
dvì hnaná kola, každé s&nbsp;nezávislým motorem a tøetí kolo, které mìlo øízené 
zatáèení. Jednalo se tedy o nonholonomní podvozek. Koncepci podvozku jsme 
nejdøíve ovìøovali se dvìma senzory na èáru, jako to mìly naši pøedchozí 
holonomní roboti. To moc nefungovalo a proto jsme pøidali další senzory, pomocí 
kterých se diskrétnì nastavoval úhel zatáèecího koleèka.</span></font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image003.jpg">
<img border="0" src="pic/image003_small.jpg" xthumbnail-orig-image="pic/image003.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Ob<span lang="en-us">r.</span>1: 
První pokusy s&nbsp;tøíkolým a tøímotorovým robotem<br>
<br>
<a href="pic/image005.jpg">
<img border="0" src="pic/image005_small.jpg" xthumbnail-orig-image="pic/image005.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 2: 
Baterie senzorù na èáru</font></p>
<p align="left"><font face="Times New Roman"><br>
Pøidáním dalších senzorù na èáru jsme se dostali do problémù s&nbsp;poètem vstupù 
použitého procesoru (PIC16F88). Tento problém jsme vyøešili tak, že jsme na 
zpracování signálù ze senzorù na èáru použili další samostatný procesor. Toto 
øešení se však pozdìji neukázalo jako výhodné, protože ladit distribuovaný kód 
bylo øádovì obtížnìjší a navíc se musela naprogramovat komunikace mezi 
procesory. Èasto se nám také stávalo, že jsme bìhem vývoje do jednoho procesoru 
nahráli kód pro druhý procesor, což kupodivu obèas trvalo urèitou dobu, než jsme 
na to pøišli.<br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image007.jpg">
<img border="0" src="pic/image007_small.jpg" xthumbnail-orig-image="pic/image007.jpg"></a></font></p>
<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 elektroniku<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman">Pùvodní koncepce pøedpokládala 
hnaná kola vpøedu a zatáèecí kolo vzadu. Modeláøské servo však nedokázalo 
dostateènì rychle zatáèet, pøestože bylo zpøevodováno do rychla pøevodem 1:2. 
Zmìnili jsme proto uspoøádání na hnanou nápravu vzadu a zatáèecí koleèko vpøedu. 
To nám umožòovalo „ostøe øezat zatáèky“, ale objevily se další problémy. 
Podvozek se v&nbsp;zatáèkách dostával do smyku a protože hmotnost èidel byla 
nezanedbatelná, docházelo i k&nbsp;jeho naklápìní a následnì k&nbsp;falešnému signálu 
z&nbsp;èidel, protože èidla nebyla držena v&nbsp;konstantní vzdálenosti od povrchu.<br>
<br>
Pro 3Orbise byla vysoustružena duralová kola, pro která bylo plánováno obutí „O“ 
kroužky. To se pak ukázalo jako nepoužitelné. „O“ kroužky se nedokázaly udržet 
v&nbsp;drážkách na kolech. Pùvodní kola byla tedy nahrazena plastovými z&nbsp;dìtské 
hraèky. Kola mìla menší prùmìr, což zlepšilo pøevodový pomìr, který byl pro 
vyrobené pøevodovky 5:1. Jako obutí byly použity ustøižené prsty z&nbsp;latexových 
rukavic pro domácnost. Jako obutí zatáèecího koleèka bylo použito pryžové 
tìsnìní 12x10x2. Na zatáèecí koleèko bylo obuto tak, že se jelo po hranì 
tìsnìní.</font></p>
<p align="center"><font face="Times New Roman">
<br>
<a href="pic/image009.jpg">
<img border="0" src="pic/image009_small.jpg" xthumbnail-orig-image="pic/image009.jpg"></a></font></p>
<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&nbsp;autobusu od syna pana Hronka.<br>
Je vidìt èidlo na hledání hrany cihly.</font></p>
<p align="left"><font face="Times New Roman"><br>
Pro detekci a objíždìní cihly byly na robotovi namontovány IR senzory. Jeden mìl 
detekovat pøekážku na dráze a zbylé dva mìly sloužit pro její objetí. Objetí 
cihly pomocí IR senzorù jsme však nedokázali odladit. Objíždìní nebylo 
spolehlivé a tak robot nakonec objíždìl cihlu naslepo. <br>
Pøi soutìži se objevil neèekaný problém, kvùli kterému robot nakonec nedojel. 
Soutìžní dráha je tvoøena dvìma deskami. Desky nejsou dokonale slícovány a tak 
mezi nimi vzniká tmavá mezera. Tato mezera byla na soutìžní dráze pøelepena 
bílou lepicí páskou. Bohužel èidla na èáru, které robot používal, vyhodnocovala 
bílou lepicí pásku jako èernou (èidla pracují blízko ultrafialové oblasti). 
Tento problém by šel kompenzovat programovì, ale na soutìži se nepodaøilo 
program v&nbsp;èasové tísni správnì upravit. Robot tedy nakonec nedojel.<br>
<br>
Odhadovali jsme, že nám chybìl tak týden na odladìní firmware, protože v&nbsp;roce 
2006 u nás byla povodeò a ztratili jsme tak nejménì jeden mìsíc veèerù na 
programování. Nyní s&nbsp;odstupem èasu vidíme, že co se týká objetí cihly, chybìlo 
mnohem více.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Robot Laserus</b></font></p>
<p align="left"><font face="Times New Roman">Další verzí robota se shodným 
podvozkem byl robot Laserus. Snahou bylo odstranit „tìžkᓠèidla pøedsunutá pøed 
robota a tak odstranit pøeklápìní v&nbsp;ostrých zatáèkách. Øešením by bylo zvìtšení 
dosahu èidel na èáru tak, aby mohla být umístìna co nejblíže k&nbsp;ose otáèení 
robota. Zároveò by se tím snížila obvodová setrvaèná hmotnost robota. Znovu jsme 
použili tøíkolý podvozek s&nbsp;jedním øízeným zatáèecím koleèkem, pøestože na 
IstRobotu 2006 byla tato konfigurace diskutována a autoøi druhého robota 
s&nbsp;podobnou koncepcí se v&nbsp;diskusi vyjádøili, že to nebyl dobrý nápad, že robot 
pøi vìtších rychlostech má snahu se rozkmitávat. Øešení tohoto problému jsme 
vidìli ve zjemnìní snímání èáry tak, aby se preciznìji 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 funkèního robota (viz Obrázek 5), který dokázal, 
ale pomalu, jezdit po èáøe. </font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image011.jpg">
<img border="0" src="pic/image011_small.jpg" xthumbnail-orig-image="pic/image011.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 5: 
Robot Laserus. Na obrázku je vidìt èervená stopa LASERu.</font></p>
<p align="left"><font face="Times New Roman"> <br>
Problémy s&nbsp;touto konstrukcí byly dva. Pokud byl na dráze hrbol, tak se 
v&nbsp;dùsledku vibrací zmenšil rozkmit laseru, protože laser je ve ètecím zaøízení 
rozmítáván mechanicky zrcátkem, které vibruje a velké stranové zrychlení pøi 
pøejetí hrbolu zpùsobovalo, že elektromagnetický mechanismus, který pohybuje 
zrcátkem vypadl z&nbsp;rezonance. Tento problém by ovšem zøejmì šlo kompenzovat 
softwarem, protože se èára èetla v&nbsp;obou smìrech pohybu zrcátka. Jednou jsme tedy 
dostali polohu èáry mìøenou z leva a jednou z prava.<br>
<br>
Druhý problém byl závažnìjší. Protože bylo použito zaøízení na ètení èárového 
kódu, snímali jsme vlastnì polohu jedné èáry ve scanovaném prostoru. V&nbsp;prudké 
zatáèce však dochází k&nbsp;tomu, že èáru vidí snímaè šikmo a tak se relativnì 
zvìtšuje její tlouška. Vnitøní elektronika snímaèe vyhodnotila tento stav, jako 
že se nejedná o èárový kód a èáru vyfiltrovala. To samozøejmì mìlo v&nbsp;ostré 
zatáèce fatální následky. Dále jsme touto cestou nepokraèovali, pøesto, že víme, 
že v&nbsp;závodì DARPA se èasto používají laserové dálkomìry. Na soutìžních vozech je 
však vidìt, že konstruktéøi také mají problémy s&nbsp;odtlumením vibrací.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Robot Camerus</b></font></p>
<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 nìkolikrát, ale když jsme nápad 
analyzovali, vždy se ukázalo, že jednoduchým jednoèipovým mikropoèítaèem nelze 
zpracovávat obraz kamery. Druhým problémem je, že bìžnì dostupné kamery mají 
snímkový kmitoèet 50Hz, což se nám zdálo na snímání èáry pomalé.<span lang="en-us"> </span>
Pøesto jsme zakoupili jednu kameru a zaèali jsme osciloskopem testovat, co tak 
kamera vidí a jak by se to dalo zpracovat. Kupodivu jsme zjistili, že 
s&nbsp;procesorem na 20MHz stíháme naèíst jeden obrazový øádek asi s&nbsp;polovièním 
rozlišením. To bylo povzbudivé a zamìøili jsme se tímto smìrem.<br>
Druhým problémem bylo, že kamera nesnímá kontrastní obraz. Jak se vypoøádat 
v&nbsp;jednoèipovém poèítaèi s&nbsp;tímto problémem, když jeho výpoèetní výkon staèí sotva 
na naètení øádku a ještì se musí poèítat regulace pro elektronický diferenciál? 
(Pro zvolenou koncepci podvozku je nutné diferencovat otáèky motorù na hnaných 
nápravách.)<br>
<br>
Problém jsme vyøešili nìèím, èemu jsme pracovnì zaèali øíkat „digitální 
komparátor“. Jednoduše jsme pomocí logických hradel provedli OR tøech nejvyšších 
bitù jasového signálu z&nbsp;kamery. Všechno co bylo pod 0x1F bylo tedy èerné a 
všechno nad bylo bílé. Expozici kamery pak bylo nutné nastavit tak, aby 
nejsvìtlejší èerná èára, byla ještì èerná. To se udìlalo snadno osciloskopem, 
ale pro závod bylo nutné vyvinout nìjakou strategii, jak robot provede urèení 
expozice. Øešením byla rutina „Expozimetr“, která postupnì zvyšuje expozièní èas 
a hledá ve snímku (samozøejmì, že v&nbsp;našem pøípadì na jedné øádce) èáru 
definované tloušky. Vychází se z&nbsp;toho, že nejdøíve pøi podexponování je èerný 
celý obrázek, pak se postupnì obrázek vyjasòuje, což je ovšem díky chybì 
apertury objektivu nerovnomìrné. Dalším zvyšováním èasu expozice se nakonec 
objeví èára správné tloušky, ta se pak dále ztenèuje a nakonec je snímek 
pøepálen a èára zmizí. Samozøejmì se pøedpokládalo, že na startu robot èáru vidí 
a ta je pøed ním pøibližnì uprostøed. <br>
<br>
První pokusy vypadaly velmi optimisticky, robot se držel èáry a vyjel jenom 
obèas. Zajímavé bylo, že robot dokázal jezdit jenom po dráze, kde nebyly zatáèky 
doleva! Protože jsme nemìli k&nbsp;dispozici obraz z&nbsp;kamery, aby bylo možné 
zkontrolovat co kamera vidí, bylo nutné tento problém øešit pouhou úvahou. 
Napadlo nás, že mùže docházet k „vytrhávání obrazu“ na krajích snímku. 
Kompenzovalo se to tím, že se zahazovaly okraje øádku a skuteènì to pomohlo, 
robot spolehlivì, i když pomalu, sledoval èáru. To byl velký úspìch, protože 
kdyby nám nìkdo øekl pøed rokem, že to s&nbsp;kamerou a jednoèipovým poèítaèem jde, a 
že je to spolehlivé, asi by jsme mu nevìøili.<br>
<br>
Po prvotních úspìších jsme zkusili zrychlit jenže to nefungovalo, robot vždy 
vypadl z&nbsp;dráhy, když se zatáèecí koleèko otoèilo o velký úhel. Napadlo nás, že 
to mùže být zpùsobeno proudovými špièkami, které zpùsobuje motor serva. Pro 
stabilizaci napájení pro elektroniku byl totiž použit lineární stabilizátor 
s&nbsp;velkým drop-outem. Proto jsme vyvinuli mìniè, který i pøi poklesu napìtí 
baterií o 2V dokázal udržet napìtí pro øídící elektroniku a zejména kameru 
stabilní. Po tomto vylepšení už robot dosahoval pomìrnì slušné rychlosti a 
nejzajímavìjší bylo, že díky „velké“ rozlišovací schopnosti kamery (procesor 
dokázal rozlišit asi 50 bodù) byla jízda v&nbsp;zatáèkách velmi plynulá.<br>
<br>
Problém s&nbsp;tmou v&nbsp;tunelu byl vyøešen jednoduše tak, že si robot celou cestu 
svítil. Na osvìtlení dráhy byly použity èervené LED. Nevíme, jaká barva pro 
osvìtlení dráhy je nejlepší, eventuelnì, jestli je lepší svítit bíle. S&nbsp;tím jsme 
už nestihli pøed soutìží experimentovat.<br>
<br>
Protože použitý procesor PIC16F876A neumí násobit a vùbec jeho výpoèetní výkon 
není omraèující (kdybychom ho ale mìli pøed lety, tak by jsme si urèitì 
nestìžovali), byl celkem problém naprogramovat elektronický diferenciál na 
hnanou nápravu. Nakonec se to vyøešilo procedurou „jakonásobení“, která 
kombinací rotací a podmínìného sèítání provádí rychle potøebný výpoèet 
s&nbsp;uspokojivou pøesností.</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image013.jpg">
<img border="0" src="pic/image013_small.jpg" xthumbnail-orig-image="pic/image013.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 6: 
Mìniè v&nbsp;krabièce od èaje a primitivní osvìtlení dráhy.<br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image015.jpg">
<img border="0" src="pic/image015_small.jpg" xthumbnail-orig-image="pic/image015.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 7: 
Robot, pøítel èlovìka.</font></p>
<p align="left"><font face="Times New Roman">Zaèali jsme tedy testovat pro 
sledování èáry asi nejobtížnìjší vìc, dlouhou rovinku a na konci pravoúhlou 
zatáèku. Pøi dalším zvyšování rychlosti zaèal robot v&nbsp;takové zatáèce vypadávat. 
Ne, že by pøímo vyjel a nevrátil se na dráhu, ale polomìr zatáèení byl menší než 
polomìr zatáèky a hrozilo tedy, že v&nbsp;Bratislavì spadne ze stolu. Udìlali jsme 
pøedpoklad, že je to zpùsobeno pomalým snímkovým kmitoètem kamery, než si robot 
staèil všimnout, že je zatáèka ostrá, zmizela mu èára ze zorného pole.<br>
<br>
Dalším problémem bylo, že pokud bylo nerovnomìrné osvìtlení dráhy, vypadával 
kameøe obraz. Kamera má sice AGC, ale samozøejmì, že je schopna kompenzovat 
rozdíly jasu jenom v&nbsp;urèitých mezích. Kupodivu nebyl problém v&nbsp;tunelu, kde si 
robot svítí, ale velký problém byl s&nbsp;denním svìtlem, pokud pøicházelo pouze 
z&nbsp;jednoho smìru.<br>
<br>
Konstrukèní øešení, které následovalo, bylo doplnìní dvou modrých èidel po 
stranách robota na sledování èáry. Èidla byla umístìna tak, že vidìla èáru, až 
když èára byla mimo zorné pole kamery a uplatòovala se pouze v&nbsp;pøípadì, že 
kamera èáru nevidí. To velmi zvýšilo spolehlivost sledování èáry. Zároveò jsme 
tato èidla použili pro opìtovné vyhledání èáry po objetí cihly, protože jsme se 
báli pro tento úkol použít kameru, protože po dobu objíždìní cihly kamera nevidí 
kontrastní obrázek (nevidí èáru) a díky AGC by mohla zaznamenat stín nebo špínu 
na trati jako èáru. <br>
<br>
Na objíždìní cihly byl robot Camerus vybaven odometrií na pravém kole. Využili 
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 
nebyla velká (4 impulzy na jednu otáèku koleèka (12,6mm)).<br>
&nbsp;</font></p>
<p align="left"><b><font face="Times New Roman" size="4">Jak jsme jeli „ladit“ 
do Vídnì</font></b></p>
<p align="left"><font face="Times New Roman">Vše potøebné bylo naprogramováno, 
robot sledoval èáru. Pøerušení nedìlalo problémy, prostì byl výpadek obrazu a 
robot pokraèoval v&nbsp;pùvodním smìru pøed pøerušením. Cihla byla øešena pomocí 
odometrie. Takto vybaveni jsme odjeli do Vídnì na Robot Challenge 2007. Øekli 
jsme si, že to tam odladíme, protože jsou tam jednodušší podmínky než 
v&nbsp;Bratislavì (alespoò na první pohled, robot mùže být vìtší a tunel je také 
vìtší, takže robot nemusí jet tak pøesnì).<br>
<br>
Rozhodnutí ladit robota na Robot Challenge se ukázalo jako správné. Podmínky 
totiž byly nároèné. Bodové osvìtlení, dráha složená z&nbsp;desek s&nbsp;mezerami, styl 
soutìže play-off.<br>
<br>
Camerus urèitì jezdil nejrychleji, ale nedokázal objet cihlu! Jednou se stalo, 
že uvidìl mezeru mezi deskami, podruhé mu zøejmì proklouzlo koleèko s&nbsp;odometrií, 
prostì katastrofa! Alespoò, že byl tøetí v&nbsp;paralelním slalomu, to jsme mu ale 
zavinili my, protože jsme mu pøi zkoušení objetí cihly stáhli výkon motorù a pak 
jsme na to zapomnìli. Za tøetí místo tedy nemohl robot, ale lidský faktor.<br>
<br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image017.jpg">
<img border="0" src="pic/image017_small.jpg" xthumbnail-orig-image="pic/image017.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 8: 
Robot Challenge 2007, Parallel Slalom. Robot Camerus na dráze èíslo 1. Na dráze 
jsou patrné stíny od bodového osvìtlení.<br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image019.jpg">
<img border="0" src="pic/image019_small.jpg" xthumbnail-orig-image="pic/image019.jpg"></a><span lang="en-us">
</span><a href="pic/P3180028.JPG">
<img border="0" src="pic/P3180028_small.JPG" xthumbnail-orig-image="pic/P3180028.JPG"></a><br>
<br>
Obr<span lang="en-us">.</span> 9: Robot Camerus na Robot Challenge 2007. Robot 
nemá dostatek èidel na bezpeèné objetí pøekážky.<br>
&nbsp;</font></p>
<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 zejména, pokud je odometrie na hnané 
nápravì.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Co s&nbsp;cihlou?</b></font></p>
<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? Mìli jsme špatné zkušenosti s&nbsp;IR 
èidly s&nbsp;3Orbise a roboty s&nbsp;ultrazvukem jsme zase na minulých roènících vidìli, 
že si spletli tunel s&nbsp;cihlou, pøípadnì nevidìli cihlu, pokud se k&nbsp;ní blížili 
zešikma.<br>
<br>
Nevìdìli jsme co s&nbsp;tím a tak jsme zaèali zkoušet. Mìøili jsme, co „vidí“ 
ultrazvuk a co rùzná optická èidla. Pøi mìøení se ukázaly všechny pøedpokládané 
problémy. Ultrazvuk vidí kde co, jenom ne cihlu, když je šikmo. IR snímaè vidí 
cihlu sice spolehlivì, ale stejnì dobøe jako velkou bílou zeï nìkolik metrù 
daleko. Nakonec byla pro cihlu zvolena kombinace sedmi senzorù. Skuteènì ètete 
dobøe, sedmi! Jeden IR senzor vpøedu na detekci pøiblížení se k&nbsp;cihle. Funguje 
na principu triangulace. IR vysílací dioda má úzkou hliníkovou trubièkou zúžen 
paprsek, aby nedocházelo k&nbsp;jeho integraci na velké vzdálené ploše. Další dva 
senzory jsou mikrospínaèe na mechanickém nárazníku, kdyby se stalo, že 
triangulaèní èidlo cihlu pøehlédne. To se mùže stát v&nbsp;prudké zatáèce. Z&nbsp;boku 
jsou pak ultrazvukový senzor a dálkomìr s&nbsp;èervenou LED. Tyto èidla udržují 
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 
cihla detekována a nakonec kompas, který zabraòuje, aby se robot vracel zpìt po 
trati (to se mùže stát, protože mezi pøedním èidlem a boèními èidly je slepý 
úhel).<br>
<br>
Pøidání dalších èidel se neobešlo bez konstrukèních problémù. Boèní LED èidlo se 
ukázalo jako málo citlivé a bylo to zøejmì zpùsobeno tím, že se jedná o 
prùmyslové èidlo, které je normálnì napájeno napìtím 12 až 48V. S&nbsp;naším 
napájecím napìtím 7,2V a to ještì obèas, nebylo moc spokojeno. Byl tady pøidán 
další mìniè nahoru na 12V. Byl použit mìniè ze staré síové karty.</font></p>
<p align="left"><font face="Times New Roman">Samostatným konstrukèním problémem 
bylo umístìní kompasu. Nakonec musel být kompas umístìn nad všechny desky s 
elektronikou a musel být orientován tak, aby èidla byla pod úhlem 45<span lang="en">° 
k </span>ose robota.<span lang="en"> Pokud byla èidla v ose robota, byl kompas 
ovlivòován zbytkovým magnetickým polem v kovových (zejména železných) èástech 
robota.</span><br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Poslední weekend pøed 
soutìží</b></font></p>
<p align="left"><font face="Times New Roman">Pøidání kompasu na I2C sbìrnici si 
vyžádalo pøeadresaci kamery, protože kamera a kompas mìly na I2C sbìrnici 
stejnou adresu a adresa kompasu se nedala zmìnit. To kupodivu byl velký problém, 
který jsme už øešili poslední weekend pøed soutìží a vynutil si tak zásadní 
zásah jako rozebrání objektivu kamery, což znamenalo peèlivé èištìní pouzdra 
èipu kamery, protože pøípadné smítko na pouzdøe èipu by mìlo pøi soutìži fatální 
následky. Èip kamery sice pøeadresaci umí, ale bylo nutné pøipojit vývod MULT 
(47) na <span lang="en-us">log_1 </span>a na to kupodivu na plošném spoji kamery 
nebylo pamatováno, pøesto, že na plošném spoji jsou plošky na odpory, které 
umožòují zmìnu adresy.<br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image021.jpg">
<img border="0" src="pic/image021_small.jpg" xthumbnail-orig-image="pic/image021.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 
10: Propojka na PCB kamery umožòující její pøeadresaci.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman">Poslední weekend pøed soutìží nás 
napadlo ještì jednou projít seznam problémù, které jsme si poznamenali v&nbsp;prùbìhu 
loòské soutìže. Hned na zaèátku tam bylo: „Zkontrolovat, jestli neprokluzují 
koleèka na høídeli.“ Prokluzovaly. Zkusili jsme je pøilepit anaerobním lepidlem. 
Výsledek byl, že se zalepily høídelky do ložisek a koleèka prokluzovala dál. 
Zkusili jsme je pøilepit epoxidem. Naneštìstí nám trochu epoxidu zøejmì nateklo 
do ložisek a koleèka se zase utrhla. Poslední weekend pøed soutìží jsme tedy 
mìli zatuhlé pøevodovky a koleèka prokluzovala. Snažili jsme se do høídelek 
vyvrtat dírky a dát tam kolík, ale vrták vùbec nitridovanou ocel z&nbsp;CD mechanik 
nebral. Nakonec jsme do høídelek pouze vypilovali drážky a opìt jsme je zalili 
epoxidem. Jestli neprokluzují, jsme pro jistotu už nezkoušeli.<br>
<br>
Ještì bylo nutné znovu zabìhnout pøevodovky, to jsme dìlali pøes noc z&nbsp;pondìlí 
na úterý (IstRobot bývá ve støedu a my tam obvykle jedeme v&nbsp;úterý dopoledne). 
Motory se toèily do rána do poslední chvíle pøed naložením robota do auta.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Noc pøed soutìží</b></font></p>
<p align="left"><font face="Times New Roman">„Kdyby nebylo poslední noci, tak 
není žádný projekt dokonèen.“ Odpoledne jsme pøijeli do Bratislavy na ubytovnu, 
rozložili dráhy a zaèali ladit poslední øádky programu. V&nbsp;našem pøípadì to mìlo 
být zpracování logu z&nbsp;jízdy.<br>
<br>
A vùbec to nejezdilo. Robot mìl malý výkon v&nbsp;levotoèivé zatáèce, pøi objíždìní 
cihly se dokonce obèas zastavil. No jasnì, øekli jsme si, jsou stále zatuhlé 
pøevodovky, zmìnili jsme pár konstant v&nbsp;programu a jakš takš to zase jezdilo. 
Situace se ale o pùlnoci zase zhoršila a zaèal smrdìt H-mùstek. Vymìnili jsme 
tedy H-mùstek a nepomohlo to. Vymìnili jsme tedy motor a pomohlo to! Prostì jsme 
neustálým ladìním programu a zkoušením znièili jeden motor! Vrátili jsme tedy do 
robota pùvodní H-mùstek (asi tak v&nbsp;jednu hodinu ráno) a zase to nejelo. Mìøením 
jsme pak zjistili dvì vìci, jednak byly pøes pájecí lak odizolovány zemnící 
šrouby na plošném spoji H-mùstku a tak všechen proud tekl pøes høebínkový 
konektor a pak tam ještì byl zkrat pøes jeden tranzistor H-mùstku, takže jeden 
motor nereverzoval. Pøedstavte si, že tyto závady byly vykompenzovány 
regulátorem v&nbsp;software a že s&nbsp;nimi byl Camerus na Robot Challenge tøetí!<br>
<br>
Pak už jenom staèilo doprogramovat tu logovací proceduru (pøepisovala pamì). A 
kolem páté hodiny ranní byl robot pøipraven na soutìž.<br>
&nbsp;</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>IstRobot 2007</b></font></p>
<p align="left"><font face="Times New Roman">IstRobot 2007 nás skuteènì 
pøekvapil, byla na nìm z&nbsp;našeho pohledu nejsložitìjší dráha, jakou jsme kdy 
vidìli. Extrémnì dlouhé pøerušení, navíc v&nbsp;inflexním bodì (to nás vùbec 
nenapadlo, že je možné), cihla hned za pravoúhlou zatáèkou (sotva robot vyjede 
ze zatáèky, bác, a je tu cihla), viz Obrázek 11. </font></p>
<p align="left">&nbsp;</p>
<p align="center"><font face="Times New Roman"><a href="pic/image023.jpg">
<img border="0" src="pic/image023_small.jpg" xthumbnail-orig-image="pic/image023.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span> 
11: IstRobot 2007 – tvar dráhy.</font></p>
<p align="left"><font face="Times New Roman">Potenciálním problémem byly 
magnetické stojánky na kterých stály èidla èasomíry. Magnetické pole nad dráhou 
bylo díky nim znaènì nehomogenní (stojánek na Obr. 11 vlevo dole a dva stojánky 
na startu). Robot využíval kompas pouze u cihly, a zøejmì byl stojánek 
dostateènì daleko/blízko, že nakonec nevadil. Údaje z kompasu se zpracovávaly 
diferenènì, takže nevadilo, že byla díky stojánkùm odchylka v celkové orientaci 
magnetického pole Zemì, podstatné bylo, aby nedocházelo k velkým zakøivením pole 
v oblasti cihly. K èemuž, jak jsme zmìøili, èásteènì docházelo, ale software se 
s tím vypoøádal, když vážil údaje ze všech èidel pøi objíždìní pøekážky.</font></p>
<p align="left"><font face="Times New Roman">Obtížnost trati se ukázala hned 
v&nbsp;první jízdì, Camerus vypadnul na pøerušení. V&nbsp;druhé jízdì jsme snížili výkon 
motorù, zde ale zase hrozilo, že se robot nerozjede, pokud nìkde (napøíklad pøi 
objíždìní cihly) výraznì zpomalí. Robot jel plynuleji, pøesto vyjel v&nbsp;pøerušení 
(to dá rozum, protože kopíroval tvar dráhy pøed pøerušením), vyhnul se tunelu, 
znovu našel dráhu (to fungovalo dobøe) a na podruhé projel. Byl to úspìch, ale 
velká èasová ztráta a navíc si robot špatnì zapamatoval dráhu pro další jízdu, 
protože bloudil.</font></p>
<p align="left"><font face="Times New Roman">Programovali jsme místo obìda a 
nakonec jsme to pøerušení vyøešili. Prostì jsme zohlednili, že dráha za 
pøerušením mùže pokraèovat i na druhou stranu. Zní to jednoduše, ale úprava 
programu nebyla tak jednoduchá, viz soutìžní verzi 
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/sw/#_Designs_ROBOTS_Camerus_sw_">
firmware</a>.</font></p>
<p align="left"><font face="Times New Roman">Finálová jízda probìhla bez 
problémù, robot sice jel na ménì jak polovinu regulaèního rozsahu a bez našeho 
zásahu by se s&nbsp;dráhou dobøe nevypoøádal, ale jsme rádi, že dojel a nakonec 
stejnì za to nemohl robot, ale my, že jsme mu naprogramovali, že dráha za 
pøerušením nemùže vést na druhou stranu. Nakonec se podaøilo s&nbsp;robotem s&nbsp;èasem 
12,5s udìlat „rekord trati“ <span lang="en-us">;-)</span><br>
&nbsp;</font></p>
<p align="center"><font face="Times New Roman"><a href="pic/image025.jpg">
<img border="0" src="pic/image025_small.jpg" xthumbnail-orig-image="pic/image025.jpg"></a></font></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">.</span>12: 
Robot Camerus - finální verze robota.<br>
<br>
&nbsp;</font></p>
<p align="center"><a href="pic/index.2.gif">
<img border="0" src="pic/index.1.gif" xthumbnail-orig-image="pic/index.2.gif"></a></p>
<p align="center"><font face="Times New Roman">Obr<span lang="en-us">. </span>
13: Blokové schéma propojení modulù robota.<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">Desky plošných spojù a popis jednotlivých 
modulù robota naleznete na 
<a href="http://www.mlab.cz/">http://www.mlab.cz/</a> 
.<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">Deska procesoru<br>
<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>
<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">H-mùstky<br>
<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>
<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">LEDbar<br>
<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>
&nbsp;</font></p>
<p align="left"><font face="Arial">Mìniè<br>
<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>
&nbsp;</font></p>
<p align="left"><font face="Arial">IR modulátor<br>
<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>
&nbsp;</font></p>
<p align="left"><font face="Arial">Osvìtlení dráhy<br>
<a href="http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=/Designs/ROBOTS/Camerus/LEDpanel/#_Designs_ROBOTS_Camerus_LEDpanel_">
http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel_</a></font><br>
&nbsp;</p>
<p align="left"><font face="Arial">Univerzálka pro 7432<br>
<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>
&nbsp;</font></p>
<p align="left"><font face="Arial">Trimry<br>
<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>
&nbsp;</font></p>
<p align="left"><font face="Arial">Dokumentace k&nbsp;použitému kamerovému èipu je na 
<a href="http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF">
http://www.cmucam.org/attachment/wiki/Documentation/OV6620.PDF</a> 
.<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">Dokumentace k&nbsp;US senzoru je na 
<a href="http://www.robot-electronics.co.uk/htm/srf08tech.shtml">
http://www.robot-electronics.co.uk/htm/srf08tech.shtml</a> .<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">Dokumentace ke kompasu je na<span lang="en-us">
</span><a href="http://www.robot-electronics.co.uk/htm/cmps3doc.shtml">
http://www.robot-electronics.co.uk/htm/cmps3doc.shtml</a> .<br>
&nbsp;</font></p>
<p align="left"><font face="Arial">Dokumentace k&nbsp;robotu 3Orbis, ze kterého 
Camerus vyšel, je na<span lang="en-us">
</span>
<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> 
.</font></p>
<p align="left"><font face="Arial"><span lang="en-us">Videoz</span>áznam, jak 
Camerus jezdil pøi soutìži IstRobot 2007:<br>
<a href="video/1.wmv">1. jízda</a>, <a href="video/2.wmv">2. jízda</a>,
<a href="video/3.wmv">3. jízda</a>.</font></p>

</body>

</html>