Kazalo:

Roomba Scout Explorer: 8 korakov
Roomba Scout Explorer: 8 korakov

Video: Roomba Scout Explorer: 8 korakov

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

Kot eden najbolj pričakovanih in močno raziskanih ameriških projektov so projekti Mars roverja postali človeški dosežki v vedno bolj napredni proizvodnji visokotehnoloških avtonomnih sistemov z edinim namenom raziskovanja in razlage kopenskih površin in površin rdečega planeta Zemlja. Kot del bolj osebnega projekta v poklon misijam na Marsu je bil naš cilj ustvariti robota roomba, ki bi lahko deloval avtonomno v določenem časovnem okviru in se ustrezno odzval na določena merila v svoji bližini.

Kar zadeva edinstvenost, smo se osredotočili na ustvarjanje diagrama, ki je prikazal vsako pot, ki jo robot vodi od svojega izvora. Poleg tega bo robot lahko v panoramskem slogu prešteval število predmetov v svoji bližini.

1. korak: Oprema

-Roomba z kamero, ki jo je mogoče pritrditi (z znanim imenom)

-Povezani strežnik

-Windows 10 / Mac z internetno povezavo

-Svetla platforma

-temna tla

-Vsaki potepuški predmeti monokromatske zasnove

2. korak: Nastavitev MATLAB -a

Nastavitev MATLAB -a
Nastavitev MATLAB -a

Če želite ustvariti naloge in funkcije za roombo, morate imeti posebne kode in komplete orodij, ki vsebujejo ukaze roomba.

Z naloženim programom MATLAB 2016a in naprej ustvarite mapo, ki bo vsebovala te robotske datoteke, spodaj v mapo vstavite naslednjo datoteko MATLAB in jo zaženite, da namestite preostale potrebne datoteke roomba.

Po tem z desno miškino tipko kliknite okno Trenutna mapa, miško premaknite na "Dodaj pot" in kliknite na "Trenutna mapa". Zdaj je treba nastaviti pot, tako da bo vsaka od teh datotek uporabljena za aktiviranje roombe.

Zdaj uporabite spodnji ukaz v ukaznem oknu za nastavitev roombe:

r = roomba (#).

Simbol # je "številka" določene roombe; če pa želite samo simulator roombe, preprosto vnesite naslednji ukaz:

r = roomba (0).

Simulacija bi bila priporočljiva za preizkušanje vzorcev gibanja.

Če vas zanima, kakšnim ukazom lahko sledi roomba, v ukazno okno vnesite naslednje:

doc roomba.

Za več podrobnosti obiščite naslednjo spletno stran:

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

3. korak: Funkcija: Gibanje

Funkcija: Gibanje
Funkcija: Gibanje
Funkcija: Gibanje
Funkcija: Gibanje

Kar zadeva gibanje, se mora roomba samodejno premikati za določeno časovno obdobje, navedeno v vnosih. Cilj gibanja robota je, da se ustrezno odzove, ko se njegovi senzorji (odbijači, odbijači za svetlobo in senzorji pečine) spremenijo ob prisotnosti različnih ovir. Ta del bi služil kot osnova za vse ukaze roombe, saj se kasneje kodi doda več funkcij. Potrebne so bile nekatere specifikacije:

-Za zmanjšanje škode mora robot zmanjšati hitrost na nižjo hitrost.

-Ko se približuje pečini ali steni, se bo robot premikal vzvratno in spreminjal svoj kot glede na točko udarca

-Po nekaj časa vožnje se bo roomba sčasoma ustavila in posnela okolico

Upoštevajte, da so bile uporabljene vrednosti povezane s simulatorjem; vrednosti, kot so koti obračanja, hitrosti obračanja in prednastavitve senzorja robota, je treba spremeniti pri uporabi dejanskega robota, da se zagotovi stabilnost in upoštevanje napak v opremi.

4. korak: Funkcija: obdelava slik

Funkcija: obdelava slik
Funkcija: obdelava slik

Na zahtevo smo imeli nalogo spremeniti podatke slike (ali več slik), ki jih je prejela robotova kamera, na kar smo se odločili, da bo roomba "štela" število predmetov, ki jih vidi na sliki.

Upoštevali smo tehniko, da MATLAB nariše meje okoli počrnjenih predmetov, ki so v nasprotju z belim ozadjem. Vendar pa ima ta funkcija težave na odprtem, saj fotoaparat zazna različne oblike in barve, kar povzroči nenavadno veliko število.

Upoštevajte, da ta funkcija ne more delovati v simulatorju, ker ni priložena kamera; če poskusite, bo prišlo do napake, če deklarirate, da je mogoče uporabiti le matriko (:,:, 3).

5. korak: Funkcija: preslikava

Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava
Funkcija: preslikava

Ena dodatna funkcija, za katero smo želeli, da bi imel robot, je kartiranje njegovih lokacij, saj neposredno vpliva na okolje. Tako si spodnja koda želi odpreti zemljevid in vzpostaviti koordinatni sistem, ki podrobno opisuje vsako lokacijo, na kateri so pritisnjeni robotski senzorji odbijača. To se je izkazalo za najdaljši del treh delov, ki jih je bilo treba preizkusiti posamično, vendar se je izkazalo za veliko enostavnejše pri uporabi končnega scenarija.

Zaradi dodajanja omejitve dolžini časa izvajanja funkcije je bila za namene testiranja uporabljena omejitev n <20 v zanki while.

Upoštevajte, da se zaradi zapletenosti kode več segmentov napak pojavi, ko se segment kode izvaja dlje časa; glede na prejšnje preizkuse se zdi, da je deset udarcev število točk, preden se pojavijo pomembne napake.

Korak 6: Postavitev

Jukstapozicija
Jukstapozicija
Jukstapozicija
Jukstapozicija
Jukstapozicija
Jukstapozicija
Jukstapozicija
Jukstapozicija

Ker bo vse to postavljeno v eno datoteko, smo ustvarili funkcijo, pri kateri smo uporabili vsakega od prejšnjih dveh korakov kot njene podfunkcije. Končni osnutek je bil narejen z naslednjo spremembo funkcije reduksa, imenovano "recon". Da bi se izognili zmedi za MATLAB, sta bila skripta "counter" in "rombplot3" preimenovana v vdelani funkciji "CountR" in "plotr".

V končni različici je bilo treba v nasprotju s prejšnjimi skripti narediti več sprememb:

-Izvor bo vedno označen z rdečim krogom

-Vsakič, ko se roomba ustavi pred odbijači, je lokacija označena s črnim krogom

-Vsakič, ko se roomba ustavi pred senzorji pečine, je lokacija označena z modrim krogom

-Vsakič, ko roomba ustavi preiskavo območja, je lokacija označena z zelenim krogom

-Slike so spremenjene tako, da je zgornji del odstranjen zaradi časovnega žiga, ki bi lahko vplival na rezultate

-Meje se zaradi precej velikega števila ne bodo štele kot objekt

-Spremenjenih je več spremenljivk, zato za referenco uporabite zgornje različice.

7. korak: Testiranje

Testiranje
Testiranje

Preizkusi za vsako posamezno komponento so bili včasih precej mešani, zato so bile potrebne spremembe nekaterih prednastavljenih vrednosti. Tematsko ozadje, na katerem smo želeli preizkusiti sposobnosti robota v zaprtem prostoru, je preprosto sestavljala tabla, položena na precej temnejša tla. Predmete lahko razpršite po območju; naj delujejo kot predmeti, ki jih je treba udariti, ali oddaljene predmete od gibljivega območja robota.

Po nastavitvi reguliranega časa in osnovne hitrosti je roomba pokazala ustrezno vedenje pri gibanju, se ustavila in umaknila od vsake "pečine" ali predmeta, v katerega je udarila, pa tudi upočasnila, ko je zaznala nekaj v bližini. Ko je dosegel želeno razdaljo treh metrov, se je robot ustavil in ocenil območje, posnel vsakega 45 -stopinjskega območja in nadaljeval naprej, če to dopušča čas. Njegovi zavoji pa so bili videti večji od zahtevanih, kar pomeni, da bodo podatki o koordinatah zakriti.

Vsakič, ko se ustavi, je bila nova točka postavljena v približno območje njenega položaja v koordinatnem sistemu; vendar je treba opozoriti, da ima začetna smer, pri kateri se roomba zažene, ključno vlogo pri oblikovanju zemljevida. Če bi lahko uporabili funkcijo kompasa, bi jo uporabili kot ključni del zasnove zemljevida.

Dejanski čas, ki ga funkcija potrebuje za popolno izvajanje, je vedno nad zahtevanim časom, kar je smiselno, saj se ne more ustaviti sredi enega od obnovitev. Žal ima ta različica štetja slik težave, zlasti na področjih, ki so večinoma enobarvna ali se spreminjajo po svetlosti; ker poskuša razlikovati med dvema odtenkoma, je nagnjen k zaznavanju predmetov, ki niso zaželeni, zato vedno šteje do noro visokih števil.

8. korak: Zaključek

Zaključek
Zaključek

Čeprav je bila ta naloga zelo pustolovsko in ustvarjalno delo, ki je prineslo olajšanje, sem na podlagi osebnih opazovanj videl veliko napak, ki bi bile lahko problematične tako v kodi kot v vedenju robota.

Omejitev uporabe specifikacije časa v zanki while povzroči, da je skupni čas daljši od želenega; postopek panoramske tehnike in obdelave slik bi lahko trajal dlje, če bi jih vodil počasen računalnik ali pa jih ne bi uporabljali vnaprej. Poleg tega je roomba, uporabljena v naši predstavitvi, delovala z velikim številom napak, zlasti pri gibanju, v primerjavi s simulatorjem. Robot, ki se je uporabljal, se je nagibal k temu, da se je rahlo nagnil v levo, ko je vozil naravnost in naredil večje zavoje, kot je bilo želeno. Zaradi tega in mnogih drugih je zelo priporočljivo, da se za izravnavo teh napak spremenijo koti zavoja.

Kljub temu je to dolg, vendar intelektualno spodbuden projekt, ki je deloval kot zanimiva učna izkušnja za uporabo kod in ukazov, ki neposredno vplivajo na obnašanje dejanskega robota.

Priporočena: