Tartalomjegyzék:
- 1. lépés: Felszerelés
- 2. lépés: MATLAB beállítás
- 3. lépés: Funkció: Mozgás
- 4. lépés: Funkció: Képfeldolgozás
- 5. lépés: Funkció: Térképezés
- 6. lépés: Összehasonlítás
- 7. lépés: Tesztelés
- 8. lépés: Következtetés
Videó: Roomba Scout Explorer: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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
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
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
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
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
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
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
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:
A Roomba átalakítása Mars Roverré: 5 lépés
A Roomba átalakítása Mars Roverré:
Roomba Bot the Bulider: 5 lépés (képekkel)
Roomba Bot the Bulider: A Bot the Builder egy roomba, amely " grabbers " az elejére rögzítve képes lesz tárgyakat mozgatni. A vele ellátott kód úgy van beállítva, hogy rögzítse az első mozdulatot egy GUI dobozzal, amelyet csak egérkattintással vezérelhet. Utána
MATLAB vezérelt Roomba: 5 lépés
MATLAB vezérelt Roomba: A projekt célja a MATLAB és egy módosított iRobot programozható robot használata. Csoportunk egyesítette kódolási készségeinket, hogy létrehozzon egy MATLAB szkriptet, amely az iRobot számos funkcióját használja, beleértve a sziklaérzékelőket, a lökhárító érzékelőt
Roomba Explorer: 4 lépés
Roomba Explorer: A MATLAB és az iRobot Create2 Robot használatával ez a projekt egy ismeretlen hely különböző területeit fogja felderíteni. A robot érzékelőit alkalmaztuk a veszélyes terep manőverezéséhez. Fényképeket és videócsatornákat szerezve egy Raspberry Pi -től, amely
Bus Pirate 3EEPROM Explorer Board: 5 lépés
Bus Pirate 3EEPROM Explorer Board: Ha van Hack a Day's Bus Pirates, akkor mit kezd vele? Ismerje meg az 1 vezetékes, I2C és SPI EEPROM-okat a 3EEPROM explorer táblával (ezt THR-EE-PROM-nak hívjuk). Az EEPROM egy olyan memóriachip, amely folyamatosan áram nélkül tárolja az adatokat