Sadržaj:

Roomba Scout Explorer: 8 koraka
Roomba Scout Explorer: 8 koraka

Video: Roomba Scout Explorer: 8 koraka

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

Kao jedan od najočekivanijih i intenzivno istraživanih američkih projekata, projekti Mars rovera postali su ljudska dostignuća u sve naprednijoj proizvodnji visokotehnoloških autonomnih sistema s jedinom svrhom istraživanja i tumačenja kopnenih površina i površina crvenog planeta iza zemlja. Kao dio osobnijeg projekta u čast misijama na Marsu, naš cilj je bio stvoriti roomba robota koji bi mogao djelovati autonomno u određenom vremenskom okviru i u skladu s tim reagirati na određene kriterije u njegovoj blizini.

Što se tiče jedinstvenosti, fokusirali smo se na stvaranje dijagrama koji je pokazao svaki put kojim robot ide od svog postanka. Osim toga, robot će moći brojati broj objekata u svojoj blizini u panoramskom stilu.

Korak 1: Oprema

-Roomba sa kamerom koja se može pričvrstiti (sa specifičnim imenom)

-Povezan server

-Windows 10 / Mac sa internetskom vezom

-Svijetla platforma

-Tamni pod

-Svi zalutali predmeti monokromatskog dizajna

Korak 2: Postavljanje MATLAB -a

MATLAB Setup
MATLAB Setup

Da biste kreirali zadatke i funkcije za svoju roombu, morate imati posebne kodove i alate koji sadrže naredbe roombe.

S preuzimanjem MATLAB 2016a i dalje, stvorite mapu koja će sadržavati ove robotske datoteke i umetnite sljedeću MATLAB datoteku ispod u mapu i pokrenite je za instaliranje preostalih potrebnih roomba datoteka.

Nakon toga kliknite desnom tipkom miša u prozoru Trenutna mapa, postavite pokazivač miša na "Dodaj putanju" i kliknite na "Trenutna mapa". Sada bi trebao biti postavljen put tako da će se svaka od ovih datoteka koristiti za aktiviranje roombe.

Sada upotrijebite naredbu ispod u naredbenom prozoru za postavljanje roombe:

r = roomba (#).

Simbol # je 'broj' navedene roombe; međutim, ako samo želite simulator roombe, jednostavno upišite sljedeću naredbu:

r = roomba (0).

Simulacija bi se preporučila za testiranje obrazaca kretanja.

Ako vas zanima koje naredbe roomba može slijediti, u naredni prozor unesite sljedeće:

doc roomba.

Za više detalja posjetite sljedeću web stranicu:

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

Korak 3: Funkcija: Kretanje

Funkcija: Kretanje
Funkcija: Kretanje
Funkcija: Kretanje
Funkcija: Kretanje

Što se tiče kretanja, roomba bi se trebala kretati automatski kroz određeni vremenski period naveden u ulazima. Cilj kretanja robota je pravilno reagirati kada se njegovi senzori (odbojnici, svjetlosni odbojnici i senzori litice) promijene u prisustvu različitih prepreka. Ovaj dio bi poslužio kao osnova za sve roombine naredbe jer se kasnije dodaju dodatne funkcije kodu. Potrebne su neke specifikacije:

-Da bi smanjio oštećenja, robot mora smanjiti brzinu na manju brzinu.

-Prilikom približavanja litici ili zidu, robot će se kretati unatrag i mijenjati svoj kut ovisno o točki udara

-Nakon određenog vremena vožnje, roomba će se na kraju zaustaviti i slikati okolinu

Imajte na umu da su korištene vrijednosti u odnosu na simulator; vrijednosti kao što su kutovi zaokreta i brzine okretanja te unaprijed postavljene postavke senzora robota trebaju se promijeniti prilikom korištenja stvarnog robota kako bi se osigurala stabilnost i uzeli u obzir greške u opremi.

Korak 4: Funkcija: Obrada slike

Funkcija: Obrada slike
Funkcija: Obrada slike

Prema zahtjevu, imali smo zadatak izmijeniti podatke o slici (ili nekoliko slika) koje je primila kamera robota, na šta smo odlučili natjerati roombu da "broji" broj objekata koje vidi na slici.

Pratili smo tehniku da MATLAB povlači granice oko pocrnjelih objekata koji su u kontrastu s bijelom pozadinom. Međutim, ova funkcija ima poteškoća na otvorenom prostoru jer različiti oblici i boje percipiraju kameru, što rezultira neobično velikim brojem.

Imajte na umu da ova funkcija ne može raditi u simulatoru jer kamera nije priložena; ako se pokuša, doći će do greške pri deklaraciji da se može koristiti samo matrica (:,:, 3).

Korak 5: Funkcija: Mapiranje

Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje
Funkcija: Mapiranje

Još jedna dodatna značajka koju smo željeli da robot ima je mapiranje njegovih lokacija jer izravno stupa u interakciju s okolinom. Dakle, donji kôd nastoji otvoriti kartu i postaviti koordinatni sistem koji detaljno opisuje svaku lokaciju na kojoj su pritisnuti senzori branika robota. Ovo se pokazalo kao najduži dio od tri dijela za pojedinačno testiranje, ali se pokazao mnogo jednostavnijim kada se primijeni na završnu skriptu.

Radi dodavanja ograničenja dužini vremena izvođenja funkcije, ograničenje n <20 na petlji while korišteno je u svrhe testiranja.

Imajte na umu da se zbog složenosti koda javlja više grešaka jer segment koda radi duže vrijeme; iz prethodnih testova, čini se da je deset udaraca broj bodova prije nego što se pojave značajne greške.

Korak 6: Jukstapozicija

Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition

Budući da će sve ovo biti smješteno u jednu datoteku, stvorili smo funkciju koristeći svaki od prethodna dva koraka kao svoje podfunkcije. Konačni nacrt je napravljen sa sljedećom izmjenom redux funkcije pod nazivom "recon". Kako bi se izbjegla zabuna za MATLAB, "counter" i "rombplot3" skripte su preimenovane u ugrađene funkcije "CountR" i "plotr", respektivno.

U konačnoj verziji moralo se izvršiti nekoliko promjena za razliku od prethodnih skripti:

-Izvor će uvijek biti označen crvenim kružićem

-Svaki put kad se roomba zaustavi s odbojnika, lokacija je označena crnim krugom

-Svaki put kad se roomba zaustavi od svojih senzora na litici, lokacija je označena plavim krugom

-Svaki put kad roomba prestane istraživati područje, lokacija je označena zelenim krugom

-Slike se mijenjaju tako da se ukloni gornji dio zbog vremenske oznake koja potencijalno ometa rezultate

-Granice se neće računati kao objekt zbog prilično velikog broja stečenih podataka

-Nekoliko varijabli je promijenjeno, pa kako biste izbjegli zabunu, koristite gornje verzije za referencu.

Korak 7: Testiranje

Testiranje
Testiranje

Pokazalo se da su testovi za svaku pojedinačnu komponentu s vremena na vrijeme prilično miješani, zbog čega su bile potrebne izmjene određenih unaprijed postavljenih vrijednosti. Tematska podloga na kojoj smo htjeli testirati sposobnosti robota u zatvorenom prostoru jednostavno se sastojala od bijele ploče položene na mnogo tamniji pod. Možete razbacati objekte po području; natjerati ih da se ponašaju kao objekti na koje se naleti ili na udaljene objekte od područja kretanja robota.

Nakon što je postavio regulirano vrijeme i osnovnu brzinu, roomba je pokazala odgovarajuće ponašanje pri kretanju, zaustavljajući se i odmičući se od svake "litice" ili predmeta u koji se zabijala, kao i usporavajući se kad je otkrila nešto u blizini. Nakon dostizanja željene udaljenosti od tri metra, robot bi se zaustavio i procijenio područje, snimajući svaku regiju od 45 stupnjeva, i nastavio bi dalje ako vrijeme dozvoljava. Međutim, činilo se da su njegovi zavoji veći nego što se zahtijevalo, što znači da bi podaci o koordinatama bili zamagljeni.

Svaki put kad se zaustavi, nova točka se postavlja u približnu regiju svog položaja na koordinatnom sistemu; međutim, napominje se da početni smjer kretanja roombe igra ključnu ulogu u dizajnu karte. Da je funkcija kompasa mogla biti implementirana, bila bi korištena kao ključni dio dizajna karte.

Stvarno vrijeme potrebno za potpuno pokretanje funkcije uvijek je iznad traženog vremena, što ima smisla s obzirom na to da se ne može zaustaviti usred jednog od oporavka. Nažalost, ova verzija brojanja slika ima svojih problema, posebno u područjima koja su ili uglavnom jednobojna ili različite svjetline; jer pokušava razlikovati dvije nijanse, teži opažanju objekata koji nisu željeni, pa se stoga uvijek računa do ludo velikih brojeva.

Korak 8: Zaključak

Zaključak
Zaključak

Iako je ovaj zadatak bio vrlo avanturistički i kreativan posao koji je donio olakšanje, ja sam, iz svojih osobnih zapažanja, mogao vidjeti veliki broj grešaka koje bi mogle biti problematične, kako u kodu tako i u ponašanju robota.

Ograničenje upotrebe specifikacije vremena u while petlji uzrokuje da ukupna količina vremena bude duža od željene; Proces panoramske tehnike i obrade slike mogao bi u stvari potrajati duže ako se vodi sporim računarom ili se prethodno ne koristi. Osim toga, roomba koja je korištena u našoj prezentaciji djelovala je s velikim brojem grešaka, posebno u kretanju, u odnosu na simulator. Nažalost, robot koji se koristio imao je tendenciju da se blago naginje ulijevo jer se vozio ravno i pravio veće zavoje nego što je željeno. Iz tog i mnogih drugih razloga, visoko se preporučuje da se radi kompenzacije ovih grešaka moraju izvršiti promjene u uglovima zaokreta.

Ipak, ovo je dug, ali intelektualno poticajan projekt koji je djelovao kao zanimljivo iskustvo za primjenu kodova i naredbi kako bi izravno utjecali na ponašanje stvarnog robota.

Preporučuje se: