Obsah:

Astronaut-Assisting Roomba: 4 kroky
Astronaut-Assisting Roomba: 4 kroky

Video: Astronaut-Assisting Roomba: 4 kroky

Video: Astronaut-Assisting Roomba: 4 kroky
Video: Дэниел Шмахтенбергер: Уничтожат ли нас технологии? 2024, Červenec
Anonim
Astronaut pomáhající Roomba
Astronaut pomáhající Roomba

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

Potřebné díly
Potřebné díly
Potřebné díly
Potřebné díly
Potřebné díly
Potřebné díly
Potřebné díly
Potřebné díly

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

Konfigurace souborů a fotoaparátu
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

Příklad kódu MATLAB
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: