Satura rādītājs:
- 1. darbība: detaļas un materiāli
- 2. darbība: konfigurēšana
- 3. darbība: MATLAB loģika
- 4. solis. Secinājums
Video: Roomba ar MATLAB: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Šis projekts izmanto MATLAB un programmējamu robotu iRobot Create2. Pārbaudot savas zināšanas par MATLAB, mēs varam programmēt Create2, lai interpretētu attēlus un noteiktu signālus. Robota funkcionalitāte galvenokārt ir atkarīga no MATLAB mobilās lietotnes un Raspberry Pi kameras moduļa.
1. darbība: detaļas un materiāli
1. iRobot Create, 2. versija
- Šis ir programmējams robots, kas izskatās kā Roomba. Ņemiet vērā, ka šis iRobot produkts nav vakuums. Tas ir paredzēts lietotāja individuālai programmēšanai.
2. MATLAB 2017a
- Lielākā daļa vecāku versiju būs saderīgas ar kodu, ko izmantojām tālāk. MATLAB identificēs komandu, kas nav saderīga ar jūsu versiju, un ieteiks labāko komandu.
3. Raspberry Pi 3 B modelis, versija 1.2
- Pārbaudiet, kurš Raspberry Pi ir saderīgs ar jūsu iRobot. Lai saņemtu papildu palīdzību, skatiet šo saiti: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Šajā pamācībā tiek pieņemts, ka strādājat ar iepriekš ieprogrammētu Raspberry Pi. Lūdzu, ņemiet vērā, ka, lai darbotos šādas darbības, jums būs jāstrādā ar iepriekš ieprogrammētu Pi. Izmantojot iepriekš ieprogrammētu Pi, jūs varēsit veikt visu savu kodēšanu tikai MATLAB.
4. Kameras modulis V2 (Raspberry Pi)
- Jūs varētu būt pārsteigts; neskatoties uz izmēru, Raspberry Pi kameras modulis ir ļoti labas kvalitātes. Tas ir lētākais un saderīgākais variants šim projektam.
Pēc izvēles: statīvs ar 3D apdruku. To izmanto, lai stabilizētu kameru. Tas neietekmē robota funkcionalitāti, taču tas palīdzēs jums kodēt, ja vēlaties izmantot attēlveidošanas datus krāsu un/vai objektu atpazīšanai.
2. darbība: konfigurēšana
1. Raspberry Pi un kameras moduļa savienošana (aparatūra)
- Lai darbinātu Raspberry Pi, mikrokontrollera sieviešu barošanas portam būs jāpalaiž vīriešu gala mikro USB. Pēc izvēles: var izmantot sprieguma regulatoru, lai nodrošinātu, ka spriegums nepārsniedz 5 V. Pēc Raspberry Pi barošanas varat to savienot ar savu robotu, palaižot vīriešu galu USB a no mātesplates uz mikrokontrollera USB portu A.
- Pēc Pi savienošanas ar Roomba kamera ir gatava uzstādīšanai. Kameras modulis būs daudz mazāks, nekā jūs gaidījāt. Ņemiet vērā, ka objektīvs ir piestiprināts pie sensora un no kameras stiepjas balta lente. NELIETOJIET un neplēsiet lenti! Šis ir kabelis, kas nepieciešams, lai to savienotu ar Raspberry Pi. Vispirms turiet lentes galu un atrodiet sudraba savienotājus un zilo kabeli. Tie atrodas pretējās pusēs. Pēc tam atrodiet slotu starp Raspberry Pi Ethernet un HDMI portiem. Ievērojiet, ka to sedz maza, balta slēdzene. Lēnām paceliet slēdzeni, bet neizņemiet to no slota, jo tā sasprādzēsies un tiks neatgriezeniski bojāta. Kad esat pacēlis slēdzeni, satveriet lenti un pavērsiet sudraba savienotājus pret HDMI portu. Zilā puse būs vērsta pret Ethernet portu. Lēnām iebīdiet lenti slotā, kamēr tā vēl ir atbloķēta. Jums tas nav jāpiespiež slotā. Pēc ievietošanas nospiediet slēdzeni atpakaļ uz leju. Ja jūsu kamera ir pareizi nostiprināta, jums vajadzētu būt iespējai (maigi) vilkt lenti un sajust spriedzi. Lentei nevajadzētu būt vaļīgai. Pēc kameras pievienošanas Pi var pamanīt, cik tā ir vaļīga. Tāpēc, lai to noturētu, mēs izmantojām 3D drukātu stiprinājumu. Tā ir jūsu izvēle, lai noteiktu, kādus materiālus vēlaties izmantot, lai saglabātu savu kameru nekustīgu augstas kvalitātes attēlveidošanai.
2. Pareizu failu instalēšana un Roomba pievienošana datoram Kad visa aparatūra ir konfigurēta, tagad varat pāriet uz MATLAB instalēšanu kopā ar saistītajiem m-failiem, kas ļauj sazināties ar robotu. Lai to izdarītu, atveriet MATLAB un izveidojiet jaunu mapi, lai visi saistītie faili būtu kopā. Izmantojiet šo skriptu, lai instalētu/atjauninātu nepieciešamos failus:
- Tagad visiem failiem vajadzētu parādīties jūsu izveidotajā mapē. Logā Pašreizējā mape ar peles labo pogu noklikšķiniet un atlasiet “Pievienot ceļam”, lai pievienotu šo ceļu direktoriju sarakstam, kurā MATLAB meklē failus. Pārliecinieties, vai visi jūsu faili atrodas pareizajā ceļā.
3. Kad faili ir instalēti, tagad varat sākt izveidot savienojumu ar savu robotu. Sāciet, ieslēdzot robotu un pēc tam to grūti atiestatot uzreiz pēc palaišanas (neaizmirstiet katru reizi pirms un pēc lietošanas robotu atiestatīt). Otrkārt, pievienojiet savu robotu un klēpjdatoru vienam un tam pašam wifi tīklam. Pēc tam mēs runāsim ar iepriekš ieprogrammēto Raspberry Pi, izmantojot MATLAB, zvanot Roomba, izmantojot tās vārdu un funkciju roomba. Piemēram, es izveidotu savienojumu ar robotu 28, izmantojot šādu līniju: R = roomba (28).
- Ievērojiet, kā es piešķīru objektu mainīgajam R. Tagad es varu piekļūt saistītajām Roomba funkcijām no instalācijas faila, apstrādājot mainīgo R kā struktūru.
- R.turnAngle (90) Ja viss gāja labi, vajadzētu atskaņot muzikālu toni, kas apstiprina saikni.
3. darbība: MATLAB loģika
Šī dokumenta apakšā esošais PDF dokuments ir detalizēta loģiskā plūsmas diagramma mūsu kodēšanas procesam MATLAB. Mēs aktivizējām klints, gaismas un gaismas trieciena sensorus, lai ļautu robotam sazināties ar mums, kad tas atklāj objektu tā tiešā tuvumā. Piemēram, kad robots virzās uz priekšu, tā gaismas sensori meklē objektus savā ceļā atbilstoši vektoram, ar kuru tas pārvietojas. Mēs izvēlējāmies robota attāluma slieksni, lai, tuvojoties objektam, tas atgrieztos, nevis saduras ar to. Mūsu robots ir konfigurēts arī ar Twitter, ko mēs norādījām savā kodēšanas procesā (tas tiks parādīts zemāk).
Lai uzlabotu pieredzi, mēs mobilajās ierīcēs izmantojām lietojumprogrammu MATLAB, lai mēs varētu kontrolēt robota kustības, tikai noliecot tālruņus. Šī ir neobligāta darbība, jo jūs noteikti varat likt robotam kustēties, tā vietā izmantojot komandu moveDistance MATLAB koda segmentā. Paturiet prātā, ka, lai jūsu mērķis būtu precīzs, vēlams izmantot MATLAB komandas, lai kontrolētu robotu. Ja vēlaties mērķēt uz robotu tā, lai kamera uzņemtu attēlu noteiktā vietā, iespējams, labāk būtu kodēt robota kustības MATLAB. Lai gan izklaide, MATLAB lietojumprogrammas izmantošana robota vadīšanai nav vēlama, lai iegūtu precizitāti.
Kods komandē Roomba veikt pamata iestatīšanu un pēc tam turpināt nepārtrauktu cilpu. Sākotnēji klēpjdators izveidos saiti ar Roomba, izmantojot komandu Roomba (). Tas arī izveido twitter savienojumu, izmantojot MATLAB komandu webwrite (). Ciklā ir piecas galvenās loģiskās plūsmas atkarībā no Roomba apkārtējās vides. Vispirms Roomba pārbauda, vai nav šķēršļu, un pielāgojas atpakaļ, ja konstatē, ka tas ir traucēts. Šajā cilpā ir otrs ceļš, kas brīdina lietotājus, ja Roomba tiek aizvesta. Svarīga lietderība skarbajā Marsa kara zonā. Pēc tam, kad Roomba ir noteikusi, ka tā atrašanās vieta ir droša, tā meklē mobilo ierīci, lai noteiktu tās nākamo kustību. Ja mobilā ierīce ir noliekta uz priekšu, tā aprēķinās bāzes ātrumu atkarībā no rullīša mērījuma smaguma pakāpes, nevis noregulēs atsevišķus riteņu apgriezienus, lai tie pagrieztos, ņemot vērā slīpuma pakāpi. Tālrunis var pārvietot Roomba arī atpakaļgaitā. Neitrāls mobilās ierīces stāvoklis aizver pēdējos divus ceļus. Atpūšamā Roomba meklēs svešzemju karogu un attiecīgi brīdinās lietotāju.
Zemāk ir mūsu kods (aizpildīts MATLAB 2017a)
%ieejas: orientācijas dati no wifi pieslēgtas ierīces, kameras
%informācija, sensora dati
%izejas: kustību kontrolē ar wifi savienotā ierīce un kustība
% tiek pārbaudīta drošība, nolasot sensora datus. Ja kamera konstatē
% svešzemju karogs, tad roomba atbild, tweetot ienaidnieka karogu
% ir pamanīts.
%mērķis: mūsu ierīcei nav nekāda mērķa, izņemot, lai aizsargātu tos, kuri to dara
% to izveidoja, tas kalpo tā radītājam un dara
% tieši tas, ko tā teica.
Lietošana: būtībā programma darbosies pati.
notīrīt visu, aizvērt visu, clc
%Objektu un mainīgo inicializēšana
r = roomba (28);
m = mobiledev;
%izmantot atbildi = webwrite (resursdatora nosaukums, dati)
resursdatora nosaukums = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop darbojas … gaida komandu';
dati = strcat ('api_key =', API, '& status =', tvīts);
reponse = webwrite (resursdatora nosaukums, dati);
%pastāvīgi darbojas cilpa
kamēr 1 == 1
%Struktūras, kas satur relavent datus
o = m.orientācija; Mobilās ierīces orientācija %
gaisma = r.getLightBumpers (); Vieglas bufera vērtības
a = r.getCliffSensors (); %CLiff sensora vērtības
sasist = r.getBamperi (); Buferu sensori
%pārbaudes buferi
ja sasist.pareizi == 1 || sasist.pa kreisi == 1 || sasisties.front == 1
r.moveDistance (-. 2,.2);
%pārbaudiet gaismas sensorus
cits apgaismojums.pa kreisi> 60 || light.leftFront> 60 || light.leftCenter> 60 || viegls.pareizi> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
%pārbaudiet klints sensorus
Zādzību novēršanas signāls un paziņojums
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.pīkstiens ();
tweet = 'RoboCop ir atcelts!'
dati = strcat ('api_key =', API, '& status =', tvīts);
reponse = webwrite (resursdatora nosaukums, dati);
%Parastā izvairīšanās no kraujas
elseif a.pa kreisi <300 || a. pareizi <300 || a.leftFront <300 || a. pa labi priekšā <300
r.moveDistance (-. 2,.2);
%Roomba izturēja pārbaudes un tagad darbosies ar normālu darbību.
%Sākotnēji tiek mērīts ierīces rullis un tas kļūst par pamatu
ātruma %, ko izmanto, lai aprēķinātu riteņa ātrumu
%Kustība uz priekšu
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
ja o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
citādi r.stop
beigas
%Atpakaļgaitas kustība
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -2)
r.pīkstiens ();
r.pīkstiens ();
%resting roomba meklēs svešzemju karogu, kas atzīmēts kā fluorescējošs
%zaļš Papīra gabals
citādi
r. apstāties
img = r.getImage (); %uzņem attēlu
slieksnis = graythresh (img (200: 383,:, 2))+. 1; %aprēķina zaļo līmeni
ja slieksnis>.42
tweet = 'Ienaidnieks pamanīts !!'
dati = strcat ('api_key =', API, '& status =', tvīts);
reponse = webwrite (resursdatora nosaukums, dati);
citādi
r. apstāties
beigas
beigas
beigas
4. solis. Secinājums
Atcerieties, ka varat izmantot iepriekš rakstīto skriptu, taču vienmēr varat to mainīt atbilstoši savām vajadzībām. Tas nav jākontrolē ar tālruni! (Tomēr tas padara to jautrāku.) Izvēlieties, kuru metodi vēlaties izmantot sava robota vadīšanai. Brauciet apkārt ar savu robotu un izbaudiet!
Ieteicams:
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
MATLAB kontrolējamā Roomba: 5 soļi
MATLAB kontrolēta Roomba: Šī projekta mērķis ir izmantot MATLAB, kā arī modificētu iRobot programmējamo robotu. Mūsu grupa apvienoja mūsu kodēšanas prasmes, lai izveidotu MATLAB skriptu, kas izmanto daudzas iRobot funkcijas, tostarp klints sensorus, bufera sensoru
Pārlūkprogrammas kontrolēts Roomba robots ar Raspberry Pi modeli 3 A+: 6 soļi (ar attēliem)
Pārlūkprogrammas kontrolēts Roomba robots ar Raspberry Pi modeli 3 A+: Pārskats Šajā pamācībā galvenā uzmanība tiks pievērsta tam, kā mirušajam Roomba piešķirt jaunas smadzenes (Raspberry Pi), acis (tīmekļa kamera) un veids, kā visu kontrolēt no tīmekļa pārlūkprogrammas. Ir daudz Roomba hakeru, kas ļauj kontrolēt, izmantojot seriālo interfeisu. ES neesmu
Roomba MATLAB projekts: 5 soļi
Roomba MATLAB projekts: Pašreizējais NASA plāns par Marsa roveri ir paredzēts, lai tas būtu datu savācējs un klīst apkārt Marsam, savācot augsnes paraugus, lai tos atgrieztu uz Zemes, lai zinātnieki varētu redzēt, vai uz tā ir bijušas iepriekšējās dzīvības formas. Planēta. Papildu
Roomblock: platforma ROS navigācijas apguvei ar Roomba, Raspberry Pi un RPLIDAR: 9 soļi (ar attēliem)
Roomblock: platforma ROS navigācijas apguvei ar Roomba, Raspberry Pi un RPLIDAR: Kas tas ir? &Quot; Roomblock " ir robotu platforma, kas sastāv no Roomba, Raspberry Pi 2, lāzera sensora (RPLIDAR) un mobilā akumulatora. Montāžas rāmi var izgatavot ar 3D printeriem. ROS navigācijas sistēma ļauj izveidot telpu karti un izmantot i