Obsah:
- Krok 1: Materiály
- Krok 2: Připojení
- Krok 3: Logické vytvoření kódu MATLAB pro použití senzorů
- Krok 4: Testování kódu a robota
- Krok 5: Rozpoznání chyby
- Krok 6: Závěr
Video: Roomba Parking Pal: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento projekt používá iRobot Create programovatelný roomba, MATLAB r2018a a MATLAB mobile. Pomocí těchto tří médií a našich znalostí kódování jsme naprogramovali iRobot Create tak, aby interpretoval barvy a používal palubní senzory k plnění úkolů. Tyto projekty k provedení těchto úkolů závisí na komunikaci Raspberry Pi a MATLAB.
Krok 1: Materiály
1. Robot iRobot Create
2. MATLAB r2018a
3. Raspberry Pi
4. Modul kamery
5. Stojan stabilizátoru fotoaparátu s 3D potiskem
6. Smartphone s nainstalovaným mobilním telefonem MATLAB
7. Notebook/počítač s nainstalovaným MATLABem
Krok 2: Připojení
Tento krok se týká připojení Raspberry Pi k robotovi, zadruhé připojení robota k počítači a připojení smartphonu k počítači.
Nejjednodušší součástí tohoto procesu je připojení Raspberry Pi k vašemu robotu, protože Raspberry Pi je namontováno na horní části robota. Od robota je kabel, který stačí zapojit do boku Raspberry Pi.
Dalším krokem je připojení robota k počítači, abyste mohli spouštět příkazy, které má robot provádět. První věc, kterou musíte udělat, je připojit počítač k bezdrátové síti, kterou vytváří váš roomba. Nyní se doporučuje použít ikonu Nastavit cestu v MATLABu k nastavení cesty, abyste mohli používat funkce v sadě nástrojů Roomba od MATLABu. Pokaždé, když začínáte a ukončujete používání robota, musíte provést tvrdý reset robota „dvěma prsty“, což znamená, že na deset sekund podržíte tlačítka doku a bodu, dokud světlo nezhasne, což znamená uvolnění. S tímto tvrdým resetem jste byli úspěšní, pokud slyšíte robota hrát v krátkém měřítku. Dále se musíte připojit k roomba pomocí řádku kódu, jako je tento „r = roomba (x)“, kde „x“je číslo určené robotovi, kterého máte.
Nakonec si musíte stáhnout MATLAB mobile na jakékoli mobilní zařízení, které budete pro tento projekt používat, a tato aplikace je k dispozici na zařízeních Android i Apple. Jakmile je aplikace nainstalována, budete se muset přihlásit pomocí svých přihlašovacích údajů. Poté musíte toto zařízení připojit k počítači pomocí karty označené „Více“-> poté klikněte na „nastavení“-> poté klikněte na „Přidat počítač“, čímž se zobrazí obrazovka zobrazená na výše uvedených obrázcích. Poté, co uvidíte toto dalším krokem, kterým musíte projít, je pouze připojení a uchování požadovaných informací. Jakmile se úspěšně připojíte, budete moci volat funkce, které definujete na počítači v telefonu, k ovládání robota.
Krok 3: Logické vytvoření kódu MATLAB pro použití senzorů
Kód bude nejjednodušší vytvořit, když je většina z nich v cyklu on while, aby roomba mohla neustále aktualizovat platné hodnoty, na které se dívá. Pokud dojde k chybě, MATLAB zobrazí chybu a kde se v kódu objeví, takže je řešení problémů relativně jednoduché.
Tento kód, navržený v r2018a MATLAB, využívá standardní sady nástrojů, sadu nástrojů iRobot Create a také mobilní sadu nástrojů MATLAB. Roomba použitá v tomto příkladu je označena jako 26 a r = roomba (26) musí být spuštěna pouze jednou, aby plně komunikovala s roomba.
Kód:
funkce parkovací asistent (x), pokud x == 1
r = roomba (26) % se připojí k roomba
zatímco pravda
r.setDriveVelocity (.05,.05) % nastaví roomba na nižší rychlost jízdy
bump = r.getBumpers % získává data ze snímačů nárazů
cliff = r.getCliffSensors % získává data ze snímačů útesu
light = r.getLightBumpers % získává data ze senzorů světelných nárazů
img = r.getImage;% čte kameru mimo robota
red_mean = průměr (průměr (img (:,:, 1))) % čte průměrné množství červených pixelů
green_mean = průměr (průměr (img (:,,:, 2))) % čte průměrné množství zelených pixelů
blue_mean = průměr (průměr (obrázek (:,:, 3))) % přečte průměrné množství modrých pixelů
pokud bump.front == 1 %čte snímače předních nárazů
r.stop %zastaví roomba
msgbox ('Path Obscured!', 'Parking Assistant Message') % zobrazuje zprávu, že cesta je zakryta break % ends the loop
elseif green_mean> 150
r.stop %zastaví roomba
cont = questdlg ('Continue?', 'Path Completed') %zobrazuje pole otázek s žádostí o pokračování
if cont == 'Yes'
parkassist (1) %restartuje kód
jiný
konec
break % ukončí smyčku
elseif red_mean> 140
r.turnAngle (45) %otočí roombu o 45 stupňů
r.timeStart %spustí počítadlo času
zatímco pravda
r.setDriveVelocity (.05,.05) %nastavuje rychlost roomba
time = r.timeGet %přiřadí čas proměnné
bump = r.getBumpers % získává data ze snímačů nárazů
cliff = r.getCliffSensors % získává data ze snímačů útesu
light = r.getLightBumpers % získává data ze senzorů světelných nárazů
img = r.getImage;% čte kameru mimo robota
red_mean = průměr (průměr (img (:,:, 1))) % čte průměrné množství červených pixelů
green_mean = průměr (průměr (img (:,,:, 2))) % čte průměrné množství zelených pixelů
blue_mean = průměr (průměr (img (:,,: 3))) % přečte průměrné množství modrých pixelů
pokud blue_mean> 120
r.moveDistance (-0,01) % posune roomba zpět o nastavenou vzdálenost song Play (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % hraje rostoucí hudební stupnici
msgbox ('Water Found!', 'Parking Assistant Message') % zobrazuje zprávu, že byla nalezena voda r.turnAngle (-80) % otočí roomba o 80 stupňů
break % ukončí aktuální smyčku
elseif light.rightPřední> 25 || light.leftFront> 25 %čte světelné nárazové senzory
r.moveDistance (-0,01) % posune roomba zpět o nastavenou vzdálenost
r.turnAngle (-35) % otočí roomba o 35 stupňů
break %ukončí aktuální smyčku
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %čte oba senzory útesu
r.moveDistance (-0,1) % přesune roomba zpět o nastavenou vzdálenost
r.turnAngle (-80) %otočí roomba o 80 stupňů
break % ukončí aktuální smyčku
jinak, pokud>> 3
r.stop %zastaví roomba
contin = questdlg ('Stanice zdarma, pokračovat?', 'Zpráva asistenta parkování') %se zeptá, zda má roomba pokračovat, pokud bude pokračovat == 'Ano'
r.turnAngle (-90) % otočí roomba o 90 stupňů
parkassist (1) %restartuje funkci
jiný
r.stop % zastaví roomba
konec
jiný
konec
konec
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %čte oba senzory útesu
r.moveDistance (-0,1) %přesune roomba zpět o nastavenou vzdálenost
r.turnAngle (-90) %otočí roomba o 90 stupňů
elseif cliff.rightFront <2500 %čte správný snímač útesu
r.turnAngle (-5) %mírně otočí robota v opačném směru čidla útesu
elseif cliff.leftFront <2500 %čte snímač levého útesu
r.turnAngle (5) %mírně otočí robota v opačném směru čidla útesu
jiný
konec
konec
konec
Krok 4: Testování kódu a robota
Poté, co byl kód vyvinut, bylo dalším krokem testování kódu a robota. Vzhledem k tomu, že v kódu lze provést mnoho různých úprav, jako je úhel, kterým se robot otáčí, rychlost, kterou se pohybuje, a prahové hodnoty pro každou barvu, je nejlepším způsobem, jak tyto hodnoty pro svého robota zjistit, testovat změňte je za pochodu. Pro každý pracovní den, který jsme měli, jsme tyto hodnoty neustále měnili, protože některé z nich se spoléhaly na prostředí, ve kterém váš robot pracuje. Nejlepší způsob, jak jsme zjistili, bylo umístit robota Roomba na cestu, kterou chcete sledovat, a mít dostatečně vysoká bariéra, aby kamera nemohla detekovat barvy, které nechcete. Dalším krokem je nechat jej běžet a ukázat mu požadované barvy, když ho chcete dokončit. Pokud vidíte problém, je nejlepší zatlačit přední nárazník dovnitř a zastavit ho, poté změnit parametr, se kterým jste měli potíže.
Krok 5: Rozpoznání chyby
S každým dokončeným projektem vždy existují zdroje chyb. Pro nás jsme zažili chybu s prostým faktem, že robot není přesný v úhlu, pod kterým se otáčí, takže pokud mu řeknete, aby se otočil o 45 stupňů, nebude to přesné. Dalším zdrojem chyb pro nás bylo, že někdy robot nefunguje správně a než jej znovu spustíte, musíte jej tvrdě resetovat. Hlavním posledním zdrojem chyb pro nás bylo, že stejný kód nebude mít stejný účinek na různé roboty, takže s ním možná budete muset mít trpělivost a podle toho se přizpůsobit.
Krok 6: Závěr
Nyní máte všechny nástroje, se kterými si můžete hrát s robotem Roomba, což znamená, že s kódem můžete manipulovat tak, jak chcete, abyste dosáhli cílů, které si přejete. To by měla být nejlepší část vašeho dne, tak se bavte a jezděte bezpečně!
Doporučuje:
Roomba Bot Bulider: 5 kroků (s obrázky)
Roomba Bot Bulider: Bot the Builder je roomba, která s " grabbery " připevněné na přední straně budou moci pohybovat předměty kolem. Kód s ním je nastaven tak, aby zaznamenával první pohyb pomocí pole GUI, které můžete ovládat pouhým kliknutím myši. Po
MATLAB Controlled Roomba: 5 kroků
MATLAB Controlled Roomba: Cílem tohoto projektu je využít MATLAB i upravený programovatelný robot iRobot. Naše skupina spojila naše kódovací schopnosti, aby vytvořila skript MATLAB, který využívá mnoho funkcí iRobot, včetně snímačů útesu, senzoru nárazníku
Mars Roomba: 6 kroků
Mars Roomba: Tento návod vás provede pokyny k ovládání vakuového robota Roomba ovládaného Raspberry Pi. Operační systém, který budeme používat, je prostřednictvím MATLABu
MIDI Pod-Pal: 4 kroky
MIDI Pod-Pal: *** AKTUALIZACE 4/22/'21 ****** Přidal jsem úplné schéma, které ukazuje veškeré zapojení na pomoc při stavbě. *** Nepůjdu do nesmyslného množství hloubka zde na části sestavení, mým záměrem bylo ukázat další příklad budování MI založeného na Arduinu
Robot Roomba ovládaný prohlížečem s Raspberry Pi Model 3 A+: 6 kroků (s obrázky)
Robot Roomba ovládaný prohlížečem s Raspberry Pi Model 3 A+: Přehled Tento návod se zaměří na to, jak dát mrtvému Roomba nový mozek (Raspberry Pi), oči (webová kamera) a způsob, jak vše ovládat z webového prohlížeče. Existuje mnoho hacků Roomba, které umožňují ovládání přes sériové rozhraní. Nemám