Talaan ng mga Nilalaman:
- Hakbang 1: Kagamitan
- Hakbang 2: Pag-setup ng MATLAB
- Hakbang 3: Pag-andar: Pagkilos
- Hakbang 4: Pag-andar: Pagpoproseso ng Imahe
- Hakbang 5: Pag-andar: Pagma-map
- Hakbang 6: Juxtaposition
- Hakbang 7: Pagsubok
- Hakbang 8: Konklusyon
Video: Roomba Scout Explorer: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Bilang isa sa pinakahihintay at masusing sinaliksik na mga proyektong Amerikano, ang mga proyekto ng Mars rover ay naging mga tagumpay ng tao sa patuloy na pagsulong na paggawa ng mga high-tech na autonomous na sistema para sa nag-iisang layunin ng pagsisiyasat at pagbibigay kahulugan sa mga landmass at ibabaw ng pulang planeta sa likuran ang mundo. Bilang bahagi ng isang mas personal na proyekto sa paggalang sa mga misyon ng Mars, ang aming layunin ay lumikha ng isang robot ng roomba na maaaring kumilos nang autonomiya sa isang tiyak na tagal ng panahon at tumugon nang naaayon sa ilang mga pamantayan sa loob ng paligid nito.
Tulad ng para sa pagiging natatangi, nakatuon kami sa paglikha ng isang diagram na ipinakita ang bawat landas na kinukuha ng robot mula sa mga pinagmulan nito. Bilang karagdagan, mabibilang ng robot ang bilang ng mga bagay sa loob ng paligid nito sa isang malawak na estilo.
Hakbang 1: Kagamitan
-Roomba w / Attachable Camera (na may tukoy na pangalan na kilala)
-Nakakonektang Server
-Windows 10 / Mac na may pagkakakonekta sa Internet
-Tunay na platform
-Mangit na sahig
-Ang anumang mga ligaw na bagay ng disenyo ng monochromatic
Hakbang 2: Pag-setup ng MATLAB
Upang makalikha ng mga gawain at pag-andar para sa iyong roomba, dapat ay mayroon kang mga tukoy na code at toolkit na naglalaman ng mga utos ng roomba.
Sa MATLAB 2016a at pasulong na nai-download, lumikha ng isang folder upang maglaman ng mga file ng robot at ipasok ang sumusunod na MATLAB file sa ibaba sa folder at patakbuhin ito upang mai-install ang natitirang kinakailangang mga file ng roomba.
Pagkatapos nito, mag-right click sa window ng Kasalukuyang Folder, i-hover ang iyong mouse sa "Magdagdag ng isang Path" at mag-click sa "Kasalukuyang Folder." Ngayon, ang isang landas ay dapat na i-set up tulad ng bawat isa sa mga file na ito ay gagamitin upang buhayin ang roomba.
Ngayon, gamitin ang utos sa ibaba sa window ng utos upang i-set up ang roomba:
r = roomba (#).
Ang simbolo # ay ang 'bilang' ng tinukoy na roomba; gayunpaman, kung nais mo lamang ng isang simulator ng roomba, i-type lamang ang sumusunod na utos:
r = roomba (0).
Ang simulation ay inirerekumenda para sa pagsubok ng mga pattern ng paggalaw.
Kung gusto mong malaman kung ano ang mga utos na maaaring sundin ng roomba, i-type ang sumusunod sa command window:
doc roomba.
Para sa karagdagang detalye, bisitahin ang sumusunod na website:
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Hakbang 3: Pag-andar: Pagkilos
Tungkol sa paggalaw, ang roomba ay dapat na awtomatikong gumagalaw para sa isang itinakdang tagal ng oras na ibinigay sa mga input. Ang layunin ng paggalaw ng robot ay upang gumanti nang maayos kapag ang mga sensor nito (bumper, light bumpers at cliff sensors) ay nagbago sa pagkakaroon ng iba't ibang mga hadlang. Ang bahaging ito ay kumikilos bilang batayan para sa lahat ng mga utos ng roomba dahil maraming mga tampok sa code ang naidagdag sa paglaon. Kinakailangan ang ilang pagtutukoy:
-Upang mabawasan ang pinsala, dapat bawasan ng robot ang bilis sa isang mas mababang bilis.
-Kapag papalapit sa isang bangin o pader, ang robot ay lilipat sa kabaligtaran at babaguhin ang anggulo nito depende sa punto ng epekto
-After ilang oras sa pagmamaneho, ang roomba ay hihinto sa wakas at kukuha ng mga imahe ng kalapit na lugar
Tandaan na ang mga halagang ginamit ay nauugnay sa simulator; ang mga halagang tulad ng pagliko ng mga anggulo sa pagliko ng mga bilis at mga sensor ng robot sensor ay dapat na mabago kapag gumagamit ng aktwal na robot upang matiyak ang katatagan at accountancy para sa error sa kagamitan.
Hakbang 4: Pag-andar: Pagpoproseso ng Imahe
Tulad ng bawat kahilingan, kami ay inatasan na baguhin ang data ng isang imahe (o maraming mga imahe) na natanggap ng camera ng robot, kung saan nagpasya kaming gawing "bilangin" ng roomba ang bilang ng mga bagay na nakikita nito sa imahe.
Sinundan namin ang pamamaraan ng pagkakaroon ng MATLAB na gumuhit ng mga hangganan sa paligid ng mga nakaitim na bagay na naiiba sa isang puting background. Gayunpaman, ang pagpapaandar na ito ay madaling kapitan ng kahirapan sa isang bukas na lugar dahil sa iba't ibang mga hugis at kulay na nakikita ng camera, na nagreresulta sa hindi pangkaraniwang mataas na bilang.
Tandaan na ang pagpapaandar na ito ay hindi maaaring gumana sa simulator dahil ang isang camera ay hindi ibinigay; kung susubukan, magaganap ang isang error na nagdedeklara lamang ng (:,:, 3) matrix na maaaring magamit.
Hakbang 5: Pag-andar: Pagma-map
Ang isang karagdagang tampok na nais naming magkaroon ng robot ay ang pagmamapa ng mga lokasyon nito nang direkta itong nakikipag-ugnay sa kapaligiran. Kaya, ang code sa ibaba ay naglalayong buksan ang isang mapa at mag-set up ng isang coordinate system na nagdedetalye sa bawat lokasyon kung saan pinindot ang mga sensor ng bumper ng robot. Pinatunayan nitong ang pinakamahabang bahagi ng tatlong bahagi upang subukan nang paisa-isa, ngunit napatunayan nito na mas simple kapag inilapat sa huling script.
Para sa kapakanan ng pagdaragdag ng isang limitasyon sa haba ng oras ng pagpapatakbo ng pagpapaandar, ang n <20 na limitasyon habang ang loop ay ginamit para sa mga layuning pagsubok.
Tandaan na sa dahil sa pagiging kumplikado ng code, maraming mga error ang nangyayari habang tumatakbo ang segment ng code sa loob ng mahabang panahon; mula sa mga nakaraang pagsubok, sampung mga paga ang lumilitaw na bilang ng mga puntos bago maganap ang mga makabuluhang pagkakamali.
Hakbang 6: Juxtaposition
Dahil ang lahat ng ito ay mailalagay sa isang solong file, lumikha kami ng isang pag-andar gamit ang bawat isa sa nakaraang dalawang mga hakbang bilang mga subfunction nito. Ang isang pangwakas na draft ay ginawa kasama ang sumusunod na pagbabago sa pagpapaandar ng redux na tinatawag na "recon." Upang maiwasan ang pagkalito para sa MATLAB, ang "counter" at "rombplot3" na mga script ay pinalitan ng pangalan bilang naka-embed na mga function na "CountR" at "plotr", ayon sa pagkakabanggit.
Maraming pagbabago ang kailangang gawin sa huling bersyon na taliwas sa nakaraang mga script:
-Ang pinanggalingan ay palaging mamarkahan ng isang pulang bilog
-Kada tuwing humihinto ang roomba mula sa mga bumper nito, ang lokasyon ay minarkahan ng isang itim na bilog
-Kada tuwing humihinto ang roomba mula sa mga cliff sensor nito, ang lokasyon ay minarkahan ng isang asul na bilog
-Kada tuwing humihinto ang roomba mula sa pagsisiyasat sa lugar, ang lokasyon ay minarkahan ng isang berdeng bilog
-Nababago ang mga imahe upang maalis ang tuktok na bahagi dahil sa time stamp na posibleng makagambala sa mga resulta
-Mga Border ay hindi mabibilang bilang isang bagay dahil sa halip mataas na bilang na nakuha
-Maraming mga variable ay nabago, kaya upang maiwasan ang pagkalito gamitin ang mga bersyon sa itaas para sa sanggunian.
Hakbang 7: Pagsubok
Ang mga pagsubok para sa bawat indibidwal na sangkap ay napatunayan na halo-halong sa mga oras, kung kaya't kinakailangan ang mga pagbabago sa ilang mga preset na halaga. Ang pampakay na background kung saan nais naming subukan ang mga kakayahan ng robot sa isang saradong lugar na binubuo lamang ng isang whiteboard na inilatag sa isang mas madidilim na sahig. Maaari mong ikalat ang mga bagay sa paligid ng lugar; gawin silang kumilos bilang mga bagay na maaaring mabundol o malayong mga bagay mula sa gumagalaw na lugar ng robot.
Matapos itakda ang kinokontrol na oras at bilis ng batayan, ipinakita ng roomba ang sapat na pag-uugali ng paggalaw, pagtigil at pag-atras palayo sa bawat "bangin" o bagay na pinapasok nito pati na rin ang pagbagal ng may nakita itong malapit. Kapag naabot ang nais na tatlong metro na distansya sa paglalakbay, ang robot ay magpapatuloy upang ihinto at suriin ang lugar, kumuha ng mga imahe ng bawat 45 degree na rehiyon, at magpatuloy kung payagan ang oras. Gayunpaman, ang mga pagliko nito ay lumitaw na mas malaki kaysa sa hiniling, nangangahulugang ang data ng coordinate ay maitatago.
Sa tuwing humihinto ito, isang bagong punto ang inilalagay sa tinatayang rehiyon ng posisyon nito sa coordinate system; gayunpaman, nabanggit na ang paunang direksyon kung saan nagsisimula ang roomba ay gumaganap ng isang mahalagang papel sa disenyo ng mapa. Kung ang isang tampok na compass ay maaaring ipatupad, ginamit ito bilang isang mahalagang bahagi ng disenyo ng mapa.
Ang aktwal na oras na kinakailangan ng pag-andar upang ganap na tumakbo ay palaging mas mataas sa hiniling na oras, na may katuturan na isinasaalang-alang hindi ito maaaring tumigil sa gitna ng isa sa mga nakuhang muli. Sa kasamaang palad, ang bersyon na ito ng pagbibilang ng imahe ay mayroong mga problema, lalo na sa mga lugar na alinman sa karamihan sa monochromatic o iba-iba sa ningning; sapagkat sinusubukan nitong makilala sa pagitan ng dalawang lilim, may posibilidad itong makita ang mga bagay na hindi ninanais, kaya't palaging binibilang hanggang sa nakakabaliw na mga bilang.
Hakbang 8: Konklusyon
Habang ang gawaing ito ay isang napaka-adventurous at malikhaing piraso ng trabaho na nagdala ng kagalakan ng kaginhawaan, ako, mula sa aking personal na pagmamasid, ay nakakakita ng maraming mga pagkakamali na maaaring may problema, kapwa sa code at pag-uugali ng robot.
Ang limitasyon ng paggamit ng pagtutukoy ng oras sa habang loop ay sanhi ng kabuuang haba ng oras na mas mahaba kaysa sa ninanais; ang proseso ng pamamaraan ng panorama at pagproseso ng imahe ay maaaring sa katunayan mas matagal kung pinatakbo ng isang mabagal na computer o hindi ginamit dati. Bilang karagdagan, ang roomba na ginamit sa aming pagtatanghal ay kumilos nang may maraming bilang ng mga pagkakamali, lalo na sa paggalaw, kumpara sa simulator. Ang robot na ginamit sa kasamaang palad ay may isang ugali na humilig nang bahagya sa kaliwa habang dumidiretso ito at gumawa ng mas malaking pagliko kaysa sa ninanais. Para sa kadahilanang ito at marami pang iba, lubos na inirerekomenda na upang mabayaran ang mga error na ito, kailangang gawin ang mga pagbabago para sa mga anggulo nito.
Gayunpaman, ito ay isang mahaba pa ngunit pampasigla na proyekto na kumilos bilang isang kagiliw-giliw na karanasan sa pag-aaral para sa paglalapat ng mga code at utos upang direktang makakaapekto sa pag-uugali ng isang tunay na robot.
Inirerekumendang:
Ginagawang Ang iyong Roomba Sa isang Mars Rover: 5 Hakbang
Ginagawang Ang iyong Roomba Sa isang Mars Rover:
Roomba Explorer: 4 na Hakbang
Roomba Explorer: Sa pamamagitan ng paggamit ng MATLAB at Create2 Robot ng iRobot, tuklasin ng proyektong ito ang iba't ibang mga lugar ng isang hindi kilalang lokasyon. Ginamit namin ang mga sensor sa Robot upang matulungan ang mapaglalangan ang isang mapanganib na lupain. Sa pamamagitan ng pagkuha ng mga larawan at feed ng video mula sa isang Raspberry Pi na
Mga Shortcut sa Keyboard para sa Internet Explorer !!: 4 Mga Hakbang
Mga Shortcut sa Keyboard para sa Internet Explorer !!: Ipapakita sa iyo ng Makatuturo na ito ang ilang mga kapaki-pakinabang na mga keyboard shortcut para sa internet explorer Mangyaring mag-subscribe sa aking channelThanks
Mula sa Roomba hanggang sa Rover sa 5 Mga Hakbang lamang !: 5 Hakbang
Mula sa Roomba to Rover sa 5 Mga Hakbang lamang :: Ang mga robot ng Roomba ay isang masaya at madaling paraan upang isawsaw ang iyong mga daliri sa mundo ng mga robot. Sa Instructable na ito, idedetalye namin kung paano i-convert ang isang simpleng Roomba sa isang kontroladong rover na sabay na pinag-aaralan ang paligid nito. Listahan ng Mga Bahagi1.) MATLAB2.) Roomb
Bus Pirate 3EEPROM Explorer Board: 5 Hakbang
Bus Pirate 3EEPROM Explorer Board: Kung mayroon kang isa sa mga Hack isang Araw na Bus Pirates, ano ang gagawin mo rito? Alamin ang tungkol sa 1-wire, I2C, at SPI EEPROMs na may 3EEPROM explorer board (tinatawag naming THR-EE-PROM). AngEEPROM ay isang uri ng memory chip na nag-iimbak ng data nang walang tuluy-tuloy na lakas