Obsah:

EyeRobot - robotická biela palica: 10 krokov (s obrázkami)
EyeRobot - robotická biela palica: 10 krokov (s obrázkami)

Video: EyeRobot - robotická biela palica: 10 krokov (s obrázkami)

Video: EyeRobot - robotická biela palica: 10 krokov (s obrázkami)
Video: 6 letý chlapec se ztratil. Když ho našli, byli v šoku z toho, co leželo vedle něj... 2024, Júl
Anonim
EyeRobot - robotická biela palica
EyeRobot - robotická biela palica

Abstrakt: Pomocou iRobot Roomba Create som prototypoval zariadenie s názvom eyeRobot. Prevedie nevidomých a slabozrakých používateľov neprehľadným a obývaným prostredím tým, že Roomba použije ako základ, v ktorom sa spojí jednoduchosť tradičnej bielej palice s inštinktmi psa, ktorý vidí. Užívateľ naznačuje svoj požadovaný pohyb intuitívnym zatlačením a otočením rukoväte. Robot vezme tieto informácie a nájde voľnú cestu chodbou alebo cez miestnosť, pričom pomocou sonaru nasmeruje používateľa vhodným smerom okolo statických a dynamických prekážok. Užívateľ potom nasleduje za robotom, pretože ho vedie požadovaným smerom citeľnou silou, ktorá je cítiť cez rukoväť. Táto robotická možnosť vyžaduje málo tréningu: push to go, pull to stop, twist to turn. Predvídavosť, ktorú diaľkomery poskytujú, je podobná ako u psa s vidiacim okom a je značnou výhodou oproti neustálemu pokusu a omylu, ktorý je znakom použitia bielej palice. EyeRobot však stále ponúka oveľa lacnejšiu alternatívu ako vodiace psy, ktoré stoja viac ako 12 000 dolárov a sú užitočné iba 5 rokov, zatiaľ čo prototyp bol postavený za menej ako 400 dolárov. Je to tiež relatívne jednoduchý stroj, ktorý vyžaduje niekoľko lacných senzorov, rôzne potenciometre, určitý hardvér a samozrejme Roomba Create.

Krok 1: Video ukážka

Video ukážka
Video ukážka

Verzia vo vysokej kvalite

Krok 2: Prehľad prevádzky

Prehľad prevádzky
Prehľad prevádzky

Užívateľské ovládanie: Ovládanie systému eyeRobot je navrhnuté tak, aby bolo čo najintuitívnejšie, aby výrazne obmedzilo alebo eliminovalo školenie. Aby užívateľ mohol začať pohyb, musí začať kráčať dopredu, lineárny snímač na spodnej časti palice zachytí tento pohyb a začne pohybovať robotom dopredu. Pomocou tohto lineárneho senzora môže robot potom prispôsobiť svoju rýchlosť požadovanej rýchlosti používateľa. eyeRobot sa bude pohybovať tak rýchlo, ako chce používateľ ísť. Aby používateľ naznačil, že je potrebné otočiť, musí jednoducho otočiť rukoväť a pokiaľ je otáčanie možné, robot zareaguje.

Navigácia robota: Pri cestovaní na voľnom priestranstve sa eyeRobot pokúsi udržať rovnú cestu, deteguje všetky prekážky, ktoré môžu užívateľovi prekážať, a prevedie ho okolo objektu a späť na pôvodnú cestu. V praxi môže používateľ prirodzene nasledovať robota bez vedomého premýšľania. Ak sa chcete pohybovať po chodbe, používateľ by sa mal pokúsiť zatlačiť robota do jednej zo stien na oboch stranách. Po získaní steny ho robot začne nasledovať a viesť ho. užívateľ na chodbe. Keď sa dostane na križovatku, používateľ pocíti, ako sa robot začína otáčať, a môže si otáčaním rukoväte vybrať, či novú odnož odmietne alebo bude pokračovať po rovnej ceste. Takto je robot veľmi podobný bielej palici, používateľ môže s robotom cítiť prostredie a použiť tieto informácie na globálnu navigáciu.

Krok 3: Senzory dosahu

Senzory dosahu
Senzory dosahu

Ultrazvuk: Zariadenie EyeRobot nesie 4 ultrazvukové diaľkomery (MaxSonar EZ1). Ultrazvukové senzory sú umiestnené v oblúku v prednej časti robota, aby poskytovali informácie o predmetoch pred a po stranách robota. Informujú robota o dosahu objektu a pomôžu mu nájsť otvorenú trasu okolo tohto objektu a späť na pôvodnú cestu.

IR diaľkomery: Zariadenie eyeRobot nesie aj dva IR senzory (GP2Y0A02YK). IR diaľkomery sú umiestnené tak, aby smerovali doprava a doľava o 90 stupňov, aby pomohli robotovi v sledovaní steny. Môžu tiež upozorniť robota na objekty príliš blízko jeho strán, do ktorých môže užívateľ vstúpiť.

Krok 4: Senzory polohy trstiny

Senzory polohy trstiny
Senzory polohy trstiny

Lineárny senzor: Aby eyeRobot zodpovedal svojej rýchlosti s rýchlosťou užívateľa, eyeRobot rozozná, či používateľ tlačí alebo spomaľuje pohyb vpred. To sa dosiahne posunutím základne palice po trati, pretože potenciometer sníma polohu palice. Zariadenie eyeRobot používa tento vstup na reguláciu rýchlosti robota. Myšlienka eyeRobot prispôsobiť sa rýchlosti užívateľa pomocou lineárneho senzora bola v skutočnosti inšpirovaná rodinnou kosačkou. Základňa trstiny je spojená s vodiacim blokom pohybujúcim sa po koľajnici. K vodiacemu bloku je pripevnený posuvný potenciometer, ktorý sníma polohu vodiaceho bloku a hlási ho procesoru. Aby sa palica mohla otáčať vo vzťahu k robotu, cez drevený blok prechádza tyč, ktorá tvorí rotujúce ložisko. Toto ložisko je potom pripevnené k závesu, aby sa hokejka mohla prispôsobiť výške užívateľa.

Skrutkový senzor: Skrutkový senzor umožňuje užívateľovi otočiť rukoväť a otočiť robota. Na koniec jedného dreveného drieku je pripevnený potenciometer a gombík je zasunutý a prilepený do hornej časti držadla. Káble vedú po hmoždinke a privádzajú informácie o skrútení do procesora.

Krok 5: Procesor

procesor
procesor

Procesor: Robot je riadený počítačom Zbasic ZX-24a sediacim na základnej doske Robodyssey Advanced Motherboard II. Procesor bol vybraný pre jeho rýchlosť, jednoduché použitie, dostupné ceny a 8 analógových vstupov. Je pripojený k veľkému prototypu nepájivého poľa, ktoré umožňuje rýchle a jednoduché zmeny. Všetka energia pre robota pochádza z napájania na základnej doske. Zbasic komunikuje s robotou Roomba prostredníctvom portu v nákladovom priestore a má plnú kontrolu nad senzormi a motormi modelu Roomba.

Krok 6: Prehľad kódu

Prehľad kódu
Prehľad kódu

Vyhýbanie sa prekážkam: Na vyhýbanie sa prekážkam používa eyeRobot metódu, kde objekty v blízkosti robota pôsobia na robot virtuálnou silou, ktorá ho pohybuje od objektu. Inými slovami, objekty tlačia robota od seba. V mojej implementácii je virtuálna sila pôsobiaca na objekt nepriamo úmerná vzdialenosti na druhú, takže sila stlačenia sa zvyšuje, keď sa objekt blíži a vytvára nelineárnu krivku odozvy: PushForce = ResponseMagnitudeConstant/Distance2Stlačenia vychádzajúce z každého senzora sa sčítajú; senzory na ľavej strane tlačia doprava a naopak, aby získali vektor pre pohyb robota. Rýchlosti kolies sa potom zmenia, aby sa robot otočil k tomuto vektoru. Aby sa zabezpečilo, že objekty mŕtve pred robotom nevykazujú „žiadnu odozvu“(pretože sily na oboch stranách sa vyrovnávajú), objekty na mŕtvom fronte posúvajú robota k otvorenejšej strane. Keď robot prejde okolo objektu, použije kodéry Roomby na opravu zmeny a návrat na pôvodný vektor.

Nasledovanie steny: Princípom sledovania steny je udržiavať požadovanú vzdialenosť a rovnobežný uhol k stene. Problémy nastávajú, keď je robot otočený vzhľadom na stenu, pretože jediný senzor poskytuje zbytočné hodnoty rozsahu. Odčítanie rozsahu je ovplyvnené uhlom robota voči stene a skutočnou vzdialenosťou od steny. Aby mohol robot určiť uhol a tým eliminovať túto premennú, musí mať dva referenčné body, ktoré je možné porovnať, aby sa získal uhol robota. Pretože má eyeRobot iba jednu stranu IR diaľkomera, aby dosiahol tieto dva body, musí pri pohybe robota porovnávať vzdialenosť od diaľkomera v priebehu času. Potom určí svoj uhol z rozdielu medzi týmito dvoma údajmi, keď sa robot pohybuje po stene. Tieto informácie potom použije na opravu nesprávneho umiestnenia. Robot prejde do režimu sledovania steny vždy, keď má na určitý čas vedľa seba stenu, a vystupuje z nej vždy, keď sa na jeho ceste nachádza prekážka, ktorá ju tlačí mimo kurzu, alebo ak používateľ pomocou otočného držadla uvedie robot ďaleko od steny.

Krok 7: Zoznam dielov

Zoznam položiek
Zoznam položiek

Požadované diely: 1x) Roomba vytvoriť1x) Veľký akryl2x) Ostrý GP2Y0A02YK IR diaľkomer4x) Maxsonar EZ1 ultrazvukové diaľkomery1x) Mikroprocesor ZX-24a1x) Robodyssey Advanced Motherboard II1x) Posuvný potenciometer1x) Jednootáčkový potenciometer1x) Lineárne ložisko1)) Závesy, hmoždinky, skrutky, matice, konzoly a drôty

Krok 8: Motivácia a zlepšenie

Motivácia a zlepšovanie
Motivácia a zlepšovanie

Motivácia: Tento robot bol navrhnutý tak, aby vyplnil očividnú medzeru medzi schopným, ale drahým vodiacim psom a lacnou, ale obmedzenou bielou palicou. Pri vývoji obchodovateľnej a schopnejšej robotickej bielej palice bol Roomba Create dokonalým prostriedkom na navrhnutie rýchleho prototypu, aby ste zistili, či koncept funguje. Ceny by navyše poskytli ekonomickú podporu pre značné náklady na stavbu schopnejšieho robota.

Vylepšenie: Suma, ktorú som sa naučil stavať tohto robota, bola značná, a preto sa pokúsim objasniť, čo som sa naučil, keď sa budem snažiť postaviť robot druhej generácie: 1) Vyhýbanie sa prekážkam - veľa som sa naučil o prekážkach v reálnom čase vyhýbanie sa. V procese stavby tohto robota som prešiel dvoma úplne odlišnými kódmi vyhýbania sa prekážkam, počnúc myšlienkou pôvodnej sily objektu, potom som prešiel na princíp hľadania a hľadania najotvorenejšieho vektora a potom sa vrátil k myšlienke sily objektu pomocou kľúčové poznanie, že odozva objektu by mala byť nelineárna. V budúcnosti napravím svoju chybu, keď som nerobil žiadny online výskum predtým používaných metód, než sa pustím do svojho projektu, pretože sa teraz učím, že rýchle vyhľadávanie Google by prinieslo množstvo skvelých článkov na túto tému. 2) Dizajn paličky senzory - Na začiatku tohto projektu som si myslel, že mojou jedinou možnosťou pre lineárny senzor bolo použiť posuvný hrniec a nejaký druh lineárneho ložiska. Teraz si uvedomujem, že oveľa jednoduchšou možnosťou by bolo jednoducho pripevniť hornú časť tyče k joysticku, takže stlačením páčky dopredu by sa joystick posunul aj dopredu. Jednoduchý univerzálny kĺb by navyše umožnil, aby sa krútenie palice premiestnilo do osi zákruty mnohých moderných joystickov. Táto implementácia by bola oveľa jednoduchšia ako tá, ktorú v súčasnosti používam. 3) Voľne sa otáčajúce kolesá - Aj keď by to bolo s robotom Roomba nemožné, teraz sa zdá zrejmé, že robot s voľne sa otáčajúcimi kolesami by bol na túto úlohu ideálny. Pasívne sa pohybujúci robot nevyžaduje žiadne motory a menšiu batériu, a je teda ľahší. Tento systém navyše nevyžaduje žiadny lineárny snímač na detekciu tlačenia používateľov, robot by sa jednoducho otáčal rýchlosťou používateľov. Robota bolo možné otáčať riadením kolies ako v aute a v prípade potreby zastavenia používateľa je možné pridať brzdy. Pre budúcu generáciu eyeRobot určite použijem tento veľmi odlišný prístup. 4) Dva rozmiestnené senzory na sledovanie steny - Ako už bolo uvedené, predchádzajúce problémy nastali pri pokuse o sledovanie steny iba s jedným bočným senzorom otočeným, takže bolo potrebné presunúť robota medzi čítaniami. dosiahnuť rôzne referenčné body. Dva senzory so vzdialenosťou medzi nimi by značne zjednodušili sledovanie steny. 5) Viac senzorov - Aj keď by to stálo viac peňazí, bolo náročné pokúsiť sa kódovať tohto robota s tak malým počtom okien vo svete mimo procesora. Navigačný kód by bol oveľa výkonnejší s kompletnejším poľom sonarov (ale senzory samozrejme stáli peniaze, čo som vtedy nemal).

Krok 9: Záver

Záver
Záver

Záver: iRobot sa ukázal ako ideálna prototypová platforma na experimentovanie s konceptom robotickej bielej palice. Z výsledkov tohto prototypu je zrejmé, že robot tohto typu je skutočne životaschopný. Dúfam, že vyviniem robot druhej generácie z lekcií, ktoré som získal pri použití robota Roomba Create. V budúcich verziách systému eyeRobot si predstavím zariadenie, ktoré dokáže viac než len viesť osobu po chodbe, ale skôr robota, ktorého možno vložiť do rúk nevidomým a použiť ho v každodennom živote. S týmto robotom by užívateľ jednoducho povedal svoj cieľ a robot by ho tam naviedol bez vedomého úsilia používateľa. Tento robot by bol dostatočne ľahký a kompaktný, aby sa dal ľahko prenášať po schodoch a bol uložený v skrini. Tento robot by bol schopný vykonávať okrem lokálnej aj globálnu navigáciu, pričom by bol schopný navigovať používateľa od začiatku do cieľa bez predchádzajúceho vedomia alebo skúseností. Táto schopnosť by presahovala dokonca aj vodiaceho psa, vďaka GPS a pokročilejším senzorom umožňuje nevidomým voľne sa pohybovať po svete, Nathaniel Barshay, (prihlásil Stephen Barshay) (špeciálne poďakovanie Jackovi Hittovi za vytvorenie robota Roomba)

Krok 10: Konštrukcia a kód

Konštrukcia a zákonník
Konštrukcia a zákonník

Niekoľko cudzích slov k stavbe: Paluba je vyrobená kusom akrylu vyrezaného do kruhu s otvorom vzadu na umožnenie prístupu elektroniky a potom je zaskrutkovaná do montážnych otvorov vedľa nákladného priestoru. Prototypová doska je zaskrutkovaná do otvoru pre skrutku v spodnej časti šachty. Zbasic je namontovaný pomocou konzoly L pomocou rovnakých skrutiek ako paluba. Každý sonar je zaskrutkovaný do kusu akrylu, ktorý je následne pripevnený k držiaku L pripevnenému k palube (držiaky L sú ohnuté dozadu o 10 stupňov, aby bol lepší výhľad). Dráha pre lineárny snímač je zaskrutkovaná priamo do plošiny a posuvný hrniec je pripevnený pomocou L konzol vedľa neho. Podrobnejší technický popis konštrukcie lineárneho snímača a riadiacej tyče nájdete v kroku 4.

Kód: Priložil som plnú verziu kódu robota. V priebehu hodiny som sa pokúsil vyčistiť ho od troch alebo štyroch generácií kódu, ktoré boli v súbore, malo by byť teraz dosť ľahké ho sledovať. Ak máte ZBasic IDE, malo by byť ľahko viditeľné, ak nie, použite poznámkový blok začínajúci súborom main.bas a prechádzajúci ostatnými súbormi.bas.

Odporúča: