Obsah:

Roomba Scout Explorer: 8 krokov
Roomba Scout Explorer: 8 krokov

Video: Roomba Scout Explorer: 8 krokov

Video: Roomba Scout Explorer: 8 krokov
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, November
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Ako jeden z najočakávanejších a najskúsenejších amerických projektov sa projekty roverov na Marse stali ľudskými úspechmi v neustále napredujúcej produkcii high-tech autonómnych systémov, ktorých jediným účelom je skúmať a interpretovať masy a povrchy červenej planéty za nimi. zem. V rámci osobnejšieho projektu na počesť misií na Marse bolo naším cieľom vytvoriť robota roomba, ktorý by mohol v určitom časovom rámci pôsobiť autonómne a zodpovedajúcim spôsobom reagovať na určité kritériá v jeho okolí.

Pokiaľ ide o jedinečnosť, zamerali sme sa na vytvorenie diagramu, ktorý ukazoval každú dráhu, ktorou robot prechádza, od jeho pôvodu. Robot bude navyše schopný počítať počet predmetov v jeho blízkosti v panoramatickom štýle.

Krok 1: Zariadenie

-Roomba s pripojiteľnou kamerou (s konkrétnym názvom známym)

-Pripojený server

-Windows 10 / Mac s pripojením na internet

-Jasná platforma

-Tmavá podlaha

-Akékoľvek zblúdilé objekty monochromatického dizajnu

Krok 2: Nastavenie MATLAB

Nastavenie MATLABu
Nastavenie MATLABu

Aby ste mohli vytvárať úlohy a funkcie pre svoj robot Roomba, musíte mať konkrétne kódy a sady nástrojov, ktoré obsahujú príkazy roomba.

Keď si stiahnete MATLAB 2016a a novší, vytvorte priečinok, ktorý bude obsahovať tieto súbory robotov, vložte nasledujúci súbor MATLAB nižšie do priečinka a spustením ho nainštalujte zostávajúce potrebné súbory roomba.

Potom kliknite pravým tlačidlom myši v okne Aktuálny priečinok, umiestnite kurzor myši na položku „Pridať cestu“a kliknite na položku „Aktuálny priečinok“. Teraz by mala byť nastavená cesta tak, aby každý z týchto súborov slúžil na aktiváciu roomba.

Teraz pomocou príkazu nižšie v príkazovom okne nastavte roomba:

r = roomba (#).

Symbol # je „číslo“určeného Roomba; Ak však chcete iba simulátor roomba, jednoducho zadajte nasledujúci príkaz:

r = roomba (0).

Simulácia by bola odporúčaná na testovanie pohybových vzorov.

Ak vás zaujíma, aké príkazy môže roomba vykonávať, do príkazového okna zadajte nasledujúci príkaz:

doktor roomba.

Viac informácií nájdete na nasledujúcom webe:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Krok 3: Funkcia: Pohyb

Funkcia: pohyb
Funkcia: pohyb
Funkcia: pohyb
Funkcia: pohyb

Pokiaľ ide o pohyb, roomba by sa mal pohybovať automaticky po stanovenú dobu uvedenú vo vstupoch. Cieľom pohybu robota je správne reagovať, keď sa jeho senzory (nárazníky, svetelné nárazníky a senzory zrázu) zmenia v prítomnosti rôznych prekážok. Táto časť by slúžila ako základ pre všetky príkazy robota, pretože neskôr budú do kódu pridané ďalšie funkcie. Boli potrebné určité špecifikácie:

-Aby sa znížilo poškodenie, musí robot znížiť rýchlosť na nižšiu rýchlosť.

-Keď sa robot priblíži k útesu alebo stene, bude sa pohybovať opačne a zmení svoj uhol v závislosti od bodu nárazu

-Po nejakom čase jazdy sa roomba nakoniec zastaví a urobí zábery okolia

Všimnite si toho, že použité hodnoty sú vo vzťahu k simulátoru; hodnoty, ako sú uhly otáčania, rýchlosti otáčania a predvoľby senzora robota by sa mali pri použití skutočného robota upraviť, aby sa zaistila stabilita a zohľadnenie chýb zariadenia.

Krok 4: Funkcia: Spracovanie obrazu

Funkcia: Spracovanie obrazu
Funkcia: Spracovanie obrazu

Na požiadanie sme dostali za úlohu upraviť údaje obrázku (alebo niekoľkých obrázkov), ktorý bol prijatý kamerou robota, na čo sme sa rozhodli, aby robota Roomba „spočítala“počet predmetov, ktoré na obrázku vidí.

Sledovali sme techniku, ktorou MATLAB nakreslil hranice okolo začiernených predmetov, ktoré kontrastujú s bielym pozadím. Táto funkcia však môže mať na otvorenom priestranstve problémy, pretože fotoaparát vníma rôzne tvary a farby, čo má za následok neobvykle vysoké počty.

Táto funkcia nemôže fungovať v simulátore, pretože nie je k dispozícii kamera; ak sa o to pokúsite, vyskytne sa chyba deklarujúca, že je možné použiť iba maticu (:,:, 3).

Krok 5: Funkcia: Mapovanie

Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie
Funkcia: Mapovanie

Jednou z ďalších funkcií, ktoré sme chceli, aby robot mal, bolo mapovanie jeho umiestnení, pretože priamo interaguje s prostredím. Nasledujúci kód sa teda pokúša otvoriť mapu a nastaviť súradnicový systém, ktorý podrobne popisuje každé miesto, kde sú stlačené senzory nárazníka robota. Ukázalo sa, že je to najdlhšia časť z troch častí testovaných jednotlivo, ale ukázalo sa to oveľa jednoduchšie, keď sa použilo na konečný scenár.

Na účely pridania limitu k dĺžke doby chodu funkcie bol na testovacie účely použitý limit n <20 v slučke while.

Majte na pamäti, že vzhľadom na zložitosť kódu sa pri dlhšom spustení segmentu kódu vyskytuje viac chýb; z predchádzajúcich testov sa zdá, že desať nárazov je počet bodov predtým, ako dôjde k významným chybám.

Krok 6: Juxtapozícia

Juxtapozícia
Juxtapozícia
Juxtapozícia
Juxtapozícia
Juxtapozícia
Juxtapozícia
Juxtapozícia
Juxtapozícia

Pretože to všetko bude umiestnené v jednom súbore, vytvorili sme funkciu, v ktorej každý z predchádzajúcich dvoch krokov používal ako svoje podfunkcie. Konečný návrh bol vytvorený s nasledujúcou úpravou funkcie redux s názvom „recon“. Aby sa predišlo zámene pre MATLAB, skripty „counter“a „rombplot3“boli premenované na vstavané funkcie „CountR“a „plotr“.

Na rozdiel od predchádzajúcich skriptov bolo vo finálnej verzii potrebné vykonať niekoľko zmien:

-Pôvod bude vždy označený červeným kruhom

-Zakaždým, keď sa roomba zastaví z nárazníkov, je poloha označená čiernym kruhom

-Zakaždým, keď sa roomba zastaví z útesových senzorov, je poloha označená modrým kruhom

-Každé, keď sa roomba zastaví v skúmaní oblasti, je poloha označená zeleným kruhom

-Obrázky sú upravené tak, aby mali odstránenú hornú časť kvôli časovej pečiatke, ktorá potenciálne interferuje s výsledkami

-Hranice nebudú započítané ako objekt z dôvodu pomerne vysokého počtu získaných

-Niekoľko premenných bolo zmenených, aby ste sa vyhli zmätkom, použite ako referenciu vyššie uvedené verzie.

Krok 7: Testovanie

Testovanie
Testovanie

Testy pre každú jednotlivú zložku sa niekedy ukázali byť dosť zmiešané, a preto boli potrebné úpravy určitých prednastavených hodnôt. Tematické pozadie, na ktorom sme chceli vyskúšať schopnosti robota v uzavretej oblasti, jednoducho pozostávalo z tabule položenej na oveľa tmavšej podlahe. Objekty môžete rozhádzať po okolí; pôsobia ako objekty, na ktoré treba naraziť, alebo vzdialené objekty z pohybujúcej sa oblasti robota.

Po nastavení regulovaného času a základnej rýchlosti roomba predviedla primerané pohybové správanie, zastavila sa a cúvala preč od každého „útesu“alebo predmetu, do ktorého vrazila, a taktiež spomalila, pretože zistila niečo blízko. Po dosiahnutí požadovanej vzdialenosti jazdy tri metre robot pristane, aby zastavil a vyhodnotil oblasť, pričom odfotil každú 45 -stupňovú oblasť a pokračoval ďalej, ak to čas dovolí. Jeho zákruty sa však zdali byť väčšie, ako sa požadovalo, čo znamená, že údaje súradníc budú skryté.

Zakaždým, keď sa zastaví, nový bod bol umiestnený do približnej oblasti jeho polohy v súradnicovom systéme; je však potrebné poznamenať, že počiatočný smer, v ktorom sa roomba začína, zohráva kľúčovú úlohu pri navrhovaní mapy. Ak by bolo možné implementovať funkciu kompasu, bolo by to použité ako zásadná súčasť návrhu mapy.

Skutočný čas, kým sa funkcia úplne spustí, prekročí požadovaný čas, čo dáva zmysel, pretože sa nemôže zastaviť uprostred jedného zo svojich zotavení. Táto verzia počítania obrázkov má bohužiaľ svoje problémy, najmä v oblastiach, ktoré sú buď väčšinou monochromatické alebo majú rôzny jas; pretože sa pokúša rozlišovať medzi dvoma odtieňmi, má tendenciu vnímať predmety, ktoré nie sú požadované, a preto sa vždy počíta až do šialene vysokých čísel.

Krok 8: Záver

Záver
Záver

Aj keď bola táto úloha veľmi dobrodružnou a kreatívnou prácou, ktorá prinášala úľavu, ja som podľa svojich osobných pozorovaní videl veľké množstvo chýb, ktoré môžu byť problematické, a to v kóde aj v správaní robota.

Obmedzenie použitia špecifikácie času v slučke while spôsobuje, že celkový čas je dlhší, ako je požadované; proces panoramatickej techniky a spracovanie obrazu môže v skutočnosti trvať dlhšie, ak ho beží pomalý počítač alebo ak ste ho predtým nepoužili. Roomba, ktorá bola použitá v našej prezentácii, navyše v porovnaní so simulátorom pôsobila veľkým počtom chýb, najmä v pohybe. Použitý robot mal bohužiaľ tendenciu mierne sa nakláňať doľava, pretože jazdil rovno a robil väčšie zákruty, ako bolo žiaduce. Z tohto dôvodu a z mnohých ďalších sa dôrazne odporúča, aby sa na kompenzáciu týchto chýb vykonali zmeny uhlov jeho natočenia.

Napriek tomu je to dlhý, ale intelektuálne stimulujúci projekt, ktorý fungoval ako zaujímavá učebná skúsenosť s aplikáciou kódov a príkazov, ktoré priamo ovplyvnili správanie skutočného robota.

Odporúča: