Kazalo:

EyeRobot - Robotski beli trs: 10 korakov (s slikami)
EyeRobot - Robotski beli trs: 10 korakov (s slikami)

Video: EyeRobot - Robotski beli trs: 10 korakov (s slikami)

Video: EyeRobot - Robotski beli trs: 10 korakov (s slikami)
Video: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, November
Anonim
EyeRobot - Robotski beli trs
EyeRobot - Robotski beli trs

Povzetek: Z uporabo iRobot Roomba Create sem izdelal prototip naprave z imenom eyeRobot. Slepe in slabovidne uporabnike bo vodil skozi natrpano in poseljeno okolje z uporabo Roombe kot osnove za poroko s preprostostjo tradicionalnega belega trsa z nagoni vidnega psa. Uporabnik označi želeno gibanje tako, da intuitivno pritisne in zasuka ročaj. Robot vzame te podatke in poišče jasno pot po hodniku ali čez sobo, s pomočjo sonarja pa uporabnika usmeri v ustrezno smer okoli statičnih in dinamičnih ovir. Uporabnik nato sledi za robotom, ki ga vodi z opazno silo skozi ročaj v želeni smeri. Ta robotska možnost zahteva malo usposabljanja: potisnite, da greste, potegnite, da se ustavite, zavrtite, da se obrnete. Predvidevanje, ki ga ponujajo daljinomeri, je podobno psu, ki vidi, in je precejšnja prednost pred nenehnimi poskusi in napakami, ki označujejo uporabo belega trsa. Toda eyeRobot še vedno ponuja veliko cenejšo alternativo kot psi vodniki, ki stanejo več kot 12 000 USD in so uporabni le 5 let, medtem ko je bil prototip zgrajen za precej manj kot 400 USD. Je tudi razmeroma preprost stroj, ki zahteva nekaj poceni senzorjev, različne potenciometre, nekaj strojne opreme in seveda Roomba Create.

Korak: Video demonstracija

Video predstavitev
Video predstavitev

Visokokakovostna različica

2. korak: Pregled delovanja

Pregled operacije
Pregled operacije

Uporabniški nadzor: Delovanje eyeRobota je zasnovano tako, da je čim bolj intuitivno, da močno zmanjša ali odpravi trening. Za začetek gibanja mora uporabnik preprosto začeti hoditi naprej, linearni senzor na dnu palice bo ujel to gibanje in začel premikati robota naprej. Z uporabo tega linearnega senzorja lahko robot nato prilagodi svojo hitrost želeni hitrosti uporabnika. eyeRobot se bo premikal tako hitro, kot želi uporabnik. Če želite označiti, da je zavoj potreben, mora uporabnik preprosto zasukati ročaj, če pa je zavoj možen, se bo robot ustrezno odzval.

Robotska navigacija: Ko potujete v odprtem vesolju, bo eyeRobot poskušal obdržati ravno pot, pri čemer bo odkril vse ovire, ki bi lahko ovirale uporabnika, in ga vodil okoli predmeta in nazaj na prvotno pot. V praksi lahko uporabnik naravno sledi robotu z malo zavestnega razmišljanja. Za krmarjenje po hodniku mora poskusiti robota potisniti v eno od sten na obeh straneh, potem ko mu bo zid prislužil, ga bo začel slediti uporabnika po hodniku. Ko pride do križišča, bo uporabnik začutil, da se robot začne obračati, in lahko z vrtenjem ročaja izbere, ali bo nov odcep zavijal ali nadaljeval po ravni poti. Na ta način je robot zelo podoben belemu trsu, uporabnik lahko z robotom čuti okolje in te podatke uporabi za globalno navigacijo.

3. korak: Senzorji razdalje

Senzorji dosega
Senzorji dosega

Ultrazvok: EyeRobot nosi 4 ultrazvočne daljinomere (MaxSonar EZ1). Ultrazvočni senzorji so nameščeni v loku na sprednji strani robota, da posredujejo informacije o predmetih pred in ob robotih. Robota obvestijo o dosegu predmeta in mu pomagajo najti odprto pot okoli tega predmeta in nazaj na prvotno pot.

IR daljinomeri: EyeRobot nosi tudi dva IR senzorja (GP2Y0A02YK). IR daljinomeri so postavljeni tako, da so obrnjeni navzven za 90 stopinj v desno in levo, da pomagajo robotu pri steni. Robota lahko opozorijo tudi na predmete, ki so preblizu njegovih strani, v katere bi lahko uporabnik stopil.

4. korak: Senzorji položaja palice

Senzorji položaja palice
Senzorji položaja palice

Linearni senzor: Če želite, da se eyeRobot ujema s svojo hitrostjo s hitrostjo uporabnika, eyeRobot zazna, ali uporabnik pritisne ali upočasni gibanje naprej. To dosežemo tako, da dno drsimo po stezi, saj potenciometer zazna položaj palice. EyeRobot uporablja ta vnos za uravnavanje hitrosti robota. Zamisel, da bi se eyeRobot prilagodil hitrosti uporabnika z linearnim senzorjem, je pravzaprav navdihnila družinska kosilnica. Podstavek palice je povezan z vodilnim blokom, ki se premika vzdolž tirnice. Na vodilni blok je pritrjen drsni potenciometer, ki bere položaj vodilnega bloka in ga sporoča procesorju. Da bi se palica vrtela glede na robota, skozi palico teče palica, ki tvori vrtljivi ležaj. Ta ležaj je nato pritrjen na tečaj, da se palica prilagodi višini uporabnika.

Senzor zvijanja: Senzor zvijanja omogoča uporabniku, da obrne ročaj, da obrne robota. Na konec ene lesene gredi je pritrjen potenciometer, gumb pa je vstavljen in zlepljen v zgornji del ročaja. Žice tečejo po mozniku in v procesor vnesejo informacije o zvijanju.

5. korak: Procesor

Procesor
Procesor

Procesor: Robota upravlja Zbasic ZX-24a, ki sedi na Robodyssey Advanced Motherboard II. Procesor je bil izbran zaradi hitrosti, enostavnosti uporabe, dostopnih stroškov in 8 analognih vhodov. Povezan je z veliko prototipno ploščo, ki omogoča hitre in enostavne spremembe. Vsa moč za robota prihaja iz napajalnika na matični plošči. Zbasic komunicira z roombo skozi pristanišče za tovor in ima popoln nadzor nad senzorji in motorji Roombe.

6. korak: Pregled kode

Pregled kode
Pregled kode

Izogibanje oviram: Za izogibanje oviram eyeRobot uporablja metodo, pri kateri predmeti v bližini robota delujejo na virtualno silo na robota, ki ga odmika od predmeta. Z drugimi besedami, predmeti odrivajo robota od sebe. V moji izvedbi je navidezna sila, ki jo izvaja objekt, obratno sorazmerna s kvadratom razdalje, zato se moč potiska poveča, ko se objekt približa in ustvari nelinearno krivuljo odziva: PushForce = ResponseMagnitudeConstant/Distance2Potiski, ki prihajajo iz vsakega senzorja, se seštejejo; senzorji na levi strani potisnite desno in obratno, da dobite vektor za potovanje robota. Hitrosti koles se nato spremenijo, tako da se robot obrne proti temu vektorju. Da bi zagotovili, da predmeti, ki so mrtvi pred robotom, ne kažejo "brez odziva" (ker se sile na obeh straneh uravnavajo), predmeti na mrtvi sprednji strani potisnejo robota na bolj odprto stran. Ko robot preide predmet, potem z uporabo kodirnikov Roomba popravi spremembo in se vrne na prvotni vektor.

Sledenje steni: načelo sledenja steni je vzdrževanje želene razdalje in vzporednega kota do stene. Težave nastanejo, ko je robot obrnjen glede na steno, ker en sam senzor daje neuporabne odčitke območja. Na odčitke dosega vplivajo tako kot robotov kot proti steni kot dejanska razdalja do stene. Če želite določiti kot in s tem odpraviti to spremenljivko, mora imeti robot dve referenčni točki, ki ju lahko primerjate, da dobite kot robotov. Ker ima eyeRobot le z eno stranjo obrnjeno IR daljinomer, mora za dosego teh dveh točk primerjati razdaljo od daljinomera skozi čas, ko se robot premika. Nato določi svoj kot iz razlike med obema odčitkoma, ko se robot premika vzdolž stene. Nato te podatke uporabi za odpravo nepravilnega pozicioniranja. Robot preide v način sledenja steni, kadar ima za določen čas ob sebi steno in izstopi iz nje, kadar je na njeni poti ovira, ki ga potisne s poti, ali če uporabnik z ročico za zasuk pripelje robot stran od stene.

7. korak: Seznam delov

Seznam delov
Seznam delov

Potrebni deli: 1x) Roomba create1x) Velik akrilni list 2x Tečaji, mozniki, vijaki, matice, nosilci in žice

8. korak: Motivacija in izboljšanje

Motivacija in izboljšanje
Motivacija in izboljšanje

Motivacija: Ta robot je bil zasnovan tako, da zapolni očitno vrzel med sposobnim, a dragim psom vodnikom in poceni, vendar omejenim belim trsom. Roomba Create je bila pri razvoju tržnega in zmogljivejšega robotskega belega trsa popolno vozilo za oblikovanje hitrega prototipa, da bi ugotovili, ali koncept deluje. Poleg tega bi nagrade zagotovile ekonomsko podporo za znatne stroške izgradnje sposobnejšega robota.

Izboljšanje: Znesek, ki sem se ga naučil pri izdelavi tega robota, je bil precejšen in tukaj bom poskušal predstaviti, kar sem se naučil, ko bom poskušal zgraditi robota druge generacije: 1) Izogibanje oviram - veliko sem se naučil o ovirah v realnem času izogibanje. V procesu izdelave tega robota sem šel skozi dve popolnoma različni kodi za izogibanje oviram, začenši z izvirno idejo o sili objektov, nato prešel na načelo iskanja in iskanja najbolj odprtega vektorja in se nato vrnil k ideji o sili objektov z ključno spoznanje, da mora biti odziv objekta nelinearen. V prihodnosti bom popravil svojo napako, da nisem opravil nobene spletne raziskave predhodno uporabljenih metod, preden sem se lotil svojega projekta, saj se zdaj učim, da bi hitro iskanje v Googlu prineslo številne odlične članke na to temo. 2) Oblikovanje palice senzorji - Na začetku tega projekta sem mislil, da je moja edina možnost za linearni senzor uporaba drsnega lonca in neke vrste linearnega ležaja. Zdaj se zavedam, da bi bila veliko enostavnejša možnost preprosto pritrditi vrh palice na krmilno palico, tako da bi s pritiskom na palico naprej tudi krmilno palčko potisnili naprej. Poleg tega bi preprost univerzalni spoj omogočil, da se zvijanje palice prevede v os zvijanja številnih sodobnih igralnih palic. Ta izvedba bi bila veliko enostavnejša od tiste, ki jo trenutno uporabljam. 3) Prosta obračalna kolesa - Čeprav to pri Roombi ne bi bilo mogoče, se zdaj zdi očitno, da bi bil robot s prostimi obračalnimi kolesi idealen za to nalogo. Robot, ki se pasivno kotali, ne bi potreboval motorjev in manjše baterije, zato bi bil lažji. Poleg tega ta sistem ne potrebuje linearnega senzorja za zaznavanje uporabnikovega pritiska, robot bi se preprosto vrtel s hitrostjo uporabnikov. Robota bi lahko obračali z volanom na kolesih kot avtomobil, če bi bilo treba uporabnika ustaviti, pa bi lahko dodali zavore. Za naslednjo generacijo eyeRobot bom zagotovo uporabil ta zelo drugačen pristop.4) Dva razmaknjena senzorja za sledenje steni - Kot smo že omenili, so težave nastale, ko smo poskušali steno slediti samo z enim stranskim senzorjem, zato je bilo treba robota premakniti med odčitke za dosego različnih referenčnih točk. Dva senzorja z razdaljo med njima bi močno poenostavila sledenje steni. 5) Več senzorjev - Čeprav bi to stalo več denarja, je bilo težko poskusiti kodirati tega robota s tako malo oken na svetu zunaj procesorja. Navigacijska koda bi s popolnejšo paleto sonarjev postala precej močnejša (seveda pa senzorji stanejo denarja, ki ga takrat še nisem imel).

9. korak: Zaključek

Zaključek
Zaključek

Zaključek: iRobot se je izkazal za idealno platformo za izdelavo prototipov za eksperimentiranje s konceptom robotskega belega trsa. Iz rezultatov tega prototipa je razvidno, da je takšen robot resnično sposoben preživeti. Upam, da bom iz lekcij, ki sem se jih naučil iz uporabe Roomba Create, razvil drugo generacijo robota. V prihodnjih različicah eyeRobota si predstavljam napravo, ki zmore več kot le voditi osebo po hodniku, prej robota, ki ga lahko damo slepim za uporabo v vsakdanjem življenju. S tem robotom bi uporabnik preprosto govoril cilj, robot pa bi jih tja vodil brez zavestnega truda uporabnika. Ta robot bi bil dovolj lahek in kompakten, da bi ga zlahka prenesli po stopnicah in pospravili v omaro. Ta robot bi lahko poleg lokalne uporabljal tudi globalno navigacijo, ki bi lahko vodila uporabnika od začetka do cilja brez predhodnega znanja ali izkušenj uporabnikov. Ta sposobnost bi presegla celo psa vodnika, z GPS -om in naprednejšimi senzorji, ki slepim omogočajo svobodno krmarjenje po svetu, Nathaniel Barshay (vpisal Stephen Barshay) (posebna zahvala Jacku Hittu za Roomba Create)

10. korak: Gradnja in koda

Konstrukcija in koda
Konstrukcija in koda

Nekaj tujih besed o gradnji: Krov, izdelan iz kosa akrila, izrezanega v krogu z odprtino na zadnji strani, ki omogoča dostop do elektronike, nato pa je privit v pritrdilne luknje poleg tovornega prostora. Plošča za izdelavo prototipov je privita v luknjo za vijak na dnu ležišča. Zbasic je nameščen z L nosilci z enakimi vijaki kot krov. Vsak sonar je privit v kos akrila, ki je nato pritrjen na nosilec L, pritrjen na krov (nosilci L so upognjeni za 10 stopinj za boljši pogled). Proga za linearni senzor je privita naravnost v krov, drsni lonec pa je nameščen z L nosilci poleg njega. Podrobnejši opis konstrukcije linearnega senzorja in krmilne palice najdete v 4. koraku.

Koda: Priložil sem celotno različico kode robotov. V eni uri sem jo poskušal očistiti iz treh ali štirih generacij kode, ki je bila v datoteki, kar bi moralo biti zdaj enostavno slediti. Če imate ID ZBasic, bi si moral biti enostaven za ogled, če ne uporabite beležnice, začenši z datoteko main.bas in skozi druge datoteke.bas.

Priporočena: