Obsah:

EyeRobot - Robotická bílá hůl: 10 kroků (s obrázky)
EyeRobot - Robotická bílá hůl: 10 kroků (s obrázky)

Video: EyeRobot - Robotická bílá hůl: 10 kroků (s obrázky)

Video: EyeRobot - Robotická bílá hůl: 10 kroků (s obrázky)
Video: megabotz-number 3 and 9(motorcycle and bot) 2024, Listopad
Anonim
EyeRobot - robotická bílá hůl
EyeRobot - robotická bílá hůl

Abstrakt: Pomocí iRobot Roomba Create jsem vytvořil prototyp zařízení s názvem eyeRobot. Provede nevidomé a zrakově postižené uživatele přeplněným a obydleným prostředím tím, že Roomba použije jako základ pro spojení jednoduchosti tradiční bílé hůlky s instinkty psa se zrakovým okem. Uživatel ukazuje svůj požadovaný pohyb intuitivním zatlačením a otočením rukojeti. Robot vezme tyto informace a najde volnou cestu chodbou nebo přes místnost, pomocí sonaru nasměruje uživatele vhodným směrem kolem statických a dynamických překážek. Uživatel pak následuje za robotem, který uživatele vede požadovaným směrem znatelnou silou pociťovanou rukojetí. Tato robotická možnost vyžaduje málo školení: push to go, pull to stop, twist to turn. Prozíravost, kterou dálkoměry poskytují, je podobná psovi s vidícím okem a je značnou výhodou oproti neustálému pokusu a omylu, který označuje použití bílé hůlky. EyeRobot však stále poskytuje mnohem levnější alternativu než vodicí psi, kteří stojí přes 12 000 dolarů a jsou užiteční pouze 5 let, zatímco prototyp byl postaven za méně než 400 dolarů. Je to také relativně jednoduchý stroj, který vyžaduje několik levných senzorů, různé potenciometry, nějaký hardware a samozřejmě Roomba Create.

Krok 1: Videoukázka

Video ukázka
Video ukázka

Vysoce kvalitní verze

Krok 2: Přehled operací

Přehled provozu
Přehled provozu

Uživatelské ovládání: Ovládání systému eyeRobot je navrženo tak, aby bylo co nejintuitivnější, aby výrazně omezilo nebo odstranilo školení. Aby uživatel zahájil pohyb, musí jednoduše začít kráčet vpřed, lineární senzor na základně páčky zachytí tento pohyb a začne pohybovat robotem dopředu. Pomocí tohoto lineárního senzoru může robot svou rychlost přizpůsobit požadované rychlosti uživatele. eyeRobot se bude pohybovat tak rychle, jak chce uživatel. Aby uživatel naznačil, že je požadováno otočení, musí jednoduše otočit držadlem, a pokud je otočení možné, robot na to odpoví.

Navigace robota: Při cestování v otevřeném prostoru se eyeRobot pokusí udržet přímou cestu, detekuje jakoukoli překážku, která může bránit uživateli, a provede uživatele kolem tohoto objektu a zpět na původní cestu. V praxi může uživatel přirozeně následovat robota s malým vědomým myšlením. Chcete -li se pohybovat po chodbě, měl by se uživatel pokusit zatlačit robota do jedné ze stěn na obou stranách, po získání zdi ho robot začne následovat a vést uživatel na chodbě. Když je dosaženo křižovatky, uživatel ucítí, jak se robot začíná otáčet, a může si otáčením rukojeti vybrat, zda novou odnož odmítne nebo bude pokračovat po rovné cestě. Tímto způsobem je robot velmi podobný bílé hůlce, uživatel může cítit prostředí s robotem a používat tyto informace pro globální navigaci.

Krok 3: Senzory dosahu

Senzory dosahu
Senzory dosahu

Ultrazvuk: EyeRobot nese 4 ultrazvukové dálkoměry (MaxSonar EZ1). Ultrazvukové senzory jsou umístěny v oblouku v přední části robota, aby poskytovaly informace o předmětech před robotem a po jeho stranách. Informují robota o dosahu objektu a pomáhají mu najít otevřenou trasu kolem tohoto objektu a zpět na původní cestu.

IR dálkoměry: EyeRobot také nese dva IR senzory (GP2Y0A02YK). IR dálkoměry jsou umístěny tak, aby směřovaly o 90 stupňů doprava a doleva, aby pomohly robotovi ve sledování stěny. Mohou také upozornit robota na objekty příliš blízko jeho stran, do kterých může uživatel vejít.

Krok 4: Cane Position Sensors

Třtinové snímače polohy
Třtinové snímače polohy

Lineární senzor: Aby eyeRobot odpovídal svou rychlostí rychlosti uživatele, eyeRobot snímá, zda uživatel tlačí nebo zpomaluje pohyb vpřed. Toho je dosaženo posunutím základny hole po stopě, protože potenciometr snímá polohu hole. Systém eyeRobot používá tento vstup k regulaci rychlosti robota. Myšlenka adaptéru eyeRobot na rychlost uživatele pomocí lineárního senzoru byla ve skutečnosti inspirována rodinnou sekačkou. Základna hůlky je spojena s vodicím blokem pohybujícím se po kolejnici. K vodicímu bloku je připojen posuvný potenciometr, který snímá polohu vodicího bloku a hlásí jej procesoru. Aby se hůl mohla otáčet vzhledem k robotu, prochází dřevěným blokem tyč, která tvoří rotující ložisko. Toto ložisko je poté připevněno k závěsu, aby se tyč mohla přizpůsobit výšce uživatele.

Senzor otočení: Senzor otočení umožňuje uživateli otočit na rukojeti a otočit robota. Na konec jednoho dřevěného hřídele je připevněn potenciometr a knoflík je zasunut a vlepen do horní části rukojeti. Dráty vedou po hmoždince a přivádějí informace o kroucení do procesoru.

Krok 5: Procesor

Procesor
Procesor

Procesor: Robot je řízen Zbasicem ZX-24a sedícím na Robodyssey Advanced Motherboard II. Procesor byl vybrán pro jeho rychlost, snadné použití, dostupnou cenu a 8 analogových vstupů. Je připojen k velkému prototypovacímu prkénku, které umožňuje rychlé a snadné změny. Veškerá energie pro robota pochází z napájecího zdroje na základní desce. Zbasic komunikuje s robotem Roomba přes port nákladového prostoru a má plnou kontrolu nad senzory a motory robota Roomba.

Krok 6: Přehled kódu

Přehled kódu
Přehled kódu

Vyhýbání se překážkám: Pro vyhýbání se překážkám používá eyeRotot metodu, kdy objekty v blízkosti robota vyvíjejí virtuální sílu na robota, který jej pohybuje od objektu. Jinými slovy, objekty tlačí robota od sebe. V mé implementaci je virtuální síla vyvíjená objektem nepřímo úměrná vzdálenosti na druhou, takže síla tlačení se zvyšuje, jak se objekt přibližuje a vytváří nelineární křivku odezvy: PushForce = ResponseMagnitudeConstant/Distance2Tlaky vycházející z každého senzoru se sčítají; senzory na levé straně tlačí doprava a naopak, aby získaly vektor pro pohyb robota. Poté se změní rychlosti kol, takže se robot otočí směrem k tomuto vektoru. Aby se zajistilo, že objekty mrtvé před robotem nevykazují „žádnou reakci“(protože síly na obou stranách se vyrovnávají), tlačí objekty na mrtvou frontu robota na otevřenější stranu. Když robot projde objektem, použije kodéry Roomby k opravě změny a návratu zpět na původní vektor.

Sledování zdi: Principem sledování stěny je udržovat požadovanou vzdálenost a rovnoběžný úhel se stěnou. Problémy nastávají, když je robot otočen vzhledem ke zdi, protože jediný senzor poskytuje zbytečné hodnoty rozsahu. Odečty rozsahu jsou ovlivněny úhlem robota vůči zdi a skutečnou vzdáleností od stěny. Aby mohl robot určit úhel a tím eliminovat tuto proměnnou, musí mít dva referenční body, které lze porovnat, aby získal úhel robota. Vzhledem k tomu, že eyeRobot má pouze jednu stranu IR dálkoměru, aby dosáhl těchto dvou bodů, musí při pohybu robota porovnávat vzdálenost od dálkoměru v čase. Poté určí svůj úhel z rozdílu mezi těmito dvěma hodnotami, když se robot pohybuje po zdi. Tyto informace pak použije k opravě nesprávného umístění. Robot přejde do režimu sledování stěny, kdykoli má po určitou dobu vedle sebe zeď, a opouští ji, kdykoli je v cestě překážka, která ji tlačí mimo kurz, nebo pokud uživatel pomocí otočného držadla uvede robota daleko od zdi.

Krok 7: Seznam dílů

Seznam dílů
Seznam dílů

Požadované díly: 1x) Roomba vytvořit1x) Velký akryl2x) Sharp GP2Y0A02YK IR dálkoměr4x) Maxsonar EZ1 ultrazvukové dálkoměry1x) Mikroprocesor ZX-24a1x) Robodyssey Advanced Základní deska II1x) Posuvný potenciometr1x) Jednootáčkový potenciometr1x) Lineární ložisko1) Klouby, hmoždinky, šrouby, matice, konzoly a dráty

Krok 8: Motivace a zlepšování

Motivace a zlepšování
Motivace a zlepšování

Motivace: Tento robot byl navržen tak, aby vyplnil zjevnou mezeru mezi schopným, ale drahým vodícím psem a levnou, ale omezenou bílou hůlkou. Při vývoji obchodovatelné a schopnější robotické bílé hůlky byl Roomba Create dokonalým prostředkem pro návrh rychlého prototypu, aby se zjistilo, zda koncept funguje. Ceny by navíc poskytly ekonomickou podporu pro značné náklady na stavbu schopnějšího robota.

Vylepšení: Částka, kterou jsem se naučil stavět tohoto robota, byla značná a zde se pokusím popsat, co jsem se naučil, když se budu snažit postavit robota druhé generace: 1) Vyhýbání se překážkám - hodně jsem se naučil o překážkách v reálném čase vyhýbání se. V procesu stavby tohoto robota jsem prošel dvěma zcela odlišnými kódy vyhýbání se překážkám, počínaje původní myšlenkou síly objektu, poté jsem přešel k principu hledání a hledání nejotevřenějšího vektoru a poté se přesunul zpět k myšlence síly objektu pomocí klíčové poznání, že odezva objektu by měla být nelineární. V budoucnu napravím svou chybu, že jsem před zahájením svého projektu neprováděl žádný online průzkum dříve používaných metod, protože se nyní učím, že rychlé vyhledávání Google by přineslo řadu skvělých prací na toto téma. 2) Design hole senzory - Na začátku tohoto projektu jsem si myslel, že mou jedinou možností pro lineární senzor bylo použít posuvný hrnec a nějaké lineární ložisko. Nyní si uvědomuji, že mnohem jednodušší možností by bylo jednoduše připevnit horní část tyče k joysticku, takže posunutí páčky dopředu by také posunulo joystick dopředu. Kromě toho by jednoduchý univerzální kloub umožnil překroucení tyče do osy zkroucení mnoha moderních joysticků. Tato implementace by byla mnohem jednodušší než ta, kterou aktuálně používám. 3) Volně se otáčející kola - Ačkoli by to u Roomby nebylo možné, nyní se zdá zřejmé, že robot s volně otáčejícími se koly by byl pro tento úkol ideální. Pasivně se pohybující robot nevyžaduje žádné motory a menší baterii, a je tedy lehčí. Tento systém navíc nevyžaduje žádný lineární senzor pro detekci tlačení uživatelů, robot by se jednoduše pohyboval rychlostí uživatelů. Robota bylo možné otáčet řízením kol jako auto, a pokud uživatele bylo třeba zastavit, mohly být přidány brzdy. Pro příští generaci eyeRobot určitě použiji tento velmi odlišný přístup. 4) Dva rozmístěné senzory pro sledování stěny - Jak bylo diskutováno dříve, problémy se objevily při pokusu sledovat stěnu pouze s jedním senzorem obráceným na stranu, takže bylo nutné pohybovat robota mezi hodnotami k dosažení různých referenčních bodů. Dva senzory se vzdáleností mezi nimi by značně zjednodušily sledování stěn. 5) Více senzorů - Přestože by to stálo více peněz, pokusit se kódovat tohoto robota s tak malým počtem oken na světě mimo procesor bylo obtížné. Díky kompletnějšímu poli sonarů by byl navigační kód mnohem výkonnější (ale senzory samozřejmě stály peníze, což jsem v té době neměl).

Krok 9: Závěr

Závěr
Závěr

Závěr: iRobot se ukázal jako ideální prototypovací platforma pro experimentování s konceptem robotické bílé hole. Z výsledků tohoto prototypu je zřejmé, že robot tohoto typu je skutečně životaschopný. Doufám, že vyvinout robota druhé generace z lekcí, které jsem získal při používání Roomba Create. V budoucích verzích eyeRobot si představuji zařízení, které dokáže víc než jen vedení člověka po chodbě, spíše robot, který může být vložen do rukou nevidomých pro použití v každodenním životě. S tímto robotem by uživatel jednoduše řekl svůj cíl a robot by ho tam vedl bez vědomého úsilí uživatele. Tento robot by byl dostatečně lehký a kompaktní, aby se dal snadno přenášet po schodech a schovaný ve skříni. Tento robot by kromě místní dokázal provádět i globální navigaci, přičemž by dokázal uživatele vést od začátku do cíle bez předchozí znalosti nebo zkušeností uživatelů. Tato schopnost by přesahovala i vodicího psa, s GPS a pokročilejšími senzory umožňujícím nevidomým volně se pohybovat po světě, Nathaniel Barshay, (vstoupil Stephen Barshay) (Zvláštní poděkování Jacku Hittovi za vytvoření Roomba)

Krok 10: Konstrukce a kód

Konstrukce a kód
Konstrukce a kód

Několik cizích slov ke stavbě: Paluba je vyrobena z kusu akrylu vyříznutého v kruhu s otvorem na zadní straně, který umožňuje přístup k elektronice, a poté je zašroubován do montážních otvorů vedle nákladového prostoru. Deska prototypu je zašroubována do otvoru pro šroub ve spodní části pozice. Zbasic je namontován pomocí L držáku se stejnými šrouby jako paluba. Každý sonar je přišroubován k kousku akrylu, který je následně připevněn k držáku L připevněnému k palubě (držáky L jsou ohnuty dozadu o 10 stupňů, aby byl lepší výhled). Dráha pro lineární snímač je přišroubována přímo do desky a posuvný hrnec je připevněn pomocí L držáků vedle něj. Podrobnější technický popis konstrukce lineárního senzoru a ovládací tyče najdete v kroku 4.

Kód: Připojil jsem plnou verzi kódu robotů. V průběhu hodiny jsem se pokusil vyčistit to ze tří nebo čtyř generací kódu, které byly v souboru, mělo by být nyní dost snadné to sledovat. Pokud máte ZBasic IDE, mělo by být snadno zobrazitelné, pokud ne, použijte poznámkový blok začínající souborem main.bas a procházející dalšími soubory.bas.

Doporučuje: