Talaan ng mga Nilalaman:

EyeRobot - ang Robotic White Cane: 10 Hakbang (na may Mga Larawan)
EyeRobot - ang Robotic White Cane: 10 Hakbang (na may Mga Larawan)

Video: EyeRobot - ang Robotic White Cane: 10 Hakbang (na may Mga Larawan)

Video: EyeRobot - ang Robotic White Cane: 10 Hakbang (na may Mga Larawan)
Video: Smart Cane Gives the Blind Freedom to Explore 2024, Hulyo
Anonim
EyeRobot - ang Robotic White Cane
EyeRobot - ang Robotic White Cane

Abstract: Gamit ang iRobot Roomba Lumikha, naka-prototyp ako ng isang aparato na tinatawag na eyeRobot. Gagabayan nito ang mga gumagamit ng bulag at may kapansanan sa paningin sa pamamagitan ng kalat at populasyon na mga kapaligiran sa pamamagitan ng paggamit ng Roomba bilang isang batayan upang pakasalan ang pagiging simple ng tradisyunal na puting tungkod na may mga ugali ng isang nakakakita na aso. Ipinapahiwatig ng gumagamit ang kanyang ninanais na paggalaw sa pamamagitan ng intuitively na pagtulak sa at pag-ikot ng hawakan. Dadalhin ng robot ang impormasyong ito at nakakahanap ng isang malinaw na landas sa isang pasilyo o sa isang silid, gamit ang sonar upang patnubayan ang gumagamit sa isang naaangkop na direksyon sa paligid ng mga static at pabago-bagong hadlang. Sumusunod ang gumagamit sa likod ng robot habang ginagabayan nito ang gumagamit sa nais na direksyon ng kapansin-pansin na puwersang nadama sa pamamagitan ng hawakan. Ang robotic na pagpipilian na ito ay nangangailangan ng kaunting pagsasanay: itulak upang pumunta, hilahin upang itigil, i-twist upang lumiko. Ang foresight na ibinibigay ng mga rangefinders ay katulad ng nakakakita na eye dog, at isang malaking kalamangan sa patuloy na pagsubok at error na nagmamarka sa paggamit ng puting tungkod. Gayunpaman ang eyeRobot ay nagbibigay pa rin ng isang mas mura na kahalili kaysa sa mga gabay na aso, na nagkakahalaga ng higit sa $ 12, 000 at kapaki-pakinabang sa loob lamang ng 5 taon, habang ang prototype ay itinayo nang mas mababa sa $ 400. Ito rin ay isang simpleng simpleng makina, na nangangailangan ng ilang mga murang sensor, iba't ibang mga potensyal, ilang hardware, at syempre, isang Roomba Lumikha.

Hakbang 1: Pagpapakita ng Video

Pagpapakita ng Video
Pagpapakita ng Video

Bersyon ng Mataas na Kalidad

Hakbang 2: Pangkalahatang-ideya ng Operasyon

Pangkalahatang-ideya ng Operasyon
Pangkalahatang-ideya ng Operasyon

User Control: Ang pagpapatakbo ng eyeRobot ay idinisenyo upang maging madaling maunawaan hangga't maaari upang lubos na mabawasan o matanggal ang pagsasanay. Upang masimulan ang paggalaw ang gumagamit ay kailangang magsimulang maglakad pasulong, ang isang linear sensor sa base ng stick ay kukunin ang paggalaw na ito at simulang ilipat ang robot pasulong. Gamit ang linear sensor na ito, maaaring itugma ng robot ang bilis nito sa nais na bilis ng gumagamit. ang eyeRobot ay lilipat ng mas mabilis hangga't nais ng gumagamit na pumunta. Upang ipahiwatig na ang isang pagliko ay ninanais, kailangan lamang ng gumagamit na iikot ang hawakan, at kung posible ang isang pagliko, ang robot ay tutugon nang naaayon.

Pag-navigate sa Robot: Kapag naglalakbay sa bukas na espasyo, susubukan ng eyeRobot na mapanatili ang isang tuwid na landas, na mahahanap ang anumang balakid na maaaring makahadlang sa gumagamit, at gabayan ang gumagamit sa paligid ng bagay na iyon at bumalik sa orihinal na landas. Sa pagsasanay ang gumagamit ay maaaring natural na sundin sa likod ng robot na may maliit na pag-iisip. Upang mag-navigate sa isang pasilyo, dapat subukang itulak ng gumagamit ang robot sa isa sa mga pader sa magkabilang panig, sa pagkuha ng isang pader ang robot ay magsisimulang sundin ito, gumagabay ang gumagamit sa pasilyo. Kapag naabot ang isang interseksyon, mararamdaman ng gumagamit ang robot na magsisimulang lumiko, at maaaring pumili, sa pamamagitan ng pag-ikot ng hawakan, kung tatanggihan ang bagong offshoot o magpatuloy sa isang tuwid na landas. Sa ganitong paraan ang robot ay katulad ng puting tungkod, madarama ng gumagamit ang kapaligiran sa robot at gamitin ang impormasyong ito para sa pandaigdigang pag-navigate.

Hakbang 3: Mga Range Sensor

Mga Range Sensor
Mga Range Sensor

Ultrasonics: Ang eyeRobot ay nagdadala ng 4 Ultrasonic rangefinders (MaxSonar EZ1). Ang mga ultrasonic sensor ay nakaposisyon sa isang arko sa harap ng robot upang magbigay ng impormasyon tungkol sa mga bagay sa harap at sa mga gilid ng robot. Ipinaalam nila sa robot ang tungkol sa saklaw ng bagay at tinutulungan silang makahanap ng isang bukas na ruta sa paligid ng bagay na iyon at bumalik sa orihinal na landas nito.

IR Rangefinders: Ang eyeRobot ay nagdadala din ng dalawang IR sensor (GP2Y0A02YK). Ang mga IR rangefinders ay nakaposisyon upang harapin ang 90 degree sa kanan at kaliwa upang tulungan ang robot sa pagsunod sa dingding. Maaari din nilang alertuhan ang robot ng mga bagay na masyadong malapit sa mga gilid nito na maaaring lakarin ng gumagamit.

Hakbang 4: Mga Sensor ng Posisyon ng Cane

Mga Sensor ng Posisyon ng Cane
Mga Sensor ng Posisyon ng Cane

Linear Sensor: Upang maitugma ng eyeRobot ang bilis nito sa gumagamit, nararamdaman ng eyeRobot kung pinipilit o pinapaliban ng user ang paggalaw nito sa unahan. Nakamit ito sa pamamagitan ng pag-slide ng base ng tungkod sa isang track, bilang isang potentiometer na nadarama ang posisyon ng tungkod. Gumagamit ang eyeRobot ng input na ito upang makontrol ang bilis ng robot. Ang ideya ng eyeRobot na umaangkop sa bilis ng gumagamit sa pamamagitan ng isang linear sensor ay talagang inspirasyon ng lawnmower ng pamilya. Ang base ng tungkod ay konektado sa isang gabay ng bloke na gumagalaw sa kahabaan ng isang riles. Nakalakip sa block ng gabay ay isang slide potentiometer na binabasa ang posisyon ng gabay ng bloke at iulat ito sa processor. Upang pahintulutan ang stick na paikutin na kaugnay sa robot mayroong isang tungkod na tumatakbo sa pamamagitan ng isang bloke ng kahoy, na bumubuo ng isang umiikot na tindig. Ang tindig na ito pagkatapos ay nakakabit sa isang bisagra upang payagan ang stick na ayusin sa taas ng gumagamit.

Twist Sensor: Pinapayagan ng sensor ng twist ang gumagamit na iikot sa hawakan upang i-on ang robot. Ang isang potentiometer ay nakakabit sa dulo ng isang kahoy na baras at ang hawakan ng pinto ay ipinasok at nakadikit sa itaas na bahagi ng hawakan. Pinatakbo ng mga wire ang dowel at pinapakain ang impormasyon ng pag-ikot sa processor.

Hakbang 5: Proseso

Nagpoproseso
Nagpoproseso

Proseso: Ang robot ay kinokontrol ng isang Zbasic ZX-24a na nakaupo sa isang Robodyssey Advanced Motherboard II. Napili ang processor para sa bilis, kadalian sa paggamit, abot-kayang gastos, at 8 mga input ng Analog. Nakakonekta ito sa isang malaking prototyping breadboard upang payagan ang mabilis at madaling pagbabago. Ang lahat ng lakas para sa robot ay nagmula sa power supply sa motherboard. Nakikipag-usap ang Zbasic sa roomba sa pamamagitan ng cargo bay port, at may ganap na kontrol sa mga sensor at motor ng Roomba.

Hakbang 6: Pangkalahatang-ideya ng Code

Pangkalahatang-ideya ng Code
Pangkalahatang-ideya ng Code

Pag-iwas sa sagabal: Para sa pag-iwas sa balakid ang eyeRobot ay gumagamit ng isang pamamaraan kung saan ang mga bagay na malapit sa robot ay nagsisikap ng isang virtual na puwersa sa robot na inililayo ito mula sa bagay. Sa madaling salita, itinutulak ng mga bagay ang robot mula sa kanilang sarili. Sa aking pagpapatupad, ang virtual na puwersang isinagawa ng isang bagay ay baligtad na proporsyonal sa distansya na parisukat, kaya't tumataas ang lakas ng tulak habang lumalapit ang bagay at lumilikha ng isang hindi linya na curve ng tugon: PushForce = ResponseMagnitudeConstant / Distance2Ang mga pagtulak na nagmumula sa bawat sensor ay idinagdag magkasama; ang mga sensor sa kaliwang bahagi ay itulak pakanan, at sa kabaligtaran, upang makakuha ng isang vector para sa paglalakbay ng robot. Pagkatapos ay binago ang mga bilis ng gulong kaya't ang robot ay lumiliko patungo sa vector na ito. Upang matiyak na ang mga bagay na patay sa harap ng robot ay hindi nagpapakita ng isang "walang tugon" (dahil ang mga puwersa sa magkabilang panig ay balanse), ang mga bagay sa patay na harapan ay itulak ang robot sa mas bukas na panig. Kapag naipasa na ng robot ang object pagkatapos ay gumagamit ito ng mga encoder ng Roomba upang itama ang pagbabago at bumalik sa orihinal na vector.

Sumusunod sa Wall: Ang prinsipyo ng pagsunod sa dingding ay upang mapanatili ang isang nais na distansya at parallel na anggulo sa isang pader. Lumilitaw ang mga isyu kapag ang robot ay nakabukas kaugnay sa dingding sapagkat ang nag-iisang sensor ay nagbubunga ng walang silbi na mga pagbasa sa saklaw. Ang mga pagbabasa ng saklaw ay naisagawa ng mga anggulo ng mga robot sa dingding tulad ng aktwal na distansya sa dingding. Upang matukoy ang anggulo at sa gayon matanggal ang variable na ito, ang robot ay dapat magkaroon ng dalawang puntos ng sanggunian na maihahalintulad upang makuha ang anggulo ng mga robot. Dahil ang eyeRobot ay mayroon lamang isang panig na nakaharap sa IR rangefinder, upang makamit ang dalawang puntong ito dapat itong ihambing ang distansya mula sa rangefinder sa paglipas ng panahon habang gumagalaw ang robot. Tinutukoy nito ang anggulo nito mula sa pagkakaiba sa pagitan ng dalawang pagbasa habang gumagalaw ang robot sa dingding. Ginagamit nito pagkatapos ang impormasyong ito upang itama para sa hindi tamang pagpoposisyon. Ang robot ay pumupunta sa mode na sumusunod sa pader tuwing mayroon itong pader sa tabi nito para sa isang tiyak na tagal ng oras at lumalabas ito tuwing may isang balakid sa daanan nito, na tinutulak ito sa kurso nito, o kung gumagamit ang gumagamit ng i-twist ang hawakan upang dalhin ang robot ang layo mula sa dingding.

Hakbang 7: Listahan ng Mga Bahagi

Listahan ng Mga Bahagi
Listahan ng Mga Bahagi

Mga Kinakailangan na Bahagi: 1x) Roomba create1x) Malaking sheet ng acrylic2x) Biglang GP2Y0A02YK IR rangefinder4x) Maxsonar EZ1 ultrasonic rangefinders1x) ZX-24a microprocessor1x) Robodyssey Advanced Motherboard II1x) Slide potentiometer1x) Single turn potentiometerx) Linear bearing1) Mga bisagra, dowel, turnilyo, mani, braket, at mga wire

Hakbang 8: Pagganyak at Pagpapaganda

Pagganyak at Pagpapaganda
Pagganyak at Pagpapaganda

Pagganyak: Ang robot na ito ay dinisenyo upang punan ang halatang puwang sa pagitan ng may kakayahang ngunit mamahaling gabay na aso at ang murang ngunit limitadong puting tungkod. Sa pagbuo ng isang mabibili at mas may kakayahang Robotic White Cane, ang Roomba Lumikha ay ang perpektong sasakyan para sa pagdidisenyo ng isang mabilis na prototype upang makita kung gumana ang konsepto. Bilang karagdagan, ang mga premyo ay magbibigay ng pang-ekonomiyang pagsuporta para sa malaking gastos sa pagbuo ng isang mas may kakayahang robot.

Pagpapaganda: Ang halagang natutunan ko sa pagbuo ng robot na ito ay malaki at dito susubukan kong ilatag ang natutunan sa paglipat ko sa pagtatangka na bumuo ng isang pangalawang henerasyong robot: 1) Pag-iwas sa Balakid - Maraming natutunan ako tungkol sa balakid sa real time pag-iwas. Sa proseso ng pagbuo ng robot na ito dumaan ako sa dalawang ganap na magkakaibang mga code ng pag-iwas sa balakid, nagsisimula sa orihinal na ideya ng puwersa ng object, pagkatapos ay lumipat sa prinsipyo ng paghahanap at paghanap ng pinaka-bukas na vector, at pagkatapos ay bumalik sa ideya ng puwersa ng object na may ang pangunahing pagkaunawa na ang tugon ng object ay dapat na hindi linear. Sa hinaharap ay maitatama ko ang aking pagkakamali sa hindi paggawa ng anumang pagsasaliksik sa online ng dati nang ginagamit na mga pamamaraan bago magsimula sa aking proyekto, dahil natututunan ko ngayon ang isang mabilis na paghahanap sa Google ay nagbigay ng maraming magagaling na mga papel sa paksa. 2) Disenyo ng stick mga sensor - Simula sa proyektong ito naisip ko ang aking tanging pagpipilian para sa isang linear sensor ay ang paggamit ng isang slide pot at ilang uri ng linear na tindig. Napagtanto ko ngayon na ang isang mas simpleng pagpipilian ay ang simpleng ilakip ang tuktok ng tungkod sa isang joystick, tulad ng pagtulak ng stick pasulong ay itulak din ang joystick pasulong. Bilang karagdagan ang isang simpleng unibersal na pinagsamang ay magbibigay-daan sa pag-ikot ng stick na isinalin sa iuwi sa ibang bahagi ng maraming mga modernong joystick. Ang pagpapatupad na ito ay magiging mas simple kaysa sa kasalukuyan kong ginagamit.3) Libreng mga gulong na paikot - Bagaman imposible ito sa Roomba, tila halata na ang isang robot na may libreng gulong ay magiging perpekto para sa gawaing ito. Ang isang robot na gumagalaw nang passively ay mangangailangan ng walang mga motor at isang mas maliit na baterya at sa gayon ay magaan. Bilang karagdagan, ang sistemang ito ay hindi nangangailangan ng isang linear sensor upang makita ang push ng mga gumagamit, ang robot ay iikot lamang sa bilis ng mga gumagamit. Ang robot ay maaaring i-on sa pamamagitan ng pagpipiloto ng mga gulong tulad ng isang kotse, at kung ang gumagamit ay kailangang tumigil sa preno ay maaaring idagdag. Para sa susunod na henerasyon na eyeRobot tiyak na gagamitin ko ang ibang-iba nitong diskarte.4) Dalawang spaced sensor para sa pagsunod sa dingding - Tulad ng tinalakay na naunang mga problema ay lumitaw kapag sinusubukan na sundin ang dingding na may isang gilid lamang na nakaharap sa sensor, kaya kinakailangan upang ilipat ang robot sa pagitan ng mga pagbasa upang makamit ang iba't ibang mga punto ng sanggunian. Ang dalawang mga sensor na may distansya sa pagitan nila ay magpapadali sa pagsunod sa dingding.5) Higit pang mga sensor - Kahit na ito ay nagkakahalaga ng mas maraming pera mahirap na subukang i-code ang robot na ito sa napakakaunting mga bintana sa mundo sa labas ng processor. Ginagawa sana nito ang code ng nabigasyon na mas malakas pa sa isang mas kumpletong sonar array (ngunit syempre ang mga sensor ay nagkakahalaga ng pera, na wala sa akin noon).

Hakbang 9: Konklusyon

Konklusyon
Konklusyon

Konklusyon: Ang iRobot ay nagpatunay ng isang perpektong platform ng prototyping para sa pag-eksperimento sa konsepto ng isang Robotic White Cane. Mula sa mga resulta ng prototype na ito ay maliwanag na ang isang robot ng ganitong uri ay talagang mabubuhay. Inaasahan kong bumuo ng isang pangalawang henerasyon ng robot mula sa mga natutunan kong aralin mula sa paggamit ng Roomba Lumikha. Sa mga hinaharap na bersyon ng eyeRobot naiisip ko ang isang aparato na may kakayahang gumawa ng higit pa sa paggabay sa isang tao sa isang pasilyo, sa halip isang robot na maaaring ilagay sa mga kamay ng bulag para magamit sa pang-araw-araw na buhay. Gamit ang robot na ito, sasabihin lamang ng gumagamit ang kanilang patutunguhan at gagabayan sila ng robot doon nang walang malay na pagsisikap mula sa gumagamit. Ang robot na ito ay magiging magaan at sapat na siksik upang madaling madala sa hagdan, at isuksok sa isang kubeta. Ang robot na ito ay makakagawa ng pandaigdigan na pag-navigate bilang karagdagan sa lokal, magagawang gabayan ang gumagamit mula simula hanggang patutunguhan nang walang naunang kaalaman o karanasan ng mga gumagamit. Ang kakayahang ito ay mapupunta nang higit pa sa gabay na aso, na may GPS at mas advanced na mga sensor na pinapayagan ang bulag na malayang mag-navigate sa mundo, Nathaniel Barshay, (Pinasok ni Stephen Barshay) (Espesyal na salamat kay Jack Hitt para sa Roomba Lumikha)

Hakbang 10: Konstruksiyon at Code

Konstruksiyon at Code
Konstruksiyon at Code

Ang ilang mga extraneous na salita sa konstruksyon: Ang deck ng ginawa ng isang piraso ng acrylic na gupitin sa isang bilog na may isang pambungad sa likuran upang payagan ang pag-access sa electronics, at pagkatapos ay isinalansing sa mga tumataas na butas sa tabi ng cargo bay. Ang prototyping board ay naka-screw sa butas ng tornilyo sa ilalim ng bay. Ang Zbasic ay naka-mount na may isang L bracket na may parehong mga turnilyo tulad ng deck. Ang bawat sonar ay naka-screwed sa isang piraso ng acrylic, na kung saan ay naka-attach sa isang L bracket na nakakabit sa deck (ang L brackets ay baluktot na pabalik 10 degree upang bigyan ang isang mas mahusay na pagtingin). Ang track para sa linear sensor ay naka-screw mismo sa deck at ang slide pot ay naka-mount na may mga L bracket sa tabi nito. Ang isang mas teknikal na paglalarawan ng pagtatayo ng linear sensor at control rod ay matatagpuan sa hakbang 4.

Code: Ikinabit ko ang buong bersyon ng robots code. Sa paglipas ng isang oras sinubukan kong linisin ito mula sa tatlo o apat na henerasyon ng code na nasa file, dapat ay sapat na madali upang sundin ngayon. Kung mayroon kang ZBasic IDE dapat itong madaling tingnan, kung hindi gumagamit ng notepad na nagsisimula sa main.bas ng file at dumaan sa iba pang mga.bas file.

Inirerekumendang: