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, Novembar
Anonim
EyeRobot - robotski bijeli štap
EyeRobot - robotski bijeli štap

Sažetak: Koristeći iRobot Roomba Create, prototipirao sam uređaj koji se zove eyeRobot. On će voditi slijepe i slabovidne korisnike kroz pretrpano i naseljeno okruženje koristeći Roombu kao bazu za vjenčanje jednostavnosti tradicionalnog bijelog štapa s instinktima psa vidovnjaka. Korisnik označava željeni pokret intuitivno pritiskom i okretanjem ručke. Robot uzima ove informacije i pronalazi čistu putanju kroz hodnik ili preko prostorije, koristeći sonar za usmjeravanje 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: guranje za pokretanje, povlačenje za zaustavljanje, okretanje za okretanje. 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 greške koji označavaju upotrebu 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 jednostavna mašina, koja zahtijeva nekoliko jeftinih senzora, različite potenciometre, nešto hardvera i, naravno, Roomba Create.

Korak 1: Video demonstracija

Video demonstracija
Video demonstracija

Verzija visokog kvaliteta

Korak 2: Pregled operacije

Pregled operacije
Pregled operacije

Korisnička kontrola: Rad eyeRobota osmišljen je tako da bude što intuitivniji kako bi uvelike smanjio ili eliminirao trening. Da bi započeo kretanje, korisnik jednostavno mora krenuti naprijed, linearni senzor u podnožju štapa pokupit će ovo 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. Da bi pokazao da je zaokret željen, korisnik jednostavno mora okrenuti ručku, a ako je zaokret moguć, robot će reagirati u skladu s tim.

Robotska navigacija: Kada putujete otvorenim svemirom, eyeRobot će pokušati zadržati ravnu putanju, otkrivajući svaku prepreku koja bi mogla ometati korisnika, te ga voditi oko tog objekta i vratiti se na izvornu putanju. U praksi korisnik može prirodno slijediti iza robota sa malo svjesne misli. Za kretanje kroz hodnik, korisnik bi trebao pokušati gurnuti robota u jedan od zidova s obje strane, nakon što stekne zid, robot će ga početi slijediti, vodeći korisnika niz hodnik. Kada se dođe do raskrižja, korisnik će osjetiti kako se robot počinje okretati i može izabrati, okretanjem ručke, hoće li odbiti novi izdanak ili nastaviti ravno. Na ovaj način robot je vrlo sličan bijelom štapu, korisnik može osjetiti okruženje s robotom i koristiti te informacije 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. Oni obavještavaju robota o dometu objekta i pomažu mu da pronađe otvorenu rutu oko tog objekta i natrag na njegovu izvornu putanju.

IR daljinomeri: eyeRobot takođe nosi dva IR senzora (GP2Y0A02YK). IR daljinomjeri postavljeni su okrenuti prema 90 stupnjeva udesno i ulijevo kako bi pomogli robotu da slijedi zid. Takođe mogu upozoriti robota na objekte koji su suviše blizu 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 prilagodio svoju brzinu brzini korisnika, eyeRobot osjeća da li korisnik gura ili usporava svoje kretanje prema naprijed. To se postiže klizanjem baze štapa duž staze, jer potenciometar osjeća položaj štapa. EyeRobot koristi ovaj ulaz za regulaciju brzine robota. Ideja da se eyeRobot prilagodi brzini korisnika putem linearnog senzora zapravo je inspirirana porodičnom kosilicom. Baza štapa povezana je s vodilicom koja se kreće duž šine. Na vodilicu je pričvršćen klizni potenciometar koji očitava položaj vodilice i javlja je procesoru. Kako bi se omogućilo da se štap okreće u odnosu na robota, štap prolazi kroz drveni blok, tvoreći 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ćava 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 prototipnom pločom 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 da dobiju vektor za kretanje robota. Brzine kotača se tada 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 balansiraju), predmeti na mrtvoj strani guraju robota na otvoreniju stranu. Kada robot prođe objekt, tada koristi Roombine kodere kako bi ispravio promjenu i vratio se na izvorni vektor.

Zidno prać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 jedan senzor daje beskorisna očitanja raspona. Očitavanja dometa utječu podjednako pod kutom robota prema zidu kao i stvarnom udaljenošću do zida. Da bi odredio kut i na taj način 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 duž zida. Zatim koristi ove podatke za ispravljanje nepravilnog pozicioniranja. Robot prelazi u način praćenja zida kad god ima zid pored 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 okretanje kako bi donio robota dalje od zida.

Korak 7: Lista dijelova

Lista delova
Lista delova

Potrebni dijelovi: 1x) Roomba create1x) Veliki list akrila2x) Sharp GP2Y0A02YK IR daljinomer4x) Maxsonar EZ1 ultrazvučni daljinomjer1x) ZX-24a mikroprocesor1x) Robodyssey Advanced matična ploča II1x) Klizni potenciometar1x) Jednosmjerni potenciometar1) Š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 robot je dizajniran da popuni 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 dizajniranje brzog prototipa kako bi se vidjelo funkcionira li koncept. Osim toga, nagrade bi osigurale ekonomsku podršku za znatne troškove izgradnje sposobnijeg robota.

Poboljšanje: Količina koju sam naučio izrađujući ovog robota bila je značajna 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 princip pronalaženja i traženja najotvorenijeg vektora, a zatim se vraćajući na ideju sile objekta ključna spoznaja da odgovor objekta treba biti nelinearan. Ubuduće ću ispraviti svoju grešku što prije nego što sam krenuo u svoj projekt nijednom nisam istraživao internetski korištene metode, 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 opcija 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 gurkanje štapa prema naprijed također gurnulo joystick prema naprijed. Osim toga, jednostavan univerzalni zglob omogućio bi da se okretanje štapa prevede 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 sistem ne zahtijeva linearni senzor za detekciju pritiska korisnika, 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 sa samo jednom stranom okrenutom senzorom, pa je bilo potrebno pomaknuti robota između očitanja za postizanje različitih referentnih tač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 sa tako malo prozora u svijetu izvan procesora. To bi navigacijski kod učinilo mnogo moćnijim sa potpunijim nizom sonara (ali senzori naravno koštaju novac, kojeg 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 zaista 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 za više od pukog vođenja osobe kroz hodnik, radije robota koji se može staviti u ruke slijepima za upotrebu u svakodnevnom životu. S ovim robotom korisnik bi jednostavno izgovarao odredište i robot bi ih vodio tamo bez svjesnog napora korisnika. Ovaj bi robot bio lagan i dovoljno kompaktan da se lako nosi uz stepenice i sprema u ormar. Ovaj bi robot mogao raditi i globalno, osim lokalne, i 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 omogućuju slijepima da se slobodno kreću svijetom, Nathaniel Barshay, (Ušao Stephen Barshay) (Posebna zahvala Jacku Hittu za Roomba Create)

Korak 10: Konstrukcija i kod

Konstrukcija i kod
Konstrukcija 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 je uvrnuta u otvor za vijak na dnu ležišta. Zbasic je montiran sa L konzolama sa istim vijcima kao i paluba. Svaki sonar je uvijen u komad akrila, koji je zauzvrat pričvršćen na L nosač pričvršćen na palubu (L nosači su savijeni unatrag 10 stepeni radi boljeg pregleda). Gusjenica za linearni senzor uvrnuta je pravo u palubu, a klizni lonac je montiran sa L nosačima pored nje. Više tehnički opis konstrukcije linearnog senzora i upravljačke šipke može se pronaći u koraku 4.

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

Preporučuje se: