Turinys:

„Roomba Scout Explorer“: 8 žingsniai
„Roomba Scout Explorer“: 8 žingsniai

Video: „Roomba Scout Explorer“: 8 žingsniai

Video: „Roomba Scout Explorer“: 8 žingsniai
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Lapkritis
Anonim
„Roomba Scout Explorer“
„Roomba Scout Explorer“

Kaip vienas labiausiai lauktų ir daugiausiai tyrinėtų amerikiečių projektų, „Mars rover“projektai tapo žmonių pasiekimais nuolat tobulėjančioje aukštųjų technologijų autonominių sistemų gamyboje, siekiant vienintelio tikslo ištirti ir interpretuoti raudonos planetos užpakalinę masę ir paviršius. žemė. Vykdydami asmeniškesnį projektą, skirtą pagerbti Marso misijas, mūsų tikslas buvo sukurti „roomba“robotą, kuris galėtų savarankiškai veikti per tam tikrą laiką ir atitinkamai reaguoti į tam tikrus kriterijus.

Kalbant apie unikalumą, mes sutelkėme dėmesį į diagramos kūrimą, kurioje būtų parodytas kiekvienas roboto kelias nuo jo ištakų. Be to, robotas panoraminiu stiliumi galės suskaičiuoti šalia jo esančių objektų skaičių.

1 žingsnis: įranga

-Roomba su pritvirtinama kamera (su konkrečiu pavadinimu žinomas)

-Prijungtas serveris

-„Windows 10“/ „Mac“su interneto ryšiu

-Ryški platforma

-Tamsios grindys

-Bet kokie klaidinantys monochromatinio dizaino objektai

2 žingsnis: MATLAB sąranka

MATLAB sąranka
MATLAB sąranka

Norėdami sukurti „roomba“užduotis ir funkcijas, turite turėti konkrečius kodus ir įrankių rinkinius, kuriuose yra „roomba“komandos.

Atsisiuntę „MATLAB 2016a“ir vėliau, sukurkite aplanką, kuriame yra šie robotų failai, ir įterpkite žemiau esantį MATLAB failą į aplanką ir paleiskite jį, kad įdiegtumėte likusius būtinus „roomba“failus.

Po to dešiniuoju pelės mygtuku spustelėkite langą Dabartinis aplankas, užveskite pelės žymeklį ant „Pridėti kelią“ir spustelėkite „Dabartinis aplankas“. Dabar reikia nustatyti kelią, kad kiekvienas iš šių failų būtų naudojamas „roomba“aktyvinti.

Dabar, norėdami nustatyti „roomba“, komandų lange naudokite žemiau esančią komandą:

r = roomba (#).

Simbolis # yra nurodyto kambario „numeris“; tačiau jei norite tik „roomba“simuliatoriaus, tiesiog įveskite šią komandą:

r = roomba (0).

Modeliavimas būtų rekomenduojamas judėjimo modeliams išbandyti.

Jei jums įdomu, kokias komandas gali atlikti „roomba“, komandų lange įveskite:

daktaras Roomba.

Norėdami gauti daugiau informacijos, apsilankykite šioje svetainėje:

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

3 žingsnis: Funkcija: judėjimas

Funkcija: judėjimas
Funkcija: judėjimas
Funkcija: judėjimas
Funkcija: judėjimas

Kalbant apie judėjimą, „roomba“turėtų automatiškai judėti tam tikrą laiką, nurodytą įėjimuose. Roboto judesio tikslas - tinkamai reaguoti, kai jo jutikliai (buferiai, šviesos buferiai ir uolos jutikliai) pasikeičia esant įvairioms kliūtims. Ši dalis būtų visų „roomba“komandų pagrindas, nes vėliau bus pridėta daugiau kodo funkcijų. Reikėjo tam tikros specifikacijos:

-Norėdamas sumažinti žalą, robotas turi sumažinti greitį iki mažesnio greičio.

-Artėdamas prie uolos ar sienos, robotas judės atbuline eiga ir pakeis kampą, priklausomai nuo smūgio taško

-Po tam tikro laiko važiuojant „roomba“galiausiai sustos ir fotografuos apylinkes

Atkreipkite dėmesį, kad naudojamos vertės buvo susijusios su simuliatoriumi; Reikėtų keisti tokias vertes, kaip posūkio kampų posūkio greitis ir iš anksto nustatyti roboto jutikliai, naudojant tikrąjį robotą, kad būtų užtikrintas stabilumas ir įrangos klaidų apskaita.

4 žingsnis: Funkcija: vaizdo apdorojimas

Funkcija: vaizdo apdorojimas
Funkcija: vaizdo apdorojimas

Pagal prašymą mums buvo pavesta pakeisti vaizdo (arba kelių vaizdų), kuriuos gavo roboto kamera, duomenis, o mes nusprendėme, kad „roomba“„suskaičiuotų“objektų, kuriuos jis mato vaizde, skaičių.

Mes laikėmės technikos, pagal kurią MATLAB nubrėžė ribas aplink pajuodusius objektus, kurie kontrastuoja su baltu fonu. Tačiau ši funkcija gali turėti sunkumų atviroje vietoje, nes fotoaparatas suvokia skirtingas formas ir spalvas, todėl skaičius yra neįprastai didelis.

Atminkite, kad ši funkcija negali veikti simuliatoriuje, nes fotoaparatas nėra pateiktas; jei bus bandoma, įvyks klaida, skelbianti tik (:,:, 3) matricą.

5 žingsnis: Funkcija: žemėlapių sudarymas

Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas
Funkcija: kartografavimas

Viena papildoma funkcija, kurios norėjome turėti robotą, buvo jos vietų žemėlapių sudarymas, nes jis tiesiogiai sąveikauja su aplinka. Taigi toliau pateiktas kodas siekia atidaryti žemėlapį ir sukurti koordinačių sistemą, kurioje išsamiai aprašoma kiekviena vieta, kurioje yra nuspausti roboto buferio jutikliai. Tai pasirodė esanti ilgiausia dalis iš trijų dalių, kurias reikia išbandyti atskirai, tačiau ji pasirodė daug paprastesnė, kai buvo pritaikyta galutiniam scenarijui.

Kad funkcijos veikimo laiko trukmė būtų apribota, bandymo tikslais buvo naudojama n ciklo „n“riba.

Turėkite omenyje, kad dėl kodo sudėtingumo kodo segmentui ilgai veikiant atsiranda daugiau klaidų; iš ankstesnių bandymų, atrodo, dešimt taškų yra taškų skaičius, kol įvyksta reikšmingų klaidų.

6 žingsnis: sugretinimas

Gretinimas
Gretinimas
Gretinimas
Gretinimas
Gretinimas
Gretinimas
Gretinimas
Gretinimas

Kadangi visa tai bus dedama į vieną failą, mes sukūrėme funkciją, naudodamiesi kiekvienu iš dviejų ankstesnių žingsnių kaip jų subfunkcijos. Buvo atliktas galutinis projektas su tokia redukcijos funkcijos modifikacija, vadinama „recon“. Kad būtų išvengta painiavos naudojant MATLAB, scenarijai „counter“ir „rombplot3“buvo pervadinti atitinkamai kaip įterptosios funkcijos „CountR“ir „plotr“.

Priešingai nei ankstesniuose scenarijuose, galutinėje versijoje reikėjo atlikti keletą pakeitimų:

-Kilmė visada bus pažymėta raudonu apskritimu

-Kiekvieną kartą, kai „roomba“sustoja nuo buferių, vieta pažymėta juodu apskritimu

-Kiekvieną kartą, kai „roomba“sustoja nuo skardžio jutiklių, vieta pažymėta mėlynu apskritimu

-Kiekvieną kartą, kai „Roomba“nustoja tyrinėti vietovę, vieta pažymėta žaliu apskritimu

-Vaizdai modifikuojami taip, kad viršutinė dalis būtų pašalinta dėl laiko žymos, galimai trukdančios rezultatams

-Sienos nebus skaičiuojamos kaip objektas dėl gana didelio įgytų skaičių

-Keletas kintamųjų buvo pakeisti, todėl, kad išvengtumėte painiavos, naudokite aukščiau pateiktas versijas.

7 žingsnis: bandymas

Testavimas
Testavimas

Kiekvieno atskiro komponento bandymai kartais buvo gana mišrūs, todėl reikėjo keisti tam tikras iš anksto nustatytas vertes. Teminis fonas, kuriame norėjome išbandyti roboto galimybes uždaroje zonoje, paprasčiausiai susideda iš lentos, pastatytos ant daug tamsesnių grindų. Galite išsklaidyti objektus aplink teritoriją; kad jie veiktų kaip objektai, į kuriuos reikia atsitrenkti, arba tolimi objektai nuo roboto judėjimo zonos.

Nustatęs reguliuojamą laiką ir bazinį greitį, „roomba“pademonstravo tinkamą judėjimą, sustojo ir atsitraukė nuo kiekvieno „skardžio“ar objekto, į kurį jis atsitrenkė, ir sulėtino greitį, kai aptiko kažką šalia. Pasiekęs norimą trijų metrų atstumą, robotas sustos ir įvertins sritį, nufotografuodamas kiekvieną 45 laipsnių sritį, ir, jei laikas leis, tęsk toliau. Tačiau jo posūkiai pasirodė didesni nei prašyta, o tai reiškia, kad koordinačių duomenys bus užtemdyti.

Kiekvieną kartą, kai jis sustoja, apytikslyje jo padėties koordinačių sistemoje srityje buvo įdėtas naujas taškas; tačiau pažymima, kad pradinė „roomba“pradžios kryptis vaidina esminį vaidmenį kuriant žemėlapį. Jei būtų galima įgyvendinti kompaso funkciją, ji būtų buvusi naudojama kaip esminė žemėlapio dizaino dalis.

Faktinis laikas, kurio reikia funkcijai visiškai paleisti, visada viršija reikalaujamą laiką, o tai yra prasminga atsižvelgiant į tai, kad jis negali sustoti vieno iš atkūrimo laikotarpių viduryje. Deja, ši vaizdo skaičiavimo versija turi savo problemų, ypač tose srityse, kurios dažniausiai būna vienspalvės arba skiriasi ryškumu; kadangi jis bando atskirti du atspalvius, jis linkęs suvokti nepageidaujamus objektus, todėl jis visada skaičiuojamas iki beprotiškai daug.

8 žingsnis: Išvada

Išvada
Išvada

Nors ši užduotis buvo labai nuotaikingas ir kūrybingas darbas, sukėlęs palengvėjimo džiaugsmą, iš savo asmeninių pastebėjimų aš galėjau įžvelgti daugybę klaidų, kurios gali kelti problemų tiek kodekse, tiek roboto elgesyje.

Dėl laiko specifikacijos naudojimo ciklo cikle apribojimo bendras laikas yra ilgesnis nei pageidaujama; panoramos technikos ir vaizdo apdorojimo procesas iš tikrųjų gali užtrukti ilgiau, jei jis būtų paleistas lėtu kompiuteriu arba nebūtų naudojamas iš anksto. Be to, „roomba“, kuri buvo naudojama mūsų pristatyme, veikė su daugybe klaidų, ypač judant, palyginti su treniruokliu. Naudotas robotas, deja, turėjo tendenciją šiek tiek pasvirti į kairę, nes važiavo tiesiai ir padarė didesnius posūkius, nei norėjo. Dėl šios ir daugelio kitų priežasčių labai rekomenduojama, kad būtų kompensuotos šios klaidos, pakeitus jo posūkio kampus.

Nepaisant to, tai ilgas, tačiau intelektualiai stimuliuojantis projektas, kuris buvo įdomi mokymosi patirtis taikant kodus ir komandas, kad būtų tiesiogiai paveiktas tikro roboto elgesys.

Rekomenduojamas: