Satura rādītājs:

Roomba Scout Explorer: 8 soļi
Roomba Scout Explorer: 8 soļi

Video: Roomba Scout Explorer: 8 soļi

Video: Roomba Scout Explorer: 8 soļi
Video: The Best Robot Vacuum Tier List 2024, Jūlijs
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Kā viens no visvairāk gaidītajiem un visvairāk pētītajiem amerikāņu projektiem Marsa roveru projekti ir kļuvuši par cilvēku sasniegumiem arvien progresīvākajā augsto tehnoloģiju autonomo sistēmu ražošanā, lai tikai izpētītu un interpretētu sarkanās planētas zemes masas un virsmas. zeme. Kā daļa no personiskāka projekta, godinot Marsa misijas, mūsu mērķis bija izveidot Roomba robotu, kas noteiktu laiku varētu darboties autonomi un atbilstoši reaģēt uz noteiktiem kritērijiem tā tuvumā.

Runājot par unikalitāti, mēs koncentrējāmies uz diagrammas izveidi, kurā parādīts katrs robota ceļš no tā izcelsmes. Turklāt robots panorāmas stilā varēs saskaitīt savā tuvumā esošo objektu skaitu.

1. solis: aprīkojums

-Roomba ar pievienojamu kameru (ar zināmu nosaukumu)

-Savienots serveris

-Windows 10 / Mac ar interneta savienojumu

-Spilgta platforma

-Tumša grīda

-Visi klaiņojoši vienkrāsaina dizaina priekšmeti

2. darbība: MATLAB iestatīšana

MATLAB iestatīšana
MATLAB iestatīšana

Lai izveidotu roomba uzdevumus un funkcijas, jums ir jābūt īpašiem kodiem un rīku komplektiem, kas satur roomba komandas.

Lejupielādējot MATLAB 2016a un turpmāk, izveidojiet mapi, kurā ir šie robotu faili, un ievietojiet mapē šādu MATLAB failu un palaidiet to, lai instalētu atlikušos nepieciešamos roomba failus.

Pēc tam logā Pašreizējā mape ar peles labo pogu noklikšķiniet, virziet peles kursoru virs “Pievienot ceļu” un noklikšķiniet uz “Pašreizējā mape”. Tagad ir jāizveido ceļš, lai katrs no šiem failiem tiktu izmantots roomba aktivizēšanai.

Tagad izmantojiet zemāk esošo komandu komandu logā, lai iestatītu roomba:

r = roomba (#).

Simbols # ir norādītās istabas numurs. tomēr, ja vēlaties tikai roomba simulatoru, vienkārši ierakstiet šādu komandu:

r = roomba (0).

Simulācija būtu ieteicama kustību modeļu pārbaudei.

Ja jūs interesē, kādas komandas var izpildīt roomba, komandu logā ierakstiet šo:

doktors Roomba.

Lai iegūtu sīkāku informāciju, apmeklējiet šo vietni:

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

3. solis: funkcija: kustība

Funkcija: kustība
Funkcija: kustība
Funkcija: kustība
Funkcija: kustība

Kas attiecas uz kustību, roomba vajadzētu automātiski pārvietoties noteiktā laika periodā, kas norādīts ievadē. Robota kustības mērķis ir pareizi reaģēt, kad mainās tā sensori (buferi, gaismas buferi un klints sensori) dažādu šķēršļu klātbūtnē. Šī daļa kalpos par pamatu visām Roomba komandām, jo vēlāk kodam tiks pievienotas citas funkcijas. Bija vajadzīgas dažas specifikācijas:

-Lai samazinātu bojājumus, robotam jāsamazina ātrums līdz mazākam ātrumam.

-Tuvojoties klintij vai sienai, robots kustēsies atpakaļgaitā un mainīs leņķi atkarībā no trieciena punkta

-Pēc kāda laika braukšanas roomba beidzot apstāsies un uzņems apkārtnes attēlus

Ņemiet vērā, ka izmantotās vērtības bija saistītas ar simulatoru; tādas vērtības kā pagrieziena leņķi pagrieziena ātrumi un robota sensora sākotnējie iestatījumi ir jāmaina, lietojot faktisko robotu, lai nodrošinātu stabilitāti un iekārtu kļūdu uzskaiti.

4. darbība: funkcija: attēlu apstrāde

Funkcija: attēlu apstrāde
Funkcija: attēlu apstrāde

Saskaņā ar pieprasījumu mums tika uzdots mainīt attēla datus (vai vairākus attēlus), ko saņēma robota kamera, un mēs nolēmām, lai roomba "saskaitītu" objektu skaitu, ko tas redz attēlā.

Mēs ievērojām tehniku, kā MATLAB novilkt robežas ap melniem objektiem, kas kontrastē ar baltu fonu. Tomēr šī funkcija ir pakļauta grūtībām atklātā vietā, jo fotokamera uztver dažādas formas un krāsas, kā rezultātā rodas neparasti liels skaits.

Ņemiet vērā, ka šī funkcija nevar darboties simulatorā, jo nav nodrošināta kamera; ja mēģināsiet, radīsies kļūda, paziņojot, ka var izmantot tikai (:,:, 3) matricu.

5. darbība: funkcija: kartēšana

Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana
Funkcija: kartēšana

Viena papildu funkcija, ko mēs vēlējāmies robotam, bija tās atrašanās vietu kartēšana, jo tā tieši mijiedarbojas ar vidi. Tādējādi zemāk esošais kods mēģina atvērt karti un izveidot koordinātu sistēmu, kurā sīki aprakstīta katra vieta, kurā tiek nospiesti robota bufera sensori. Šī izrādījās garākā daļa no trim daļām, kas jāpārbauda individuāli, taču, izrādoties galīgajam scenārijam, izrādījās daudz vienkāršāk.

Lai funkcijas darbības laika garumam pievienotu ierobežojumu, testēšanas nolūkos tika izmantots n <20 ierobežojums cikla cilpā.

Paturiet prātā, lai gan koda sarežģītības dēļ, koda segmentam ilgstoši darbojoties, rodas vairāk kļūdu; no iepriekšējiem testiem desmit izciļņi šķiet punktu skaits pirms būtisku kļūdu rašanās.

6. solis: salīdzināšana

Salīdzināšana
Salīdzināšana
Salīdzināšana
Salīdzināšana
Salīdzināšana
Salīdzināšana
Salīdzināšana
Salīdzināšana

Tā kā tas viss tiks ievietots vienā failā, mēs izveidojām funkciju, kā apakšfunkcijas izmantojot katru no iepriekšējām divām darbībām. Galīgais uzmetums tika veikts ar šādām redukcijas funkcijas izmaiņām, ko sauc par "recon". Lai izvairītos no neskaidrībām MATLAB, skripti "counter" un "rombplot3" tika pārdēvēti par attiecīgi iegultām funkcijām "CountR" un "plotr".

Galīgajā versijā bija jāveic vairākas izmaiņas, atšķirībā no iepriekšējiem skriptiem:

-Izcelsme vienmēr tiks atzīmēta ar sarkanu apli

-Katru reizi, kad Roomba apstājas no buferiem, atrašanās vieta ir atzīmēta ar melnu apli

-Katru reizi, kad Roomba apstājas no saviem klints sensoriem, atrašanās vieta ir atzīmēta ar zilu apli

-Katru reizi, kad Roomba pārstāj izmeklēt apkārtni, atrašanās vieta ir atzīmēta ar zaļu apli

-Attēli tiek modificēti tā, lai augšējā daļa tiktu noņemta, jo laika zīmogs, iespējams, traucē rezultātus

-Robežas netiks ieskaitītas kā objekts diezgan lielā iegūto skaitļu dēļ

-Ir mainīti vairāki mainīgie, lai izvairītos no neskaidrībām, atsaucei izmantojiet iepriekš minētās versijas.

7. darbība: pārbaude

Testēšana
Testēšana

Katras atsevišķās sastāvdaļas testi reizēm izrādījās diezgan sajaukti, tāpēc bija nepieciešamas izmaiņas noteiktās iepriekš iestatītās vērtībās. Tematiskais fons, uz kura mēs vēlējāmies pārbaudīt robota iespējas slēgtā teritorijā, vienkārši sastāvēja no tāfeles, kas novietota uz daudz tumšākas grīdas. Jūs varat izkaisīt objektus pa teritoriju; likt tiem darboties kā objektiem, ar kuriem jāsaskaras, vai attāliem objektiem no robota kustības zonas.

Pēc regulētā laika un bāzes ātruma iestatīšanas roomba demonstrēja adekvātu kustību uzvedību, apstājoties un atkāpjoties no katras “klints” vai objekta, kurā tā ietriecas, kā arī palēninot ātrumu, jo konstatēja kaut ko tuvumā. Sasniedzot vēlamo trīs metru brauciena attālumu, robots apstāsies un novērtēs apgabalu, uzņemot attēlus no katra 45 grādu apgabala, un turpinās, ja laiks to atļaus. Tomēr tā pagriezieni izrādījās lielāki nekā pieprasīts, kas nozīmē, ka koordinātu dati tiks aizēnoti.

Katru reizi, kad tā apstājas, tās koordinātu sistēmas aptuvenajā apgabalā tika ievietots jauns punkts; tomēr tiek atzīmēts, ka sākotnējam roomba sākuma virzienam ir izšķiroša nozīme kartes dizainā. Ja būtu iespējams ieviest kompasa funkciju, tā būtu izmantota kā būtiska kartes dizaina sastāvdaļa.

Faktiskais laiks, kas nepieciešams, lai funkcija pilnībā darbotos, vienmēr pārsniedz prasīto laiku, un tas ir jēga, ņemot vērā, ka tā nevar apstāties vienas atkopšanas laikā. Diemžēl šai attēlu skaitīšanas versijai ir savas problēmas, it īpaši apgabalos, kas pārsvarā ir vienkrāsaini vai mainās ar spilgtumu; tā kā tas mēģina atšķirt divus toņus, tam ir tendence uztvert nevēlamus objektus, tāpēc tas vienmēr tiek skaitīts līdz neprātīgi lieliem skaitļiem.

8. solis. Secinājums

Secinājums
Secinājums

Lai gan šis uzdevums bija ļoti piedzīvojumiem bagāts un radošs darbs, kas sagādāja atvieglojuma prieku, es, pēc saviem personīgajiem novērojumiem, varēju redzēt daudz kļūdu, kas varētu radīt problēmas gan robota kodā, gan uzvedībā.

Laika specifikācijas izmantošanas ierobežojums cikla ciklā rada kopējo laika ilgumu, kas ir ilgāks par vēlamo; panorāmas tehnikas un attēlu apstrādes process faktiski varētu aizņemt ilgāku laiku, ja to darbinātu lēns dators vai tas netiktu izmantots iepriekš. Turklāt roomba, kas tika izmantota mūsu prezentācijā, salīdzinājumā ar simulatoru darbojās ar daudzām kļūdām, īpaši kustībā. Diemžēl izmantotajam robotam bija tendence nedaudz noliekties pa kreisi, jo tas brauca taisni un veica lielākus pagriezienus, nekā gribēts. Šī un daudzu citu iemeslu dēļ ir ļoti ieteicams, lai kompensētu šīs kļūdas, ir jāveic izmaiņas tā pagrieziena leņķos.

Neskatoties uz to, šis ir garš, bet intelektuāli stimulējošs projekts, kas darbojās kā interesanta mācīšanās pieredze, lai piemērotu kodus un komandas, lai tieši ietekmētu faktiskā robota uzvedību.

Ieteicams: