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...

irena_podvozek.jpg

"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.

irena_full.jpg

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

TURNIGY 50-65D 270kv Outrunner

Regulátor

Turnigy Brushless ESC 60A w/ Reverse programm

Servo řízení

BMS-L530DMG+HS 1/5 Scale Digital Servo (MG) 19.8kg

Akumulátor

Turnigy 5000mAh 3S 20C Lipo Pack

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).

irena_pohon1.jpg

irena_pohon2.jpg

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.

Úpravy 2012

Sonarová rampa

Provizorní řešení z elektroinstalačních krabiček jsem nahradil polohovatelnou (výška, náklon, úhel bočních sonarů) rampou. Zároveň přibyl středový sonar pro lepší pokrytí prostoru před robotem. Všechny sonary pálí prakticky naráz, takže riziko příjmu falešného odrazu by mělo být poměrně malé. Plánované rozšíření je použít rampu zároveň jako mechanický nárazník (poslední "obranná linie"). Sonary lze jednotlivě zapínat a vypínat.

irena_sonars.jpg

Zadní sonar

Pro případnou podporu couvání jsem přidal i zadní sonar. Lze ho softwarově zapínat a vypínat.

Vectornav IMU

Sadu senzorů jsem doplnil o 9DOF IMU od firmy Vectornav. Provizorně je připojeno přes převodník USB-Serial a v první fázi bude sloužit jako zdroj kompasových dat více odolných k náklonu. Jednotka po instalaci vyžaduje kalibraci (kvůli železu a magnetickým materiálům v okolí, bez kalibrace ukazovala po namontování cca o 80stupňů mimo). Kalibrační program vyžaduje "natočení produktu do všech orientací", docela slušný akrobaticko-posilovnový kousek ;-)

irena_imu.jpg

Neato lidar

Pravděpodobně poslední přírůstek do sbírky senzorů je laserový scanner z robotického vysavače Neato X-11. V USA je k mání za $400, ale měl jsem štěstí a vychytal na Amazonu akci za $300. V Evropě je bohužel za 400liber, 500 eur a podobně...

Obrázky vnitřností, schémata a spol jsou na http://random-workshop.blogspot.com/. Testovací python program je na https://github.com/Xevel/NXV11. Komunikační protokol po sériové lince (3.3V, 115200bps) je binární - packety s úhlem, vzdáleností, kvalitou dat a kontrolním součtem. DO toho občas proběhne nějaký stacktrace... ;-)

Připojení není úplně přípočaré - laser má dvě nezávislé části: motor a vlastní elektroniku v otočném bubínku (ve vysavači je to připojené k jedné řídící desce). Pokud se motor netočí, tak data nechodí, pro změnu se po zapnutí vypíše jakési textové menu, další výzkum jsem nedělal. Bubínkem je třeba otáčet cca 5x za sekundu, naštěstí to vychází taky pri 3.3V. Celé je to dost vevyvážené, kmitá a hlučí, takže motor zapínám z AVR jen pokud běží ovládací program.

Data vypadají poměrně pěkně, alespoň v místnosti (dele je kousek mého obýváku). Rozlišení je 1 stupeň. Otázkou je funkčnost a kvalita dat venku.

irena_lidar.jpg

irena_lidar_data.png

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

březen 12

Nová sonarová rampa

mechanika, upraven Head

březen 12

Zadní sonar

pro bezpečné couvání

březen 12

Robbus bridge

může být odsunuto

duben 12

instalace Vectornav IMU, použití místo kompasu

namontováno, připojeno provizorně přes USB-Serial

červen 12

Neato laser

namontováno, připojeno provizorně přes USB-Serial

květen 12

ladění pro RoboOrienteering, průměrování pozice

červen 12

RoboOrienteering 2012

???

přepis celé architektury

???

konečně zkusit kamery

???

jízda po cestě na základě dat z kamery

???

Robotour 201x

Pridavam kousek textu, co jsem psal do mailu pro pripad, ze by mel nekdo zajem o vic informaci:

000. posilat vic NMEA dat, aktualne je to oholene na minimum, takze treba nemam udaj o presnosti (resp. to co posilam neni vyhovujici). Tohle by asi bylo dobre pro prumerovani, viz dale.

1. Robbus Bridge - desticka zalozena na STM32 (Olimexino), cilem je jednak mit mensi overhead pri komunikaci s robotem (jeden packet in/out), druhak si pripravit platformu, ktera bude krome robbusu sbirat data i z imu a pripadne laseru

2. pripojeni vectornav imu (v nejhorsim pripade se da pripojit pres usb/seriak, ale rad bych to mel zarazene do jedne komunikace, v prvni fazi ho chci pouzit jen jako lepsi zdroj kompasovych dat (a mozna failsave pokud se robot moc nakloni nekam nebo bude velka spicka na akcelerometrech)

3. upresneni pozice - protoze se zmensil kruh kolem kuzelu, stupidni algoritmus z 2010 (jizda na gps pozici) uz zrejme nevyhovi. Takze chci dojet nekam pobliz (treba 10m podle gps), tam zastavit a chvili prumerovat. A pak popojet ke kuzelu na zaklade kompasu a odometrie). Advanced varianta by byla nejak fuzovat pozici z gps a pozici z kompasu/odo, ale to temer urcite nestihnu

4. Neato laser - mam v planu koupit $400 vysavac a laser si dovezt. Necekam, ze bych ho za ty dva tydny mezi navratem a soutezi stihl zaintegrovat, kdyby ano, tak by se asi dalo zneuzit Jirkovo VFH pro SickDay pro zlepseni vyhybani prekazkam

5. (po RoboOrienteering) - konecne se musim dokopat k nejakemu kompletnimu prepisu z monolitu, co tam ted je, abych byl vubec schopny delat nejaky dalsi rozvoj. Zatim jeste nevim, jestli se ubirat jirkovou cestou MQ nebo neco uplne jineho, ale celkem se mi ta idea libi

6. Alespon nejaka trivialni kamera, abych konecne udelal na RT alespon jeden bod. Ale to uz jsem asi v risi snu a je dost nepravdepodobne, ze to do podzima stihnu

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


KategorieRoboti

RobotIrena (naposledy editoval KamilRezac dne 2012-05-29 11:05:18 )