Obsah:
- Krok 1: Díly a materiály
- Krok 2: Soubor databáze Roomba
- Krok 3: Připojení k robotu Roomba
- Krok 4: Kód
- Krok 5: Závěr
Video: MATLAB Controlled Roomba: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Cílem tohoto projektu je využití MATLABu a upraveného programovatelného robota 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, nárazníků, světelných senzorů a kamery. Tyto hodnoty ze snímačů a kamer jsme použili jako vstupy, což nám umožnilo vytvořit určité požadované výstupy pomocí funkcí a smyček kódu MATLAB. Mobilní zařízení a gyroskop MATLAB používáme také jako způsob připojení k iRobot a jeho ovládání.
Krok 1: Díly a materiály
MATLAB 2018a
-Verze MATLAB pro rok 2018 je nejpreferovanější verzí, většinou proto, že nejlépe funguje s kódem, který se připojuje k mobilnímu zařízení. Většinu našeho kódu však lze interpretovat ve většině verzí MATLABu.
iRobot Vytvořit zařízení
-Toto zařízení je speciálně vyrobené zařízení, jehož jediným účelem je programování a kódování. (Není to skutečné vakuum)
Raspberry Pi (s kamerou)
- Jedná se o nenákladnou počítačovou desku, která funguje jako mozek iRobota. Může být malý, ale je schopen mnoha věcí. Fotoaparát je dalším doplňkem. Také používá malinu pi k získání všech svých funkcí a příkazů. Fotoaparát na obrázku výše je upevněn na 3D tištěném stojanu vytvořeném katedrami Engineering Fundamentals na University of Tennessee
Krok 2: Soubor databáze Roomba
Existuje hlavní soubor, který budete potřebovat, abyste mohli používat správné funkce a příkazy pro svůj roomba. V tomto souboru jste psali kód, který čerpá funkce, aby byla správa vašeho robota Roomba lépe ovladatelná.
Soubor si můžete stáhnout na tomto odkazu nebo níže ke stažení
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Krok 3: Připojení k robotu Roomba
Nejprve se musíte ujistit, že je váš robot připojen k desce Raspberry Pi pomocí konektoru micro USB. Poté musíte počítač a robota správně připojit ke stejné WiFi. Jakmile to bude hotové, můžete robota zapnout a připojit se k němu pomocí daného příkazu v souboru databáze robota. (Robota vždy tvrdě resetujte před a po použití). Například pomocí příkazu „r.roomba (19)“se připojíme k našemu robotu a k našemu zařízení přiřadíme proměnnou r. Toto odkazuje zpět na databázový soubor, který nastavuje naši proměnnou jako strukturu, na kterou můžeme kdykoli odkazovat.
Krok 4: Kód
Níže jsme připojili celý kód, ale zde je stručný přehled, který zdůrazňuje důležité prvky v našem skriptu. Využili jsme všechny senzory, stejně jako kameru, abychom plně maximalizovali potenciál našeho robota. Zahrnuli jsme také kód, který nám umožnil připojit mobilní zařízení k našemu robotu a použít jeho gryoskop k ručnímu ovládání.
Začali jsme jednoduchým příkazem „r.setDriveVelocity (.06)“, který nastaví dopřednou rychlost robota na, 06 m/s. Jde jen o to, aby se robot předem rozhýbal
Poté se náš hlavní skript spustí smyčkou while, která načte data daného robota vytvořením struktur, na které můžeme odkazovat a použít je v níže uvedených podmíněných příkazech, což nám umožní říci robotu, aby provedl určitý příkaz na základě dat struktury robot čte svými senzory. Nastavili jsme to tak, že robot čte senzory útesu a sleduje černou cestu
zatímco true % while loop pokračuje, dokud nedojde k něčemu „nepravdivému“(v tomto případě to pokračuje nekonečně) data = r.getCliffSensors; data2 = r.getBumpers; % průběžně načítá data o hodnotách senzoru útesu a přiřazuje je proměnné % img = r.getImage; % Pořídí snímek z připojené kamery % image (obrázek); % Zobrazuje snímek, který byl pořízen % red_mean = průměr (průměr (obrázek (: (:,: 1)))); % Vezme průměrnou hodnotu zelené barvy, pokud data.rightFront <2000 r.turnAngle (-2); % otočí Roombu přibližně o 0,2 stupně CW, jakmile hodnota pro senzory pravého předního útesu klesne pod 2000 r.setDriveVelocity (.05); elseif data.leftFront data.leftFront && 2000> data.rightFront r.moveDistance (.1); % říká Roombě, aby pokračovala vpřed přibližně 0,2 m/s, pokud obě hodnoty z pravého předního a levého předního senzoru klesnou pod 2000 % r.turnAngle (0); % říká Roombě, aby se neotočila, pokud jsou splněny výše uvedené podmínky
elseif data2.right == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05); elseif data2.left == 1 r.moveDistance (-. 2); r.turnAngle (5); r.setDriveVelocity (.05); elseif data2.front == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05);
Po této smyčce while zadáme další smyčku while, která spouští data získaná prostřednictvím kamery. A v této smyčce while používáme příkaz if, který rozpoznává obrázek pomocí konkrétního programu (alexnet), a jakmile obrázek identifikuje, okamžitě spustí dálkové ovládání mobilního zařízení
anet = alexnet; % Přiřadí alexnetové hluboké učení proměnné, zatímco pravdivé % Nekonečné zatímco smyčka img = r.getImage; img = imresize (img, [227, 227]); label = classify (anet, img); pokud štítek == "papírový ručník" || label == "chladnička" label = "voda"; koncový obrázek (img); název (znak (štítek)); drawnow;
Smyčka while, která nám umožňuje ovládat zařízení pomocí telefonu, získává tato data z gyroskopu telefonu a připojujeme jej do matice, která nepřetržitě streamuje data zpět do MATLABu v počítači. Používáme příkaz if, který čte data matice a dává výstup, který pohybuje zařízením na základě určitých hodnot gyroskopu telefonu. Je důležité vědět, že jsme použili senzory orientace mobilního zařízení. Výše uvedená matice jedna po třech je kategorizována podle každého prvku senzorů orientace telefonu, kterým je azimut, výška a strana. Pokud příkazy if vytvořily podmínky, které uvádějí, když strana překročí hodnoty 50 nebo klesne pod -50, robot se posune o určitou vzdálenost dopředu (kladná 50) nebo dozadu (záporná 50). A totéž platí pro hodnotu výšky tónu. Pokud hodnota rozteče překročí hodnotu 25 pádů pod -25, robot se otočí pod úhlem 1 stupeň (kladný 25) nebo záporný 1 stupeň (záporný 25)
while true pause (.1) % Pause of.5 seconds before each value is taken Controller = iphone. Orientation; % Přiřadí matici pro hodnoty orientace iPhone proměnné Azimuthal = Controller (1); % Přiřadí první hodnotu matice proměnné Pitch = Controller (2); % Přiřadí druhou hodnotu matice proměnné (naklonění dopředu a dozadu, když je iPhone držen bokem) Strana = ovladač (3); % Přiřadí třetí hodnotu matice proměnné (naklonění doleva a doprava, když je iPhone držen bokem) % Způsobí výstup na základě orientace telefonu, pokud Strana> 130 || Strana 25 r. MoveDistance (-. 1) % Přesune robot Roomba dozadu přibližně o 1 metr, pokud je iPhone nakloněn dozadu alespoň o 25 stupňů jinak, pokud strana 25 r.turnAngle (-1) % Otočí Roombu přibližně o 1 stupeň CCW, pokud iPhone je nakloněna doleva alespoň o 25 stupňů, pokud je rozteč <-25 r.turnAngle (1) % Otočí robot Roomba přibližně o 1 stupeň CW, pokud je iPhone nakloněn alespoň o 25 stupňů
Toto jsou jen hlavní body hlavních částí našeho kódu, které jsme zahrnuli, pokud potřebujete rychle zkopírovat a vložit sekci ve svůj prospěch. V případě potřeby je však celý náš kód připojen níže
Krok 5: Závěr
Tento kód, který jsme napsali, je speciálně navržen pro našeho robota a také pro naši celkovou vizi projektu. Naším cílem bylo použít všechny naše kódovací schopnosti MATLAB k vytvoření dobře navrženého skriptu, který využívá většinu funkcí robota. Používání ovladače telefonu není tak obtížné, jak si možná myslíte, a doufáme, že vám náš kód pomůže lépe porozumět konceptu kódování iRobota.
Doporučuje:
Whistle Controlled Robot: 20 kroků (s obrázky)
Whistle Controlled Robot: Tento robot je všude veden píšťalkou, podobně jako " Golden Sonic Toy " vyrobeno v roce 1957. robot se po zapnutí pohybuje ve směru označeném světelnou šipkou na mechanismu předního hnacího kola. Když píšťalka
DIY Arduino Controlled Egg-Bot: 12 kroků (s obrázky)
DIY Arduino Controlled Egg-Bot: V tomto návodu vám ukážu, jak si vyrobit vlastní Egg-Bot ovládaný pomocí Arduina. Chtěl jsem to udělat dříve, ale myslel jsem si, že je to pro mě příliš těžké, ale mýlil jsem se. Stavba je jednoduchá, takže ji zvládne každý
LED bliká {Button Controlled}: 5 kroků
LED bliká {Button Controlled}: Jsem student v Kang Chiao. Toto je můj projekt, používám Arduino a vytvořil jsem LED blikající světlo pomocí tlačítka, díky kterému může blikat. Můžete si ho dát na látku a když jsou vám někteří lidé příliš blízko, můžete stisknout tlačítko a žárovku
Roomba MATLAB Project: 5 kroků
Roomba MATLAB Project: Současný plán, který má NASA pro Mars rover, je, že bude sběratelem dat a bude se toulat po Marsu a sbírat vzorky půdy, které by se daly přivést zpět na Zemi, aby vědci mohli zjistit, zda na ní byly nějaké předchozí formy života planetu. Další
Roomba With MATLAB: 4 Steps (with Pictures)
Roomba s MATLABem: Tento projekt využívá MATLAB a programovatelného robota iRobot Create2. Tím, že testujeme naše znalosti o MATLABu, jsme schopni naprogramovat Create2 tak, aby interpretoval obrázky a detekoval signály. Funkčnost robota závisí především na