Tartalomjegyzék:
- 1. lépés: Alkatrészek és anyagok
- 2. lépés: Konfiguráció
- 3. lépés: MATLAB logika
- 4. lépés: Következtetés
Videó: Roomba MATLAB -tal: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ez a projekt a MATLAB -ot és egy iRobot Create2 programozható robotot használja. A MATLAB ismereteit próbára téve képesek vagyunk a Create2 programozására a képek értelmezésére és a jelek észlelésére. A robot funkcionalitása elsősorban a MATLAB mobilalkalmazástól és egy Raspberry Pi kameramodultól függ.
1. lépés: Alkatrészek és anyagok
1. iRobot Create, 2. verzió
- Ez egy programozható robot, amely úgy néz ki, mint egy Roomba. Ne feledje, hogy ez az iRobot termék nem vákuum. A felhasználó egyéni programozására szolgál.
2. MATLAB 2017a
- A legtöbb régebbi verzió kompatibilis lesz az alább használt kóddal. A MATLAB azonosít egy olyan parancsot, amely nem kompatibilis az Ön verziójával, és javaslatot tesz a legjobban illeszkedő parancsra.
3. Raspberry Pi 3 B modell, 1.2 verzió
- Ellenőrizze, hogy melyik Raspberry Pi kompatibilis az Ön iRobotjával. További segítségért lásd ezt a linket: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ez az utasítás feltételezi, hogy előre programozott Raspberry Pi -vel dolgozik. Kérjük, vegye figyelembe, hogy az alábbi lépések működéséhez előre programozott Pi -vel kell dolgoznia. Az előre programozott Pi használatával minden kódolást egyedül a MATLAB -ban hajthat végre.
4. Kamera modul V2 (Raspberry Pi esetén)
- Meglepődhet; mérete ellenére a Raspberry Pi kamera modul nagyon jó minőségű. Ez a legolcsóbb és leginkább kompatibilis opció ehhez a projekthez.
Opcionális: 3D nyomtatott állvány. Ez a kamera stabilizálására szolgál. Ez nem befolyásolja a robot működését, de segít a kódolásban, ha képalkotó adatokat szeretne használni a szín- és/vagy objektumfelismeréshez.
2. lépés: Konfiguráció
1. A Raspberry Pi és a kameramodul csatlakoztatása (hardver)
- A Raspberry Pi tápellátásához egy mikro végű USB -csatlakozót kell futtatnia a mikrovezérlő női tápcsatlakozójához. Opcionális: Feszültségszabályozó használható annak biztosítására, hogy a feszültség ne haladja meg az 5 V -ot. A Raspberry Pi bekapcsolása után csatlakoztathatja azt a robotjához úgy, hogy az alaplapból a férfi USB -végét futtatja az alaplapról a mikrokontroller A -portjára.
- A Pi és a Roomba csatlakoztatása után a kamera készen áll a telepítésre. A kamera modul sokkal kisebb lesz, mint amire számít. Ne feledje, hogy az objektív érzékelőre van szerelve, és fehér szalag húzódik ki a fényképezőgépből. NE távolítsa el vagy szakítsa meg a szalagot! Ez a kábel szükséges a Raspberry Pi csatlakoztatásához. Először fogja meg a szalag végét, és keresse meg az ezüst csatlakozókat és a kék kábelt. Ezek ellentétes oldalon vannak. Ezután keresse meg a Raspberry Pi ethernet és HDMI portjai közötti rést. Vegye figyelembe, hogy egy kis, fehér zár borítja. Lassan emelje fel a zárat, de ne vegye ki a nyílásból, mert bepattan és véglegesen megsérül. Miután felemelte a zárat, fogja meg a szalagot, és fordítsa az ezüst csatlakozókat a HDMI -porthoz. A kék oldal az Ethernet port felé néz. Lassan csúsztassa a szalagot a nyílásba, amíg az még nincs feloldva. Nem kell erőltetni a nyílásba. Behelyezés után nyomja vissza a zárat. Ha a fényképezőgép megfelelően rögzítve van, képesnek kell lennie arra, hogy (óvatosan) meghúzza a szalagot, és érezze a feszültséget. A szalag nem lehet laza. Miután csatlakoztatta a kamerát a Pi -hez, észreveheti, hogy mennyire laza. Ezért használtuk a 3D nyomtatott rögzítést a rögzítéshez. Az Ön döntése, hogy milyen anyagokat szeretne használni, hogy a fényképezőgép mozdulatlan maradjon a kiváló minőségű képalkotáshoz.
2. Megfelelő fájlok telepítése és a Roomba csatlakoztatása a számítógéphez Miután az összes hardver konfigurálva lett, továbbléphet a MATLAB telepítéséhez a kapcsolódó m-fájlokkal együtt, amelyek lehetővé teszik a kommunikációt a robottal. Ehhez nyissa meg a MATLAB alkalmazást, és hozzon létre egy új mappát az összes kapcsolódó fájl együtt tartásához. Használja ezt a szkriptet a szükséges fájlok telepítéséhez/frissítéséhez:
- Az összes fájlnak meg kell jelennie a létrehozott mappában. Kattintson a jobb gombbal az Aktuális mappa ablakban, és válassza a „Hozzáadás az útvonalhoz” lehetőséget, hogy hozzáadja az elérési utat azon könyvtárak listájához, ahol a MATLAB fájlokat keres. Győződjön meg arról, hogy az összes fájl a megfelelő elérési úton van.
3. A fájlok telepítése után elkezdheti a robothoz való csatlakozást. Kezdje azzal, hogy bekapcsolja a robotot, majd alaphelyzetbe állítja azt közvetlenül az indítás után (ne felejtse el alaposan visszaállítani a robotot minden használat előtt és után). Másodszor, csatlakoztassa a robotot és a laptopot ugyanahhoz a wifi hálózathoz. Ezt követően beszélünk az előre programozott Raspberry Pi -vel a MATLAB -on keresztül, a Roomba hívásával és a roomba funkcióval. Például a 28 -as robothoz a következő sor használatával csatlakoznék: R = roomba (28).
- Figyelje meg, hogyan rendeltem hozzá az objektumot egy R változóhoz. Most már hozzá tudok férni a kapcsolódó Roomba funkciókhoz a telepítőfájlból úgy, hogy az R változót struktúrának tekintem.
- R.turnAngle (90) Ha minden jól ment, zenei hangnak kell megszólalnia, megerősítve a kapcsolatot.
3. lépés: MATLAB logika
A lépés alján található PDF dokumentum a MATLAB kódolási folyamatának részletes logikai folyamatábrája. Aktiváltuk a szikla-, fény- és fényütés -érzékelőket, hogy a robot kommunikálhasson velünk, amikor észlel egy tárgyat a közvetlen közelében. Például, amikor a robot előrehalad, a fényérzékelői keresik az útjában lévő tárgyakat a vektor szerint, amelyen halad. Kiválasztottuk a robot számára a távolság küszöbértékét, hogy amikor közeledik egy tárgyhoz, akkor megfordul, ahelyett, hogy ütközne vele. Robotunk a Twitteren is konfigurálva van, amelyet a kódolási folyamatunkban adtunk meg (ez alább látható).
Az élmény fokozása érdekében a MATLAB alkalmazást használtuk mobil eszközeinken, hogy csak a telefonunk döntésével tudjuk irányítani a robot mozgását. Ez egy opcionális tevékenység, mivel biztosan mozgathatja a robotot, ha helyette a MATLAB kódszegmensben lévő moveDistance parancsot használja. Ne feledje, hogy a MATLAB parancsok használata a robot irányításához előnyös, ha célja pontos. Ha azt szeretné, hogy a robotot úgy célozza meg, hogy a kamera egy adott helyen készítsen képet, akkor jobb lehet a robot mozgását kódolni a MATLAB -ban. Bár szórakoztató, a MATLAB alkalmazás használata a robot vezérlésére nem kívánatos a pontosság érdekében.
A Kód megparancsolja a Roomba -nak, hogy végezzen el egy alapbeállítást, majd folytassa a folyamatos cikluson keresztül. Kezdetben a laptop a Roomba () paranccsal kapcsolatot létesít a Roomba -val. Ezenkívül létrehozza a twitter kapcsolatot a MATLAB webwrite () parancsával. A ciklus öt fő logikai folyamatot tartalmaz a Roomba környezetétől függően. Először a Roomba ellenőrzi az akadályokat, és ha akadályba ütközik, visszafelé igazít. A hurokba ágyazva a második útvonal figyelmezteti a felhasználókat a Roomba elhurcolására. Fontos segédprogram a zord Marsi Warzone -ban. Miután a Roomba megállapította, hogy helyzete biztonságos, a mobileszközre néz, hogy meghatározza a következő mozgását. Ha a mobileszköz előre van döntve, akkor a gördülési mérés súlyosságától függően kiszámítja az alapsebességet, majd beállítja az egyes keréksebességeket a dőlésszög alapján. A telefon fordítva is mozgathatja a Roomba -t. A semleges mobilkészülék állapota zárja az utolsó két utat. A pihenő Roomba keres egy idegen zászlót, és ennek megfelelően figyelmezteti a felhasználót.
Az alábbiakban a kódunk található (MATLAB 2017a)
%bemenet: Tájékozódási adatok egy wifi csatlakoztatott eszközről, kameráról
%információ, érzékelő adatok
%kimenet: a mozgást a wifi -hez csatlakoztatott eszköz és a mozgás vezérli
% biztonságosan ellenőrizve van az érzékelő adatainak olvasásával. Ha a kamera észleli
% idegen lobogó, akkor a roomba az ellenség zászlójának tweetelésével válaszol
% kiszúrva.
%cél: eszközünk nem él semmi céllal, kivéve azok védelmét, akik
% hozta létre, szolgálja az alkotóját és teszi
% pontosan azt mondta.
Használat: lényegében a program magától fog futni.
mindent töröl, mindent bezár, clc
%Objektumok és változók inicializálása
r = roomba (28);
m = mobildev;
%use response = webwrite (gazdagépnév, adatok)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'A RoboCop működőképes … Várakozás a parancsra';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (gazdagépnév, adatok);
%folyamatosan futó hurok
míg 1 == 1
Relavent adatokat tartalmazó struktúrák %-a
o = m.orientáció; A mobileszköz %-os tájolása
fény = r.getLightBumpers (); %Könnyű lökhárító értékek
a = r.getCliffSensors (); %CLiff érzékelő értékek
bump = r.getBumpers (); %Lökhárító érzékelők
%ellenőrző ütközők
ha bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%ellenőrző lámpa Érzékelők
elseif light.bal> 60 || light.leftFront> 60 || light.leftCenter> 60 || könnyű.jobb> 60 || light.rightFront> 60 || fény.jobbközpont> 60
r.moveDistance (-. 2,.2);
%ellenőrzés Cliff érzékelők
Lopásgátló jelzés és értesítés
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'A RoboCop -ot feloldották!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (gazdagépnév, adatok);
%Normál sziklakerülő művelet
elseif a.bal <300 || a. jobb <300 || a.leftFront <300 || a.jobb elöl <300
r.moveDistance (-. 2,.2);
%Roomba megfelelt az ellenőrzéseken, és most normál működéssel fog futni.
%Kezdetben a készülék tekercsét mérik, és bázissá válik
%sebesség, amelyet a kerék fordulatszámának kiszámítására használnak
%Előre mozgás
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
ha o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
egyébként r.stop
vége
%Visszafelé irányuló mozgás
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%resting roomba megkeresi a fluoreszkálóként megjelölt Idegen zászlót
%zöld Papírdarab
más
r.megáll
img = r.getImage (); %készítsen képet
küszöb = szürke (img (200: 383,:, 2))+. 1; %kalkulált zöld szint
ha küszöb>.42
tweet = 'Ellenség foltos !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (gazdagépnév, adatok);
más
r.megáll
vége
vége
vége
4. lépés: Következtetés
Ne feledje, használhatja a fentebb írt szkriptet, de bármikor módosíthatja azt az igényeinek megfelelően. Nem kell, hogy a telefonod vezérelje! (Ez azonban szórakoztatóbbá teszi.) Válassza ki, hogy melyik módszert használja a robot irányításához. Vezess körbe a robottal és élvezd!
Ajánlott:
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
Böngészővezérelt Roomba robot a Raspberry Pi 3 A+modellel: 6 lépés (képekkel)
Böngésző által vezérelt Roomba robot a Raspberry Pi 3 A+modellel: Áttekintés Ez az utasítás arra fog összpontosítani, hogyan adhat egy halott Roomba új agyat (Raspberry Pi), szemét (webkamera), és hogyan irányíthat mindent egy webböngészőből. Sok Roomba hack létezik, amelyek lehetővé teszik a vezérlést a soros interfészen keresztül. Nekem nincs
Roomba MATLAB projekt: 5 lépés
Roomba MATLAB projekt: A NASA jelenlegi terve a Mars roverre vonatkozóan, hogy adatgyűjtő legyen, és a Mars körül barangoljon, mintákat gyűjtsön a talajból, hogy visszahozza őket a Földre, hogy a tudósok láthassák, léteztek -e korábbi életformák A bolygó. További
Roomblock: platform a ROS navigáció tanulásához Roomba, Raspberry Pi és RPLIDAR segítségével: 9 lépés (képekkel)
Roomblock: platform a ROS navigáció tanulásához Roomba, Raspberry Pi és RPLIDAR segítségével: Mi ez? &Quot; Roomblock " egy robotplatform, amely egy Roombából, egy Raspberry Pi 2 -ből, egy lézeres érzékelőből (RPLIDAR) és egy mobil akkumulátorból áll. A rögzítő keretet 3D nyomtatók készíthetik. Az ROS navigációs rendszer lehetővé teszi a szobák térképének elkészítését és az