{"id":408,"date":"2007-07-24T00:00:08","date_gmt":"2007-07-23T22:00:08","guid":{"rendered":"http:\/\/astrozor.cz\/?p=408"},"modified":"2010-05-30T13:39:22","modified_gmt":"2010-05-30T11:39:22","slug":"robot-camerus-aneb-jak-se-dela-robot-na-istrobot","status":"publish","type":"post","link":"https:\/\/www.robozor.cz\/?p=408","title":{"rendered":"Robot Camerus aneb Jak se d\u011bl\u00e1 robot na Istrobot"},"content":{"rendered":"<p>Tato dokumentace popisuje konstrukci robota Camerus, kter\u00fd byl zkonstruov\u00e1n pro sout\u011b\u017e IstRobot pro kategorii Stop\u00e1r (<a href=\"http:\/\/www.robotika.sk\/contest\/\" target=\"_blank\">http:\/\/www.robotika.sk\/contest\/<\/a>).<\/p>\n<p>Sna\u017eili jsme se technickou dokumentaci pojmout pon\u011bkud netradi\u010dn\u011b. Krom\u011b popisu fin\u00e1ln\u00ed verze robota zde naleznete chronologick\u00fd popis jeho v\u00fdvoje a popis v\u0161ech slep\u00fdch uli\u010dek. Douf\u00e1me, \u017ee takov\u00e1to forma dokumentace bude m\u00edt pro na\u0161e n\u00e1sledovn\u00edky v\u011bt\u0161\u00ed hodnotu ne\u017e pouh\u00fd n\u00e1vod na zopakov\u00e1n\u00ed konstrukce.<\/p>\n<p>Auto\u0159i: <a href=\"mailto:kaklik@mlab.cz\" target=\"_blank\">kaklik@mlab.cz<\/a>; <a href=\"mailto:kakl@i.cz\" target=\"_blank\">kakl@i.cz<\/a>; <span style=\"font-size: x-small\">M. Novot<\/span><span style=\"font-size: x-small\">n\u00fd<\/span><\/p>\n<p><span style=\"font-size: medium\"><strong>Robot 3Orbis<\/strong><\/span><\/p>\n<p>V\u00fdvoj robota Camerus za\u010dal p\u0159ed v\u00edce jak dv\u011bma roky v\u00fdvojem robota 3Orbis. Robot 3Orbis m\u011bl m\u00edt novou revolu\u010dn\u00ed koncepci podvozku. Pou\u017eili jsme t\u0159\u00edkol\u00fd podvozek, kter\u00fd m\u011bl dv\u011b hnan\u00e1 kola, ka\u017ed\u00e9 s\u00a0nez\u00e1visl\u00fdm motorem a t\u0159et\u00ed kolo, kter\u00e9 m\u011blo \u0159\u00edzen\u00e9 zat\u00e1\u010den\u00ed. Jednalo se tedy o nonholonomn\u00ed podvozek. Koncepci podvozku jsme nejd\u0159\u00edve ov\u011b\u0159ovali se dv\u011bma senzory na \u010d\u00e1ru, jako to m\u011bly na\u0161i p\u0159edchoz\u00ed holonomn\u00ed roboti. To moc nefungovalo a proto jsme p\u0159idali dal\u0161\u00ed senzory, pomoc\u00ed kter\u00fdch se diskr\u00e9tn\u011b nastavoval \u00fahel zat\u00e1\u010dec\u00edho kole\u010dka.<\/p>\n<div id=\"attachment_410\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus11.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-410\" class=\"size-medium wp-image-410\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus11-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus11-300x225.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus11.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-410\" class=\"wp-caption-text\">Obr.1: Prvn\u00ed pokusy s t\u0159\u00edkol\u00fdm a t\u0159\u00edmotorov\u00fdm robotem<\/p><\/div>\n<div id=\"attachment_411\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus2.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-411\" class=\"size-medium wp-image-411\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus2-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus2-300x225.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus2.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-411\" class=\"wp-caption-text\">Obr. 2: Baterie senzor\u016f na \u010d\u00e1ru<\/p><\/div>\n<p>P\u0159id\u00e1n\u00edm dal\u0161\u00edch senzor\u016f na \u010d\u00e1ru jsme se dostali do probl\u00e9m\u016f s\u00a0po\u010dtem vstup\u016f pou\u017eit\u00e9ho procesoru (PIC16F88). Tento probl\u00e9m jsme vy\u0159e\u0161ili tak, \u017ee jsme na zpracov\u00e1n\u00ed sign\u00e1l\u016f ze senzor\u016f na \u010d\u00e1ru pou\u017eili dal\u0161\u00ed samostatn\u00fd procesor. Toto \u0159e\u0161en\u00ed se v\u0161ak pozd\u011bji neuk\u00e1zalo jako v\u00fdhodn\u00e9, proto\u017ee ladit distribuovan\u00fd k\u00f3d bylo \u0159\u00e1dov\u011b obt\u00ed\u017en\u011bj\u0161\u00ed a nav\u00edc se musela naprogramovat komunikace mezi procesory. \u010casto se n\u00e1m tak\u00e9 st\u00e1valo, \u017ee jsme b\u011bhem v\u00fdvoje do jednoho procesoru nahr\u00e1li k\u00f3d pro druh\u00fd procesor, co\u017e kupodivu v\u017edy trvalo ur\u010ditou dobu, ne\u017e jsme na to p\u0159i\u0161li.<\/p>\n<div id=\"attachment_412\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus3.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-412\" class=\"size-medium wp-image-412\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus3-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus3-300x225.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus3-1024x768.jpg 1024w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus3.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-412\" class=\"wp-caption-text\">Obr. 3: P\u0159edn\u00ed n\u00e1hon; p\u0159id\u00e1no druh\u00e9 patro na elektroniku<\/p><\/div>\n<p>P\u016fvodn\u00ed koncepce p\u0159edpokl\u00e1dala hnan\u00e1 kola vp\u0159edu a zat\u00e1\u010dec\u00ed kolo vzadu. Model\u00e1\u0159sk\u00e9 servo v\u0161ak nedok\u00e1zalo dostate\u010dn\u011b rychle zat\u00e1\u010det, p\u0159esto\u017ee bylo zp\u0159evodov\u00e1no do rychla p\u0159evodem 1:2. Zm\u011bnili jsme proto uspo\u0159\u00e1d\u00e1n\u00ed na hnanou n\u00e1pravu vzadu a zat\u00e1\u010dec\u00ed kole\u010dko vp\u0159edu. To n\u00e1m umo\u017e\u0148ovalo \u201eost\u0159e \u0159ezat zat\u00e1\u010dky\u201c, ale objevily se dal\u0161\u00ed probl\u00e9my. Podvozek se v\u00a0zat\u00e1\u010dk\u00e1ch dost\u00e1val do smyku a proto\u017ee hmotnost \u010didel byla nezanedbateln\u00e1, doch\u00e1zelo i k\u00a0jeho nakl\u00e1p\u011bn\u00ed a n\u00e1sledn\u011b k\u00a0fale\u0161n\u00e9mu sign\u00e1lu z\u00a0\u010didel, proto\u017ee \u010didla nebyla dr\u017eena v\u00a0konstantn\u00ed vzd\u00e1lenosti od povrchu.<\/p>\n<p>Pro 3Orbise byla vysoustru\u017eena duralov\u00e1 kola, pro kter\u00e1 bylo pl\u00e1nov\u00e1no obut\u00ed \u201eO\u201c krou\u017eky. To se pak uk\u00e1zalo jako nepou\u017eiteln\u00e9. \u201eO\u201c krou\u017eky se nedok\u00e1zaly udr\u017eet v\u00a0dr\u00e1\u017ek\u00e1ch na kolech. P\u016fvodn\u00ed kola byla tedy nahrazena plastov\u00fdmi z\u00a0d\u011btsk\u00e9 hra\u010dky. Kola m\u011bla men\u0161\u00ed pr\u016fm\u011br, co\u017e zlep\u0161ilo p\u0159evodov\u00fd pom\u011br, kter\u00fd byl pro vyroben\u00e9 p\u0159evodovky 5:1. Jako obut\u00ed byly pou\u017eity ust\u0159i\u017een\u00e9 prsty z\u00a0latexov\u00fdch rukavic pro dom\u00e1cnost. Jako obut\u00ed zat\u00e1\u010dec\u00edho kole\u010dka bylo pou\u017eito pry\u017eov\u00e9 t\u011bsn\u011bn\u00ed 12x10x2. Na zat\u00e1\u010dec\u00ed kole\u010dko bylo obuto tak, \u017ee se jelo po hran\u011b t\u011bsn\u011bn\u00ed.<\/p>\n<div id=\"attachment_413\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus4.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-413\" class=\"size-medium wp-image-413\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus4-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus4-300x225.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus4-1024x768.jpg 1024w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus4.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-413\" class=\"wp-caption-text\">Obr. 4: Robot 3Orbis. Zadn\u00ed n\u00e1hon a men\u0161\u00ed kole\u010dka z autobusu od syna pana Hronka.<\/p><\/div>\n<p>Pro detekci a obj\u00ed\u017ed\u011bn\u00ed cihly byly na robotovi namontov\u00e1ny IR senzory. Jeden m\u011bl detekovat p\u0159ek\u00e1\u017eku na dr\u00e1ze a zbyl\u00e9 dva m\u011bly slou\u017eit pro jej\u00ed objet\u00ed. Objet\u00ed cihly pomoc\u00ed IR senzor\u016f jsme v\u0161ak nedok\u00e1zali odladit. Obj\u00ed\u017ed\u011bn\u00ed nebylo spolehliv\u00e9 a tak robot nakonec obj\u00ed\u017ed\u011bl cihlu naslepo.<br \/>\nP\u0159i sout\u011b\u017ei se objevil ne\u010dekan\u00fd probl\u00e9m, kv\u016fli kter\u00e9mu robot nakonec nedojel. Sout\u011b\u017en\u00ed dr\u00e1ha je tvo\u0159ena dv\u011bma deskami. Desky nejsou dokonale sl\u00edcov\u00e1ny a tak mezi nimi vznik\u00e1 tmav\u00e1 mezera. Tato mezera byla na sout\u011b\u017en\u00ed dr\u00e1ze p\u0159elepena b\u00edlou lepic\u00ed p\u00e1skou. Bohu\u017eel \u010didla na \u010d\u00e1ru, kter\u00e9 robot pou\u017e\u00edval, vyhodnocovala b\u00edlou lepic\u00ed p\u00e1sku jako \u010dernou (\u010didla pracuj\u00ed bl\u00edzko ultrafialov\u00e9 oblasti). Tento probl\u00e9m by \u0161el kompenzovat programov\u011b, ale na sout\u011b\u017ei se nepoda\u0159ilo program v\u00a0\u010dasov\u00e9 t\u00edsni spr\u00e1vn\u011b upravit. Robot tedy nakonec nedojel.<\/p>\n<p>Odhadovali jsme, \u017ee n\u00e1m chyb\u011bl tak t\u00fdden na odlad\u011bn\u00ed firmware, proto\u017ee v\u00a0roce 2006 u n\u00e1s byla povode\u0148 a ztratili jsme tak nejm\u00e9n\u011b jeden kalend\u00e1\u0159n\u00ed m\u011bs\u00edc ve\u010der\u016f\/weekend\u016f na programov\u00e1n\u00ed. Nyn\u00ed s\u00a0odstupem \u010dasu vid\u00edme, \u017ee co se t\u00fdk\u00e1 objet\u00ed cihly, chyb\u011blo n\u00e1m mnohem v\u00edce.<br \/>\n\u00a0<\/p>\n<p><span style=\"font-size: medium\"><strong>Robot Laserus<\/strong><\/span><\/p>\n<p>Dal\u0161\u00ed verz\u00ed robota se shodn\u00fdm podvozkem byl robot Laserus. Snahou bylo odstranit \u201et\u011b\u017ek\u00e1\u201c \u010didla p\u0159edsunut\u00e1 p\u0159ed robota a tak odstranit p\u0159ekl\u00e1p\u011bn\u00ed v\u00a0ostr\u00fdch zat\u00e1\u010dk\u00e1ch. \u0158e\u0161en\u00edm by bylo zv\u011bt\u0161en\u00ed dosahu \u010didel na \u010d\u00e1ru tak, aby mohla b\u00fdt um\u00edst\u011bna co nejbl\u00ed\u017ee k\u00a0ose ot\u00e1\u010den\u00ed robota. Z\u00e1rove\u0148 by se t\u00edm sn\u00ed\u017eila obvodov\u00e1 setrva\u010dn\u00e1 hmotnost robota. Znovu jsme pou\u017eili t\u0159\u00edkol\u00fd podvozek s\u00a0jedn\u00edm \u0159\u00edzen\u00fdm zat\u00e1\u010dec\u00edm kole\u010dkem, p\u0159esto\u017ee na IstRobotu 2006 byla tato konfigurace diskutov\u00e1na a auto\u0159i druh\u00e9ho robota s\u00a0podobnou koncepc\u00ed se v\u00a0diskusi vyj\u00e1d\u0159ili, \u017ee to nebyl dobr\u00fd n\u00e1pad, \u017ee robot p\u0159i v\u011bt\u0161\u00edch rychlostech m\u00e1 snahu se rozkmit\u00e1vat. \u0158e\u0161en\u00ed tohoto probl\u00e9mu jsme vid\u011bli ve zjemn\u011bn\u00ed sn\u00edm\u00e1n\u00ed \u010d\u00e1ry tak, aby se precizn\u011bji nastavovalo zat\u00e1\u010dec\u00ed kole\u010dko. Napadlo n\u00e1s pou\u017e\u00edt laserovou \u010dte\u010dku \u010d\u00e1rov\u00e9ho k\u00f3du a skute\u010dn\u011b jsme postavili funk\u010dn\u00edho robota (viz Obr\u00e1zek 5), kter\u00fd dok\u00e1zal, ale pomalu, jezdit po \u010d\u00e1\u0159e.<\/p>\n<div id=\"attachment_419\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus51.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-419\" class=\"size-medium wp-image-419\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus51-300x211.jpg\" alt=\"\" width=\"300\" height=\"211\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus51-300x211.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus51.jpg 943w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-419\" class=\"wp-caption-text\">Obr. 5: Robot Laserus. Na obr\u00e1zku je vid\u011bt \u010derven\u00e1 stopa LASERu.<\/p><\/div>\n<p>Probl\u00e9my s\u00a0touto konstrukc\u00ed byly dva. Pokud byl na dr\u00e1ze hrbol, tak se v\u00a0d\u016fsledku vibrac\u00ed zmen\u0161il rozkmit laseru, proto\u017ee laser je ve \u010dtec\u00edm za\u0159\u00edzen\u00ed rozm\u00edt\u00e1v\u00e1n mechanicky zrc\u00e1tkem, kter\u00e9 vibruje a velk\u00e9 stranov\u00e9 zrychlen\u00ed p\u0159i p\u0159ejet\u00ed hrbolu zp\u016fsobovalo, \u017ee elektromagnetick\u00fd mechanismus, kter\u00fd pohybuje zrc\u00e1tkem vypadl z\u00a0rezonance. Tento probl\u00e9m by ov\u0161em z\u0159ejm\u011b \u0161lo kompenzovat softwarem, proto\u017ee se \u010d\u00e1ra \u010detla v\u00a0obou sm\u011brech pohybu zrc\u00e1tka. Jednou jsme tedy dostali polohu \u010d\u00e1ry m\u011b\u0159enou z leva a jednou z prava.<\/p>\n<p>Druh\u00fd probl\u00e9m byl z\u00e1va\u017en\u011bj\u0161\u00ed. Proto\u017ee bylo pou\u017eito za\u0159\u00edzen\u00ed na \u010dten\u00ed \u010d\u00e1rov\u00e9ho k\u00f3du, sn\u00edmali jsme vlastn\u011b polohu jedn\u00e9 \u010d\u00e1ry fiktivn\u00edho \u010d\u00e1rov\u00e9ho k\u00f3du ve scanovan\u00e9m prostoru. V\u00a0prudk\u00e9 zat\u00e1\u010dce v\u0161ak doch\u00e1z\u00ed k\u00a0tomu, \u017ee \u010d\u00e1ru vid\u00ed sn\u00edma\u010d \u0161ikmo a tak se relativn\u011b zv\u011bt\u0161uje jej\u00ed tlou\u0161\u0165ka. Vnit\u0159n\u00ed elektronika sn\u00edma\u010de vyhodnotila tento stav, jako \u017ee se nejedn\u00e1 o \u010d\u00e1rov\u00fd k\u00f3d a \u010d\u00e1ru vyfiltrovala. To samoz\u0159ejm\u011b m\u011blo v\u00a0ostr\u00e9 zat\u00e1\u010dce fat\u00e1ln\u00ed n\u00e1sledky. D\u00e1le jsme touto cestou nepokra\u010dovali, p\u0159esto, \u017ee v\u00edme, \u017ee v\u00a0z\u00e1vod\u011b DARPA se \u010dasto pou\u017e\u00edvaj\u00ed laserov\u00e9 d\u00e1lkom\u011bry. Na sout\u011b\u017en\u00edch vozech je v\u0161ak vid\u011bt, \u017ee konstrukt\u00e9\u0159i tak\u00e9 maj\u00ed probl\u00e9my s\u00a0odtlumen\u00edm vibrac\u00ed.<br \/>\n\u00a0<\/p>\n<p><strong>Robot Camerus<\/strong><\/p>\n<p>Znovu se vyno\u0159il n\u00e1pad, pou\u017e\u00edt pro sn\u00edm\u00e1n\u00ed \u010d\u00e1ry kameru. To u\u017e n\u00e1s napadlo n\u011bkolikr\u00e1t, ale kdy\u017e jsme n\u00e1pad analyzovali, v\u017edy se uk\u00e1zalo, \u017ee jednoduch\u00fdm jedno\u010dipov\u00fdm mikropo\u010d\u00edta\u010dem nelze zpracov\u00e1vat obraz kamery. Druh\u00fdm probl\u00e9mem je, \u017ee b\u011b\u017en\u011b dostupn\u00e9 kamery maj\u00ed sn\u00edmkov\u00fd kmito\u010det 50Hz, co\u017e se n\u00e1m zd\u00e1lo na sn\u00edm\u00e1n\u00ed \u010d\u00e1ry pomal\u00e9. P\u0159esto jsme zakoupili jednu kameru a za\u010dali jsme osciloskopem testovat, co tak kamera vid\u00ed a jak by se to dalo zpracovat. Kupodivu jsme zjistili, \u017ee s\u00a0procesorem na 20MHz st\u00edh\u00e1me na\u010d\u00edst jeden obrazov\u00fd \u0159\u00e1dek asi s\u00a0polovi\u010dn\u00edm rozli\u0161en\u00edm. To bylo povzbudiv\u00e9 a zam\u011b\u0159ili jsme se t\u00edmto sm\u011brem.<br \/>\nDruh\u00fdm probl\u00e9mem bylo, \u017ee kamera nesn\u00edm\u00e1 kontrastn\u00ed obraz. Jak se vypo\u0159\u00e1dat v\u00a0jedno\u010dipov\u00e9m po\u010d\u00edta\u010di s\u00a0t\u00edmto probl\u00e9mem, kdy\u017e jeho v\u00fdpo\u010detn\u00ed v\u00fdkon sta\u010d\u00ed sotva na na\u010dten\u00ed \u0159\u00e1dku a je\u0161t\u011b se mus\u00ed po\u010d\u00edtat regulace pro elektronick\u00fd diferenci\u00e1l? (Pro zvolenou koncepci podvozku je nutn\u00e9 diferencovat ot\u00e1\u010dky motor\u016f na hnan\u00fdch n\u00e1prav\u00e1ch.)<\/p>\n<p>Probl\u00e9m jsme vy\u0159e\u0161ili n\u011b\u010d\u00edm, \u010demu jsme pracovn\u011b za\u010dali \u0159\u00edkat \u201edigit\u00e1ln\u00ed kompar\u00e1tor\u201c. Jednodu\u0161e jsme pomoc\u00ed logick\u00fdch hradel provedli OR t\u0159ech nejvy\u0161\u0161\u00edch bit\u016f jasov\u00e9ho sign\u00e1lu z\u00a0kamery. V\u0161echno co bylo pod 0x1F bylo tedy \u010dern\u00e9 a v\u0161echno nad bylo b\u00edl\u00e9. Expozici kamery pak bylo nutn\u00e9 nastavit tak, aby nejsv\u011btlej\u0161\u00ed \u010dern\u00e1 \u010d\u00e1ra, byla je\u0161t\u011b \u010dern\u00e1. To se ud\u011blalo snadno osciloskopem, ale pro z\u00e1vod bylo nutn\u00e9 vyvinout n\u011bjakou strategii, jak robot provede ur\u010den\u00ed expozice. \u0158e\u0161en\u00edm byla rutina \u201eExpozimetr\u201c, kter\u00e1 postupn\u011b zvy\u0161uje expozi\u010dn\u00ed \u010das a hled\u00e1 ve sn\u00edmku (samoz\u0159ejm\u011b, \u017ee v\u00a0na\u0161em p\u0159\u00edpad\u011b na jedn\u00e9 \u0159\u00e1dce) \u010d\u00e1ru definovan\u00e9 tlou\u0161\u0165ky. Vych\u00e1z\u00ed se z\u00a0toho, \u017ee nejd\u0159\u00edve p\u0159i podexponov\u00e1n\u00ed je \u010dern\u00fd cel\u00fd obr\u00e1zek, pak se postupn\u011b obr\u00e1zek vyjas\u0148uje, co\u017e je ov\u0161em d\u00edky chyb\u011b apertury objektivu nerovnom\u011brn\u00e9. Dal\u0161\u00edm zvy\u0161ov\u00e1n\u00edm \u010dasu expozice se nakonec objev\u00ed \u010d\u00e1ra spr\u00e1vn\u00e9 tlou\u0161\u0165ky, ta se pak d\u00e1le zten\u010duje a nakonec je sn\u00edmek p\u0159ep\u00e1len a \u010d\u00e1ra zmiz\u00ed. Samoz\u0159ejm\u011b se p\u0159edpokl\u00e1dalo, \u017ee na startu robot \u010d\u00e1ru vid\u00ed a ta je p\u0159ed n\u00edm p\u0159ibli\u017en\u011b uprost\u0159ed.<\/p>\n<p>Prvn\u00ed pokusy vypadaly velmi optimisticky, robot se dr\u017eel \u010d\u00e1ry a vyjel jenom ob\u010das. Zaj\u00edmav\u00e9 bylo, \u017ee robot dok\u00e1zal jezdit jenom po dr\u00e1ze, kde nebyly zat\u00e1\u010dky doleva! Proto\u017ee jsme nem\u011bli k\u00a0dispozici obraz z\u00a0kamery, aby bylo mo\u017en\u00e9 zkontrolovat co kamera vid\u00ed, bylo nutn\u00e9 tento probl\u00e9m \u0159e\u0161it pouhou \u00favahou. Napadlo n\u00e1s, \u017ee m\u016f\u017ee doch\u00e1zet k \u201evytrh\u00e1v\u00e1n\u00ed obrazu\u201c na kraj\u00edch sn\u00edmku. Kompenzovalo se to t\u00edm, \u017ee se zahazovaly okraje \u0159\u00e1dku a skute\u010dn\u011b to pomohlo, robot spolehliv\u011b, i kdy\u017e pomalu, sledoval \u010d\u00e1ru. To byl velk\u00fd \u00fasp\u011bch, proto\u017ee kdyby n\u00e1m n\u011bkdo \u0159ekl p\u0159ed rokem, \u017ee to s\u00a0kamerou a jedno\u010dipov\u00fdm po\u010d\u00edta\u010dem jde, a \u017ee je to spolehliv\u00e9, asi by jsme mu nev\u011b\u0159ili.<\/p>\n<p>Po prvotn\u00edch \u00fasp\u011b\u0161\u00edch jsme zkusili zrychlit jen\u017ee to nefungovalo, robot v\u017edy vypadl z\u00a0dr\u00e1hy, kdy\u017e se zat\u00e1\u010dec\u00ed kole\u010dko oto\u010dilo o velk\u00fd \u00fahel. Napadlo n\u00e1s, \u017ee to m\u016f\u017ee b\u00fdt zp\u016fsobeno proudov\u00fdmi \u0161pi\u010dkami, kter\u00e9 zp\u016fsobuje motor serva. Pro stabilizaci nap\u00e1jen\u00ed pro elektroniku byl toti\u017e pou\u017eit line\u00e1rn\u00ed stabiliz\u00e1tor s\u00a0velk\u00fdm drop-outem. Proto jsme vyvinuli m\u011bni\u010d, kter\u00fd i p\u0159i poklesu nap\u011bt\u00ed bateri\u00ed o 2V dok\u00e1zal udr\u017eet nap\u011bt\u00ed pro \u0159\u00edd\u00edc\u00ed elektroniku a zejm\u00e9na kameru stabiln\u00ed. Po tomto vylep\u0161en\u00ed u\u017e robot dosahoval pom\u011brn\u011b slu\u0161n\u00e9 rychlosti a nejzaj\u00edmav\u011bj\u0161\u00ed bylo, \u017ee d\u00edky \u201evelk\u00e9\u201c rozli\u0161ovac\u00ed schopnosti kamery (procesor dok\u00e1zal rozli\u0161it asi 50 bod\u016f) byla j\u00edzda v\u00a0zat\u00e1\u010dk\u00e1ch velmi plynul\u00e1.<\/p>\n<p>Probl\u00e9m s\u00a0tmou v\u00a0tunelu byl vy\u0159e\u0161en jednodu\u0161e tak, \u017ee si robot celou cestu sv\u00edtil. Na osv\u011btlen\u00ed dr\u00e1hy byly pou\u017eity \u010derven\u00e9 LED. Nev\u00edme, jak\u00e1 barva pro osv\u011btlen\u00ed dr\u00e1hy je nejlep\u0161\u00ed, eventueln\u011b, jestli je lep\u0161\u00ed sv\u00edtit b\u00edle. S\u00a0t\u00edm jsme u\u017e nestihli p\u0159ed sout\u011b\u017e\u00ed experimentovat.<\/p>\n<p>Proto\u017ee pou\u017eit\u00fd procesor PIC16F876A neum\u00ed n\u00e1sobit a v\u016fbec jeho v\u00fdpo\u010detn\u00ed v\u00fdkon nen\u00ed omra\u010duj\u00edc\u00ed (kdybychom ho ale m\u011bli p\u0159ed lety, tak by jsme si ur\u010dit\u011b nest\u011b\u017eovali), byl celkem probl\u00e9m naprogramovat elektronick\u00fd diferenci\u00e1l na hnanou n\u00e1pravu. Nakonec se to vy\u0159e\u0161ilo procedurou \u201ejakon\u00e1soben\u00ed\u201c, kter\u00e1 kombinac\u00ed rotac\u00ed a podm\u00edn\u011bn\u00e9ho s\u010d\u00edt\u00e1n\u00ed prov\u00e1d\u00ed rychle pot\u0159ebn\u00fd v\u00fdpo\u010det s\u00a0uspokojivou p\u0159esnost\u00ed<\/p>\n<div id=\"attachment_420\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus6.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-420\" class=\"size-full wp-image-420\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus6.jpg\" alt=\"\" width=\"300\" height=\"225\" \/><\/a><p id=\"caption-attachment-420\" class=\"wp-caption-text\">Obr. 6: M\u011bni\u010d v krabi\u010dce od \u010daje a primitivn\u00ed osv\u011btlen\u00ed dr\u00e1hy.<\/p><\/div>\n<div id=\"attachment_421\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus7.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-421\" class=\"size-full wp-image-421\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus7.jpg\" alt=\"\" width=\"300\" height=\"225\" \/><\/a><p id=\"caption-attachment-421\" class=\"wp-caption-text\">Obr. 7: Robot, p\u0159\u00edtel \u010dlov\u011bka.<\/p><\/div>\n<p>Za\u010dali jsme tedy testovat pro sledov\u00e1n\u00ed \u010d\u00e1ry asi nejobt\u00ed\u017en\u011bj\u0161\u00ed v\u011bc, dlouhou rovinku a na konci pravo\u00fahlou zat\u00e1\u010dku. P\u0159i dal\u0161\u00edm zvy\u0161ov\u00e1n\u00ed rychlosti za\u010dal robot v\u00a0takov\u00e9 zat\u00e1\u010dce vypad\u00e1vat. Ne, \u017ee by p\u0159\u00edmo vyjel a nevr\u00e1til se na dr\u00e1hu, ale polom\u011br zat\u00e1\u010den\u00ed byl men\u0161\u00ed ne\u017e polom\u011br zat\u00e1\u010dky a hrozilo tedy, \u017ee v\u00a0Bratislav\u011b spadne ze stolu. Ud\u011blali jsme p\u0159edpoklad, \u017ee je to zp\u016fsobeno pomal\u00fdm sn\u00edmkov\u00fdm kmito\u010dtem kamery, ne\u017e si robot sta\u010dil v\u0161imnout, \u017ee je zat\u00e1\u010dka ostr\u00e1, zmizela mu \u010d\u00e1ra ze zorn\u00e9ho pole.<\/p>\n<p>Dal\u0161\u00edm probl\u00e9mem bylo, \u017ee pokud bylo nerovnom\u011brn\u00e9 osv\u011btlen\u00ed dr\u00e1hy, vypad\u00e1val kame\u0159e obraz. Kamera m\u00e1 sice AGC, ale samoz\u0159ejm\u011b, \u017ee je schopna kompenzovat rozd\u00edly jasu jenom v\u00a0ur\u010dit\u00fdch mez\u00edch. Kupodivu nebyl probl\u00e9m v\u00a0tunelu, kde si robot sv\u00edt\u00ed, ale velk\u00fd probl\u00e9m byl s\u00a0denn\u00edm sv\u011btlem, pokud p\u0159ich\u00e1zelo pouze z\u00a0jednoho sm\u011bru.<\/p>\n<p>Konstruk\u010dn\u00ed \u0159e\u0161en\u00ed, kter\u00e9 n\u00e1sledovalo, bylo dopln\u011bn\u00ed dvou p\u016fvodn\u00edch modr\u00fdch \u010didel po stran\u00e1ch robota na sledov\u00e1n\u00ed \u010d\u00e1ry. \u010cidla byla um\u00edst\u011bna tak, \u017ee vid\u011bla \u010d\u00e1ru, a\u017e kdy\u017e \u010d\u00e1ra byla mimo zorn\u00e9 pole kamery a uplat\u0148ovala se pouze v\u00a0p\u0159\u00edpad\u011b, \u017ee kamera \u010d\u00e1ru nevid\u00ed. To velmi zv\u00fd\u0161ilo spolehlivost sledov\u00e1n\u00ed \u010d\u00e1ry. Z\u00e1rove\u0148 jsme tato \u010didla pou\u017eili pro op\u011btovn\u00e9 vyhled\u00e1n\u00ed \u010d\u00e1ry po objet\u00ed cihly, proto\u017ee jsme se b\u00e1li pro tento \u00fakol pou\u017e\u00edt kameru, proto\u017ee po dobu obj\u00ed\u017ed\u011bn\u00ed cihly kamera nevid\u00ed kontrastn\u00ed obr\u00e1zek (nevid\u00ed \u010d\u00e1ru) a d\u00edky AGC by mohla zaznamenat st\u00edn nebo \u0161p\u00ednu na trati jako \u010d\u00e1ru.<\/p>\n<p>Na obj\u00ed\u017ed\u011bn\u00ed cihly byl robot Camerus vybaven odometri\u00ed na prav\u00e9m kole. Vyu\u017eili jsme otvor\u016f ve v\u011bt\u0161\u00edm kole p\u0159evodovky a IR z\u00e1vory z\u00a0tisk\u00e1rny. Citlivost odometrie nebyla velk\u00e1 (4 impulzy na jednu ot\u00e1\u010dku kole\u010dka (12,6mm)).<br \/>\n\u00a0<\/p>\n<p><strong>Jak jsme jeli \u201eladit\u201c do V\u00eddn\u011b<\/strong><\/p>\n<p>V\u0161e pot\u0159ebn\u00e9 bylo naprogramov\u00e1no, robot sledoval \u010d\u00e1ru. P\u0159eru\u0161en\u00ed ned\u011blalo probl\u00e9my, prost\u011b byl v\u00fdpadek obrazu a robot pokra\u010doval v\u00a0p\u016fvodn\u00edm sm\u011bru p\u0159ed p\u0159eru\u0161en\u00edm. Cihla byla \u0159e\u0161ena pomoc\u00ed odometrie. Takto vybaveni jsme odjeli do V\u00eddn\u011b na Robot Challenge 2007. \u0158ekli jsme si, \u017ee to tam odlad\u00edme, proto\u017ee jsou tam jednodu\u0161\u0161\u00ed podm\u00ednky ne\u017e v\u00a0Bratislav\u011b (alespo\u0148 na prvn\u00ed pohled, robot m\u016f\u017ee b\u00fdt v\u011bt\u0161\u00ed a tunel je tak\u00e9 v\u011bt\u0161\u00ed, tak\u017ee men\u0161\u00ed robot nemus\u00ed jet tak p\u0159esn\u011b).<\/p>\n<p>Rozhodnut\u00ed ladit robota na Robot Challenge se uk\u00e1zalo jako spr\u00e1vn\u00e9. Podm\u00ednky toti\u017e byly n\u00e1ro\u010dn\u00e9. Bodov\u00e9 osv\u011btlen\u00ed, dr\u00e1ha slo\u017een\u00e1 z\u00a0desek s\u00a0mezerami, styl sout\u011b\u017ee play-off.<\/p>\n<p>Camerus ur\u010dit\u011b jezdil nejrychleji, ale nedok\u00e1zal objet cihlu! Jednou se stalo, \u017ee uvid\u011bl mezeru mezi deskami, podruh\u00e9 mu z\u0159ejm\u011b proklouzlo kole\u010dko s\u00a0odometri\u00ed, prost\u011b katastrofa! Alespo\u0148, \u017ee byl t\u0159et\u00ed v\u00a0paraleln\u00edm slalomu, to jsme mu ale zavinili my, proto\u017ee jsme mu p\u0159i zkou\u0161en\u00ed objet\u00ed cihly st\u00e1hli v\u00fdkon motor\u016f a pak jsme na to zapomn\u011bli. Za t\u0159et\u00ed m\u00edsto tedy nemohl robot, ale lidsk\u00fd faktor.<\/p>\n<div id=\"attachment_422\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus8.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-422\" class=\"size-full wp-image-422\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus8.jpg\" alt=\"\" width=\"300\" height=\"199\" \/><\/a><p id=\"caption-attachment-422\" class=\"wp-caption-text\">Obr. 8: Robot Challenge 2007, Parallel Slalom. Robot Camerus na dr\u00e1ze \u010d\u00edslo 1. Na dr\u00e1ze jsou patrn\u00e9 st\u00edny od bodov\u00e9ho osv\u011btlen\u00ed.<\/p><\/div>\n<p style=\"text-align: center\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus91.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-424 aligncenter\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus91-200x300.jpg\" alt=\"\" width=\"200\" height=\"300\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus91-200x300.jpg 200w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus91.jpg 400w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<div id=\"attachment_425\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus10.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-425\" class=\"size-full wp-image-425\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus10.jpg\" alt=\"\" width=\"300\" height=\"225\" \/><\/a><p id=\"caption-attachment-425\" class=\"wp-caption-text\">Obr. 9: Robot Camerus na Robot Challenge 2007. Robot nem\u00e1 dostatek \u010didel na bezpe\u010dn\u00e9 objet\u00ed p\u0159ek\u00e1\u017eky<\/p><\/div>\n<p>Jednozna\u010dn\u011b se uk\u00e1zalo, \u017ee obj\u00ed\u017ed\u011bt p\u0159ek\u00e1\u017eku \u201enap\u016fl naslepo\u201c nen\u00ed dobr\u00e1 strategie a zejm\u00e9na, pokud je odometrie na hnan\u00e9 n\u00e1prav\u011b.<br \/>\n\u00a0<\/p>\n<p><strong>Co s\u00a0cihlou?<\/strong><\/p>\n<p>Dal\u0161\u00ed v\u00fdvoj jsme v\u011bnovali obj\u00ed\u017ed\u011bn\u00ed cihly za pomoci \u010didel. Jak\u00e1 \u010didla ale pou\u017e\u00edt? M\u011bli jsme \u0161patn\u00e9 zku\u0161enosti s\u00a0IR \u010didly z\u00a03Orbise a roboty s\u00a0ultrazvukem jsme zase na minul\u00fdch ro\u010dn\u00edc\u00edch vid\u011bli, \u017ee si spletli tunel s\u00a0cihlou, p\u0159\u00edpadn\u011b nevid\u011bli cihlu, pokud se k\u00a0n\u00ed bl\u00ed\u017eili ze\u0161ikma.<\/p>\n<p>Nev\u011bd\u011bli jsme co s\u00a0t\u00edm a tak jsme za\u010dali zkou\u0161et. M\u011b\u0159ili jsme, co \u201evid\u00ed\u201c ultrazvuk a co r\u016fzn\u00e1 optick\u00e1 \u010didla. P\u0159i m\u011b\u0159en\u00ed se uk\u00e1zaly v\u0161echny p\u0159edpokl\u00e1dan\u00e9 probl\u00e9my. Ultrazvuk vid\u00ed kde co, jenom ne cihlu, kdy\u017e je \u0161ikmo. IR sn\u00edma\u010d vid\u00ed cihlu sice spolehliv\u011b, ale stejn\u011b dob\u0159e jako velkou b\u00edlou ze\u010f n\u011bkolik metr\u016f daleko. Nakonec byla pro cihlu zvolena kombinace sedmi senzor\u016f. Skute\u010dn\u011b \u010dtete dob\u0159e, sedmi! Jeden IR senzor vp\u0159edu na detekci p\u0159ibl\u00ed\u017een\u00ed se k\u00a0cihle. Funguje na principu triangulace. IR vys\u00edlac\u00ed dioda m\u00e1 \u00fazkou hlin\u00edkovou trubi\u010dkou z\u00fa\u017een paprsek, aby nedoch\u00e1zelo k\u00a0jeho integraci na velk\u00e9 vzd\u00e1len\u00e9 plo\u0161e. Dal\u0161\u00ed dva senzory jsou mikrosp\u00edna\u010de na mechanick\u00e9m n\u00e1razn\u00edku, kdyby se stalo, \u017ee triangula\u010dn\u00ed \u010didlo cihlu p\u0159ehl\u00e9dne. To se m\u016f\u017ee st\u00e1t v\u00a0prudk\u00e9 zat\u00e1\u010dce. Z\u00a0boku jsou pak ultrazvukov\u00fd senzor a on\/off d\u00e1lkom\u011br s\u00a0\u010dervenou LED. Tyto \u010didla udr\u017euj\u00ed konstantn\u00ed vzd\u00e1lenost od cihly p\u0159i jej\u00edm obj\u00ed\u017ed\u011bn\u00ed. K\u00a0tomu je\u0161t\u011b ji\u017e zm\u00edn\u011bn\u00e1 odometrie na prav\u00e9m kole\u010dku, kter\u00e1 zaji\u0161\u0165uje prudkou zat\u00e1\u010dku doleva jakmile je cihla detekov\u00e1na a nakonec kompas, kter\u00fd zabra\u0148uje, aby se robot vracel zp\u011bt po trati (to se m\u016f\u017ee st\u00e1t, proto\u017ee mezi p\u0159edn\u00edm \u010didlem a bo\u010dn\u00edmi \u010didly je slep\u00fd \u00fahel).<\/p>\n<p>P\u0159id\u00e1n\u00ed dal\u0161\u00edch \u010didel se neobe\u0161lo bez konstruk\u010dn\u00edch probl\u00e9m\u016f. Bo\u010dn\u00ed LED \u010didlo se uk\u00e1zalo jako m\u00e1lo citliv\u00e9 a bylo to z\u0159ejm\u011b zp\u016fsobeno t\u00edm, \u017ee se jedn\u00e1 o pr\u016fmyslov\u00e9 \u010didlo, kter\u00e9 je norm\u00e1ln\u011b nap\u00e1jeno nap\u011bt\u00edm 12 a\u017e 48V. S\u00a0na\u0161\u00edm nap\u00e1jec\u00edm nap\u011bt\u00edm 7,2V a to je\u0161t\u011b ob\u010das, nebylo moc spokojeno. Byl tady p\u0159id\u00e1n dal\u0161\u00ed m\u011bni\u010d nahoru na 12V. Byl pou\u017eit m\u011bni\u010d ze star\u00e9 s\u00ed\u0165ov\u00e9 karty.<\/p>\n<p>Samostatn\u00fdm konstruk\u010dn\u00edm probl\u00e9mem bylo um\u00edst\u011bn\u00ed kompasu. Nakonec musel b\u00fdt kompas um\u00edst\u011bn nad v\u0161echny desky s elektronikou a musel b\u00fdt orientov\u00e1n tak, aby \u010didla kompasu byla pod \u00fahlem 45\u00b0 k ose robota. Pokud byla \u010didla v ose robota, byl kompas ovliv\u0148ov\u00e1n zbytkov\u00fdm magnetick\u00fdm polem v kovov\u00fdch (zejm\u00e9na \u017eelezn\u00fdch) \u010d\u00e1stech robota.<br \/>\n\u00a0<\/p>\n<p><strong>Posledn\u00ed weekend p\u0159ed sout\u011b\u017e\u00ed<\/strong><\/p>\n<p>P\u0159id\u00e1n\u00ed kompasu na I2C sb\u011brnici si vy\u017e\u00e1dalo p\u0159eadresaci kamery, proto\u017ee kamera a kompas m\u011bly na I2C sb\u011brnici stejnou adresu a adresa kompasu se nedala zm\u011bnit. To kupodivu byl velk\u00fd probl\u00e9m, kter\u00fd jsme \u0159e\u0161ili a\u017e posledn\u00ed weekend p\u0159ed sout\u011b\u017e\u00ed a p\u0159itom vy\u017eadoval tak z\u00e1sadn\u00ed z\u00e1sah jako rozebr\u00e1n\u00ed objektivu kamery, co\u017e znamenalo pe\u010dliv\u00e9 \u010di\u0161t\u011bn\u00ed pouzdra a \u010dipu kamery, proto\u017ee p\u0159\u00edpadn\u00e9 sm\u00edtko na pouzd\u0159e \u010dipu by m\u011blo p\u0159i sout\u011b\u017ei fat\u00e1ln\u00ed n\u00e1sledky. \u010cip kamery sice p\u0159eadresaci um\u00ed, ale bylo nutn\u00e9 p\u0159ipojit v\u00fdvod MULT (47) na log_1 a na to kupodivu na plo\u0161n\u00e9m spoji kamery nebylo pamatov\u00e1no, p\u0159esto, \u017ee na plo\u0161n\u00e9m spoji jsou plo\u0161ky na odpory, kter\u00e9 umo\u017e\u0148uj\u00ed zm\u011bnu adresy.<\/p>\n<div id=\"attachment_426\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus111.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-426\" class=\"size-full wp-image-426\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus111.jpg\" alt=\"\" width=\"300\" height=\"172\" \/><\/a><p id=\"caption-attachment-426\" class=\"wp-caption-text\">Obr. 10: Propojka na PCB kamery umo\u017e\u0148uj\u00edc\u00ed jej\u00ed p\u0159eadresaci.<\/p><\/div>\n<p>Posledn\u00ed weekend p\u0159ed sout\u011b\u017e\u00ed n\u00e1s napadlo je\u0161t\u011b jednou proj\u00edt seznam probl\u00e9m\u016f, kter\u00e9 jsme si poznamenali v\u00a0pr\u016fb\u011bhu lo\u0148sk\u00e9 sout\u011b\u017ee. Hned na za\u010d\u00e1tku tam bylo: \u201eZkontrolovat, jestli neprokluzuj\u00ed kole\u010dka na h\u0159\u00eddeli.\u201c Prokluzovala&#8230; Zkusili jsme je p\u0159ilepit anaerobn\u00edm lepidlem. V\u00fdsledek byl, \u017ee se zalepily h\u0159\u00eddelky do lo\u017eisek a kole\u010dka prokluzovala d\u00e1l. Zkusili jsme je p\u0159ilepit epoxidem. Nane\u0161t\u011bst\u00ed n\u00e1m trochu epoxidu z\u0159ejm\u011b nateklo do lo\u017eisek a kole\u010dka se zase utrhla. Posledn\u00ed ned\u011bli p\u0159ed sout\u011b\u017e\u00ed jsme tedy m\u011bli zatuhl\u00e9 p\u0159evodovky a kole\u010dka prokluzovala. Sna\u017eili jsme se do h\u0159\u00eddelek vyvrtat d\u00edrky a d\u00e1t tam kol\u00edk, ale vrt\u00e1k v\u016fbec nitridovanou ocel z\u00a0CD mechanik nebral. Nakonec jsme do h\u0159\u00eddelek pouze vypilovali dr\u00e1\u017eky a op\u011bt jsme je zalili epoxidem. Jestli neprokluzuj\u00ed, jsme pro jistotu u\u017e nezkou\u0161eli.<\/p>\n<p>P\u0159i manipulaci s pravou p\u0159evodovkou se poda\u0159ilo ulomit v\u00fdvod od IR z\u00e1vory na odometrii. Proto\u017ee ne\u0161la vym\u011bnit (je zalepen\u00e1 v p\u0155evodovce)a necht\u011bli jsme m\u011bnit celou p\u0159evodovku, natavili jsme jej\u00ed pouzdro p\u00e1jkou a dr\u00e1tek p\u0159iletovali na pah\u00fdl v\u00fdvodu.<\/p>\n<p>Po rozebr\u00e1n\u00ed bylo nutn\u00e9 p\u0159evodovky nechat znovu zab\u011bhnout, to jsme d\u011blali p\u0159es noc z\u00a0pond\u011bl\u00ed na \u00fater\u00fd (IstRobot b\u00fdv\u00e1 ve st\u0159edu a my tam obvykle jedeme v\u00a0\u00fater\u00fd dopoledne). Motory se to\u010dily do r\u00e1na do posledn\u00ed chv\u00edle p\u0159ed nalo\u017een\u00edm robota do auta.<br \/>\n\u00a0<\/p>\n<p><strong>Noc p\u0159ed sout\u011b\u017e\u00ed<\/strong><\/p>\n<p>\u201eKdyby nebylo posledn\u00ed noci, tak nen\u00ed \u017e\u00e1dn\u00fd projekt dokon\u010den.\u201c Odpoledne jsme p\u0159ijeli do Bratislavy na ubytovnu, rozlo\u017eili dr\u00e1hy a za\u010dali ladit posledn\u00ed \u0159\u00e1dky programu. V\u00a0na\u0161em p\u0159\u00edpad\u011b to m\u011blo b\u00fdt zpracov\u00e1n\u00ed logu z\u00a0j\u00edzdy.<\/p>\n<p>A v\u016fbec to nejezdilo. Robot m\u011bl mal\u00fd v\u00fdkon v\u00a0levoto\u010div\u00e9 zat\u00e1\u010dce, p\u0159i obj\u00ed\u017ed\u011bn\u00ed cihly se dokonce ob\u010das zastavil. No jasn\u011b, \u0159ekli jsme si, jsou st\u00e1le zatuhl\u00e9 p\u0159evodovky, zm\u011bnili jsme p\u00e1r konstant v\u00a0programu a jak\u0161 tak\u0161 to zase jezdilo. Situace se ale o p\u016flnoci zase zhor\u0161ila a za\u010dal smrd\u011bt H-m\u016fstek. Vym\u011bnili jsme tedy H-m\u016fstek a nepomohlo to. Vym\u011bnili jsme tedy motor a pomohlo to! (Pozd\u011bj\u0161\u00ed anal\u00fdzou z\u00e1znamu pou\u017eit\u00e9ho d\u00edlu bylo zji\u0161t\u011bno, \u017ee motor \u010d.2 byl pou\u017eit spolu s p\u016fvodn\u00edm podvozkem na v\u00fdstav\u011b Vzd\u011bl\u00e1n\u00ed a \u0158emeslo v \u010cesk\u00fdch Bud\u011bjovic\u00edch, kde byla levoto\u010div\u00e1 tra\u0165 a jeho provozn\u00ed doba tak vzrostla o des\u00edtky hodin proti motoru \u010d.1\u00a0.) Po v\u00fdm\u011bn\u011b motoru jsme vr\u00e1tili do robota p\u016fvodn\u00ed H-m\u016fstek (asi tak v\u00a0jednu hodinu r\u00e1no) a zase to nejelo. M\u011b\u0159en\u00edm jsme pak zjistili dv\u011b v\u011bci, jednak byly p\u0159es p\u00e1jec\u00ed lak odizolov\u00e1ny zemn\u00edc\u00ed \u0161rouby na plo\u0161n\u00e9m spoji H-m\u016fstku a tak v\u0161echen proud tekl p\u0159es h\u0159eb\u00ednkov\u00fd konektor a pak tam je\u0161t\u011b byl zkrat p\u0159es jeden tranzistor H-m\u016fstku, tak\u017ee jeden motor nereverzoval. P\u0159edstavte si, \u017ee tyto z\u00e1vady byly vykompenzov\u00e1ny jednak regul\u00e1torem v\u00a0software a tak\u00e9 koncepc\u00ed podvozku, a \u017ee s\u00a0nimi byl Camerus na Robot Challenge t\u0159et\u00ed!<\/p>\n<p>Pak u\u017e jenom sta\u010dilo doprogramovat tu logovac\u00ed proceduru (p\u0159episovala pam\u011b\u0165). A kolem p\u00e1t\u00e9 hodiny rann\u00ed byl robot p\u0159ipraven na sout\u011b\u017e.<br \/>\n\u00a0<\/p>\n<p><strong>IstRobot 2007<\/strong><\/p>\n<p>IstRobot 2007 n\u00e1s skute\u010dn\u011b p\u0159ekvapil, byla na n\u011bm z\u00a0na\u0161eho pohledu nejslo\u017eit\u011bj\u0161\u00ed dr\u00e1ha, jakou jsme kdy vid\u011bli. Extr\u00e9mn\u011b dlouh\u00e9 p\u0159eru\u0161en\u00ed, nav\u00edc v\u00a0inflexn\u00edm bod\u011b (to n\u00e1s v\u016fbec nenapadlo, \u017ee je mo\u017en\u00e9), cihla hned za pravo\u00fahlou zat\u00e1\u010dkou (sotva robot vyjede ze zat\u00e1\u010dky, b\u00e1c, a je tu cihla), viz Obr\u00e1zek 11.<\/p>\n<div id=\"attachment_427\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus12.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-427\" class=\"size-full wp-image-427\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus12.jpg\" alt=\"\" width=\"300\" height=\"201\" \/><\/a><p id=\"caption-attachment-427\" class=\"wp-caption-text\">Obr. 11: IstRobot 2007 \u2013 tvar dr\u00e1hy.<\/p><\/div>\n<p>Potenci\u00e1ln\u00edm probl\u00e9mem byly magnetick\u00e9 stoj\u00e1nky na kter\u00fdch st\u00e1la \u010didla \u010dasom\u00edry. Magnetick\u00e9 pole nad dr\u00e1hou bylo d\u00edky nim zna\u010dn\u011b nehomogenn\u00ed (stoj\u00e1nek na Obr. 11 vlevo dole a dva stoj\u00e1nky na startu). Robot vyu\u017e\u00edval kompas pouze u cihly, a z\u0159ejm\u011b byl stoj\u00e1nek dostate\u010dn\u011b daleko\/bl\u00edzko, \u017ee nakonec nevadil. \u00dadaje z kompasu se zpracov\u00e1valy diferen\u010dn\u011b, tak\u017ee nevadilo, \u017ee byla d\u00edky stoj\u00e1nk\u016fm odchylka v celkov\u00e9 orientaci magnetick\u00e9ho pole Zem\u011b, podstatn\u00e9 bylo, aby nedoch\u00e1zelo k velk\u00fdm zak\u0159iven\u00edm pole v oblasti cihly. K \u010demu\u017e, jak jsme zm\u011b\u0159ili, \u010d\u00e1ste\u010dn\u011b doch\u00e1zelo, ale software se s t\u00edm vypo\u0159\u00e1dal, kdy\u017e v\u00e1\u017eil \u00fadaje ze v\u0161ech \u010didel p\u0159i obj\u00ed\u017ed\u011bn\u00ed p\u0159ek\u00e1\u017eky.<\/p>\n<p>Obt\u00ed\u017enost trati se uk\u00e1zala hned v\u00a0prvn\u00ed j\u00edzd\u011b, Camerus vypadnul na p\u0159eru\u0161en\u00ed. V\u00a0druh\u00e9 j\u00edzd\u011b jsme sn\u00ed\u017eili v\u00fdkon motor\u016f, zde ale zase hrozilo, \u017ee se robot nerozjede, pokud n\u011bkde (nap\u0159\u00edklad p\u0159i obj\u00ed\u017ed\u011bn\u00ed cihly) v\u00fdrazn\u011b zpomal\u00ed. Robot jel plynuleji, p\u0159esto vyjel v\u00a0p\u0159eru\u0161en\u00ed (to d\u00e1 rozum, proto\u017ee kop\u00edroval tvar dr\u00e1hy p\u0159ed p\u0159eru\u0161en\u00edm), vyhnul se tunelu, znovu na\u0161el dr\u00e1hu (to fungovalo dob\u0159e) a na podruh\u00e9 projel. Byl to \u00fasp\u011bch, ale velk\u00e1 \u010dasov\u00e1 ztr\u00e1ta a nav\u00edc si robot \u0161patn\u011b zapamatoval dr\u00e1hu pro dal\u0161\u00ed j\u00edzdu, proto\u017ee bloudil.<\/p>\n<p>Programovali jsme m\u00edsto ob\u011bda a nakonec jsme to p\u0159eru\u0161en\u00ed vy\u0159e\u0161ili. Prost\u011b jsme zohlednili, \u017ee dr\u00e1ha za p\u0159eru\u0161en\u00edm m\u016f\u017ee pokra\u010dovat i na druhou stranu. Zn\u00ed to jednodu\u0161e, ale \u00faprava programu nebyla tak jednoduch\u00e1, viz sout\u011b\u017en\u00ed verzi <a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Designs\/ROBOTS\/Camerus\/sw\/#_Designs_ROBOTS_Camerus_sw_\">firmware<\/a>.<\/p>\n<p>Fin\u00e1lov\u00e1 j\u00edzda prob\u011bhla bez probl\u00e9m\u016f, robot sice jel na m\u00e9n\u011b jak polovinu regula\u010dn\u00edho rozsahu a bez na\u0161eho z\u00e1sahu by se s\u00a0dr\u00e1hou dob\u0159e nevypo\u0159\u00e1dal, ale jsme r\u00e1di, \u017ee dojel a nakonec stejn\u011b za to nemohl robot, ale my, \u017ee jsme mu naprogramovali, \u017ee dr\u00e1ha za p\u0159eru\u0161en\u00edm nem\u016f\u017ee v\u00e9st na druhou stranu. Nakonec se poda\u0159ilo s\u00a0robotem s\u00a0\u010dasem 12,5s ud\u011blat \u201erekord trati\u201c \ud83d\ude09<\/p>\n<div id=\"attachment_428\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus13.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-428\" class=\"size-medium wp-image-428\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus13-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus13-300x225.jpg 300w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus13-1024x768.jpg 1024w, https:\/\/www.robozor.cz\/wp-content\/uploads\/2010\/05\/camerus13.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-428\" class=\"wp-caption-text\">Obr.12: Robot Camerus - fin\u00e1ln\u00ed verze robota.<\/p><\/div>\n<div id=\"attachment_429\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus14.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-429\" class=\"size-full wp-image-429\" src=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/camerus14.gif\" alt=\"\" width=\"300\" height=\"207\" \/><\/a><p id=\"caption-attachment-429\" class=\"wp-caption-text\">Obr. 13: Blokov\u00e9 sch\u00e9ma propojen\u00ed modul\u016f robota.<\/p><\/div>\n<p>Desky plo\u0161n\u00fdch spoj\u016f a popis jednotliv\u00fdch modul\u016f robota naleznete na <a href=\"http:\/\/www.mlab.cz\/\" target=\"_blank\">http:\/\/www.mlab.cz\/<\/a> .<\/p>\n<p>Deska procesoru<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC16F87x%2F#_Modules_PIC16F87x\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FPIC16F87x%2F#_Modules_PIC16F87x<\/a>\u00a0\u00a0<\/p>\n<p>H-m\u016fstky<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/HBRIDGE\/#_Modules_HBRIDGE_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/HBRIDGE\/#_Modules_HBRIDGE_<\/a><\/p>\n<p>LEDbar<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FLEDbar%2F#_Modules_LEDbar_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FLEDbar%2F#_Modules_LEDbar_<\/a>\u00a0<\/p>\n<p>M\u011bni\u010d<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/PowerSupply\/BATPOWER02A\/#_Modules_PowerSupply_BATPOWER02A_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/PowerSupply\/BATPOWER02A\/#_Modules_PowerSupply_BATPOWER02A_<\/a><\/p>\n<p>IR modul\u00e1tor<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FTXIR%2F#_Modules_TXIR_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FTXIR%2F#_Modules_TXIR_<\/a>\u00a0<\/p>\n<p>Osv\u011btlen\u00ed dr\u00e1hy<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FDesigns%2FROBOTS%2FCamerus%2FLEDpanel%2F#_Designs_ROBOTS_Camerus_LEDpanel<\/a><\/p>\n<p>Univerz\u00e1lka pro 7432<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/UNI\/UNIDIL1601A\/#_Modules_UNI_UNIDIL1601A_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Modules\/UNI\/UNIDIL1601A\/#_Modules_UNI_UNIDIL1601A_<\/a><\/p>\n<p>Trimry<br \/>\n<a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=%2FModules%2FTRIMQUAD01A%2F#_Modules_TRIMQUAD01A_<\/a>\u00a0<\/p>\n<p>Dokumentace k\u00a0pou\u017eit\u00e9mu kamerov\u00e9mu \u010dipu je na <a href=\"http:\/\/www.cmucam.org\/attachment\/wiki\/Documentation\/OV6620.PDF\" target=\"_blank\">http:\/\/www.cmucam.org\/attachment\/wiki\/Documentation\/OV6620.PDF<\/a> .<\/p>\n<p>Dokumentace k\u00a0US senzoru je na <a href=\"http:\/\/www.robot-electronics.co.uk\/htm\/srf08tech.shtml\" target=\"_blank\">http:\/\/www.robot-electronics.co.uk\/htm\/srf08tech.shtml<\/a> .\u00a0<\/p>\n<p>Dokumentace ke kompasu je na <a href=\"http:\/\/www.robot-electronics.co.uk\/htm\/cmps3doc.shtml\" target=\"_blank\">http:\/\/www.robot-electronics.co.uk\/htm\/cmps3doc.shtml<\/a> .<\/p>\n<p>Dokumentace k\u00a0robotu 3Orbis, ze kter\u00e9ho Camerus vy\u0161el, je na <a href=\"http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Designs\/ROBOTS\/3Orbis\/#_Designs_ROBOTS_3Orbis_\" target=\"_blank\">http:\/\/www.mlab.cz\/WebSVN\/listing.php?repname=MLAB&amp;path=\/Designs\/ROBOTS\/3Orbis\/#_Designs_ROBOTS_3Orbis_<\/a> .<\/p>\n<p>Videoz\u00e1znam, jak Camerus jezdil p\u0159i sout\u011b\u017ei IstRobot 2007:<br \/>\n<a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/1.j\u00edzda.wmv\">1.j\u00edzda<\/a>\u00a0, <a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/2.j\u00edzda.wmv\">2.j\u00edzda<\/a>\u00a0, <a href=\"http:\/\/robozor.cz\/wp-content\/uploads\/2010\/05\/3.j\u00edzda.wmv\">3.j\u00edzda<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tato dokumentace popisuje konstrukci robota Camerus, kter\u00fd byl zkonstruov\u00e1n pro sout\u011b\u017e IstRobot pro kategorii Stop\u00e1r (http:\/\/www.robotika.sk\/contest\/). Sna\u017eili jsme se technickou dokumentaci pojmout pon\u011bkud netradi\u010dn\u011b. Krom\u011b popisu fin\u00e1ln\u00ed verze robota zde naleznete chronologick\u00fd popis jeho v\u00fdvoje a popis v\u0161ech slep\u00fdch uli\u010dek. Douf\u00e1me, \u017ee takov\u00e1to forma dokumentace bude m\u00edt pro na\u0161e n\u00e1sledovn\u00edky v\u011bt\u0161\u00ed hodnotu ne\u017e pouh\u00fd n\u00e1vod &#8230;<\/p>\n<p><a href=\"https:\/\/www.robozor.cz\/?p=408\" class=\"more-link\">Continue reading &lsquo;Robot Camerus aneb Jak se d\u011bl\u00e1 robot na Istrobot&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-408","post","type-post","status-publish","format-standard","hentry","category-nezarazene"],"_links":{"self":[{"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/posts\/408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=408"}],"version-history":[{"count":2,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions"}],"predecessor-version":[{"id":433,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions\/433"}],"wp:attachment":[{"href":"https:\/\/www.robozor.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robozor.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}