<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<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>
</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>
Snaili jsme se technickou dokumentaci pojmout poněkud netradičně. Kromě
popisu finální verze robota zde naleznete chronologický popis jeho vývoje a
popis vech slepých uliček. Doufáme, e takováto forma dokumentace bude mít pro
nae následovníky větí hodnotu ne pouhý návod na zopakování konstrukce.<br>
</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. Pouili
jsme tříkolý podvozek, který měl dvě hnaná kola, kadé s 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
nai 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 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 počtem vstupů
pouitého procesoru (PIC16F88). Tento problém jsme vyřeili tak, e jsme na
zpracování signálů ze senzorů na čáru pouili dalí samostatný procesor. Toto
řeení se vak později neukázalo jako výhodné, protoe 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řili.<br>
</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>
</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 vak nedokázalo dostatečně rychle zatáčet, přestoe 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 zatáčkách dostával do smyku a
protoe hmotnost čidel byla nezanedbatelná, docházelo i k jeho naklápění a
následně k falenému signálu z čidel, protoe čidla nebyla drena v konstantní
vzdálenosti od povrchu.<br>
<br>
Pro 3Orbise byla vysoustruena duralová kola, pro která bylo plánováno obutí O
krouky. To se pak ukázalo jako nepouitelné. O krouky se nedokázaly udret
v drákách na kolech. Původní kola byla tedy nahrazena plastovými z dětské
hračky. Kola měla mení průměr, co zlepilo převodový poměr, který byl pro
vyrobené převodovky 5:1. Jako obutí byly pouity ustřiené prsty z latexových
rukavic pro domácnost. Jako obutí zatáčecího kolečka bylo pouito pryové
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 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 slouit pro její objetí. Objetí
cihly pomocí IR senzorů jsme vak 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. Bohuel č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 č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, protoe v roce
2006 u nás byla povodeň a ztratili jsme tak nejméně jeden měsíc večerů na
programování. Nyní s odstupem času vidíme, e co se týká objetí cihly, chybělo
mnohem více.<br>
</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 ostrých
zatáčkách. Řeením by bylo zvětení dosahu čidel na čáru tak, aby mohla být
umístěna co nejblíe k ose otáčení robota. Zároveň by se tím sníila obvodová
setrvačná hmotnost robota. Znovu jsme pouili tříkolý podvozek s jedním řízeným
zatáčecím kolečkem, přestoe na IstRobotu 2006 byla tato konfigurace diskutována
a autoři druhého robota s podobnou koncepcí se v diskusi vyjádřili, e to nebyl
dobrý nápad, e robot při větích rychlostech má snahu se rozkmitávat. Řeení
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 touto konstrukcí byly dva. Pokud byl na dráze hrbol, tak se v důsledku
vibrací zmenil rozkmit laseru, protoe 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 rezonance.
Tento problém by ovem zřejmě lo kompenzovat softwarem, protoe se čára četla
v 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ávanějí. Protoe bylo pouito zařízení na čtení čárového
kódu, snímali jsme vlastně polohu jedné čáry ve scanovaném prostoru. V prudké
zatáčce vak dochází k tomu, e čáru vidí snímač ikmo a tak se relativně
zvětuje 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 ostré
zatáčce fatální následky. Dále jsme touto cestou nepokračovali, přesto, e víme,
e v závodě DARPA se často pouívají laserové dálkoměry. Na soutěních vozech je
vak vidět, e konstruktéři také mají problémy s odtlumením vibrací.<br>
</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, vdy 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 procesorem
na 20MHz stíháme načíst jeden obrazový řádek asi s polovičním rozliení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 jednočipovém
počítači s tímto problémem, kdy jeho výpočetní výkon stačí sotva na načtení
řádku a jetě 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řeili něčím, čemu jsme pracovně začali říkat digitální
komparátor. Jednodue jsme pomocí logických hradel provedli OR třech nejvyích
bitů jasového signálu z kamery. Vechno co bylo pod 0x1F bylo tedy černé a
vechno nad bylo bílé. Expozici kamery pak bylo nutné nastavit tak, aby
nejsvětlejí černá čára, byla jetě černá. To se udělalo snadno osciloskopem,
ale pro závod bylo nutné vyvinout nějakou strategii, jak robot provede určení
expozice. Řeením byla rutina Expozimetr, která postupně zvyuje expoziční čas
a hledá ve snímku (samozřejmě, e v naem případě na jedné řádce) čáru
definované tlouťky. Vychází se z toho, e nejdříve při podexponování je černý
celý obrázek, pak se postupně obrázek vyjasňuje, co je ovem díky chybě
apertury objektivu nerovnoměrné. Dalím zvyová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řiblině uprostřed. <br>
<br>
První pokusy vypadaly velmi optimisticky, robot se drel čáry a vyjel jenom
občas. Zajímavé bylo, e robot dokázal jezdit jenom po dráze, kde nebyly zatáčky
doleva! Protoe jsme neměli k dispozici obraz z kamery, aby bylo moné
zkontrolovat co kamera vidí, bylo nutné tento problém řeit 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, protoe
kdyby nám někdo řekl před rokem, e to s 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 jene to nefungovalo, robot vdy
vypadl z 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 pouit lineární stabilizátor s velkým
drop-outem. Proto jsme vyvinuli měnič, který i při poklesu napětí baterií o 2V
dokázal udret napětí pro řídící elektroniku a zejména kameru stabilní. Po tomto
vylepení u robot dosahoval poměrně sluné rychlosti a nejzajímavějí bylo, e
díky velké rozliovací schopnosti kamery (procesor dokázal rozliit asi 50
bodů) byla jízda v zatáčkách velmi plynulá.<br>
<br>
Problém s tmou v tunelu byl vyřeen jednodue tak, e si robot celou cestu
svítil. Na osvětlení dráhy byly pouity červené LED. Nevíme, jaká barva pro
osvětlení dráhy je nejlepí, eventuelně, jestli je lepí svítit bíle. S tím jsme
u nestihli před soutěí experimentovat.<br>
<br>
Protoe pouitý 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řeilo procedurou jakonásobení, která
kombinací rotací a podmíněného sčítání provádí rychle potřebný výpočet s 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 krabičce od čaje a primitivní
osvětlení dráhy.<br>
</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 zvyování rychlosti začal
robot v 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 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 vimnout, 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 určitých mezích. Kupodivu nebyl problém v tunelu, kde si
robot svítí, ale velký problém byl s denním světlem, pokud přicházelo pouze z jednoho
směru.<br>
<br>
Konstrukční řeení, 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 případě, e
kamera čáru nevidí. To velmi zvýilo spolehlivost sledování čáry. Zároveň jsme
tato čidla pouili pro opětovné vyhledání čáry po objetí cihly, protoe jsme se
báli pro tento úkol pouít kameru, protoe 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. Vyuili
jsme otvorů ve větím kole převodovky a IR závory z tiskárny. Citlivost
o<span lang="en-us">d</span>ometrie nebyla velká (4 impulzy na jednu otáčku kolečka (12,6mm)).<br>
</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">Ve potřebné bylo naprogramováno, robot sledoval čáru. Přeruení nedělalo
problémy, prostě byl výpadek obrazu a robot pokračoval v původním směru před
přeruením. Cihla byla řeena pomocí odometrie. Takto vybaveni jsme odjeli do
Vídně na Robot Challenge 2007. Řekli jsme si, e to tam odladíme, protoe jsou
tam jednoduí podmínky ne v Bratislavě (alespoň na první pohled, robot můe
být větí a tunel je také větí, take 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 sloená z desek s 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 odometrií,
prostě katastrofa! Alespoň, e byl třetí v paralelním slalomu, to jsme mu ale
zavinili my, protoe jsme mu při zkouení 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>
</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>
</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>
</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>
</font></p>
<p align="left"><font face="Times New Roman" size="4"><b>Co s 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é zkuenosti s IR čidly s 3Orbise a roboty s ultrazvukem jsme
zase na minulých ročnících viděli, e si spletli tunel s cihlou, případně
neviděli cihlu, pokud se k ní blíili zeikma.<br>
<br>
Nevěděli jsme co s tím a tak jsme začali zkouet. Měřili jsme, co vidí
ultrazvuk a co různá optická čidla. Při měření se ukázaly vechny 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 cihle. Funguje
na principu triangulace. IR vysílací dioda má úzkou hliníkovou trubičkou zúen
paprsek, aby nedocházelo k jeho integraci na velké vzdálené ploe. 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 prudké zatáčce. Z boku
jsou pak ultrazvukový senzor a dálkoměr s červenou LED. Tyto čidla udrují
konstantní vzdálenost od cihly při jejím objídění. K tomu jetě 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, protoe mezi předním čidlem a bočními čidly je slepý
úhel).<br>
<br>
Přidání dalích čidel se neobelo 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 naím
napájecím napětím 7,2V a to jetě občas, nebylo moc spokojeno. Byl tady přidán
dalí měnič nahoru na 12V. Byl pouit 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 vechny 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>
</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, protoe 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 řeili poslední weekend před soutěí a
vynutil si tak zásadní zásah jako rozebrání objektivu kamery, co znamenalo
pečlivé čitění pouzdra čipu kamery, protoe 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 ploném spoji kamery
nebylo pamatováno, přesto, e na ploném spoji jsou ploky na odpory, které
umoňují změnu adresy.<br>
</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>
</font></p>
<p align="left"><font face="Times New Roman">Poslední weekend před soutěí nás napadlo jetě jednou projít seznam problémů,
které jsme si poznamenali v 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 loisek a kolečka
prokluzovala dál. Zkusili jsme je přilepit epoxidem. Nanetěstí nám trochu
epoxidu zřejmě nateklo do loisek a kolečka se zase utrhla. Poslední weekend
před soutěí jsme tedy měli zatuhlé převodovky a kolečka prokluzovala. Snaili
jsme se do hřídelek vyvrtat dírky a dát tam kolík, ale vrták vůbec nitridovanou
ocel z 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
nezkoueli.<br>
<br>
Jetě bylo nutné znovu zaběhnout převodovky, to jsme dělali přes noc z pondělí
na úterý (IstRobot bývá ve středu a my tam obvykle jedeme v úterý dopoledne).
Motory se točily do rána do poslední chvíle před naloením robota do auta.<br>
</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, rozloili dráhy a začali ladit poslední řádky
programu. V naem případě to mělo být zpracování logu z jízdy.<br>
<br>
A vůbec to nejezdilo. Robot měl malý výkon v 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 programu a jak tak to zase jezdilo.
Situace se ale o půlnoci zase zhorila 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 zkouením zničili jeden motor! Vrátili jsme tedy do
robota původní H-můstek (asi tak v 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 ploném spoji H-můstku a tak vechen proud tekl přes hřebínkový
konektor a pak tam jetě byl zkrat přes jeden tranzistor H-můstku, take jeden
motor nereverzoval. Představte si, e tyto závady byly vykompenzovány
regulátorem v software a e s 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>
</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 naeho pohledu nejsloitějí
dráha, jakou jsme kdy viděli. Extrémně dlouhé přeruení, navíc v inflexním bodě
(to nás vůbec nenapadlo, e je moné), 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"> </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ě, take 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 vech č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 první jízdě, Camerus vypadnul na přeruení. V 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 přeruení
(to dá rozum, protoe kopíroval tvar dráhy před přeruením), vyhnul se tunelu,
znovu nael 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,
protoe bloudil.</font></p>
<p align="left"><font face="Times New Roman">Programovali jsme místo oběda a nakonec jsme to přeruení vyřeili. Prostě jsme
zohlednili, e dráha za přeruením můe pokračovat i na druhou stranu. Zní to
jednodue, 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 naeho
zásahu by se s 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řeruením nemůe vést na druhou stranu. Nakonec se podařilo s robotem s časem
12,5s udělat rekord trati <span lang="en-us">;-)</span><br>
</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>
</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>
</font></p>
<p align="left"><font face="Arial">Desky ploných spojů a popis jednotlivých modulů robota naleznete na
<a href="http://www.mlab.cz/">http://www.mlab.cz/</a>
.<br>
</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&path=%2FModules%2FPIC16F87x%2F#_Modules_PIC16F87x_</a>
<br>
</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&path=%2FModules%2FHBRIDGE%2F#_Modules_HBRIDGE_</a>
<br>
</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&path=%2FModules%2FLEDbar%2F#_Modules_LEDbar_</a><br>
</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&path=%2FModules%2FPowerSupply%2FBATPOWER02A%2F#_Modules_PowerSupply_BATPOWER02A_</a><br>
</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&path=%2FModules%2FTXIR%2F#_Modules_TXIR_</a><br>
</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&path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel_</a></font><br>
</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&path=%2FModules%2FUNI%2FUNIDIL1601A%2F#_Modules_UNI_UNIDIL1601A_</a><br>
</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&path=%2FModules%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_</a><br>
</font></p>
<p align="left"><font face="Arial">Dokumentace k pouité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>
</font></p>
<p align="left"><font face="Arial">Dokumentace k 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>
</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>
</font></p>
<p align="left"><font face="Arial">Dokumentace k robotu 3Orbis, ze kterého Camerus vyel, 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&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>