Satura rādītājs:
- 1. solis: aprīkojums
- 2. darbība: MATLAB iestatīšana
- 3. solis: funkcija: kustība
- 4. darbība: funkcija: attēlu apstrāde
- 5. darbība: funkcija: kartēšana
- 6. solis: salīdzināšana
- 7. darbība: pārbaude
- 8. solis. Secinājums
Video: Roomba Scout Explorer: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
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
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
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
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
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
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
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
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:
Jūsu Roomba pārvēršana Mars Rover: 5 soļi
Pārvēršot savu Roomba par Mars Rover:
Roomba Bot the Bulider: 5 soļi (ar attēliem)
Roomba Bot the Bulider: Bot the Builder ir roomba, kas ar " grabbers " pievienots priekšpusē, varēs pārvietot objektus. Kods ar to ir iestatīts ierakstīt pirmo kustību ar GUI lodziņu, kuru varat kontrolēt tikai ar peles klikšķi. Pēc
Roomba Explorer: 4 soļi
Roomba Explorer: Izmantojot MATLAB un iRobot izveidoto robotu Create2, šis projekts izpētīs dažādas nezināmas atrašanās vietas. Mēs izmantojām robota sensorus, lai palīdzētu manevrēt bīstamā apvidū. Iegūstot fotogrāfijas un video plūsmu no Raspberry Pi, kas
Tastatūras īsceļi pārlūkprogrammai Internet Explorer !!: 4 soļi
Tastatūras īsceļi pārlūkprogrammai Internet Explorer !!: Šī pamācība parādīs dažus noderīgus īsinājumtaustiņus pārlūkam Internet Explorer Lūdzu, abonējiet manu kanāluPaldies
Autobusu pirātu 3EEPROM Explorer dēlis: 5 soļi
Autobusu pirātu 3EEPROM Explorer padome: ja jums ir kāds no Hack a Day's Bus Pirates, ko jūs ar to darāt? Uzziniet par 1 vadu, I2C un SPI EEPROM, izmantojot 3EEPROM pētnieku paneli (mēs to saucam par THR-EE-PROM). EEPROM ir atmiņas mikroshēmas veids, kas saglabā datus bez nepārtrauktas jaudas