Sadržaj:

EyeRobot - robotski bijeli štap: 10 koraka (sa slikama)
EyeRobot - robotski bijeli štap: 10 koraka (sa slikama)

Video: EyeRobot - robotski bijeli štap: 10 koraka (sa slikama)

Video: EyeRobot - robotski bijeli štap: 10 koraka (sa slikama)
Video: Управление серводвигателем с помощью потенциометра с помощью Arduino 2024, Studeni
Anonim
EyeRobot - robotski bijeli štap
EyeRobot - robotski bijeli štap

Sažetak: Korištenjem iRobot Roomba Create prototipirao sam uređaj koji se zove eyeRobot. On će slijepe i slabovidne korisnike voditi kroz pretrpano i naseljeno okruženje koristeći Roombu kao bazu za vjenčanje jednostavnosti tradicionalnog bijelog štapa s instinktima psa vida. Korisnik označava željeni pokret intuitivno pritiskom i okretanjem ručke. Robot uzima te podatke i pronalazi čistu stazu niz hodnik ili preko prostorije, pomoću sonara usmjerava korisnika u odgovarajućem smjeru oko statičkih i dinamičkih prepreka. Korisnik zatim slijedi iza robota dok ga vodi korisnikom u željenom smjeru primjetnom silom koja se osjeća kroz ručku. Ova robotska opcija zahtijeva malo treninga: push to go, pull to stop, twist to turn. Predviđanje koje pružaju daljinomjeri slično je psu koji vidi oči i značajna je prednost u odnosu na stalne pokušaje i pogreške koji označavaju uporabu bijelog štapa. Ipak, eyeRobot i dalje nudi mnogo jeftiniju alternativu od pasa vodiča, koji koštaju više od 12 000 USD i korisni su samo 5 godina, dok je prototip izgrađen za znatno manje od 400 USD. To je također relativno jednostavan stroj, koji zahtijeva nekoliko jeftinih senzora, razne potenciometre, nešto hardvera i, naravno, Roomba Create.

Korak 1: Video demonstracija

Video demonstracija
Video demonstracija

Verzija visoke kvalitete

Korak 2: Pregled rada

Pregled operacije
Pregled operacije

Korisnička kontrola: Rad eyeRobota osmišljen je tako da bude što intuitivniji kako bi uvelike smanjio ili eliminirao trening. Kako bi započeo kretanje, korisnik jednostavno mora krenuti naprijed, linearni senzor u podnožju štapa pokupit će to kretanje i početi pomicati robota naprijed. Pomoću ovog linearnog senzora robot tada može uskladiti svoju brzinu sa željenom brzinom korisnika. eyeRobot će se kretati onoliko brzo koliko korisnik želi ići. Kako bi naznačio da je zaokret potreban, korisnik jednostavno mora okrenuti ručku, a ako je zaokret moguć, robot će u skladu s tim reagirati.

Robotska navigacija: Kad putujete otvorenim svemirom, eyeRobot će pokušati zadržati ravnu stazu, otkrivajući svaku prepreku koja bi mogla ometati korisnika i usmjeravati korisnika oko tog objekta i natrag na izvornu stazu. U praksi korisnik može prirodno slijediti iza robota s malo svjesne misli. Za kretanje kroz hodnik, korisnik bi trebao pokušati gurnuti robota u jedan od zidova s obje strane, nakon stjecanja zida robot će ga početi slijediti, vodeći korisnika niz hodnik. Kad se dođe do raskrižja, korisnik će osjetiti kako se robot počinje okretati i može okretanjem ručke izabrati hoće li odbiti novi izdanak ili nastaviti ravno. Na taj način robot je vrlo sličan bijelom štapu, korisnik može osjetiti okruženje s robotom i koristiti te podatke za globalnu navigaciju.

Korak 3: Senzori dometa

Senzori dometa
Senzori dometa

Ultrazvuk: eyeRobot nosi 4 ultrazvučna daljinomera (MaxSonar EZ1). Ultrazvučni senzori postavljeni su u luku na prednjoj strani robota kako bi pružili informacije o objektima ispred i sa strane robota. Obavještavaju robota o dometu objekta i pomažu mu da pronađe otvorenu rutu oko tog objekta i natrag na njegov izvorni put.

IR daljinomeri: eyeRobot također nosi dva IR senzora (GP2Y0A02YK). IR daljinomjeri postavljeni su okrenuti prema 90 stupnjeva udesno i ulijevo kako bi pomogli robotu da slijedi zid. Također mogu upozoriti robota na objekte koji su preblizu njegovih strana u koje bi korisnik mogao ući.

Korak 4: Senzori položaja štapa

Senzori položaja štapa
Senzori položaja štapa

Linearni senzor: Kako bi eyeRobot uskladio svoju brzinu s brzinom korisnika, eyeRobot osjeća da li korisnik gura ili usporava svoje kretanje prema naprijed. To se postiže klizanjem baze štapa uz stazu, jer potenciometar osjeća položaj štapa. EyeRobot koristi ovaj ulaz za regulaciju brzine robota. Ideja o tome da se eyeRobot prilagodi brzini korisnika putem linearnog senzora zapravo je inspirirana obiteljskom kosilicom. Baza štapa povezana je s vodilicom koja se kreće duž tračnice. Na vodilicu je pričvršćen klizni potenciometar koji očitava položaj vodilice i o tome izvješćuje procesor. Kako bi se štap mogao okretati u odnosu na robota, kroz drveni blok prolazi štap koji tvori rotirajući ležaj. Ovaj ležaj je zatim pričvršćen na šarke kako bi se štap prilagodio visini korisnika.

Senzor uvijanja: Senzor uvijanja omogućuje korisniku da okreće ručku kako bi okrenuo robota. Potenciometar je pričvršćen na kraj jedne drvene osovine, a gumb je umetnut i zalijepljen u gornji dio ručke. Žice se spuštaju niz tiple i unose informacije o uvijanju u procesor.

Korak 5: Procesor

Procesor
Procesor

Procesor: Robotom upravlja Zbasic ZX-24a koji sjedi na Robodyssey Advanced Motherboard II. Procesor je odabran zbog svoje brzine, jednostavnosti korištenja, pristupačne cijene i 8 analognih ulaza. Povezan je s velikom ploču za izradu prototipova kako bi se omogućile brze i jednostavne izmjene. Sva snaga za robota dolazi iz napajanja na matičnoj ploči. Zbasic komunicira s roombom kroz otvor za utovarni prostor i ima potpunu kontrolu nad Roombinim senzorima i motorima.

Korak 6: Pregled koda

Pregled koda
Pregled koda

Izbjegavanje prepreka: Za izbjegavanje prepreka, eyeRobot koristi metodu u kojoj objekti u blizini robota djeluju virtualno na robota odmičući ga od objekta. Drugim riječima, predmeti guraju robota od sebe. U mojoj implementaciji, virtualna sila koju objekt izvršava obrnuto je proporcionalna kvadratu udaljenosti, pa se snaga pritiska povećava kako se objekt približava i stvara nelinearnu krivulju odziva: PushForce = ResponseMagnitudeConstant/Distance2Potisci koji dolaze sa svakog senzora zbrajaju se; senzori s lijeve strane guraju udesno i obrnuto, kako bi dobili vektor za kretanje robota. Brzine kotača tada se mijenjaju pa se robot okreće prema ovom vektoru. Kako bi se osiguralo da predmeti mrtvi ispred robota ne pokazuju "bez reakcije" (jer se sile s obje strane uravnotežuju), predmeti na mrtvoj prednjoj strani guraju robota na otvoreniju stranu. Nakon što je robot prošao objekt, tada koristi Roombine kodere kako bi ispravio promjenu i vratio se na izvorni vektor.

Zidno slijeđenje: Princip zidnog slijeđenja je održavanje željene udaljenosti i paralelnog kuta prema zidu. Problemi nastaju kada se robot okrene u odnosu na zid jer pojedinačni senzor daje beskorisna očitanja raspona. Na očitanja dometa utječu podjednako kut robota prema zidu, kao i stvarna udaljenost do zida. Kako bi odredio kut i time eliminirao ovu varijablu, robot mora imati dvije referentne točke koje se mogu usporediti kako bi se dobio kut robota. Budući da eyeRobot ima samo jednu stranu okrenutu prema IR daljinomjeru, kako bi postigao ove dvije točke, mora uspoređivati udaljenost od daljinomera tijekom vremena dok se robot kreće. Zatim određuje svoj kut iz razlike između dva očitanja dok se robot kreće uz zid. Zatim te podatke koristi za ispravljanje nepravilnog pozicioniranja. Robot prelazi u način praćenja zida kad god ima zid kraj sebe određeno vrijeme i izlazi iz njega kad god mu se na putu nađe prepreka koja ga gura s kursa ili ako korisnik koristi ručicu za uvijanje kako bi doveo robota dalje od zida.

Korak 7: Popis dijelova

Popis dijelova
Popis dijelova

Potrebni dijelovi: 1x) Roomba create1x) Veliki akrilni list 2x Šarke, tiple, vijci, matice, držači i žice

Korak 8: Motivacija i poboljšanje

Motivacija i poboljšanje
Motivacija i poboljšanje

Motivacija: Ovaj je robot dizajniran da ispuni očitu prazninu između sposobnog, ali skupog psa vodiča i jeftinog, ali ograničenog bijelog štapa. U razvoju prodajnog i sposobnijeg robotskog bijelog štapa, Roomba Create bio je savršeno vozilo za projektiranje brzog prototipa kako bi se vidjelo funkcionira li koncept. Osim toga, nagrade bi osigurale ekonomsku potporu za znatne troškove izgradnje sposobnijeg robota.

Poboljšanje: Iznos koji sam naučio izrađujući ovog robota bio je značajan i ovdje ću pokušati iznijeti ono što sam naučio dok sam pokušavao izgraditi robota druge generacije: 1) Izbjegavanje prepreka - naučio sam mnogo o preprekama u stvarnom vremenu izbjegavanje. U procesu izgradnje ovog robota prošao sam kroz dva potpuno različita koda za izbjegavanje prepreka, počevši od izvorne ideje o sili objekta, zatim prelazeći na načelo pronalaženja i traženja najotvorenijeg vektora, a zatim se vraćajući na ideju sile objekta s ključna spoznaja da odgovor objekta treba biti nelinearan. Ubuduće ću ispraviti svoju pogrešku što nisam proveo nikakvo internetsko istraživanje prethodno korištenih metoda prije nego što sam krenuo u svoj projekt, jer sada učim da bi brzo Google pretraživanje dalo brojne sjajne radove na tu temu.2) Dizajn štapa senzori - Počevši od ovog projekta mislio sam da je moja jedina mogućnost za linearni senzor korištenje kliznog lonca i neke vrste linearnog ležaja. Sada shvaćam da bi mnogo jednostavnija opcija bila jednostavno pričvrstiti vrh šipke na joystick, tako da bi guranje palice prema naprijed također pomaknulo joystick prema naprijed. Osim toga, jednostavan univerzalni zglob omogućio bi da se zaokret štapa pretoči u os uvijanja mnogih modernih joysticka. Ova bi implementacija bila mnogo jednostavnija od one koju trenutno koristim.3) Slobodno okretanje kotača - Iako bi to bilo nemoguće s Roombom, sada se čini očitim da bi robot sa slobodnim okretnim kotačima bio idealan za ovaj zadatak. Robotu koji se pasivno kotrlja ne bi bili potrebni motori i manja baterija, pa bi stoga bio lakši. Osim toga, ovaj sustav ne zahtijeva linearni senzor koji bi otkrio korisnički pritisak, robot bi se jednostavno kotrljao brzinom korisnika. Robot se mogao okretati upravljanjem kotačima poput automobila, a ako je trebalo zaustaviti korisnika, mogle bi se dodati kočnice. Za sljedeću generaciju eyeRobota zasigurno ću koristiti ovaj vrlo različit pristup.4) Dva razmaknuta senzora za praćenje zida - Kao što je ranije rečeno, problemi su nastali pri pokušaju slijeđenja zida samo s jedne strane okrenutog senzora, pa je bilo potrebno pomaknuti robota između očitanja za postizanje različitih referentnih točaka. Dva senzora s razmakom između njih uvelike bi pojednostavila praćenje zidova.5) Više senzora - Iako bi to koštalo više novca, bilo je teško pokušati kodirati ovog robota s tako malo prozora u svijetu izvan procesora. Navigacijski bi kod bio znatno snažniji s kompletnijim nizom sonara (ali naravno, senzori su koštali novac, što tada nisam imao).

Korak 9: Zaključak

Zaključak
Zaključak

Zaključak: iRobot se pokazao kao idealna platforma za izradu prototipova za eksperimentiranje s konceptom robotskog bijelog štapa. Iz rezultata ovog prototipa vidljivo je da je robot ovog tipa doista održiv. Nadam se da ću iz lekcija koje sam naučio koristeći Roomba Create razviti robota druge generacije. U budućim verzijama eyeRobota zamišljam uređaj sposoban učiniti više od pukog vođenja osobe kroz hodnik, radije robota koji se može staviti u ruke slijepima za uporabu u svakodnevnom životu. S ovim robotom korisnik bi jednostavno izgovarao svoje odredište i robot bi ih vodio tamo bez svjesnog napora korisnika. Ovaj bi robot bio dovoljno lagan i kompaktan da ga se može lako nositi uz stepenice i spremiti u ormar. Ovaj bi robot mogao obavljati globalnu navigaciju osim lokalne, te bi mogao voditi korisnika od početka do odredišta bez prethodnog znanja i iskustva korisnika. Ova bi mogućnost nadišla čak i psa vodiča, s GPS -om i naprednijim senzorima koji slijepima omogućuju slobodnu navigaciju svijetom, Nathaniel Barshay, (Ušao Stephen Barshay) (Posebna zahvala Jacku Hittu za Roomba Create)

Korak 10: Konstrukcija i kod

Izgradnja i kod
Izgradnja i kod

Nekoliko tuđih riječi o konstrukciji: Paluba je izrađena od komada akrila izrezanog u krug s otvorom na stražnjoj strani koji omogućuje pristup elektronici, a zatim se uvija u rupe za pričvršćivanje pored prtljažnika. Ploča za izradu prototipa uvrnuta je u otvor za vijak na dnu ležišta. Zbasic je montiran s L nosačem s istim vijcima kao i paluba. Svaki sonar je uvijen u komad akrila, koji je zatim pričvršćen na L nosač pričvršćen na palubu (L nosači su savijeni unatrag 10 stupnjeva radi boljeg pregleda). Gusjenica za linearni senzor uvrnuta je ravno u palubu, a klizni lonac je montiran sa L nosačima pored nje. Tehnički opis konstrukcije linearnog senzora i upravljačke šipke može se pronaći u koraku 4.

Kôd: Priložio sam punu verziju koda robota. Tijekom sat vremena pokušao sam ga očistiti od tri ili četiri generacije koda koji su bili u datoteci, što bi sada trebalo biti dovoljno lako slijediti. Ako imate ZBasic IDE, trebao bi biti lak za pregled, ako ne koristite bilježnicu koja počinje s datotekom main.bas i prolazi kroz druge.bas datoteke.

Preporučeni: