Sadržaj:
- Korak 1: Video demonstracija
- Korak 2: Pregled rada
- Korak 3: Senzori dometa
- Korak 4: Senzori položaja štapa
- Korak 5: Procesor
- Korak 6: Pregled koda
- Korak 7: Popis dijelova
- Korak 8: Motivacija i poboljšanje
- Korak 9: Zaključak
- Korak 10: Konstrukcija i kod
Video: EyeRobot - robotski bijeli štap: 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:38
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
Verzija visoke kvalitete
Korak 2: Pregled rada
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
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
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: 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
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
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: 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: 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
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:
Senzor udaljenosti (za bijeli štap): 3 koraka
Senzor udaljenosti (za bijeli štap): Tipični senzor udaljenosti već je široko pokriven od strane Instructables. Stoga sam htio isprobati adaptaciju ovog dobro poznatog koncepta, kao aplikaciju za bijeli štap. Bijeli štapići su štapovi koje slijepci koriste kako bi im rekli gdje su p
Bijeli štap za otkrivanje prepreka: 5 koraka
Otkrivanje prepreka bijelog štapa: U mojoj školi, moj je učitelj govorio o pomoćnoj tehnologiji i o tome kako možemo napraviti alate za pomoć drugim ljudima. Zaintrigirala me ova ideja, pa sam odlučio stvoriti sustav upozorenja na nepredvidive prepreke za osobe s oštećenjem vida. Za
Pametni slijepi štap: 4 koraka
Smart Blind Stick: Zdravo dečki, ja sam Nandan iz Jp nagar Nook. Danas ćemo ja i moj partner Sandeep i Nikitha pokazati kako napraviti pametni slijepi štap kod kuće pomoću arduina i ultrazvučnog senzora. Projekt snimljen na vašoj cijevi: https://www.youtube.com/watch?v=Jt_9HxOJ0d8 Materijali
Arduino glas bijeli štap (prvi dio): 6 koraka (sa slikama)
Arduino Voiced White Cane (prvi dio): Prije mnogo godina, bio sam sa studentom koji je imao slijepog člana obitelji, shvatio sam da bismo mogli doći do malog rješenja koje može čuti koliko je koraka postojala neka prepreka, očito arduino s prethodno snimljenim brojevima mogao bi
Nadrealni (samo) crno -bijeli efekt sa Lightroom 2.0: 8 koraka
Nadrealni (samo) crno -bijeli efekt sa Lightroom 2.0: Ovaj efekt pretvara vaše slike u boji u visoko kontrastni crno -bijeli. Rezultat je nadrealna, apstraktna fotografija