Tartalomjegyzék:
- 1. lépés: 1. lépés: Szükséges anyagok
- 2. lépés: 2. lépés: A Roomba kódjának beállítása/beszerzése
- 3. lépés: 3. lépés: A sziklaérzékelők/LED -lámpák beállítása
- 4. lépés: 4. lépés: Ellenőrizze az akadályokat
- 5. lépés: 5. lépés: Ábrázolás
Videó: Roomba MATLAB projekt: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
A NASA jelenlegi terve a Mars roverre vonatkozóan az, 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ón. Ezenkívül a rover képeket küld vissza a tudósoknak, hogy segítsenek navigálni a roverben, és megoldják az esetleges problémákat.
Csoportunk elképzelése a projektünkről, hogy a rover ugyanazt tegye, mint a NASA roverje, amely 2020 -ban elhagyja a földet, de feltérképezze a föld földrajzát is. A roomba képes lenne érzékelni a sziklákat, és megállni, mielőtt leesik, majd hátrálni, fordulni és megváltoztatni az irányát, hogy ne essen le és ne sérüljön meg. A másik ötletünk, amelyet a projektünkbe integráltunk, az, hogy a roomba képes legyen felrajzolni a látott tereptárgyakat, és megjeleníteni egy parcellát minden alkalommal, amikor a ciklus befejeződik és fut.
Ez az utasítás mindenkinek szól, aki ugyanazt a kódot szeretné létrehozni a roomba számára.
1. lépés: 1. lépés: Szükséges anyagok
Szükséged lesz:
- Egy szoba
- MATLAB
- Ez a fájl a roomba futtatásához
- Sima felület
- Az asztal felülete "szikla"
2. lépés: 2. lépés: A Roomba kódjának beállítása/beszerzése
A fájlok bevitele után a képernyője így fog kinézni.
3. lépés: 3. lépés: A sziklaérzékelők/LED -lámpák beállítása
Ez a kód pontosan megmondja a Roomba -nak, hogy milyen szögben kell fordulnia, ellenőrizze az akkumulátor adatait, megmondja a Roomba -nak, hogy milyen gyorsan kell mennie, és hogy a roomba kameráján keresztül ellenőrizze, hogy van -e személy. Ez akkor is sípol, ha azonosít egy személyt, és megáll, mielőtt lemegy egy szikláról.
% try rob.setLEDDigits ('') x = 0; y = 0; téta = 0; akadály = ; ciklus = 1; AngCorr = @(x) x + 3,059.*X.^0,4205; %Funkció a fordulási szögek korrigálására, miközben rob.getBatteryInfo.percent> 15 rob.setLEDDigits (") rob.setDriveVelocity (0,1) %Go %Check for Person if AA_checkperson (rob) rob.beep end %Check Cliff Sensor if AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') szünet (0,5) akadály (ciklus) = 2; AA_cliffbeep (rob) %Back up and Turn rob.moveDistance (-. 15) rob.turnAngle (30) end
4. lépés: 4. lépés: Ellenőrizze az akadályokat
Ez a kód ellenőrzi a roomba -t a körülötte lévő tárgyak tekintetében, és ellenőrzi a dudorérzékelőt, hogy megáll -e, mielőtt megrongálja magát.
%Ellenőrizze a fényérzékelőt, ha AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Fal') szüneteltetése (0,5) akadály (ciklus) = 1; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %Ellenőrizze az ütésérzékelőt, ha AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') szünet (0,5) akadály (ciklus) = 1; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %Ha nincs, ha üres (akadály) akadály (ciklus) = 0; elseif hossz (akadály) <ciklus akadály (ciklus) = 0; vége
5. lépés: 5. lépés: Ábrázolás
Ez a kód azt fogja mondani a Roomba -nak, hogy írja le, mit talál az út során. Egy ilyen cselekmény a roomba leállítása után jelenik meg.
%Pozíció lekérése d = rob.getDistance; ha ciklus == 1 théta (ciklus) = 0; x (ciklus) = d.*cosd (théta (ciklus)); % teljes megtett távolság x y -ban (ciklus) = d.*sind (théta (ciklus)); % teljes megtett távolság y máshol théta (ciklus) = théta (ciklus-1) + rob.getAngle; x (ciklus) = d.*cosd (théta (ciklus)) + x (ciklus-1); % teljes megtett távolság x y-ban (ciklus) = d.*sind (théta (ciklus)).*d + y (ciklus-1); %teljes megtett távolság y végén %Szakadási feltétel, ha rob.getButtons.clean break end %Növelési ciklusciklus = ciklus + 1; end rob.stop i = 1 esetén: ciklus, ha akadály (i) == 1 %Falábrázolás (x (i), y (i), 'Marker', 'square', 'MarkerEdgeColor', 'r') elseif akadály (i) == 2 %Cliff plot (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') végszöveg (.9, 0.9, sprintf ('Square = Wall) nCircle = Cliff '),' Units ',' normalized ') visszatartja a % vészjelzést, miközben a valódi rob.beep szünet (3), ha a rob.getButtons.clean break end end % catch % rob.stop % end
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 projekt: 5 lépés (képekkel)
Roomba Project: Ez az oktatható a Dél -Floridai Egyetem Makecourse projektkövetelményének teljesítésével jött létre (www.makecourse.com). Ez az oktatóanyag tartalmazza a Roomba projektem összeszereléséhez szükséges lépéseket és alkatrészeket
Roomba MATLAB -tal: 4 lépés (képekkel)
Roomba MATLAB -szal: 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 attól függ, hogy