Kazalo:
Video: Roomba z MATLAB: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Ta projekt uporablja MATLAB in programabilnega robota iRobot Create2. S preizkušanjem znanja o MATLAB -u lahko programiramo Create2 za razlago slik in zaznavanje signalov. Funkcionalnost robota je odvisna predvsem od mobilne aplikacije MATLAB in modula kamere Raspberry Pi.
1. korak: Deli in materiali
1. iRobot Create, različica 2
- To je programabilni robot, ki je videti kot Roomba. Zavedajte se, da ta izdelek podjetja iRobot ni vakuum. Namenjen je programiranju po meri s strani uporabnika.
2. MATLAB 2017a
- Večina starejših različic bo združljiva s spodnjo kodo. MATLAB bo identificiral ukaz, ki ni združljiv z različico, ki jo imate, in predlagal najprimernejši ukaz.
3. Raspberry Pi 3 Model B, različica 1.2
- Preverite, kateri Raspberry Pi je združljiv z vašim iRobotom. Za dodatno pomoč si oglejte to povezavo: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ta navodilo predvideva, da delate s vnaprej programiranim Raspberry Pi. Upoštevajte, da boste morali delati s vnaprej programiranim Pi, da bodo naslednji koraki delovali. Uporaba vnaprej programiranega Pi vam bo omogočila, da celotno kodiranje izvedete samo v MATLAB -u.
4. Modul kamere V2 (za Raspberry Pi)
- Morda boste presenečeni; kljub svoji velikosti je modul kamere Raspberry Pi zelo dobre kakovosti. To je najcenejša in najbolj združljiva možnost za ta projekt.
Izbirno: stojalo s 3D-tiskanjem. To se uporablja za stabilizacijo kamere. To ne vpliva na funkcionalnost robota, vendar vam bo pomagalo pri kodiranju, če želite uporabiti slikovne podatke za prepoznavanje barv in/ali predmetov.
2. korak: Konfiguracija
1. Priključitev Raspberry Pi in modula kamere (strojna oprema)
- Če želite napajati Raspberry Pi, boste morali priključiti moški mikro USB na vrata za napajanje na mikrokrmilniku. Neobvezno: Za zagotovitev, da napetost ne preseže 5V, lahko uporabite regulator napetosti. Ko napajate Raspberry Pi, ga lahko povežete z robotom tako, da z matične plošče zaženete moški konec USB a na vrata USB A na mikrokrmilniku.
- Po priključitvi Pi na Roombo je kamera pripravljena za namestitev. Modul kamere bo veliko manjši, kot ste pričakovali. Upoštevajte, da je leča pritrjena na senzor, od fotoaparata pa se razteza bel trak. NE odstranjujte in ne trgajte traku! To je kabel, ki ga potrebujete za povezavo z Raspberry Pi. Najprej držite konec traku in poiščite srebrne priključke in modri kabel. Te so na nasprotnih straneh. Nato poiščite režo med vrati Ethernet in HDMI na vašem Raspberry Pi. Upoštevajte, da ga pokriva majhna bela ključavnica. Počasi dvignite ključavnico, vendar je ne odstranjujte iz reže, saj se bo zaskočila in se trajno poškodovala. Ko dvignete ključavnico, primite trak in se obrnite proti srebrnim priključkom v vrata HDMI. Modra stran bo obrnjena proti vratom Ethernet. Počasi potisnite trak v režo, ko je še odklenjen. V režo vam ga ni treba vsiliti. Po vstavitvi potisnite ključavnico nazaj navzdol. Če je fotoaparat pravilno pritrjen, bi morali (nežno) potegniti trak in občutiti napetost. Trak ne sme biti ohlapen. Ko fotoaparat priključite na Pi, boste morda opazili, kako ohlapen je. Zato smo za njegovo pritrditev uporabili nosilec s 3D-tiskanjem. Odločite se, katere materiale bi radi uporabili za ohranitev fotoaparata pri visoki kakovosti slikanja.
2. Namestitev ustreznih datotek in povezovanje Roombe z računalnikom Ko je vsa vaša strojna oprema konfigurirana, lahko zdaj preidete na namestitev MATLAB skupaj s pripadajočimi datotekami m, ki vam omogočajo komunikacijo z robotom. Če želite to narediti, odprite MATLAB in ustvarite novo mapo, v kateri bodo vse povezane datoteke skupaj. S tem skriptom namestite/posodobite zahtevane datoteke:
- Vse datoteke bi se morale zdaj prikazati v ustvarjeni mapi. Z desno miškino tipko kliknite okno Trenutna mapa in izberite »Dodaj na pot«, da to pot dodate na seznam imenikov, kjer MATLAB išče datoteke. Prepričajte se, da so vse vaše datoteke na pravi poti.
3. Ko so datoteke nameščene, se lahko zdaj začnete povezovati z robotom. Začnite tako, da vklopite robota in ga nato takoj po zagonu trdo ponastavite (ne pozabite ga vsakič pred in po uporabi trdo ponastaviti). Drugič, povežite robota in prenosni računalnik z istim omrežjem WiFi. Po tem se bomo z vnaprej programiranim Raspberry Pi pogovarjali prek MATLAB -a tako, da pokličemo Roombo z njenim imenom in funkcijo roomba. Na primer, povezal bi se z robotom 28 z naslednjo vrstico: R = roomba (28).
- Upoštevajte, kako sem objekt dodelil spremenljivki R. Zdaj lahko dostopam do povezanih funkcij Roomba iz namestitvene datoteke tako, da spremenljivko R obravnavam kot strukturo.
- R.turnAngle (90) Če je šlo vse dobro, bi moral zaigrati glasbeni ton, ki potrjuje povezavo.
3. korak: MATLAB Logika
Dokument PDF na dnu tega koraka je podroben logični diagram poteka našega procesa kodiranja v MATLAB -u. Aktivirali smo senzorje pečine, svetlobe in svetlobnih udarcev, da bi robotu omogočili komunikacijo z nami, ko zazna predmet v njegovi neposredni bližini. Na primer, ko se robot premakne naprej, njegovi svetlobni senzorji iščejo predmete na njegovi poti glede na vektor, po katerem potuje. Za robota smo izbrali prag razdalje, tako da se bo, ko se približa objektu, obrnil, namesto da bi trčil z njim. Naš robot je konfiguriran tudi s Twitterjem, ki smo ga določili v procesu kodiranja (to bo prikazano spodaj).
Da bi izboljšali izkušnjo, smo na mobilnih napravah uporabili aplikacijo MATLAB, tako da lahko nadzorujemo gibanje robota samo tako, da nagnemo telefone. To je neobvezna dejavnost, saj lahko robot zagotovo premaknete z uporabo ukaza moveDistance v kodnem segmentu MATLAB. Upoštevajte, da je uporaba ukazov MATLAB za nadzor vašega robota prednostna, če je vaš cilj natančen. Če želite robota usmeriti tako, da fotoaparat posname fotografijo na določeni lokaciji, je morda bolje kodirati gibanje robota v MATLAB -u. Medtem ko se zabavate, uporaba aplikacije MATLAB za nadzor vašega robota ni zaželena zaradi natančnosti.
Koda ukaže Roombi, da izvede osnovno nastavitev in nadaljuje skozi neprekinjeno zanko. Sprva bo prenosni računalnik z ukazom Roomba () vzpostavil povezavo z Roombo. Prav tako vzpostavi povezavo twitter z ukazom webwrite () v MATLAB -u. Zanka vsebuje pet glavnih logičnih tokov, odvisno od okolja, ki obdaja Roombo. Roomba najprej preveri ovire in se prilagodi nazaj, če ugotovi, da so ovirane. V to zanko je vdelana druga pot, ki uporabnike opozori, če Roombo odnesejo. Pomemben pripomoček v ostrem vojnem območju Marsa. Ko Roomba ugotovi, da je njen položaj varen, pogleda na mobilno napravo, da določi njen naslednji premik. Če je mobilna naprava nagnjena naprej, bo izračunala osnovno hitrost glede na resnost merjenja valja in nato prilagodila posamezne hitrosti koles glede na stopnjo nagiba. Telefon lahko premika Roombo tudi vzvratno. Nevtralno stanje mobilne naprave zapira zadnji dve poti. Roomba v mirovanju bo poiskal zastavo tujca in uporabnika ustrezno opozoril.
Spodaj je naša koda (izpolnjena v MATLAB 2017a)
%vhodov: orientacijski podatki iz naprave, povezane z wifi, kamere
%informacij, podatki senzorjev
%izhodov: gibanje nadzira naprava, povezana z wifi, in gibanje
% se varnostno preveri z branjem podatkov senzorja. Če kamera zazna
% tuje zastave, nato se roomba odzove tako, da tvitne sovražnikovo zastavo
% je bilo opaženo.
%namen: naša naprava živi samo z namenom, razen da zaščiti tiste, ki
% ga je ustvaril, služi svojemu ustvarjalcu in dela
% točno to, kar je povedano.
%Uporaba: program bo v bistvu deloval sam.
počisti vse, zaprite vse, clc
%Inicializiranje objektov in spremenljivk
r = roomba (28);
m = mobiledev;
%odziv uporabe = webwrite (ime gostitelja, podatki)
ime gostitelja = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop deluje … čaka na ukaz';
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = spletno pisanje (ime gostitelja, podatki);
%stalno delujoča zanka
medtem ko je 1 == 1
%Strukture, ki vsebujejo podatke o ohlapnih snoveh
o = m. orientacija; %orientacije mobilne naprave
light = r.getLightBumpers (); %Vrednosti lahkih odbijačev
a = r.getCliffSensors (); %CLiff Sensor Vrednosti
bump = r.getBumpers (); %Senzorji odbijača
%odbijačev za preverjanje
če bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%Senzorji kontrolne luči
drugače če je svetloba.levo> 60 || light.leftFront> 60 || light.leftCenter> 60 || svetloba.desno> 60 || svetloba.desno spredaj> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
%preverite senzorje Cliff
%Signal in obvestilo proti kraji
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'RoboCop je odpravljen!'
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = spletno pisanje (ime gostitelja, podatki);
%Običajna operacija izogibanja pečinam
sicer če levo <300 || a.desno <300 || a.leftFront <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
%Roomba je opravil preverjanja in bo zdaj deloval z običajnim delovanjem.
%Sprva se meri zvitek naprave in postane osnova
%hitrosti, ki se nato uporabi za izračun hitrosti kolesa
%Premik naprej
drugače, če je o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
če je o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
drugače, če je o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
drugače r.stop
konec
%Gibanje nazaj
sicer o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%počivajoča roomba bo iskala zastavo tujcev, označeno kot flourescent
%zelene kos papirja
drugače
r.stop
img = r.getImage (); %posname sliko
prag = siva moč (img (200: 383,:, 2))+. 1; %kalc. zelene ravni
če je prag>.42
tweet = 'Sovražnik opažen !!'
data = strcat ('api_key =', API, '& status =', tvit);
odgovor = spletno pisanje (ime gostitelja, podatki);
drugače
r.stop
konec
konec
konec
4. korak: Zaključek
Ne pozabite, da lahko uporabite skript, ki smo ga napisali zgoraj, vendar ga lahko vedno spremenite tako, da ustreza vašim potrebam. Ni nujno, da ga nadzoruje vaš telefon! (Vendar je zaradi tega bolj zabavno.) Izberite, katero metodo najraje uporabite za nadzor svojega robota. Vozite se s svojim robotom in uživajte!
Priporočena:
MATLAB nadzorovana Roomba: 5 korakov
Robomba z nadzorom MATLAB: Cilj tega projekta je uporabiti MATLAB kot tudi spremenjenega iRobot programabilnega robota. Naša skupina je združila naše sposobnosti kodiranja, da bi ustvarila skript MATLAB, ki uporablja številne funkcije iRobota, vključno s senzorji za pečine, odbijačem
Kako razstaviti računalnik z enostavnimi koraki in slikami: 13 korakov (s slikami)
Kako z enostavnimi koraki in slikami razstaviti računalnik: To navodilo za razstavljanje računalnika. Večina osnovnih komponent je modularnih in jih je enostavno odstraniti. Vendar je pomembno, da ste glede tega organizirani. To vam bo pomagalo preprečiti izgubo delov in tudi pri ponovni montaži
Projekt Roomba MATLAB: 5 korakov
Projekt Roomba MATLAB: Trenutni načrt, ki ga ima NASA za rover Mars, je, da bo zbiralec podatkov in bo hodil po Marsu ter zbiral vzorce tal, da jih bo prinesel nazaj na Zemljo, tako da bodo znanstveniki lahko videli, ali so na njem obstajale prejšnje oblike življenja. planet. Dodatni
Robotski miksolog MATLAB: 4 koraki (s slikami)
Robotski miksolog MATLAB: Ste si kdaj želeli, da bi se vam pijače v nekaj sekundah odlično premešale? No, ne glejte več, robotski miksolog je tukaj, da vam vzame čas, da premešate svoje pijače. Ta projekt uporablja robot Snapper RobotGeek, ki deluje kot vaš
ROOMBA, ki ga poganja ARDUINO YUN prek aplikacije Wifi, avtor STEFANO DALL'OLIO: 4 koraki (s slikami)
ROOMBA, ki jo poganja ARDUINO YUN prek aplikacije Wifi STEFANO DALL'OLIO: S tem vodnikom delim kodo za povezavo ARDUINO YUN z Roombo, da lahko vozim Roombo prek Wi -Fija. Kodo in aplikacijo sem v celoti ustvaril in razvil sam Stefano Dall ' Olio.Moja Roomba je Roomba 620, vendar lahko uporabite isto kodo za druge Roomb