Obsah:
- Krok 1: Potřebné součásti
- Krok 2: Konfigurace souborů a fotoaparátu
- Krok 3: Počáteční testování Roomba
- Krok 4: Příklad kódu MATLAB
Video: Astronaut-Assisting Roomba: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento projekt je vytvořen s využitím Raspberry Pi 3 na palubě iRobot Create verze 2. MATLAB se používá k programování robota, aby pomocí senzorů a kamery sledoval konkrétní pokyny. Senzory a kamery se používají k plnění konkrétních úkolů, které by následovaly po astronautovi a poskytly mu schopnost komunikovat se svou domovskou základnou, pokud se něco pokazí.
Krok 1: Potřebné součásti
1. iRobot Create verze 2
IRobot Create je nejdůležitější součástí tohoto projektu, protože je programovatelný a může být skvělou reprezentací skutečného roveru, který sleduje astronauty a pomáhá jim v budoucnosti
2. Raspberry Pi 3
Pro tento projekt byl použit programovatelný Raspberry Pi. Kód je určen pro Pi a připojená verze Pi je 3 (model B). Lze použít i jiné programovatelné desky, jako je arduino, arduino a většina ostatních desek však bude vyžadovat jiné kódování, než je popsáno v jiném kroku
3. Modul kamery Raspberry Pi
Jediné externí připojení k Raspberry Pi potřebné pro tento projekt je kamerový modul. Modul kamery je nedílnou součástí tohoto projektu, protože robot Roomba bude provádět úkoly pouze na základě toho, co vidí ve kameře
4. MATLAB 2018a
Pro kódování zahrnuté v tomto nastavení byla použita druhá nejnovější verze MATLABu, 2018a. Je pravděpodobné, že s tím bude pracovat mnoho dalších verzí MATLABu, protože programování roomba je již nějakou dobu k dispozici
Krok 2: Konfigurace souborů a fotoaparátu
1. Připojení Raspberry Pi a kamery k Roomba
- Pi se může připojit k iRobot přímo pomocí micro USB. To je vše, co je potřeba k použití. Doporučuje se však, aby byl na roomba bezpečně umístěn tak, jak je to zatím zobrazeno na obrázcích.
- Kamera má přímé připojení k Raspberry Pi a důrazně doporučujeme, aby bylo něco zakoupeno nebo vyrobeno, aby byla kamera držena přímo nahoře. Kamera nemá smysl, pokud ji nelze držet na místě, aby ukázala, co roomba vidí.
2. Soubory
- Jakmile vše nastavíte a připojíte, ujistěte se, že je robot resetován a připraven vyrazit podržením tlačítek „Spot“a „Dock“na 10 sekund dohromady.
- Zde je nejprve potřeba MATLAB. Soubory pro roomba je třeba nejprve nainstalovat a vše, co je pro tyto soubory potřeba, je spustit, je kód uvedený na tomto odkazu:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Krok 3: Počáteční testování Roomba
Aby robot Roomba fungoval, je třeba provést mnoho počátečních kontrol.
1. Ujistěte se, že jste připojeni ke stejné WiFi síti jako Roomba. Bez toho se nikdy nepřipojíte přes MATLAB.
2. Zjistěte, k jakému číslu je vaše robota Roomba přiřazena, abyste se mohli konkrétně připojit k zvolenému robotu Roomba. Pokud je například číslo vašeho roomba 30, připojili byste se k němu zadáním roomba (30) do příkazového okna v MATLABu.
3. Roombu lze ovládat pomocí struktur v MATLABu. Pokud například nastavíte kód pro roomba (30) na proměnnou 'r', robot se může pohybovat vpřed pomocí příkazu r.moveDistance (0,2, 0,1).
4. Roomba lze sdělit mnoho různých příkazů, které lze zobrazit zadáním „doc roomba“do příkazového okna.
5. Senzory pro čtení světla, nárazů a útesů lze číst pomocí příkazů uvedených v 'doc roomba', ale způsob, jak mít konstantní a úhlednou nabídku pro zobrazení dat senzorů, lze zobrazit pomocí 'r.testSensors '.
6. Po otestování toho všeho lze software pro shromažďování obrázků robota použít ke čtení a prohlížení pořízených snímků. Základní kód pro to by byl img = r.getImage a imshow (img);.
7. Hodnoty RGB obrázku lze zjistit pomocí kódů red_mean = průměr (průměr (img (:,:, 1)));
green_mean = průměr (průměr (obrázek (:,:; 2))); a blue_mean = průměr (průměr (img (:,:, 3)));.
Krok 4: Příklad kódu MATLAB
V tomto okamžiku jste nyní připraveni použít senzory a software pro pořizování snímků k vytvoření vlastního roztočení na prototypu Mars Rover podporujícím lidskou činnost. Náš příklad je následovat astronauta sledováním bílé barvy a pohybem k ní. Pokud senzory snímají vysoké hodnoty, robot zapípá, takže astronaut může resetovat robota, pokud je zaseknutý, nebo jej jít zvednout a resetovat, pokud je zaseknutý na útesu. Tyto chyby však čte pouze tak dlouho, dokud vidí bíle. Aniž by robot viděl bílou barvu, přejde do chybového režimu. Je naprogramován tak, aby odesílal dva různé druhy e -mailů zpět na domovskou základnu podle toho, co vidí. Pokud vidí barvu kůže astronauta, zjevně to není dobré, takže upozorní domovskou základnu, pokud má astronaut kožní projev s poruchou obleku. Další zpráva je připravena, pokud astronaut jednoduše zmizí z dohledu. Pokud se u kamer nezobrazuje bílá nebo barva kůže, robot se otočí a odešle další, ale jiný e -mail. Obrázky, kde roomba astronauta neuvidí, budou odeslány společně se zprávou v e -mailech. Kód pro náš projekt je uveden níže:
pro i = 1:.1: 3 img = r.getImage; image (img) red_mean = průměr (průměr (obrázek (: (:, 1))); green_mean = průměr (průměr (obrázek (:,:; 2))); blue_mean = průměr (průměr (obrázek (:,:; 3))); pokud red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightPřední> 700 || light.right> 700 r. píp () r.píp () r.píp () r.píp () r.píp () r.stop jinak pro i = 1: 2 r. pohybDistance (0,2, 0,1) r. setDriveVelocity (.3,.2) r.stop end end end if green_mean <35 && blue_mean <35 %color color showing (need to adjust based on astronaut's skin skin) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; %odesílá e -maily ukazující, že oblek je vypnutý psswd = 'jo'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'předmět'; m_text = 'test'; setpref ('Internet', 'E_mail', pošta); setpref ('Internet', 'SMTP_Server', hostitel); setpref ('Internet', 'SMTP_Uživatelské jméno', pošta); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', hostitel); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (email to, 'Help!', 'The astronauts uniform is off!', img); end if red_mean 135 || green_mean 135 || blue_mean 135 pro j = 1: 2 %, pokud robot nemůže najít bílou r.turnAngle (360) mail = '[email protected]'; psswd = 'jo'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'předmět'; m_text = 'test'; setpref ('Internet', 'E_mail', pošta); setpref ('Internet', 'SMTP_Server', hostitel); setpref ('Internet', 'SMTP_Uživatelské jméno', pošta); setpref ('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', hostitel); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'The astronaut cannot be found!', img); r. stop end end end
Očividně je zde nepořádek, ale po zkopírování by se měl uvolnit. Hesla a e -maily k tomu musí poskytnout ti, kdo dělají tento projekt.
Náš příklad je však jen jedním z mnoha způsobů, jak si s tímto robotem pohrát, aby vyhovoval všem. Je třeba udělat mnoho různých věcí, které si můžete přizpůsobit sami.
Doporučuje:
Cosmo Clock - mění barvu pokaždé, když astronaut vstoupí do vesmíru: 8 kroků (s obrázky)
Cosmo Clock - mění barvu pokaždé, když astronaut vstoupí do vesmíru: Ahoj! Jste vesmírní nadšenci? Pokud ano, pak hi-fi! Miluji vesmír a astronomii. Očividně nejsem žádný astronaut, abych tam šel a podíval se blíže na vesmír. Ale pokaždé, když zjistím, že člověk ze Země cestoval na oblohu, získám inspiraci
Mars Roomba Project UTK: 4 kroky
Mars Roomba Project UTK: UPOZORNĚNÍ: TOTO BUDE FUNGOVAT POUZE POKUD JE ROOMBA NASTAVENA V PŘÍPADNÉM ZVLÁŠTNÍM ZPŮSOBU, TENTO NÁVOD BYL VYTVOŘEN A URČEN K POUŽITÍ UNIVERZITOU ŽÁKŮ TENNESSEE STUDENTŮ A FACULTY Tento kód slouží k místnímu spuštění místnosti napsáno a
Roomba Explorer: 4 kroky
Roomba Explorer: Pomocí MATLAB a iRobot Create2 Robot tento projekt prozkoumá různé oblasti neznámého místa. Použili jsme senzory na robotu, abychom pomohli manévrovat v nebezpečném terénu. Získáním fotografií a videa z Raspberry Pi, které
Localino sleduje Roomba IRobot, mapuje prostředí a umožňuje ovládání: 4 kroky
Localino sleduje Roomba IRobot, mapuje prostředí a umožňuje ovládání: Tento návod vysvětluje postup, jak sledovat a ovládat váš Roomba iRobot uvnitř pomocí systému Localino Indoor Localization System, mostu WiFi-UART a počítačové aplikace. Detail vysvětlení tohoto instruktu, vysvětlující HIL-control
ROOMBA Řídí ARDUINO YUN prostřednictvím aplikace Wifi od STEFANO DALL'OLIO: 4 kroky (s obrázky)
ROOMBA Driven by ARDUINO YUN Via Wifi App by STEFANO DALL'OLIO: S touto příručkou sdílím kód pro připojení ARDUINO YUN k Roomba za účelem ovládání Roomba přes Wifi. Kód a aplikaci si plně vytvořil a vyvinul sám Stefano Dall ' Olio.Moje Roomba je Roomba 620, ale stejný kód můžete použít i pro ostatní Roomb