Tartalomjegyzék:

Roomba Scout Explorer: 8 lépés
Roomba Scout Explorer: 8 lépés

Videó: Roomba Scout Explorer: 8 lépés

Videó: Roomba Scout Explorer: 8 lépés
Videó: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, November
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Mint az egyik legjobban várt és leginkább kutatott amerikai projekt, a Mars rover projektjei emberi eredmények lettek a csúcstechnológiájú autonóm rendszerek folyamatosan fejlődő gyártásában, kizárólag a mögöttük lévő vörös bolygó szárazföldjeinek és felszínének vizsgálatára és értelmezésére. a Föld. A Mars küldetéseinek tisztelegő, személyesebb projekt részeként célunk egy roomba robot létrehozása volt, amely egy bizonyos időtartam alatt önállóan tud cselekedni, és ennek megfelelően reagál bizonyos kritériumokra a környezetében.

Ami az egyediséget illeti, egy olyan diagram létrehozására összpontosítottunk, amely bemutatja a robot minden útját, amely az eredetétől származik. Ezenkívül a robot panoráma stílusban képes lesz számolni a közelében lévő tárgyak számát.

1. lépés: Felszerelés

-Roomba w/ Csatolható kamera (ismert névvel)

-Csatlakoztatott szerver

-Windows 10 / Mac internetkapcsolattal

-Világos platform

-Sötét padló

-Minden kóbor, monokromatikus tárgy

2. lépés: MATLAB beállítás

MATLAB beállítás
MATLAB beállítás

A roomba feladatainak és funkcióinak létrehozásához rendelkeznie kell a roomba parancsokat tartalmazó speciális kódokkal és eszközkészletekkel.

A MATLAB 2016a és újabb letöltése esetén hozzon létre egy mappát, amely tartalmazza ezeket a robotfájlokat, és illessze be az alábbi MATLAB -fájlt a mappába, és futtassa azt a többi szükséges roomba fájl telepítéséhez.

Ezután kattintson a jobb gombbal az Aktuális mappa ablakban, vigye az egeret az "Útvonal hozzáadása" fölé, és kattintson az "Aktuális mappa" elemre. Most olyan útvonalat kell beállítani, hogy minden ilyen fájl a roomba aktiválására szolgáljon.

Most használja a parancsablakban található alábbi parancsot a roomba beállításához:

r = roomba (#).

A # szimbólum a megadott roomba „száma”; ha azonban csak a roomba szimulátorát szeretné, egyszerűen írja be a következő parancsot:

r = roomba (0).

A szimulációt a mozgásminták tesztelésére ajánljuk.

Ha kíváncsi, hogy a roomba milyen parancsokat követhet, írja be a következőt a parancsablakba:

doktor Roomba.

További részletekért keresse fel az alábbi weboldalt:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

3. lépés: Funkció: Mozgás

Funkció: Mozgás
Funkció: Mozgás
Funkció: Mozgás
Funkció: Mozgás

Ami a mozgást illeti, a roomba automatikusan mozogjon a bemenetekben megadott ideig. A robot mozgásának célja az, hogy megfelelően reagáljon, amikor érzékelői (lökhárítók, könnyű lökhárítók és sziklaérzékelők) különböző akadályok jelenlétében megváltoznak. Ez a rész szolgálna a Roomba összes parancsának alapjául, mivel a kód további funkcióit később hozzáadjuk. Szükség volt néhány specifikációra:

-A sérülések csökkentése érdekében a robotnak csökkentenie kell a sebességet.

-Amikor egy szikla vagy fal felé közeledik, a robot hátramenetben mozog, és az ütés helyétől függően megváltoztatja a szögét

-Egy kis idő után a roomba végül megáll, és képeket készít a környező területről

Vegye figyelembe, hogy a használt értékek a szimulátorhoz viszonyítottak; az olyan értékeket, mint a fordulási szögek fordulási sebessége és a robotérzékelő -beállítások, módosítani kell a tényleges robot használatakor, hogy biztosítsuk a stabilitást és a berendezési hibák elszámolását.

4. lépés: Funkció: Képfeldolgozás

Funkció: Képfeldolgozás
Funkció: Képfeldolgozás

Kérésünk szerint azt a feladatot kaptuk, hogy módosítsuk a robot (vagy több kép) adatait, amelyeket a robot fényképezőgépe kapott, és úgy döntöttünk, hogy a roomba "számba veszi" a képen látott objektumok számát.

Követtük azt a technikát, hogy a MATLAB határokat húz a megfeketedett objektumok köré, amelyek kontrasztban vannak a fehér háttérrel. Ennek a funkciónak azonban nehézségei vannak nyílt területen, mivel a fényképezőgép különböző formákat és színeket érzékel, ami szokatlanul magas számokat eredményez.

Ne feledje, hogy ez a funkció nem működik a szimulátorban, mivel nincs hozzá kamera; ha megpróbálják, hiba lép fel, amely csak (:,:, 3) mátrixot használ.

5. lépés: Funkció: Térképezés

Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés
Funkció: Térképezés

Egy további funkció, amelyet a robotnak akartunk, az volt, hogy feltérképezze helyét, mivel közvetlenül kölcsönhatásba lép a környezettel. Így az alábbi kód egy térkép megnyitására és koordináta -rendszer felállítására törekszik, amely részletezi a robot lökhárító érzékelőinek minden egyes helyét. Ez bizonyult a leghosszabb szakasznak a három rész közül, amelyeket egyénileg tesztelni kellett, de sokkal egyszerűbbnek bizonyult, ha a végső forgatókönyvre alkalmazták.

Annak érdekében, hogy korlátot adjunk a függvény futási idejéhez, a while ciklus n <20 korlátját használtuk tesztelésre.

Ne feledje azonban, hogy a kód bonyolultsága miatt több hiba fordul elő, amikor a kódszegmens hosszú ideig fut; a korábbi tesztek alapján úgy tűnik, hogy tíz dudor a pontok száma, mielőtt jelentős hibák fordulnak elő.

6. lépés: Összehasonlítás

Összehasonlítás
Összehasonlítás
Összehasonlítás
Összehasonlítás
Összehasonlítás
Összehasonlítás
Összehasonlítás
Összehasonlítás

Mivel mindez egyetlen fájlba kerül, létrehoztunk egy függvényt az előző két lépés mindegyikének részfunkcióiként. A végső vázlat a redon függvény következő módosításával készült, "recon" néven. A MATLAB félreértésének elkerülése érdekében a "counter" és a "rombplot3" szkripteket átnevezték beágyazott függvényekre, "CountR" és "plotr".

A végleges verzióban számos változtatást kellett végrehajtani, szemben a korábbi szkriptekkel:

-A származást mindig piros kör jelzi

-Minden alkalommal, amikor a roomba megáll ütközőjétől, a helyet fekete kör jelzi

-Minden alkalommal, amikor a roomba megáll sziklaérzékelőitől, a helyet kék kör jelzi

-Minden alkalommal, amikor a roomba abbahagyja a terület vizsgálatát, a hely zöld körrel van jelölve

-A képeket úgy módosítjuk, hogy a felső részt eltávolítsuk, mivel az időbélyegző esetleg zavarja az eredményeket

-A határok nem számítanak objektumnak a meglehetősen magas számok miatt

-Több változó megváltozott, így a félreértések elkerülése érdekében használja a fenti verziókat referenciaként.

7. lépés: Tesztelés

Tesztelés
Tesztelés

Az egyes összetevők tesztjei időnként meglehetősen vegyesek voltak, ezért bizonyos előre beállított értékek módosítására volt szükség. A tematikus háttér, amelyen a zárt területen akartuk tesztelni a robot képességeit, egyszerűen egy sokkal sötétebb padlóra fektetett táblából állt. Szórhatja a tárgyakat a területen; tegye őket olyan tárgyakká, amelyekkel ütközni kell, vagy távoli tárgyaknak kell lenniük a robot mozgási területén.

A szabályozott idő és alapsebesség beállítása után a roomba megfelelő mozgási viselkedést mutatott, megállt és hátrált minden „sziklától” vagy tárgytól, amelybe beleütközött, valamint lelassult, mivel észlelt valamit a közelben. A kívánt három méteres utazási távolság elérésekor a robot megáll, és kiértékeli a területet, felvételt készít minden 45 fokos régióról, és továbbhalad, ha az idő engedi. A fordulatai azonban a kértnél nagyobbnak tűntek, ami azt jelenti, hogy a koordináta -adatok homályosak lesznek.

Minden alkalommal, amikor megáll, egy új pont került a koordináta -rendszer helyzetének hozzávetőleges tartományába; megjegyzendő azonban, hogy a roomba kezdeti iránya kulcsfontosságú szerepet játszik a térkép kialakításában. Ha egy iránytű funkció megvalósítható lenne, akkor azt a térkép kialakításának döntő részeként használták volna.

A funkció teljes működéséhez szükséges tényleges idő mindig meghaladja a kért időt, ami logikus, tekintve, hogy nem állhat le egyik helyreállításának közepén. Sajnos ennek a képszámlálási változatnak megvannak a maga problémái, különösen azokon a területeken, amelyek vagy többnyire monokromatikusak, vagy különböző fényerősségűek; mivel két árnyalat megkülönböztetésére törekszik, hajlamos érzékelni a nem kívánt tárgyakat, ezért mindig őrülten magas számokig tart.

8. lépés: Következtetés

Következtetés
Következtetés

Bár ez a feladat nagyon kalandos és kreatív munka volt, amely megkönnyebbülést okozott, személyes megfigyeléseim alapján nagyon sok hibát láttam, amelyek problémásak lehetnek mind a kódban, mind a robot viselkedésében.

Az idő megadásának korlátozása a while ciklusban azt eredményezi, hogy a teljes időtartam a kívántnál hosszabb; a panoráma technika és a képfeldolgozás folyamata valójában tovább tarthat, ha lassú számítógéppel futtatják, vagy nem használják előtte. Ezenkívül a bemutatónkban használt roomba nagyon sok hibával járt el, különösen mozgásban, a szimulátorhoz képest. A használt robot sajnos hajlamos volt kissé balra dőlni, mivel egyenesen haladt, és a kívántnál nagyobb kanyarokat hajtott végre. Emiatt és sok más okból is erősen ajánlott, hogy e hibák ellensúlyozása érdekében változtatásokat kell végrehajtani a fordulási szögein.

Mindazonáltal ez egy hosszú, de intellektuálisan stimuláló projekt, amely érdekes tanulási élményként hatott a kódok és parancsok alkalmazására, hogy közvetlenül befolyásolja egy tényleges robot viselkedését.

Ajánlott: