Sisukord:

EyeRobot - valge robotkepp: 10 sammu (koos piltidega)
EyeRobot - valge robotkepp: 10 sammu (koos piltidega)

Video: EyeRobot - valge robotkepp: 10 sammu (koos piltidega)

Video: EyeRobot - valge robotkepp: 10 sammu (koos piltidega)
Video: Robot Eye Expressions For 2 Minute Straight 2024, Juuli
Anonim
EyeRobot - robot -valge kepp
EyeRobot - robot -valge kepp

Kokkuvõte: iRobot Roomba Create abil olen prototüüpinud seadme nimega eyeRobot. See juhendab pimedaid ja nägemispuudega kasutajaid läbi segase ja asustatud keskkonna, kasutades Roomba baasi, et abielluda traditsioonilise valge kepi lihtsuse ja nägemiskoera instinktidega. Kasutaja näitab oma soovitud liikumist käepidet intuitiivselt edasi lükates ja keerates. Robot võtab selle teabe ja leiab selge tee koridoris või üle ruumi, kasutades sonarit, et juhtida kasutajat staatiliste ja dünaamiliste takistuste ümber sobivasse suunda. Seejärel järgneb kasutaja roboti taha, kuna see juhib kasutajat käepideme kaudu tuntava jõu abil soovitud suunas. See robotvalik nõuab vähe väljaõpet: lükake minema, tõmmake seisma, keerake pööramiseks. Kaugusmõõturite ettenägelikkus sarnaneb nägevale silma koerale ja on märkimisväärne eelis pideva katse ja eksituse ees, mis tähistab valge kepi kasutamist. Siiski pakub eyeRobot endiselt palju odavamat alternatiivi kui juhtkoerad, mis maksavad üle 12 000 dollari ja on kasulikud ainult 5 aastat, samas kui prototüüp ehitati alla 400 dollari. See on ka suhteliselt lihtne masin, mis nõuab mõningaid odavaid andureid, erinevaid potentsiomeetreid, mõnda riistvara ja loomulikult Roomba Create'i.

1. samm: video demonstreerimine

Video demonstratsioon
Video demonstratsioon

Kvaliteetne versioon

Samm 2: Toimingu ülevaade

Operatsiooni ülevaade
Operatsiooni ülevaade

Kasutaja juhtimine: eyeRoboti töö on loodud nii intuitiivseks kui võimalik, et treeninguid oluliselt vähendada või kaotada. Liikumise alustamiseks peab kasutaja lihtsalt hakkama kõndima edasi, pulga põhjas olev lineaarne andur võtab selle liigutuse vastu ja hakkab robotit edasi liigutama. Seda lineaarset andurit kasutades saab robot oma kiiruse sobitada kasutaja soovitud kiirusega. eyeRobot liigub nii kiiresti kui kasutaja soovib. Pöörde soovimiseks peab kasutaja lihtsalt käepidet väänama ja kui pööre on võimalik, reageerib robot vastavalt.

Robotnavigatsioon: avatud ruumis reisides üritab eyeRobot hoida sirget rada, tuvastades kõik takistused, mis võivad kasutajat takistada, ning juhatab kasutaja ümber selle objekti ja tagasi algsele teele. Praktikas saab kasutaja loomulikult vähese teadliku mõtlemisega roboti taga jälgida. Koridoris navigeerimiseks peaks kasutaja proovima lükata roboti mõlemale poole ühe seina sisse, pärast seina omandamist hakkab robot seda järgima, juhendades kasutaja koridoris. Kui ristmik on saavutatud, tunneb kasutaja, et robot hakkab pöörlema, ja saab käepidet keerates valida, kas keerata uus võsund maha või jätkata sirgel teel. Sel moel on robot väga sarnane valge kepiga, kasutaja saab tunda keskkonda koos robotiga ja kasutada seda teavet globaalse navigeerimise jaoks.

3. samm: kaugusandurid

Vahemiku andurid
Vahemiku andurid

Ultraheli: EyeRobotil on neli ultraheli kaugusmõõturit (MaxSonar EZ1). Ultraheli andurid on paigutatud kaarega roboti esiküljele, et anda teavet robotite ees ja külgedel asuvate objektide kohta. Nad teavitavad robotit objekti ulatusest ja aitavad tal leida avatud marsruudi selle objekti ümber ja tagasi oma esialgsele teele.

IR -kaugusmõõturid: EyeRobotil on ka kaks IR -andurit (GP2Y0A02YK). Infrapunakaugusmõõturid on paigutatud 90 kraadi paremale ja vasakule, et aidata robotil seina järgida. Samuti võivad nad hoiatada robotit objektidest, mis on tema külgedele liiga lähedal ja kuhu kasutaja võib sisse astuda.

4. samm: roo asendi andurid

Roo asendi andurid
Roo asendi andurid

Lineaarne andur: selleks, et eyeRobot vastaks oma kiirusele kasutaja kiirusega, tunneb eyeRobot, kas kasutaja lükkab või aeglustab edasiliikumist. See saavutatakse kepi aluse libistamisega mööda rada, kuna potentsiomeeter tuvastab kepi asendi. EyeRobot kasutab seda sisendit roboti kiiruse reguleerimiseks. Robot, mis kohandub kasutaja kiirusega lineaarse anduri kaudu, oli tegelikult inspireeritud perekonna muruniidukist. Kepi alus on ühendatud piki rööpa liikuva juhtplokiga. Juhtploki külge on kinnitatud slaidipotentiomeeter, mis loeb juhtploki positsiooni ja teatab sellest protsessorile. Selleks, et kepp pöörleks roboti suhtes, jookseb puitplokist üles varras, mis moodustab pöörleva laagri. Seejärel kinnitatakse see laager liigendi külge, et võimaldada pulgal kohanduda kasutaja kõrgusega.

Keerutussensor: pöördeandur võimaldab kasutajal roboti pööramiseks käepidet keerata. Ühe puidust võlli otsa on kinnitatud potentsiomeeter ning nupp sisestatakse ja liimitakse käepideme ülemisse ossa. Juhtmed jooksevad tüüblist alla ja suunavad keerdusinfo protsessorisse.

Samm: protsessor

Protsessor
Protsessor

Protsessor: robotit juhib Zbasic ZX-24a, mis asub Robodyssey Advanced emaplaadil II. Protsessor valiti kiiruse, kasutusmugavuse, taskukohase hinna ja 8 analoogsisendi tõttu. See on ühendatud suure prototüüpimisega leivalauaga, mis võimaldab kiireid ja lihtsaid muudatusi. Kogu roboti võimsus tuleb emaplaadi toiteallikast. Zbasic suhtleb roombaga kaubaruumi sadama kaudu ning tal on täielik kontroll Roomba andurite ja mootorite üle.

6. samm: koodi ülevaade

Koodi ülevaade
Koodi ülevaade

Takistuste vältimine: Takistuste vältimiseks kasutab eyeRobot meetodit, kus roboti lähedal olevad objektid avaldavad robotile virtuaalset jõudu, liigutades selle objektist eemale. Teisisõnu, objektid lükkavad roboti endast eemale. Minu rakenduses on objekti avaldatav virtuaalne jõud pöördvõrdeline kaugusega ruudus, nii et tõukejõud suureneb objekti lähemale jõudes ja loob mittelineaarse reageerimiskõvera: PushForce = ResponseMagnitudeConstant/Distance2Igalt andurilt tulevad tõuked liidetakse kokku; vasakul küljel asuvad andurid lükkavad paremale ja vastupidi, et saada roboti liikumiseks vektor. Seejärel muudetakse ratta kiirust, nii et robot pöörab selle vektori poole. Tagamaks, et roboti ees surnud objektid ei ilmutaks "ei reageeri" (kuna mõlema poole jõud on tasakaalus), suruvad surnud esiosa objektid roboti avatumaks. Kui robot on objektist möödunud, kasutab ta Roomba kodeerijaid muudatuse parandamiseks ja algse vektori juurde naasmiseks.

Seina jälgimine: Seina jälgimise põhimõte on säilitada soovitud kaugus ja paralleelne nurk seinaga. Probleemid tekivad siis, kui robot on seina suhtes pööratud, kuna üks andur annab kasutu vahemiku näidu. Vahemiku näitu mõjutab nii robotite nurk seina suhtes kui ka tegelik kaugus seinast. Nurga määramiseks ja selle muutuja kõrvaldamiseks peab robotil olema kaks võrdluspunkti, mida saab võrrelda, et saada robotite nurk. Kuna eyeRobotil on ainult üks külg suunatud IR -kaugusmõõturi poole, peab ta nende kahe punkti saavutamiseks võrdlema kaugust kaugusmõõtjast aja jooksul, kui robot liigub. Seejärel määrab see oma nurga kahe näidu erinevuse põhjal, kui robot liigub mööda seina. Seejärel kasutab ta seda teavet vale positsioneerimise parandamiseks. Robot läheb seinajälgimisrežiimi, kui tal on teatud aja jooksul sein kõrval, ja väljub sellest iga kord, kui tema teel on mõni takistus, mis selle teelt kõrvale lükkab, või kui kasutaja kasutab keeramiskäepidet robot seinast eemale.

Samm: osade loend

Osade nimekiri
Osade nimekiri

Vajalikud osad: 1x) Roomba create1x) Suur leht akrüüli2x) Sharp GP2Y0A02YK IR kaugusmõõtur Hinged, tüüblid, kruvid, mutrid, kronsteinid ja juhtmed

8. samm: motivatsioon ja täiustamine

Motivatsioon ja täiustamine
Motivatsioon ja täiustamine

Motivatsioon: See robot oli mõeldud ilmselge lõhe täitmiseks võimsa, kuid kalli juhtkoera ja odava, kuid piiratud valge kepi vahel. Roomba Create oli turustatava ja võimekama valge robotkepi väljatöötamisel ideaalne sõiduk kiire prototüübi kujundamiseks, et näha, kas kontseptsioon töötab. Lisaks pakuksid auhinnad majanduslikku tuge võimekama roboti ehitamise märkimisväärsetele kuludele.

Parandus: summa, mida ma selle roboti ehitamisel õppisin, oli märkimisväärne ja siin püüan ma kirjeldada seda, mida olen õppinud teise põlvkonna roboti ehitamisel: 1) takistuste vältimine - olen palju õppinud reaalajas esinevate takistuste kohta vältimine. Selle roboti ehitamise käigus olen läbinud kaks täiesti erinevat takistuste vältimise koodi, alustades esialgsest objekti jõu ideest, liikudes seejärel kõige avatuma vektori leidmise ja otsimise põhimõtte juurde ning liikudes tagasi objekti jõu idee juurde võtmetunnistus, et objekti vastus peaks olema mittelineaarne. Tulevikus parandan oma vea, et enne projektiga alustamist ei uurinud varem kasutatud meetodeid veebis, kuna nüüd õpin kiiret Google'i otsingut, mis oleks andnud selle teema kohta palju suurepäraseid dokumente. andurid - Selle projekti alguses arvasin, et minu ainus võimalus lineaarse anduri jaoks on kasutada libisemispotti ja mingit lineaarset laagrit. Nüüd saan aru, et palju lihtsam variant oleks olnud lihtsalt varda ülaosa juhtkangi külge kinnitada, nii et pulga ettepoole lükkamine lükaks juhtkangi ka ettepoole. Lisaks võimaldaks lihtne universaalliigend muuta pulga keerdumist paljude kaasaegsete juhtkangi keerdumisteljeks. See teostus oleks olnud palju lihtsam kui see, mida ma praegu kasutan. 3) Vabalt pöörlevad rattad - kuigi see oleks Roombaga võimatu olnud, tundub nüüd ilmne, et vabalt pöörlevate ratastega robot oleks selle ülesande jaoks ideaalne. Passiivselt veerev robot ei vajaks mootoreid ja väiksemat akut ning oleks seega kergem. Lisaks ei vaja see süsteem kasutajate tõuke tuvastamiseks lineaarset andurit, robot veereks lihtsalt kasutaja kiirusel. Robotit sai keerata rattaid roolides nagu autot ja kui kasutaja oli vaja peatada, võis lisada pidurid. Järgmise põlvkonna eyeRoboti puhul kasutan ma kindlasti seda väga erinevat lähenemist. 4) Kaks vahekaugusega andurit seina jälgimiseks - Nagu varem arutatud, tekkisid probleemid, kui prooviti seina jälgida ainult ühe külje poole suunatud anduriga, seega oli vaja robotit näitude vahel liigutada erinevate võrdluspunktide saavutamiseks. Kaks andurit, mille vahekaugus on nende vahel, lihtsustaks oluliselt seina jälgimist.5) Rohkem andureid - kuigi see oleks maksnud rohkem raha, oli raske proovida seda robotit kodeerida nii vähese aknaga väljaspool protsessorit. See oleks teinud navigeerimiskoodi terviklikuma sonari massiiviga palju võimsamaks (aga muidugi andurid maksavad raha, mida mul tol ajal polnud).

9. samm: järeldus

Järeldus
Järeldus

Järeldus: iRobot osutus ideaalseks prototüüpimisplatvormiks, mille abil sai katsetada robot -valge roo kontseptsiooni. Selle prototüübi tulemustest nähtub, et seda tüüpi robot on tõepoolest elujõuline. Loodan arendada teise põlvkonna robotit õppetundidest, mille olen saanud Roomba Create'i kasutamisel. EyeRoboti tulevastes versioonides kujutan ma ette seadet, mis suudab enamat kui lihtsalt inimese esikusse suunamist, pigem robotit, mille saab pimedate kätte igapäevaelus kasutada. Selle robotiga räägiks kasutaja lihtsalt oma sihtkoha ja robot juhataks nad sinna ilma kasutaja teadliku pingutuseta. See robot oleks piisavalt kerge ja kompaktne, et seda oleks lihtne trepist üles kanda ja kappi peita. See robot oleks võimeline lisaks kohalikule tegema ka globaalset navigeerimist, juhtides kasutajat algusest sihtkohta ilma kasutajate eelnevate teadmisteta või kogemusteta. See võimalus läheks kaugemale isegi juhtkoerast, kuna GPS ja täiustatud andurid võimaldavad pimedatel vabalt maailmas navigeerida, Nathaniel Barshay, (sisestab Stephen Barshay) (Eriline tänu Jack Hittile Roomba Create'i eest)

10. samm: ehitus ja kood

Ehitus ja kood
Ehitus ja kood

Paar kõrvalist sõna ehituse kohta: Tekk, mis on valmistatud ringikujuliselt lõigatud akrüülist, mille tagaküljel on ava elektroonikale ligipääsemiseks, ja keeratakse seejärel kaubaruumi kõrval olevatesse kinnitusavadesse. Prototüüpimisplaat kruvitakse lahtri põhjas olevasse kruviavasse. Zbasic on paigaldatud L -klambriga, millel on samad kruvid kui tekil. Iga sonar kruvitakse akrüülitüki sisse, mis omakorda on kinnitatud teki külge kinnitatud L -kronsteini külge (parema ülevaate saamiseks on L -klambrid 10 kraadi tagasi painutatud). Lineaarse anduri rada keeratakse otse teki sisse ja slaidipott on paigaldatud L -sulgudega selle kõrvale. Lineaarse anduri ja juhtvarda konstruktsiooni tehnilisema kirjelduse leiate 4. sammust.

Kood: Lisasin robotikoodi täisversiooni. Tunni jooksul olen püüdnud seda puhastada failis olnud kolme -nelja põlvkonna koodist, nüüd peaks seda olema piisavalt lihtne järgida. Kui teil on ZBasic IDE, peaks seda olema lihtne vaadata, kui mitte, kasutage märkmikku, mis algab failist main.bas ja läbib teisi.bas -faile.

Soovitan: