Robot Irena
Nicnedělání mi nedalo a rozhodl jsem se pro rok 2010 zase začít stavět robota. Cílem je RoboOrienteering v Rychnově a když se hodně zadaří (zadařilo se, Irena získala v prvním ročníku této soutěže první místo), tak i Robotour v Bratislavě. Ale to je ještě hudba vzdálené budoucnosti.
Mechanika
Přiznávám se, silně jsem se inspiroval menším robotem týmu RoboAuto. Základem je podvozek modelářské buginy pro spalovák v měřítku 1:5 s náhonem na všechna 4 kola. Podvozek typu monster truck by byl lepší (má větší kola a stejné pérování vpředu i vzadu), bohužel už nebyl k sehnání. I tohle byl poslední kus z výprodeje. Délka je 70cm, šířka 45cm (pro představu, hrana dlaždice na fotce je 25cm) a poloměr zatáčení cca 130cm (na otočení do protisměru bez manévrování je třeba šířka cesty asi 2.6m).
Z podvozku byly odstraněny všechny nepotřebné díly - karosérie, nárazníky, křídlo, ochranný rám, palivová nádrž, držáky na motor a RC soupravu...
"Aplikační nástavba" je postavena z drážkovaných hliníkových profilů 20x20. Její součástí jsou dvě sklopné "věže" - přední pro kamery a zadní pro kompas/GPS.
Pohon
Opět modelářské komponenit a inspirace od RoboAuto. Jestě jednou díky za tip na skvělý eshop http://www.hobbycity.com/
- Motor
- Regulátor
- Servo řízení
- Akumulátor
Převod z motoru na podvozek je řešen ozubeným řemenem systému HTD s roztečí 3mm a šířkou 9mm. Konkrétně je použit řemen HTD-03M-300-09 (délka 300mm) a řemenice 36-3M-09-1F (36 zubů) na motoru a 72-3M-09 (72 zubů) na těle původní odstředivé spojky. Velká řemenice nemá bočnice, ale nezdá se, že by to vadilo, řemen nemá snahu spadnout. Převodový poměr 1:2 byl určen podle údajů výrobce motoru, ty se ale ukázaly nepříliš spolehlivé, takže maximální rychlost překračuje očekávaných 1.8m/s.
V řemenici pro motor byl pouze (na soustruhu) vyvrtán otvor 8mm pro hřídel motoru, vnitřek řemenice pro podvozek byl odsoustružen na otvor cca 60mm pro nasazení a nalepení na buben, v němž původně měla zabírat odstředivá spojka (viz obrázek). Motor byl přišroubován a přilepen na kovový úhelník (profil z OBI na spojování trámů) a na jeho hřídel byla nalepena řemenice a profil byl přišroubován přes gumové podložky k podvozku. Pro přilepení obou řemenic bylo použito zelené lepidlo pro silně namáhané spoje (lze ho uvolnit zahřátím na 100 stupňů).
Rozvody pohonu k přední a zadní nápravě jsem zakrytoval, aby v nich nedošlo k rozžvýkání nějakého kabelu.
Odběr motoru se při běžné jízdě pohybuje kolem 3A, při zablokování vyskočí na 20A (což by odpovídalo cca 250W výkonu).
I když má servo řízení deklarovaný odběr 900mA za běhu a 2.5A při zaseknutí, vypíná mi při rozběhu na laboratorním zdroji proudovou pojistku nastavenou na 4.5A. Proto je zatím napájeno z vlastního akumulátoru (4xAA).
Elektronika
Původní plán s deskou FriendlyARM jakožto masterem sběrnice Robbus jsem kvůli časovým důvodům odpískal. Rozhraní na řídící počítač (netbook s Atomem) tak tvoří převodník USB/serial (FT232) s pohlcováním echa ze sběrnice (autor Béďa Himmel, díky).
Na sběrnici jsou zatím připojeny tři uzly: přední (head), zadní (tractor) a na věži (compass). Head obsluhuje servo řízení, sonary, měří napětí servo baterie a výhledově zde bude připojen nárazník. Tractor, jak už název napovídá, má na starosti pohon - signál pro regulátor, měření napětí a proudu, měření ujeté vzdálenosti, odpojování pohonu, snímání stavu Stop tlačítka a výhledově sem přibude Start tlačítko. No a Compass překvapivě čte data z kompasu a GPS.
Senzory
Základem navigačního systému je GPS a kompas (CMPS03) v zadní věžičce. Pomocí magnetického enkodéru se měří ujetá vzdálenost, ta se zatím nepoužívá pro navigaci, ale jen při vyhýbání. Dva sonary (SRF02) v přední části robota tvoří virtuální nárazník a rovněž pomáhají při vyhýbání se překážce. Z nenavigačních údajů se ještě měří napětí všech tří palubních akumulátorů a proud do motoru.
Pro soutěž Robotour plánuji k řídícímu počítači připojit dvě webkamery (ve viditelném a IR spektru) pro detekci cesty. Kamery by se hodily i pro RoboOrienteering (detekce oranžového kužele), ale opět z časových důvodů byly vynechány.
Řízení
Řídící algoritmus byl pro RoboOrienteering zcela triviální. Z GPS se vzala pozice, z té se spočetl azimut k cílovému bodu. Z kompasu se vzal skutečný azimut a řízení se nastavilo podle rozdílu. Pokud některý ze sonarů viděl překážku, zahnulo se na stranu, kde byla překážka dál. Když překážka zmizela ze sonaru, pokračovalo se ještě metr a pak se robot vrátil na cestu k cílovému bodu.
Harmonogram
Optimistický plán vývoje (ale naděje umírá poslední
):
Termín |
Popis |
Poznámka |
listopad 09 |
montáž BLDC motoru a serva, RC řízení |
splněno, viz video |
prosinec 09 |
řízení motoru a serva po RobBus |
|
leden 10 |
silová část, nouzové vypnutí, monitorování aku, jízda rovně |
|
únor 10 |
senzorová síť, master sběrnice |
master vynechán |
březen 10 |
základní řídící sw, vyhnutí se překážce |
|
duben 10 |
jízda na GPS souřadnice |
|
květen 10 |
funkční sw pro RoboOrienteering |
|
červen 10 |
RoboMagellan 2010 |
|
červenec 10 |
integrace kamer |
|
srpen 10 |
jízda po cestě na základě dat z kamery |
|
září 10 |
Robotour 2010 |
|
Poučení
Sice je to naprosto zjevné, ale nejpodstatnější bod byl, že outdoor soutěž si žádá outdoor podvozek. Na kopeček ve druhém kole se totiž ze sedmi zúčastněných robotů vyškrábali pouze dva (třetí by to asi také dal, ale zabloudil). No a samozřejmě, jednoduché řešení má větší šanci fungovat....
Plány na Robotour
Pokusy ukazují, že v infraspektru jsou cesty poměrně dobře rozlišitelné, moje pokuse se tedy budou ubírat tímto směrem. Zbytek systému zůstane zachován (zjištění polohy, vyhnutí se překážce...). Zda budu řešit křižovatky, uvidím podle času.
Média
Zdrojove kody
irena_src_avr.zip - zdrojové kódy pro jednočipy (ATMega8, 16MHz)
irena_src_main.zip - řídící program (Python, verze pro SICK Robot Day, as-is)
