Obsah:
- Krok 1: Zariadenie
- Krok 2: Nastavenie MATLAB
- Krok 3: Funkcia: Pohyb
- Krok 4: Funkcia: Spracovanie obrazu
- Krok 5: Funkcia: Mapovanie
- Krok 6: Juxtapozícia
- Krok 7: Testovanie
- Krok 8: Záver
Video: Roomba Scout Explorer: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
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
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
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
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
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
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
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
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:
Premena vašej robota Roomba na vozítko Mars: 5 krokov
Premena vašej robota Roomba na vozítko Mars:
Roomba Bot the Bulider: 5 krokov (s obrázkami)
Roomba Bot the Bulider: Bot the Builder je roomba, ktorý s " drapákmi " pripevnený na prednej strane bude môcť pohybovať predmetmi. Kód s ním je nastavený tak, aby zaznamenával prvý pohyb pomocou poľa GUI, ktoré môžete ovládať jediným kliknutím myši. Po
Roomba Explorer: 4 kroky
Roomba Explorer: Použitím robotov Create2 Robot od MATLAB a iRobot tento projekt preskúma rôzne oblasti neznámeho miesta. Senzory na robote sme použili na pomoc pri manévrovaní s nebezpečným terénom. Získaním fotografií a videa z Raspberry Pi, ktoré
Klávesové skratky pre Internet Explorer !!: 4 kroky
Klávesové skratky pre Internet Explorer !!: Tento návod vám ukáže niekoľko užitočných klávesových skratiek pre prehliadač Internet Explorer. Prihláste sa na odber môjho kanála. Ďakujem
Bus Pirate 3EEPROM Explorer Board: 5 krokov
Bus Pirate 3EEPROM Explorer Board: Ak máte jedného z Hack a Day's Bus Pirates, čo s ním urobíte? Získajte informácie o 1-vodičových, I2C a SPI EEPROM s doskou prieskumníka 3EEPROM (nazývame to THR-EE-PROM). EEPROM je typ pamäťového čipu, ktorý ukladá údaje bez nepretržitého napájania