Sisällysluettelo:

EyeRobot - robotti valkoinen ruoko: 10 vaihetta (kuvilla)
EyeRobot - robotti valkoinen ruoko: 10 vaihetta (kuvilla)

Video: EyeRobot - robotti valkoinen ruoko: 10 vaihetta (kuvilla)

Video: EyeRobot - robotti valkoinen ruoko: 10 vaihetta (kuvilla)
Video: Cooking a Chinese New Year Reunion Dinner: From Prep to Plating (10 dishes included) 2024, Heinäkuu
Anonim
EyeRobot - robotti valkoinen ruoko
EyeRobot - robotti valkoinen ruoko

Tiivistelmä: iRobot Roomba Create -palvelun avulla olen prototyyppannut laitteen eyeRobot. Se ohjaa sokeita ja näkövammaisia käyttäjiä sotkuisissa ja asutuissa ympäristöissä käyttämällä Roombaa tukikohtana naimisiin perinteisen valkoisen kepun yksinkertaisuuden kanssa näkevän koiran vaistojen kanssa. Käyttäjä ilmaisee haluamansa liikkeen painamalla intuitiivisesti kahvaa ja kiertämällä sitä. Robotti ottaa nämä tiedot ja löytää selkeän polun käytävällä tai huoneen poikki ja ohjaa käyttäjää luotaimen avulla oikeaan suuntaan staattisten ja dynaamisten esteiden ympäri. Käyttäjä seuraa sitten robotin takana, kun se ohjaa käyttäjää haluttuun suuntaan kahvan läpi tuntuvan voiman avulla. Tämä robottivaihtoehto vaatii vähän harjoittelua: työnnä mennäksesi, vedä pysäyttääksesi, kierrä kääntääksesi. Etäisyysmittarien ennakointi on samanlainen kuin näkevä silmäkoira, ja se on huomattava etu verrattuna jatkuvaan kokeiluun ja virheeseen, joka merkitsee valkoisen kepän käyttöä. Silti eyeRobot tarjoaa edelleen paljon halvemman vaihtoehdon kuin opaskoirat, jotka maksavat yli 12 000 dollaria ja ovat käyttökelpoisia vain 5 vuoden ajan, kun taas prototyyppi rakennettiin reilusti alle 400 dollarilla. Se on myös suhteellisen yksinkertainen kone, joka vaatii muutamia edullisia antureita, erilaisia potentiometrejä, joitain laitteistoja ja tietysti Roomba Create.

Vaihe 1: Videon esittely

Videon esittely
Videon esittely

Korkealaatuinen versio

Vaihe 2: Toiminnan yleiskatsaus

Toiminnan yleiskatsaus
Toiminnan yleiskatsaus

Käyttäjän hallinta: eyeRobotin toiminta on suunniteltu mahdollisimman intuitiiviseksi vähentämään tai kokonaan poistamaan harjoittelua. Aloittaakseen liikkeen käyttäjän on vain aloitettava käveleminen eteenpäin, sauvan pohjassa oleva lineaarinen anturi ottaa tämän liikkeen ja alkaa siirtää robottia eteenpäin. Tämän lineaarianturin avulla robotti voi sovittaa nopeutensa käyttäjän haluttuun nopeuteen. eyeRobot liikkuu niin nopeasti kuin käyttäjä haluaa. Osoittaakseen, että halutaan kääntyä, käyttäjän on vain kierrettävä kahvaa, ja jos käännös on mahdollista, robotti reagoi sen mukaisesti.

Robottinavigointi: Kun matkustat avoimessa tilassa, eyeRobot yrittää pysyä suoralla tiellä, havaiten kaikki esteet, jotka voivat estää käyttäjää, ja ohjaa käyttäjää kyseisen kohteen ympäri ja takaisin alkuperäiselle polulle. Käytännössä käyttäjä voi luonnollisesti seurata robotin taakse vähän tietoisesti. Navigoidakseen käytävällä käyttäjän on yritettävä työntää robotti johonkin seinään kummallakin puolella, kun seinä on hankittu, robotti alkaa seurata sitä ohjaten käyttäjä käytävällä. Kun risteys on saavutettu, käyttäjä tuntee robotin alkavan kääntyä ja voi valita kahvaa kiertämällä, käännetäänkö uusi sivuliike alas vai jatketaanko suoraa polkua. Tällä tavalla robotti muistuttaa paljon valkoista keppiä, käyttäjä voi tuntea ympäristön robotin kanssa ja käyttää näitä tietoja maailmanlaajuiseen navigointiin.

Vaihe 3: Etäisyysanturit

Etäisyysanturit
Etäisyysanturit

Ultraääni: EyeRobotissa on neljä ultraääni -etäisyysmittaria (MaxSonar EZ1). Ultraäänianturit on sijoitettu kaareen robotin eteen antamaan tietoa esineistä robotin edessä ja sivuilla. Ne kertovat robotille kohteen etäisyydestä ja auttavat sitä löytämään avoimen reitin kohteen ympärille ja takaisin alkuperäiselle polulleen.

IR -etäisyysmittarit: eyeRobotissa on myös kaksi IR -anturia (GP2Y0A02YK). IR -etäisyysmittarit on sijoitettu 90 astetta oikealle ja vasemmalle auttamaan robottia seuraamaan seinää. Ne voivat myös varoittaa robottia esineistä, jotka ovat liian lähellä sen sivuja ja joihin käyttäjä voi kävellä.

Vaihe 4: Ruuvin asentoanturit

Ruukun asentoanturit
Ruukun asentoanturit

Lineaarinen anturi: Jotta eyeRobot vastaisi nopeuttaan käyttäjän nopeuteen, eyeRobot tunnistaa, työntäkö vai hidastaako käyttäjä eteenpäin suuntautuvaa liikettä. Tämä saavutetaan liu'uttamalla sokeriruo'on pohjaa rataa pitkin, koska potentiometri tunnistaa sokeriruo'on asennon. EyeRobot käyttää tätä tuloa robotin nopeuden säätämiseen. Idea eyeRobotista, joka mukautuu käyttäjän nopeuteen lineaarisen anturin avulla, on itse asiassa perheen ruohonleikkurin innoittama. Keppi pohja on kytketty kiskoa pitkin liikkuvaan ohjainlohkoon. Ohjauslohkoon on liitetty liukupotentiometri, joka lukee ohjauslohkon asennon ja raportoi sen prosessorille. Jotta sauva voi pyöriä robotin suhteen, puupalkin läpi kulkee tanko, joka muodostaa pyörivän laakerin. Tämä laakeri kiinnitetään sitten saranaan, jotta sauva voi mukautua käyttäjän pituuteen.

Kierre -anturi: Kääntöanturin avulla käyttäjä voi kiertää kahvaa robotin kääntämiseksi. Potentiometri on kiinnitetty yhden puisen varren päähän ja nuppi työnnetään ja liimataan kahvan yläosaan. Johdot kulkevat alas tapista ja syöttävät kiertotiedot prosessoriin.

Vaihe 5: Suoritin

Prosessori
Prosessori

Prosessori: Robottia ohjaa Zbasic ZX-24a, joka istuu Robodyssey Advanced -emolevyllä II. Prosessori valittiin sen nopeuden, helppokäyttöisyyden, edullisen hinnan ja 8 analogisen tulon vuoksi. Se on kytketty suureen prototyyppiseen leipälautaan, jotta muutokset ovat nopeita ja helppoja. Kaikki robotin virta tulee emolevyn virtalähteestä. Zbasic kommunikoi Roomban kanssa tavaratilan portin kautta ja hallitsee täysin Roomban antureita ja moottoreita.

Vaihe 6: Koodin yleiskatsaus

Koodin yleiskatsaus
Koodin yleiskatsaus

Esteiden välttäminen: Esteiden välttämiseksi eyeRobot käyttää menetelmää, jossa robotin lähellä olevat esineet kohdistavat virtuaalivoiman robottiin, joka siirtää sen pois kohteesta. Toisin sanoen esineet työntävät robotin pois itsestään. Toteutuksessani objektin aiheuttama virtuaalivoima on kääntäen verrannollinen etäisyyden neliöön, joten työntövoima kasvaa, kun kohde lähestyy ja luo epälineaarisen vastauskäyrän: PushForce = ResponseMagnitudeConstant/Distance2Kustakin anturista tulevat työntövoimat lasketaan yhteen; vasemman puolen anturit työntävät oikealle ja päinvastoin saadakseen vektorin robotin matkalle. Pyörien nopeuksia muutetaan siten, että robotti kääntyy tätä vektoria kohti. Varmistaaksesi, että robotin edessä kuolleet esineet eivät näytä "ei vastausta" (koska molemmin puolin olevat voimat tasapainottavat), kuolleen etuosan esineet työntävät robotin avoimemmalle puolelle. Kun robotti on ohittanut kohteen, se korjaa muutoksen ja palaa alkuperäiseen vektoriin Roomban koodereiden avulla.

Seinäseuranta: Seinäseurannan periaate on säilyttää haluttu etäisyys ja yhdensuuntainen kulma seinään. Ongelmia syntyy, kun robotti käännetään suhteessa seinään, koska yksittäinen anturi tuottaa hyödyttömiä etäisyyslukemia. Etäisyyslukemat vaikuttavat yhtä paljon robottien kulmasta seinään kuin todellisesta etäisyydestä seinään. Kulman määrittämiseksi ja tämän muuttujan poistamiseksi robotilla on oltava kaksi vertailupistettä, joita voidaan verrata robottien kulman saamiseksi. Koska eyeRobotilla on vain toinen puoli IR -etäisyysmittaria kohti, näiden kahden pisteen saavuttamiseksi sen on verrattava etäisyyttä etäisyysmittarista ajan mittaan robotin liikkuessa. Sitten se määrittää kulmansa kahden lukeman erosta, kun robotti liikkuu seinää pitkin. Se käyttää sitten näitä tietoja virheellisen sijoittelun korjaamiseen. Robotti siirtyy seinänseuranta -tilaan aina, kun sen vieressä on seinä tietyn ajan, ja poistuu siitä aina, kun sen tiellä on este, joka työntää sen pois tieltä tai jos käyttäjä käyttää kääntökahvaa tuodakseen robotti pois seinältä.

Vaihe 7: Osaluettelo

Osaluettelo
Osaluettelo

Tarvittavat osat: 1x) Roomba create1x) Suuri arkki akryyliä2x) Sharp GP2Y0A02YK IR -etäisyysmittari4x) Maxsonar EZ1 -ääni-etäisyysmittarit1x) ZX-24a-mikroprosessori1x) Robodyssey Advanced -emolevy II1x) Liukupotentiometri1x) Yksikierroksinen potentiometri1x) Lineaarinen Saranat, tapit, ruuvit, mutterit, kiinnikkeet ja vaijerit

Vaihe 8: Motivaatio ja parantaminen

Motivaatio ja parantaminen
Motivaatio ja parantaminen

Motivaatio: Tämä robotti on suunniteltu täyttämään ilmeinen aukko kykenevän mutta kalliin opaskoiran ja edullisen mutta rajoitetun valkoisen kepin välillä. Kehitettäessä myyntikelpoista ja tehokkaampaa robottivalkoista keppeä Roomba Create oli täydellinen ajoneuvo nopean prototyypin suunnitteluun, jotta voitaisiin nähdä, toimiiko konsepti. Lisäksi palkinnot antaisivat taloudellista tukea huomattaville kustannuksille, jotka liittyvät tehokkaamman robotin rakentamiseen.

Parannus: Määrä, jonka opin tämän robotin rakentamisesta, oli huomattava, ja tässä yritän kertoa, mitä olen oppinut yrittäessäni rakentaa toisen sukupolven robottia: 1) Esteiden välttäminen - Olen oppinut paljon reaaliaikaisista esteistä välttäminen. Tämän robotin rakentamisen aikana olen käynyt läpi kaksi täysin erilaista esteiden välttämisen koodia, alkaen alkuperäisestä esinevoimaideasta, siirtyen avoimimman vektorin löytämisen ja etsimisen periaatteeseen ja sitten takaisin kohdevoimaideaan avain oivallus, että objektivaste on epälineaarinen. Jatkossa korjaan virheeni, etten ole tehnyt online -tutkimusta aiemmin käytetyistä menetelmistä ennen kuin aloitan projektini, koska olen nyt oppimassa nopeaa Google -hakua, joka olisi tuottanut lukuisia hienoja papereita aiheesta. anturit - Tämän projektin alussa ajattelin, että ainoa vaihtoehto lineaariselle anturille oli liukupannun ja jonkinlaisen lineaarisen laakerin käyttö. Ymmärrän nyt, että paljon yksinkertaisempi vaihtoehto olisi ollut yksinkertaisesti kiinnittää tangon yläosa ohjaussauvaan siten, että sauvan työntäminen työntäisi myös ohjaussauvaa eteenpäin. Lisäksi yksinkertainen yleisnivel sallii sauvan kiertymisen muuntamisen monien nykyaikaisten ohjaussauvojen kierreakseliksi. Tämä toteutus olisi ollut paljon yksinkertaisempi kuin se, jota tällä hetkellä käytän. 3) Vapaasti kääntyvät pyörät - Vaikka tämä olisi ollut mahdotonta Roomban kanssa, näyttää nyt ilmeiseltä, että robotti, jossa on vapaasti kääntyvät pyörät, olisi ihanteellinen tähän tehtävään. Passiivisesti rullaava robotti ei vaadi moottoreita ja pienempää akkua ja on siten kevyempi. Lisäksi tämä järjestelmä ei vaadi lineaarista anturia havaitsemaan käyttäjien työntö, robotti yksinkertaisesti rullaa käyttäjän nopeudella. Robottia voitaisiin kääntää ohjaamalla pyörää kuin autoa, ja jos käyttäjä on pysäytettävä, jarrut voidaan lisätä. Seuraavan sukupolven eyeRobotissa käytän varmasti tätä hyvin erilaista lähestymistapaa.4) Kaksi erillistä anturia seinäseurantaan - Kuten aiemmin keskusteltiin, ongelmia ilmeni, kun yritettiin seurata seinää vain yhdellä sivulle suuntautuvalla anturilla, joten robotti oli siirrettävä lukemien välillä erilaisten vertailupisteiden saavuttamiseksi. Kaksi anturia, joiden etäisyys on niiden välillä, yksinkertaistaisi seinien seurantaa suuresti.5) Lisää antureita - Vaikka tämä olisi maksanut enemmän rahaa, oli vaikea yrittää koodata tätä robottia niin pienillä ikkunoilla prosessorin ulkopuolella. Se olisi tehnyt navigointikoodista paljon tehokkaamman täydellisemmällä luotainjärjestelmällä (mutta tietysti anturit maksavat rahaa, jota minulla ei ollut tuolloin).

Vaihe 9: Johtopäätös

Johtopäätös
Johtopäätös

Johtopäätös: iRobot osoittautui ihanteelliseksi prototyyppialustaksi robottivalkoisen ruoko -konseptin kokeilulle. Tämän prototyypin tuloksista käy ilmi, että tämäntyyppinen robotti on todellakin elinkelpoinen. Toivon kehittäväni toisen sukupolven robotin Roomba Create -palvelun käytöstä saaduista opetuksista. EyeRobotin tulevissa versioissa kuvittelen laitteen, joka pystyy tekemään enemmän kuin vain ohjaamaan ihmisen käytävällä, pikemminkin robotin, joka voidaan asettaa sokeiden käsiin käytettäväksi jokapäiväisessä elämässä. Tällä robotilla käyttäjä yksinkertaisesti puhuisi määränpäänsä ja robotti ohjaisi heidät sinne ilman käyttäjän tietoista ponnistelua. Tämä robotti olisi tarpeeksi kevyt ja kompakti, jotta se olisi helppo kuljettaa portaita ylös ja piilottaa kaappiin. Tämä robotti kykenee suorittamaan paikallisen lisäksi maailmanlaajuisen navigoinnin ja voi ohjata käyttäjää alusta loppuun ilman käyttäjien ennakkotietoa tai -kokemusta. Tämä ominaisuus ylittäisi jopa opaskoiran.

Vaihe 10: Rakenne ja koodi

Rakenne ja koodi
Rakenne ja koodi

Muutamia vieraita sanoja rakentamisesta: Kansi, joka on valmistettu ympyrän muotoisesta akryylikappaleesta ja jossa on aukko takana, jotta pääsee käsiksi elektroniikkaan, ja ruuvataan sitten tavaratilan vieressä oleviin kiinnitysreikiin. Prototyyppikortti ruuvataan ruuvinreikään lokeron pohjassa. Zbasic on asennettu L -kiinnikkeellä, jossa on samat ruuvit kuin kannella. Jokainen luotain ruuvataan akryylipalaksi, joka puolestaan kiinnitetään kannelle kiinnitettyyn L -kiinnikkeeseen (L -kiinnikkeet on taivutettu 10 astetta taaksepäin paremman näkymän aikaansaamiseksi). Lineaarisen anturin kisko ruuvataan suoraan kannelle ja liukupannu on asennettu L -kiinnikkeiden viereen. Tekninen kuvaus lineaarianturin ja ohjaustangon rakenteesta on vaiheessa 4.

Koodi: Olen liittänyt robottikoodin täyden version. Tunnin aikana olen yrittänyt puhdistaa sen kolmesta tai neljästä koodisukupolvesta, jotka olivat tiedostossa, sen pitäisi olla tarpeeksi helppo seurata nyt. Jos sinulla on ZBasic IDE, sen pitäisi olla helppo tarkastella, ellei käytä muistilehteä, joka alkaa tiedostosta main.bas ja käy läpi muut.bas -tiedostot.

Suositeltava: