Turinys:

„EyeRobot“- robotizuota balta lazdelė: 10 žingsnių (su nuotraukomis)
„EyeRobot“- robotizuota balta lazdelė: 10 žingsnių (su nuotraukomis)

Video: „EyeRobot“- robotizuota balta lazdelė: 10 žingsnių (su nuotraukomis)

Video: „EyeRobot“- robotizuota balta lazdelė: 10 žingsnių (su nuotraukomis)
Video: eyeRobot: Heterogeneous Programming Gesture Control 2024, Liepa
Anonim
„EyeRobot“- robotizuota balta lazdelė
„EyeRobot“- robotizuota balta lazdelė

Santrauka: Naudodamas „iRobot Roomba Create“, sukūriau įrenginio, pavadinto „eyeRobot“, prototipą. Jis padės akliesiems ir silpnaregiams vartotojams perkrauti ir apgyvendintą aplinką, naudojant „Roomba“kaip pagrindą susieti tradicinės baltos lazdelės paprastumą su reginčio šuns instinktais. Vartotojas nurodo norimą judesį intuityviai stumdamas ir sukdamas rankeną. Robotas paima šią informaciją ir randa aiškų kelią koridoriuje arba per kambarį, naudodamas sonarą, kad nukreiptų naudotoją tinkama kryptimi aplink statines ir dinamiškas kliūtis. Tada vartotojas seka už roboto, nes jis nukreipia naudotoją norima kryptimi pastebima jėga, jaučiama per rankeną. Šis robotų variantas reikalauja mažai treniruočių: stumti eiti, traukti sustoti, sukti, kad pasuktumėte. Tolimojo nuotolio ieškiklių numatymas yra panašus į matantį akių šunį ir yra didelis pranašumas, palyginti su nuolatiniais bandymais ir klaidomis, žyminčiomis baltosios lazdelės naudojimą. Tačiau „eyeRobot“vis dar siūlo daug pigesnę alternatyvą nei šunys vedliai, kurie kainuoja daugiau nei 12 000 USD ir yra naudingi tik 5 metus, o prototipas buvo sukurtas už mažiau nei 400 USD. Tai taip pat gana paprasta mašina, kuriai reikalingi keli nebrangūs jutikliai, įvairūs potenciometrai, šiek tiek aparatūros ir, žinoma, „Roomba Create“.

1 žingsnis: vaizdo įrašo demonstravimas

Vaizdo demonstravimas
Vaizdo demonstravimas

Aukštos kokybės versija

2 žingsnis: operacijos apžvalga

Operacijos apžvalga
Operacijos apžvalga

Vartotojo valdymas: „eyeRobot“valdymas sukurtas taip, kad būtų kuo intuityvesnis, kad žymiai sumažintų ar pašalintų treniruotes. Norėdami pradėti judėti, vartotojas tiesiog turi pradėti eiti į priekį, linijinis jutiklis, esantis lazdos pagrinde, paims šį judesį ir pradės judinti robotą į priekį. Naudodamas šį tiesinį jutiklį, robotas gali suderinti savo greitį su norimu vartotojo greičiu. „eyeRobot“judės taip greitai, kaip vartotojas nori. Norėdamas parodyti, kad norima apsisukti, vartotojas tiesiog turi pasukti rankenėlę, o jei įmanoma apsisukti, robotas atitinkamai sureaguos.

Navigacija su robotu: keliaudama atviroje erdvėje, „eyeRobot“bandys išlaikyti tiesų kelią, aptikdama bet kokias kliūtis, kurios gali trukdyti vartotojui, ir nukreipia naudotoją aplink tą objektą ir grįžta į pradinį kelią. Praktiškai vartotojas gali natūraliai sekti už roboto, mažai apgalvojęs. Norėdami naršyti koridoriuje, vartotojas turėtų pabandyti įstumti robotą į vieną iš sienų iš abiejų pusių, įgijęs sieną, robotas pradės juo sekti, vadovaudamasis vartotojas koridoriuje. Pasiekus sankryžą, vartotojas pajus, kaip robotas pradeda suktis, ir, sukdamas rankenėlę, gali pasirinkti, ar atmesti naują atšaką, ar tęsti tiesų kelią. Tokiu būdu robotas yra labai panašus į baltąją lazdelę, vartotojas gali jausti aplinką su robotu ir naudoti šią informaciją pasaulinei navigacijai.

3 žingsnis: diapazono jutikliai

Diapazono jutikliai
Diapazono jutikliai

Ultragarsas: „eyeRobot“turi 4 ultragarsinius nuotolio ieškiklius („MaxSonar EZ1“). Ultragarso jutikliai yra išdėstyti lanku roboto priekyje, kad būtų suteikta informacija apie objektus priešais ir į šonus. Jie informuoja robotą apie objekto diapazoną ir padeda jam rasti atvirą maršrutą aplink tą objektą ir grįžti į pradinį kelią.

IR diapazono ieškikliai: „EyeRobot“taip pat turi du IR jutiklius (GP2Y0A02YK). Infraraudonųjų spindulių nuotolio ieškikliai yra nukreipti 90 laipsnių kampu į dešinę ir į kairę, kad padėtų robotui sekti sieną. Jie taip pat gali įspėti robotą apie objektus, esančius per arti jo šonų, į kuriuos vartotojas gali įeiti.

4 žingsnis: lazdelės padėties jutikliai

Lazdelės padėties jutikliai
Lazdelės padėties jutikliai

Linijinis jutiklis: kad „eyeRobot“atitiktų jo greitį ir vartotojo greitį, „eyeRobot“jaučia, ar vartotojas stumia ar stabdo judesį į priekį. Tai pasiekiama stumdant cukranendrių pagrindą išilgai bėgių kelio, nes potenciometras pajunta cukranendrių padėtį. „EyeRobot“naudoja šį įvestį roboto greičiui reguliuoti. „Robot“, prisitaikantis prie vartotojo greičio per linijinį jutiklį, iš tikrųjų buvo įkvėptas šeimos vejapjovės. Lazdelės pagrindas prijungtas prie kreipiančiojo bloko, judančio išilgai bėgio. Prie kreipiamojo bloko pritvirtintas skaidrių potenciometras, kuris nuskaito kreipiamojo bloko padėtį ir praneša apie tai procesoriui. Kad lazda galėtų suktis roboto atžvilgiu, per medžio bloką bėga strypas, suformuojantis besisukantį guolį. Tada šis guolis pritvirtinamas prie vyrio, kad lazda galėtų prisitaikyti prie vartotojo ūgio.

Sukimo jutiklis: sukimo jutiklis leidžia vartotojui pasukti rankenėlę, kad būtų galima pasukti robotą. Prie vieno medinio veleno galo pritvirtintas potenciometras, o rankenėlė įkišta ir priklijuota prie viršutinės rankenos dalies. Laidai eina žemyn kaiščiu ir perduoda sukimo informaciją į procesorių.

5 žingsnis: procesorius

Procesorius
Procesorius

Procesorius: robotą valdo „Zbasic ZX-24a“, sėdintis ant „Robodyssey Advanced“pagrindinės plokštės II. Procesorius buvo pasirinktas dėl jo greičio, naudojimo paprastumo, prieinamos kainos ir 8 analoginių įėjimų. Jis prijungtas prie didelės duonos lentos prototipų, kad būtų galima greitai ir lengvai pakeisti. Visa roboto energija gaunama iš maitinimo šaltinio pagrindinėje plokštėje. „Zbasic“bendrauja su „roomba“per krovinių skyriaus uostą ir visiškai kontroliuoja „Roomba“jutiklius ir variklius.

6 žingsnis: kodo apžvalga

Kodo apžvalga
Kodo apžvalga

Kliūčių vengimas: Kad išvengtų kliūčių, „eyeRobot“naudoja metodą, kai objektai, esantys šalia roboto, daro virtualią jėgą robotui, atitolindami jį nuo objekto. Kitaip tariant, objektai atstumia robotą nuo savęs. Mano įgyvendinimo metu objekto veikiama virtuali jėga yra atvirkščiai proporcinga atstumui kvadrate, todėl pastūmimo jėga didėja artėjant objektui ir sukuriant netiesinę atsako kreivę: PushForce = ResponseMagnitudeConstant/Distance2Paspaudimai, gaunami iš kiekvieno jutiklio, sudedami; jutikliai kairėje pusėje stumia dešinę ir atvirkščiai, kad gautų roboto kelionės vektorių. Tada keičiami ratų greičiai, kad robotas pasuktų link šio vektoriaus. Siekiant užtikrinti, kad priešais robotą negyvi objektai neparodytų „jokio atsako“(nes abiejų pusių jėgos subalansuotos), objektai į negyvą frontą stumia robotą į atviresnę pusę. Kai robotas praėjo objektą, jis naudojasi „Roomba“koduotojais, kad ištaisytų pakeitimą ir grįžtų prie pradinio vektoriaus.

Sienų sekimas: Sienų sekimo principas yra išlaikyti norimą atstumą ir lygiagretų kampą su siena. Problemos kyla, kai robotas pasukamas sienos atžvilgiu, nes vienas jutiklis duoda nenaudingus diapazono rodmenis. Diapazono rodmenis lemia robotų kampas į sieną ir faktinis atstumas iki sienos. Norint nustatyti kampą ir taip pašalinti šį kintamąjį, robotas turi turėti du atskaitos taškus, kuriuos galima palyginti, kad gautumėte roboto kampą. Kadangi „eyeRobot“turi tik vieną pusę, nukreiptą į IR atstumo ieškiklį, norėdamas pasiekti šiuos du taškus, robotas juda, jis turi palyginti atstumą nuo nuotolio ieškiklio laikui bėgant. Tada jis nustato jo kampą pagal dviejų rodmenų skirtumą, kai robotas juda išilgai sienos. Tada ji naudoja šią informaciją, kad ištaisytų netinkamą padėtį. Robotas pereina į sekimo į sieną režimą, kai tam tikrą laiką turi sieną šalia jo, ir išeina iš jo, kai jo kelyje yra kliūtis, kuri jį atstumia, arba jei naudotojas pasuka rankenėlę robotas toli nuo sienos.

7 žingsnis: dalių sąrašas

Dalių sąrašas
Dalių sąrašas

Reikalingos dalys: 1x) „Roomba create1x“) didelis akrilo lapas2x) „Sharp GP2Y0A02YK“IR diapazono ieškiklis4x) „Maxsonar EZ1“ultragarso nuotolio ieškikliai Vyriai, kaiščiai, varžtai, veržlės, laikikliai ir laidai

8 žingsnis: Motyvacija ir tobulėjimas

Motyvacija ir tobulėjimas
Motyvacija ir tobulėjimas

Motyvacija: Šis robotas buvo sukurtas užpildyti akivaizdžią spragą tarp galingo, bet brangaus šuns vedlio ir nebrangios, bet ribotos baltos lazdelės. Kuriant parduodamą ir galingesnę baltą robotą lazdelę, „Roomba Create“buvo puiki priemonė greitam prototipui sukurti, kad būtų galima pamatyti, ar ši koncepcija veikia. Be to, prizai suteiks ekonominę paramą didelėms pajėgesnio roboto kūrimo išlaidoms.

Patobulinimas: suma, kurią išmokau kurdama šį robotą, buvo didelė, ir čia pabandysiu išdėstyti tai, ką išmokau, kai bandysiu sukurti antros kartos robotą: 1) kliūčių vengimas - daug sužinojau apie kliūtis realiu laiku vengimas. Kurdamas šį robotą aš perėjau du visiškai skirtingus kliūčių vengimo kodus, pradėdamas nuo pradinės objekto jėgos idėjos, tada pereidamas prie atviriausio vektoriaus paieškos ir paieškos principo, o tada grįždamas prie objekto jėgos idėjos pagrindinis suvokimas, kad objekto atsakas turi būti nelinijinis. Ateityje ištaisysiu savo klaidą, prieš pradėdamas įgyvendinti savo projektą neatlikęs jokių anksčiau naudotų metodų tyrimų internete, nes dabar mokausi, kad greita „Google“paieška būtų davusi daug puikių darbų šia tema. 2) jutikliai - Pradėdamas šį projektą maniau, kad mano vienintelis linijinio jutiklio pasirinkimas yra naudoti slankiklį ir tam tikrą linijinį guolį. Dabar suprantu, kad daug paprastesnis variantas būtų buvęs tiesiog pritvirtinti strypo viršų prie vairasvirtės taip, kad stumiant lazdą į priekį taip pat būtų stumiama vairasvirtė į priekį. Be to, paprasta universali jungtis leistų lazdos sukimąsi paversti daugelio šiuolaikinių vairasvirtių sukimo ašimi. Šis įgyvendinimas būtų buvęs daug paprastesnis nei tas, kurį šiuo metu naudoju. 3) Laisvai besisukantys ratai - nors tai būtų buvę neįmanoma naudojant „Roomba“, dabar atrodo akivaizdu, kad robotas su laisvai besisukančiais ratais būtų idealus šiai užduočiai atlikti. Pasyviai riedančiam robotui nereikėtų variklių ir mažesnės baterijos, todėl jis būtų lengvesnis. Be to, šiai sistemai nereikia linijinio jutiklio, kad būtų galima aptikti vartotojų stūmimą, robotas tiesiog riedėtų vartotojų greičiu. Robotą galima pasukti vairuojant ratus kaip automobilį, o jei reikia sustabdyti naudotoją, galima pridėti stabdžių. Naujos kartos „eyeRobot“aš tikrai naudosiu šį labai skirtingą požiūrį. pasiekti skirtingus atskaitos taškus. Du jutikliai, turintys atstumą tarp jų, labai supaprastintų sekimą sienoje. Tai būtų padaręs navigacijos kodą daug galingesnį naudojant išsamesnį sonaro matricą (bet, žinoma, jutikliai kainuoja pinigus, kurių tuo metu neturėjau).

9 žingsnis: Išvada

Išvada
Išvada

Išvada: „iRobot“pasirodė ideali prototipų platforma eksperimentuoti su roboto baltosios lazdelės koncepcija. Iš šio prototipo rezultatų matyti, kad tokio tipo robotas tikrai yra perspektyvus. Tikiuosi, kad iš „Roomba Create“naudojimo pamokų išvystysiu antros kartos robotą. Būsimose „eyeRobot“versijose aš įsivaizduoju įrenginį, galintį ne tik nukreipti žmogų koridoriuje, bet ir robotą, kurį galima atiduoti akliesiems į rankas kasdieniniam naudojimui. Naudodamas šį robotą vartotojas tiesiog pasakytų savo paskirties vietą, o robotas nuvestų juos ten be sąmoningų vartotojo pastangų. Šis robotas būtų pakankamai lengvas ir kompaktiškas, kad jį būtų galima lengvai pakelti laiptais ir paslėpti spintoje. Šis robotas galėtų atlikti ne tik vietinę navigaciją, bet ir nukreipti naudotoją nuo pradžios iki kelionės tikslo be išankstinių vartotojų žinių ar patirties. Ši galimybė gerokai viršytų net šunį vedlį, nes GPS ir pažangesni jutikliai, leidžiantys akliesiems laisvai naršyti pasaulį, Nathaniel Barshay, (Įvedė Stephenas Barshay) (Ypatingai dėkojame Jackui Hittui už „Roomba Create“)

10 žingsnis: konstrukcija ir kodas

Konstrukcija ir kodas
Konstrukcija ir kodas

Keletas pašalinių žodžių apie konstrukciją: denis pagamintas iš akrilo gabalo, supjaustyto apskritime su anga gale, kad būtų galima patekti į elektroniką, ir tada įsukama į tvirtinimo angas šalia krovinių skyriaus. Prototipų plokštė įsukama į varžto angą, esančią įlankos apačioje. „Zbasic“montuojamas su L laikikliu su tais pačiais varžtais kaip ir denis. Kiekvienas sonatas įsukamas į akrilo gabalėlį, kuris savo ruožtu yra pritvirtintas prie L laikiklio, pritvirtinto prie denio (L laikikliai yra sulenkti 10 laipsnių atgal, kad būtų geriau matomas). Linijinio jutiklio takelis įsukamas tiesiai į denį, o slydimo indas sumontuotas su L laikikliais šalia jo. Techninį linijinio jutiklio ir valdymo strypo konstrukcijos aprašymą rasite 4 veiksme.

Kodas: pridėjau visą roboto kodo versiją. Per valandą bandžiau jį išvalyti nuo trijų ar keturių kartos kodų, esančių faile, dabar turėtų būti pakankamai lengva sekti. Jei turite „ZBasic IDE“, jį turėtų būti lengva peržiūrėti, jei ne, naudokite užrašų knygelę, pradedant nuo failo main.bas ir eidami per kitus.bas failus.

Rekomenduojamas: