Obsah:
- Krok 1: Videoukázka
- Krok 2: Přehled operací
- Krok 3: Senzory dosahu
- Krok 4: Cane Position Sensors
- Krok 5: Procesor
- Krok 6: Přehled kódu
- Krok 7: Seznam dílů
- Krok 8: Motivace a zlepšování
- Krok 9: Závěr
- Krok 10: Konstrukce a kód
Video: EyeRobot - Robotická bílá hůl: 10 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
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
Vysoce kvalitní verze
Krok 2: Přehled operací
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
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
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: 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
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ů
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: 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: 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
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:
Rozsviťte Gandalfa Bílou hůl: 9 kroků
Rozsviťte Gandalfa Bílou hůl: Od sledování Pána prstenů jsem vždy chtěl Gandalfa Bílou hůl. Na Thingivers.com jsem našel jeden návrh. Pomocí Tinkercad jsem upravil design, aby se rozsvítil
Senzor vzdálenosti (pro bílou hůl): 3 kroky
Senzor vzdálenosti (pro bílou hůl): Typický senzor vzdálenosti již byl široce pokrytý Instructables. Chtěl jsem proto vyzkoušet adaptaci tohoto známého konceptu, jako aplikaci pro bílou hůl. Bílé hole jsou hole, které nevidomí používají k tomu, aby jim řekli, kde
Laser Canne Blanche / laserová bílá hůl s Arduinem: 6 kroků
Laser Canne Blanche / laserová bílá hůl s Arduino: laserový paprsek vibrující na obrábění inverzní proporcionální úhel na vzdálenost bodů. Laserový dálkoměr vibrující na frekvenci nepřímo úměrné špičaté vzdálenosti. Asistence vizuální deficie
Arkádová hůl Biscuit Box: 3 kroky
Arkádová hůlka na sušenky: Máte o prázdninách povalovaných spoustu prázdných krabiček od sušenek? Využijte jeden s tímto rychlým a zábavným projektem. Co potřebujete: Prázdná krabice na sušenky - nebo jakákoli krabice vhodné velikosti Nějaký druh vyřezávače otvorů - použil jsem 19mm pilu na 4 otvory na zip
Bílá LED kruhová lupa Pracovní lampa se střídavým napájením: 12 kroků (s obrázky)
Bílá LED kruhová lupa pracovní lampa napájená střídavým proudem :, Použijte jasné LED diody k výměně fluorescenčního kruhového světla v pracovní lampě lupy. Budiž světlo! Středně obtížná instrukce k opravě pracovní lampy s kruhovou lupou přeměnou na alternativní zdroj světla s velmi nízkou energií a vysokou spolehlivostí