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, Srpanj
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 postignuća u sve naprednijoj proizvodnji visokotehnoloških autonomnih sustava 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 svojoj blizini.

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

Korak 1: Oprema

-Roomba s kamerom koja se može pričvrstiti (s posebnim imenom)

-Povezan poslužitelj

-Windows 10 / Mac s internetskom vezom

-Svijetla platforma

-Tamni pod

-Svi zalutali predmeti monokromatskog dizajna

Korak 2: Postavljanje MATLAB -a

MATLAB Postavljanje
MATLAB Postavljanje

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

S preuzimanjem programa MATLAB 2016a i dalje, stvorite mapu koja će sadržavati ove datoteke robota i umetnite sljedeću datoteku MATLAB ispod u mapu te je pokrenite da biste instalirali preostale potrebne datoteke roombe.

Nakon toga desnom tipkom miša kliknite prozor trenutne mape, zadržite pokazivač miša iznad "Dodaj put" 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 naredbeni prozor upišite 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 automatski kretati kroz zadano vrijeme navedeno u ulazima. Cilj kretanja robota je pravilno reagirati kada se njegovi senzori (odbojnici, svjetlosni odbojnici i senzori litice) promijene u prisutnosti različitih prepreka. Ovaj bi dio poslužio kao osnova za sve naredbe roombe jer se kasnije dodaju dodatne značajke kodu. Potrebne su neke specifikacije:

-Za smanjenje štete, robot mora smanjiti brzinu na manju brzinu.

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

-Nakon nekog vremena vožnje, roomba će se na kraju zaustaviti i snimiti okolicu

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

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 robotova kamera, na što smo odlučili natjerati roombu da "broji" broj objekata koje vidi na slici.

Slijedili 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 visokim 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 pogreške pri deklaraciji da se može koristiti samo (:,,:, 3) matrica.

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. Stoga donji kôd nastoji otvoriti kartu i postaviti koordinatni sustav koji detaljno opisuje svaku lokaciju na kojoj su pritisnuti senzori odbojnika robota. Ovo se pokazalo kao najduži dio od tri dijela za pojedinačno testiranje, ali se pokazao mnogo jednostavnijim kada se primijeni na konačnu skriptu.

Radi dodavanja ograničenja duljini vremena izvođenja funkcije, ograničenje n <20 na petlji while korišteno je za potrebe testiranja.

Imajte na umu da zbog složenosti koda dolazi do više pogrešaka jer segment koda radi dugo vremena; prema prethodnim testovima, čini se da je deset udaraca broj bodova prije nego što se pojave značajne pogreške.

Korak 6: Usporedba

Usporedba
Usporedba
Usporedba
Usporedba
Usporedba
Usporedba
Usporedba
Usporedba

Budući da će sve to 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, skripte "counter" i "rombplot3" preimenovane su u ugrađene funkcije "CountR" i "plotr".

U konačnoj verziji moralo se napraviti nekoliko promjena za razliku od prethodnih skripti:

-Podrijetlo će uvijek biti označeno crvenim kružićem

-Svaki put kad se roomba zaustavi s odbojnika, mjesto je označeno crnim kružićem

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

-Svaki put kad roomba prestane istraživati područje, lokacija je označena zelenim kružićem

-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

-Nekoliko je varijabli promijenjeno, pa radi izbjegavanja zabune koristite gornje verzije za referencu.

Korak 7: Testiranje

Testiranje
Testiranje

Ispitivanja za svaku pojedinu komponentu pokazala su se ponekad prilično miješanima, 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 puno tamniji pod. Objekte možete raspršiti po području; natjerati ih da se ponašaju kao objekti koje treba udariti ili udaljene objekte iz 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, te nastavio dalje ako to vrijeme dopušta. Međutim, činilo se da su njegovi zavoji veći nego što se zahtijevalo, što znači da će podaci o koordinatama biti zamagljeni.

Svaki put kad se zaustavi, nova točka je postavljena u približnu regiju svog položaja na koordinatnom sustavu; međutim, napominje se da početni smjer kretanja roombe igra ključnu ulogu u dizajnu karte. Da se može primijeniti značajka kompasa, ona bi se koristila 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 svojih oporavka. Nažalost, ova verzija brojanja slika ima svojih problema, osobito u područjima koja su ili uglavnom jednobojna ili različite svjetline; jer pokušava razlikovati dvije nijanse, sklona je 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 pogrešaka koje bi mogle biti problematične, kako u kodu tako i u ponašanju robota.

Ograničenje korištenja specifikacije vremena u while petlji uzrokuje da ukupno vrijeme bude duže od željenog; postupak panoramske tehnike i obrade slike mogao bi zapravo potrajati dulje ako se vodi sporim računalom ili se prethodno ne koristi. Osim toga, roomba koja je korištena u našoj prezentaciji djelovala je s velikim brojem pogrešaka, osobito u kretanju, u usporedbi sa simulatorom. Nažalost, robot koji se koristio imao je tendenciju lagano se naginjati ulijevo jer se vozio ravno i pravio veće zavoje nego što je željeno. Iz tog razloga i mnogih drugih, jako se preporučuje da se radi kompenzacije ovih pogrešaka moraju izvršiti promjene kutova zavoja.

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

Preporučeni: