Tartalomjegyzék:

EyeRobot - a robot fehér nád: 10 lépés (képekkel)
EyeRobot - a robot fehér nád: 10 lépés (képekkel)

Videó: EyeRobot - a robot fehér nád: 10 lépés (képekkel)

Videó: EyeRobot - a robot fehér nád: 10 lépés (képekkel)
Videó: Megkérdezték ezt a ROBOTOT, hogy hisz-e ISTENBEN 2024, Július
Anonim
EyeRobot - a robot fehér nád
EyeRobot - a robot fehér nád

Absztrakt: Az iRobot Roomba Create használatával prototípusoztam egy eyeRobot nevű eszközt. A vakok és gyengénlátók körbevezeti a zsúfolt és lakott környezetet, és a Roomba-t használva alapul veszi a hagyományos fehér nád egyszerűségét a látó kutya ösztöneivel. A felhasználó a fogantyú intuitív megnyomásával és csavarásával jelzi kívánt mozgását. A robot felveszi ezt az információt, és tiszta utat talál a folyosón vagy a szobán, szonár segítségével a felhasználót megfelelő irányba tereli a statikus és dinamikus akadályok körül. A felhasználó ezután követi a robotot, miközben a fogantyún keresztül érezhető erő által a kívánt irányba tereli a felhasználót. Ez a robotos opció kevés edzést igényel: nyomja az induláshoz, húzza meg a megállításhoz, csavarja a forduláshoz. A távolságmérők előrelátása hasonló a látó szemű kutyákhoz, és jelentős előnyt jelent a fehér nád használatát jelző állandó próbálkozásokkal szemben. Ennek ellenére a eyeRobot továbbra is sokkal olcsóbb alternatívát kínál, mint a vakvezető kutyák, amelyek több mint 12 000 dollárba kerülnek, és csak 5 évig használhatók, míg a prototípus jóval 400 dollár alatt készült. Ez egy viszonylag egyszerű gép is, néhány olcsó érzékelőt, különböző potenciométereket, néhány hardvert és természetesen egy Roomba Create -t igényel.

1. lépés: Videó bemutató

Videó bemutató
Videó bemutató

Kiváló minőségű változat

2. lépés: A működés áttekintése

Működés áttekintése
Működés áttekintése

Felhasználói vezérlés: Az eyeRobot működését a lehető leg intuitívabbra tervezték, hogy jelentősen csökkentse vagy megszüntesse az edzéseket. A mozgás megkezdéséhez a felhasználónak egyszerűen el kell kezdenie az előrehaladást, a bot tövében lévő lineáris érzékelő felveszi ezt a mozgást, és elkezdi mozgatni a robotot előre. Ennek a lineáris érzékelőnek a segítségével a robot a sebességét a felhasználó kívánt sebességéhez tudja igazítani. Az eyeRobot olyan gyorsan fog mozogni, amennyire a felhasználó akar. Annak jelzésére, hogy fordulás kívánatos, a felhasználónak egyszerűen el kell csavarnia a fogantyút, és ha lehetséges a kanyar, a robot ennek megfelelően reagál.

Robotnavigáció: Amikor nyílt térben utazik, az eyeRobot megpróbál egyenes utat tartani, észleli a felhasználót akadályozó akadályokat, és elvezeti a felhasználót az adott tárgy körül, majd vissza az eredeti útvonalra. A gyakorlatban a felhasználó természetesen tudatos gondolkodás nélkül követheti a robotot. A folyosón való navigáláshoz a felhasználónak meg kell próbálnia a robotot a két oldal egyik falába tolni, miután megszerezte a falat, a robot elkezdi követni azt, irányítva a felhasználó a folyosón. Amikor eléri a kereszteződést, a felhasználó érezni fogja, hogy a robot elkezd forogni, és a fogantyú elcsavarásával választhat, hogy leállítja -e az új hajtást, vagy egyenes úton folytatja. Ily módon a robot nagyon hasonlít a fehér vesszőre, a felhasználó érezheti a környezetet a robottal, és felhasználhatja ezeket az információkat a globális navigációhoz.

3. lépés: Hatótávolság érzékelők

Hatótávolság érzékelők
Hatótávolság érzékelők

Ultrahangos: Az eyeRobot 4 ultrahangos távolságmérőt (MaxSonar EZ1) hordoz. Az ultrahangos érzékelők ívben vannak elhelyezve a robot elején, hogy információt nyújtsanak a robot előtt és oldalán lévő tárgyakról. Tájékoztatják a robotot az objektum hatótávolságáról, és segítenek neki nyitott útvonalat találni az objektum körül, majd vissza az eredeti útvonalára.

IR -távolságmérők: Az eyeRobot két IR -érzékelőt (GP2Y0A02YK) is tartalmaz. Az infravörös távolságmérők 90 fokkal jobbra és balra néznek, hogy segítsék a robotot a fal követésében. Figyelmeztethetik a robotot az oldalaihoz túl közel lévő tárgyakra is, amelyekbe a felhasználó beléphet.

4. lépés: Nádpozíció -érzékelők

Nádpozíció érzékelők
Nádpozíció érzékelők

Lineáris érzékelő: Annak érdekében, hogy az eyeRobot sebessége megfeleljen a felhasználó sebességének, az eyeRobot érzékeli, hogy a felhasználó nyomja vagy késlelteti előrehaladását. Ezt úgy érik el, hogy a vessző alját a pálya mentén csúsztatják, mivel egy potenciométer érzékeli a vessző helyzetét. Az eyeRobot ezt a bemenetet használja a robot sebességének szabályozására. A szem robotja, amely lineáris érzékelőn keresztül alkalmazkodik a felhasználó sebességéhez, valójában a családi fűnyíró ihlette. A vessző alja egy sín mentén mozgó vezetőblokkhoz kapcsolódik. A vezetőblokkhoz egy csúsztatási potenciométer kapcsolódik, amely leolvassa a vezetőblokk helyzetét és jelenti azt a processzornak. Annak érdekében, hogy a bot elfordulhasson a robothoz képest, egy rúd fut végig egy fatömbön, és forgó csapágyat képez. Ezt a csapágyat egy csuklópánthoz rögzítik, hogy a bot a felhasználó magasságához igazodjon.

Csavarásérzékelő: A csavaróérzékelő lehetővé teszi a felhasználó számára, hogy a robot forgatásához megcsavarja a fogantyút. Egy potenciométert rögzítenek az egyik fa tengely végéhez, és a gombot behelyezik és ragasztják a fogantyú felső részébe. A vezetékek végigfutnak a csapon, és a csavarási információkat a processzorba táplálják.

5. lépés: Processzor

Processzor
Processzor

Processzor: A robotot egy Zbasic ZX-24a vezérli, amely a Robodyssey Advanced alaplap II-en ül. A processzort a gyorsaság, a könnyű használat, a megfizethető költségek és a 8 analóg bemenet miatt választották. Nagy prototípusú kenyérsütő táblához van csatlakoztatva, hogy lehetővé tegye a gyors és egyszerű cserét. A robot minden energiája az alaplapon lévő tápegységből származik. A Zbasic a rakodónyíláson keresztül kommunikál a Roomba -val, és teljes mértékben irányítja a Roomba érzékelőit és motorjait.

6. lépés: A kód áttekintése

Kód áttekintés
Kód áttekintés

Akadálykerülés: Az akadályok elkerülése érdekében a eyeRobot olyan módszert alkalmaz, amelyben a robot közelében lévő tárgyak virtuális erőt gyakorolnak a robotra, eltávolítva azt a tárgytól. Más szóval, a tárgyak eltaszítják a robotot önmaguktól. Az én megvalósításomban az objektum által kifejtett virtuális erő fordítottan arányos a távolság négyzetével, így a lökés erőssége növekszik, ahogy az objektum közelebb kerül, és nemlineáris válaszgörbét hoz létre: PushForce = ResponseMagnitudeConstant/Distance2Az egyes érzékelőkből érkező nyomások összeadódnak; a bal oldali érzékelők jobbra tolják, és fordítva, hogy vektorot kapjanak a robot utazásához. Ezután a kerék sebességét megváltoztatják, így a robot e vektor felé fordul. Annak biztosítása érdekében, hogy a robot előtt holt tárgyak ne mutassanak "nem választ" (mert a kétoldali erők egyensúlyban vannak), a holt fronton lévő tárgyak a nyitottabb oldalra tolják a robotot. Amikor a robot elhaladt az objektum mellett, a Roomba kódolóit használva korrigálja a változást, és visszatér az eredeti vektorhoz.

Falkövetés: A falkövetés elve a kívánt távolság és párhuzamos szög fenntartása a fallal. Problémák merülnek fel, amikor a robotot a falhoz képest elforgatják, mert az egyetlen érzékelő haszontalan tartomány leolvasást eredményez. A hatótávolságot a robotok falhoz viszonyított szöge és a faltól való tényleges távolság is befolyásolja. A szög meghatározásához és ennek a változónak a kiküszöböléséhez a robotnak két viszonyítási ponttal kell rendelkeznie, amelyek összehasonlíthatók a robotszög meghatározásához. Mivel az eyeRobotnak csak az egyik oldala van infravörös távolságmérővel, e két pont eléréséhez össze kell hasonlítania a távolságot a távolságmérőtől a robot mozgása során. Ezután meghatározza a szögét a két leolvasott érték különbségéből, amikor a robot a fal mentén mozog. Ezután ezeket az információkat használja a helytelen pozicionálás korrigálására. A robot akkor lép falkövetési üzemmódba, ha egy bizonyos ideig fal van mellette, és kilép onnan, ha akadály áll az útjában, ami eltolja az útjától, vagy ha a felhasználó a csavaró fogantyút használja a robot távol a faltól.

7. lépés: Alkatrészlista

Alkatrész lista
Alkatrész lista

Szükséges alkatrészek: 1x) Roomba create1x) Nagyméretű akril2x) Sharp GP2Y0A02YK IR távolságmérő Zsanérok, dübelek, csavarok, anyák, konzolok és vezetékek

8. lépés: Motiváció és fejlesztés

Motiváció és fejlesztés
Motiváció és fejlesztés

Motiváció: Ezt a robotot úgy tervezték, hogy kitöltse a nyilvánvaló szakadékot a tehetséges, de drága vakvezető kutya és az olcsó, de korlátozott fehér vessző között. A piacképes és nagyobb teljesítményű Robot Fehér Nád kifejlesztése során a Roomba Create tökéletes eszköz volt egy gyors prototípus megtervezésére, hogy lássa, működik -e a koncepció. Ezenkívül a díjak gazdasági hátteret biztosítanának egy képesebb robot építésének jelentős költségeihez.

Fejlesztés: Az összeg, amit megtanultam ennek a robotnak az építésében, jelentős volt, és itt megpróbálom leírni, amit megtanultam, miközben megpróbálok egy második generációs robotot építeni: 1) Akadálykerülés - sokat tanultam a valós idejű akadályokról elkerülés. A robot építése során két teljesen eltérő akadálykerülő kódon mentem keresztül, kezdve az eredeti objektumerő -ötlettel, majd a legnyitottabb vektor megtalálásának és keresésének elvével, majd visszatérve az objektumerő -ötlethez a legfontosabb felismerés, hogy az objektum válaszának nem lineárisnak kell lennie. A jövőben kijavítom azt a hibámat, hogy nem végeztem online kutatást a korábban használt módszerekről, mielőtt nekiláttam a projektemnek, mivel most tanulok egy gyors Google -keresést, amely számos nagyszerű dolgozatot eredményezett volna a témában. 2) A bot tervezése érzékelők - A projekt kezdetén úgy gondoltam, hogy az egyetlen lehetőség a lineáris érzékelő számára az, hogy csúszóedényt és valamilyen lineáris csapágyat használok. Most már rájöttem, hogy sokkal egyszerűbb lehetőség lett volna a rúd tetejének egyszerű rögzítése a joystickra úgy, hogy a bot előre tolása a botkormányt is előre tolja. Ezenkívül egy egyszerű univerzális csukló lehetővé teszi, hogy a bot csavarását sok modern joystick csavarási tengelyébe fordítsák. Ez a megvalósítás sokkal egyszerűbb lett volna, mint az általam jelenleg használt. 3) Szabadon forgó kerekek - Bár ez lehetetlen lett volna a Roomba esetében, most nyilvánvalónak tűnik, hogy a szabadon forgó kerekekkel rendelkező robot ideális lenne erre a feladatra. A passzívan guruló robothoz nincs szükség motorra és kisebb akkumulátorra, így könnyebb. Ezenkívül ez a rendszer nem igényel lineáris érzékelőt a felhasználók nyomásának észlelésére, a robot egyszerűen a felhasználói sebességgel gurulna. A robotot a kerekek kormányzásával el lehetett forgatni, mint egy autót, és ha meg kell állítani a felhasználót, fékeket lehet hozzáadni. A következő generációs eyeRobot esetében minden bizonnyal ezt a nagyon eltérő megközelítést fogom használni. különböző referenciapontok eléréséhez. Két érzékelő, amelyek között van távolság, nagyban leegyszerűsítené a fal követését.5) Több érzékelő - Bár ez több pénzbe került volna, nehéz volt megpróbálni kódolni ezt a robotot, amelynek ilyen kevés ablaka van a processzoron kívüli világon. Sokkal erőteljesebbé tette volna a navigációs kódot egy teljesebb szonár tömb segítségével (de természetesen az érzékelők pénzbe kerülnek, ami akkor nem volt nálam).

9. lépés: Következtetés

Következtetés
Következtetés

Következtetés: Az iRobot ideális prototípus -platformnak bizonyult a robotizált fehér vessző koncepciójával való kísérletezéshez. A prototípus eredményei alapján nyilvánvaló, hogy egy ilyen típusú robot valóban életképes. Remélem, hogy kifejleszthetek egy második generációs robotot a Roomba Create használatából levont tanulságokból. Az eyeRobot jövőbeni verzióiban olyan eszközt képzelek el, amely többre képes, mint egy személy vezetése a folyosón, inkább egy robot, amelyet a vakok kezébe lehet adni a mindennapi életben való használatra. Ezzel a robottal a felhasználó egyszerűen kimondja a rendeltetési helyét, és a robot a felhasználó tudatos erőfeszítése nélkül elvezeti őket oda. Ez a robot elég könnyű és kompakt lenne ahhoz, hogy könnyen fel lehessen vinni a lépcsőn, és elrejtsék egy szekrényben. Ez a robot képes lenne a helyi mellett globális navigációt is végezni, és képes lenne a felhasználót az elejétől a célig vezetni a felhasználók előzetes ismerete vagy tapasztalata nélkül. Ez a képesség még a vakvezető kutyán is túlmutatna, mivel a GPS és a fejlettebb érzékelők lehetővé teszik a vakok számára, hogy szabadon navigáljanak a világban, Nathaniel Barshay, (Stephen Barshay lépett be)

10. lépés: Felépítés és kód

Építés és kód
Építés és kód

Néhány idegen szó az építésről: A fedélzetet egy akrildarabból készítették, amelyet körben vágtak, hátul nyílással, hogy hozzáférjenek az elektronikához, majd becsavarják a csomagtér melletti rögzítő lyukakba. A prototípuslapot be kell csavarni a rekesz alján található csavarlyukba. A Zbasic L konzolra van szerelve, ugyanazokkal a csavarokkal, mint a fedélzet. Mindegyik szonárt egy akrildarabba csavarják, amely viszont a fedélzethez rögzített L konzolhoz van rögzítve (az L konzolok 10 fokkal hátra vannak hajlítva, hogy jobban lássák). A lineáris érzékelő sínje közvetlenül a fedélzetbe van csavarozva, és a tolóedényt L konzolokkal szerelik fel mellé. A lineáris érzékelő és vezérlőrúd felépítésének technikai leírása a 4. lépésben található.

Kód: Csatoltam a robotkód teljes verzióját. Egy óra alatt megpróbáltam kitakarítani a fájlban található három vagy négy generációs kódból, most már elég egyszerűnek kell lennie. Ha rendelkezik ZBasic IDE -vel, könnyen megtekinthetőnek kell lennie, ha nem, használja a main.bas fájlból induló Jegyzettömböt és a többi.bas fájlt.

Ajánlott: