Obsah:

Roomba Scout Explorer: 8 kroků
Roomba Scout Explorer: 8 kroků

Video: Roomba Scout Explorer: 8 kroků

Video: Roomba Scout Explorer: 8 kroků
Video: ÓeFko bude v prosinci za půlku když budou ty Vánoce tak kdo váhal tak šup . Platí pro prvních 100 2024, Listopad
Anonim
Průzkumník Roomba Scout
Průzkumník Roomba Scout

Jako jeden z nejočekávanějších a nejvíce zkoumaných amerických projektů se projekty Mars rover staly lidskými úspěchy ve stále pokročilejší výrobě high-tech autonomních systémů za jediným účelem zkoumání a interpretace pevnin a povrchů rudé planety za nimi Země. V rámci osobnějšího projektu na počest misí na Marsu bylo naším cílem vytvořit robota roomba, který by mohl v určitém časovém rámci jednat autonomně a odpovídajícím způsobem reagovat na určitá kritéria v jeho blízkosti.

Pokud jde o jedinečnost, zaměřili jsme se na vytvoření diagramu, který ukazoval každou cestu, kterou robot prochází od svého původu. Kromě toho bude robot schopen počítat počet objektů v jeho blízkosti v panoramatickém stylu.

Krok 1: Zařízení

-Roomba s připojitelnou kamerou (se známým konkrétním názvem)

-Připojený server

-Windows 10 / Mac s připojením k internetu

-Jasná platforma

-Tmavá podlaha

-Jakékoli zbloudilé objekty monochromatického designu

Krok 2: Nastavení MATLABu

Nastavení MATLAB
Nastavení MATLAB

Abyste mohli vytvářet úkoly a funkce pro svůj robot Roomba, musíte mít specifické kódy a sady nástrojů obsahující příkazy roomba.

Když je stažen MATLAB 2016a a novější, vytvořte složku, která bude obsahovat tyto soubory robotů, vložte následující soubor MATLAB níže do složky a spusťte jej, abyste nainstalovali zbývající potřebné soubory roomba.

Poté klikněte pravým tlačítkem v okně Aktuální složka, najeďte myší na „Přidat cestu“a klikněte na „Aktuální složka“. Nyní by měla být nastavena cesta tak, aby každý z těchto souborů byl použit k aktivaci Roomba.

Nyní použijte níže uvedený příkaz v příkazovém okně k nastavení roomba:

r = roomba (#).

Symbol # je 'číslo' zadaného robota; pokud však chcete pouze simulátor roomba, jednoduše zadejte následující příkaz:

r = roomba (0).

Simulace by byla doporučena pro testování pohybových vzorů.

Pokud vás zajímá, jaké příkazy může roomba dodržovat, zadejte do příkazového okna následující:

doktor roomba.

Další podrobnosti naleznete na následujícím webu:

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

Krok 3: Funkce: Pohyb

Funkce: Pohyb
Funkce: Pohyb
Funkce: Pohyb
Funkce: Pohyb

Pokud jde o pohyb, roomba by se měl pohybovat automaticky po stanovenou dobu uvedenou ve vstupech. Cílem pohybu robota je správně reagovat, když se jeho senzory (nárazníky, světelné nárazníky a senzory z útesu) mění v přítomnosti různých překážek. Tato část by fungovala jako základ pro všechny příkazy robota, protože další funkce kódu budou přidány později. Byly zapotřebí určité specifikace:

-Pro snížení poškození musí robot snížit rychlost na nižší rychlost.

-Když se robot přibližuje ke skále nebo zdi, bude se pohybovat opačně a změní svůj úhel v závislosti na místě nárazu

-Po nějaké době jízdy se roomba nakonec zastaví a vyfotí okolí

Všimněte si, že použité hodnoty byly ve vztahu k simulátoru; hodnoty, jako jsou úhly otáčení, rychlosti otáčení a předvolby senzoru robota by měly být při použití skutečného robota upraveny, aby byla zajištěna stabilita a zohlednění chyby zařízení.

Krok 4: Funkce: Zpracování obrazu

Funkce: Zpracování obrazu
Funkce: Zpracování obrazu

Podle požadavku jsme měli za úkol upravit data obrázku (nebo několika obrázků), který byl přijat kamerou robota, na což jsme se rozhodli přimět robota, aby „spočítal“počet objektů, které na obrázku vidí.

Sledovali jsme techniku, při které MATLAB kreslil hranice kolem zčernalých objektů, které kontrastují s bílým pozadím. Tato funkce je však náchylná k problémům na otevřeném prostoru, protože různé tvary a barvy vnímané fotoaparátem mají za následek neobvykle vysoké počty.

Tato funkce nemůže fungovat v simulátoru, protože není k dispozici kamera; pokud se o to pokusíte, dojde k chybě, která deklaruje, že lze použít pouze matici (:,:, 3).

Krok 5: Funkce: Mapování

Funkce: Mapování
Funkce: Mapování
Funkce: Mapování
Funkce: Mapování
Funkce: Mapování
Funkce: Mapování
Funkce: Mapování
Funkce: Mapování

Jednou z dalších funkcí, které jsme chtěli, aby robot měl, bylo mapování jeho umístění, protože přímo interaguje s prostředím. Níže uvedený kód se tedy snaží otevřít mapu a nastavit souřadnicový systém, který podrobně popisuje každé místo, ve kterém jsou stisknuty senzory nárazníku robota. Ukázalo se, že je to nejdelší část ze tří částí, které se testují jednotlivě, ale ukázalo se to mnohem jednodušeji, když se to použilo na konečný scénář.

Kvůli přidání limitu k délce doby běhu funkce byl pro účely testování použit limit n <20 na smyčce while.

Mějte na paměti, že kvůli složitosti kódu dochází k dalším chybám, protože segment kódu běží po dlouhou dobu; z předchozích testů se zdá, že deset nárazů je počet bodů, než dojde k významným chybám.

Krok 6: Postavení vedle sebe

Juxtapozice
Juxtapozice
Juxtapozice
Juxtapozice
Juxtapozice
Juxtapozice
Juxtapozice
Juxtapozice

Protože to vše bude umístěno do jednoho souboru, vytvořili jsme funkci, ve které každý z předchozích dvou kroků používal jako své podfunkce. Konečný návrh byl vytvořen s následující úpravou funkce redux s názvem „recon“. Aby se předešlo nejasnostem pro MATLAB, skripty „counter“a „rombplot3“byly přejmenovány na vložené funkce „CountR“a „plotr“.

Na rozdíl od předchozích skriptů bylo ve finální verzi nutné provést několik změn:

-Původ bude vždy označen červeným kruhem

-Pokaždé, když se roomba zastaví z nárazníků, je místo označeno černým kruhem

-Každé, když se roomba zastaví ze svých útesových senzorů, je místo označeno modrým kruhem

-Pokaždé, když se roomba zastaví ve zkoumání oblasti, je místo označeno zeleným kruhem

-Obrázky jsou upraveny tak, aby byla odstraněna horní část z důvodu časového razítka, které potenciálně narušuje výsledky

-Hranice nebudou započítány jako objekt kvůli poměrně vysokému počtu získaných

-Několik proměnných bylo změněno, takže abyste předešli nejasnostem, použijte pro referenci výše uvedené verze.

Krok 7: Testování

Testování
Testování

Testy pro každou jednotlivou složku se občas ukázaly být spíše smíšené, a proto byly nutné úpravy určitých přednastavených hodnot. Tematické pozadí, na kterém jsme chtěli vyzkoušet schopnosti robota v uzavřené oblasti, jednoduše sestávalo z tabule položené na mnohem tmavší podlaze. Objekty můžete rozházet po okolí; působit jako objekty, na které lze narazit, nebo vzdálené objekty z pohyblivé oblasti robota.

Po nastavení regulovaného času a základní rychlosti prokázal roomba adekvátní pohybové chování, zastavil se a ustoupil od každého „útesu“nebo objektu, do kterého narazí, a také zpomalil, protože detekoval něco poblíž. Po dosažení požadované třímetrové cestovní vzdálenosti by robot zastavil a vyhodnotil oblast, pořídil snímky každé 45stupňové oblasti a pokračoval dále, pokud to čas dovolí. Jeho zatáčky se však zdály větší, než bylo požadováno, což znamená, že data souřadnic budou zakryta.

Pokaždé, když se zastaví, byl do přibližné oblasti jeho polohy v souřadném systému umístěn nový bod; je však třeba poznamenat, že počáteční směr, ve kterém roomba začíná, hraje klíčovou roli při návrhu mapy. Pokud by bylo možné implementovat funkci kompasu, byla by použita jako zásadní součást návrhu mapy.

Skutečný čas, po který funkce trvá, než se plně spustí, vždy překročí požadovaný čas, což dává smysl vzhledem k tomu, že se nemůže zastavit uprostřed jednoho ze svých obnovení. Tato verze počítání obrázků má bohužel své problémy, zejména v oblastech, které jsou buď většinou jednobarevné, nebo se liší jasem; protože se pokouší rozlišovat mezi dvěma odstíny, má tendenci vnímat objekty, které nejsou žádoucí, a proto se vždy počítá až do šíleně vysokých čísel.

Krok 8: Závěr

Závěr
Závěr

I když byl tento úkol velmi dobrodružným a kreativním dílem, které přinášelo úlevu, já jsem ze svých osobních pozorování viděl velké množství chyb, které by mohly být problematické, a to jak v kódu, tak v chování robota.

Omezení použití specifikace času ve smyčce while způsobí, že celková doba bude delší, než je požadováno; proces panoramatické techniky a zpracování obrazu může ve skutečnosti trvat déle, pokud je běží pomalý počítač nebo nebyl předem použit. Roomba, která byla použita v naší prezentaci, navíc oproti simulátoru působila velkým množstvím chyb, zejména v pohybu. Použitý robot měl bohužel tendenci se naklánět mírně doleva, protože jel rovně a dělal větší zatáčky, než bylo žádoucí. Z tohoto důvodu a mnoha dalších se důrazně doporučuje, aby za účelem kompenzace těchto chyb bylo nutné provést změny jeho úhlů otočení.

Přesto se jedná o dlouhý, ale intelektuálně stimulující projekt, který fungoval jako zajímavá učební zkušenost s aplikací kódů a příkazů, které přímo ovlivňují chování skutečného robota.

Doporučuje: