Kazalo:
- Korak: Potrebni deli
- 2. korak: Datoteke in konfiguracija kamere
- 3. korak: Začetno testiranje Roombe
- 4. korak: Primer kode MATLAB
Video: Roomba, ki pomaga astronavtom: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:06
Ta projekt je narejen z uporabo Raspberry Pi 3 na iRobot Create Version 2. MATLAB se uporablja za programiranje robota, da sledi posebnim navodilom s svojimi senzorji in kamero. Senzorji in kamere se uporabljajo za izvajanje posebnih nalog, ki bi sledile astronavtu, in mu/ji omogočijo komunikacijo z domačo bazo, če gre kaj narobe.
Korak: Potrebni deli
1. iRobot Ustvari različico 2
IRobot Create je najpomembnejši del tega projekta, saj ga je mogoče programirati in je lahko odlična predstavitev dejanskega roverja, ki sledi astronavtom in jim v prihodnosti pomaga
2. Malina Pi 3
Za ta projekt je bilo mogoče programirati Raspberry Pi. Koda je zasnovana za Pi, različica priloženega Pi pa je 3 (model B). Druge programabilne plošče, kot je arduino, so uporabne, vendar bodo arduino in večina drugih plošč zahtevale drugačno kodiranje, kot je opisano v naslednjem koraku
3. Modul kamere Raspberry Pi
Edina zunanja povezava z Raspberry Pi, potrebna za ta projekt, je modul kamere. Modul kamere je sestavni del tega projekta, saj bo roomba opravljala naloge le na podlagi tega, kar vidi v kameri
4. MATLAB 2018a
Druga najnovejša različica podjetja MATLAB, 2018a, je bila uporabljena za kodiranje, vključeno v to nastavitev. Verjetno bodo s tem delovale številne druge različice MATLAB -a, saj programiranje roomba obstaja že nekaj časa
2. korak: Datoteke in konfiguracija kamere
1. Povezave Raspberry Pi in kamere do roombe
- Pi se lahko poveže z iRobotom neposredno z mikro USB -jem. To je vse, kar mora biti pripravljeno za uporabo. Priporočljivo pa je, da ga varno namestite na roombo, kot je prikazano na slikah skozi celotno predstavitev.
- Kamera ima neposredno povezavo z Raspberry Pi in zelo priporočljivo je, da nekaj kupite ali naredite, da fotoaparat držite neposredno navzgor. Kamera nima pravega smisla, če je ni mogoče držati na mestu in prikazati, kaj vidi roomba.
2. Datoteke
- Ko vse nastavite in povežete, se prepričajte, da je robot ponastavljen in pripravljen za delo, tako da skupaj držite tipki "Spot" in "Dock" 10 sekund skupaj.
- Tu je MATLAB prvič potreben. Datoteke za roombo je treba najprej namestiti in vse, kar je potrebno za zagon teh datotek, je koda na tej povezavi:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
3. korak: Začetno testiranje Roombe
Na roombi je treba opraviti veliko začetnih pregledov, da se prepričamo, da deluje.
1. Prepričajte se, da ste povezani z istim omrežjem WiFi kot roomba. Brez tega se nikoli ne boste povezali prek MATLAB -a.
2. Ugotovite, kateri številki je dodeljena vaša roomba, da se lahko posebej povežete z izbrano roombo. Če je na primer številka vaše roombe 30, bi se z njo povezali tako, da v ukazno okno v MATLAB vnesete roomba (30).
3. Roombo lahko upravljate s pomočjo struktur v MATLAB -u. Če na primer nastavite kodo za roombo (30) na spremenljivko 'r', lahko robot premaknete naprej z ukazom r.moveDistance (0,2, 0,1).
4. Roombi je mogoče sporočiti veliko različnih ukazov, ki jih lahko vidite tako, da v ukazno okno vnesete 'doc roomba'.
5. Senzorje za odčitke svetlobe, udarcev in pečin lahko berete z ukazi, vidnimi v "doc roomba", vendar je način, da imate stalen, urejen meni za ogled podatkov senzorjev, viden z uporabo "r.testSensors" '.
6. Po preizkusu vsega tega lahko programsko opremo za zbiranje slik robota uporabite za branje in ogled posnetih slik. Osnovna koda za to bi bila img = r.getImage in imshow (img);.
7. RGB vrednosti slike je mogoče najti s kodami red_mean = mean (povprečno (img (:,:, 1)));
zeleno_pomen = povprečje (povprečje (img (:,:, 2))); in blue_mean = povprečje (povprečje (img (:,:, 3)));.
4. korak: Primer kode MATLAB
Na tej točki ste zdaj pripravljeni uporabiti senzorje in programsko opremo za fotografiranje, da ustvarite svoj spin na prototipu Mars Rover, ki pomaga človeku. Naš primer je slediti astronavtu tako, da sledimo beli barvi in se premaknemo proti njej. Robot bo piskal, če njegovi senzorji berejo visoke vrednosti, tako da lahko astronavt ponastavi robota, če je obtičal, ali pa ga dvigne in ponastavi, če je obtičal na pečini. Vendar te napake bere le, če je videti belo. Ne da bi videl belo barvo, bo robot vstopil v način napake. Programiran je za pošiljanje dveh različnih vrst e -poštnih sporočil nazaj v domačo bazo, odvisno od tega, kaj vidi. Če opazi barvo kože astronavta, to očitno ni dobro, zato bo domačo bazo opozoril, če ima astronavt kožo z okvaro obleke. Drugo sporočilo je pripravljeno, če astronavt preprosto izgine izpred oči. Če za kamere ni prikazana bela barva ali barva kože, se bo robot vrtel in poslal drugo, vendar drugačno e -pošto. Slike, na katerih roomba ne vidi astronavta, bodo poslane skupaj s sporočilom v e -poštnih sporočilih. Koda za naš projekt je prikazana spodaj:
za i = 1:.1: 3 img = r.getImage; slika (img) rdeče_srednje = povprečno (povprečno (img (:,:, 1))); zeleno_pomen = povprečje (povprečje (img (:,:, 2))); modro_pomen = povprečje (povprečje (img (:,:, 3))); če je red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || svetloba.desno spredaj> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else za i = 1: 2 r.moveDistance (0,2, 0,1) r. setDriveVelocity (.3,.2) r.stop end end end if green_mean <35 && blue_mean <35 %barve kože (treba ga je prilagoditi glede na barvo kože astronavta) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; %pošlje e -poštno sporočilo, da je obleka izključena psswd = 'ja'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'predmet'; m_text = 'test'; setpref ('Internet', 'E_mail', pošta); setpref ('Internet', 'SMTP_Server', gostitelj); setpref ('Internet', 'SMTP_Uporabniško ime', pošta); setpref ('Internet', 'SMTP_Password', psswd); rekviziti = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pošta); props.setProperty ('mail.smtp.host', gostitelj); props.setProperty ('mail.smtp.port', vrata); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', vrata); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'Uniforma astronavtov ni več!', img); end if red_mean 135 || zeleno_pomen 135 || blue_mean 135 za j = 1: 2 %, če robot ne najde bele barve r.turnAngle (360) mail = '[email protected]'; psswd = 'ja'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'predmet'; m_text = 'test'; setpref ('Internet', 'E_mail', pošta); setpref ('Internet', 'SMTP_Server', gostitelj); setpref ('Internet', 'SMTP_Uporabniško ime', pošta); setpref ('Internet', 'SMTP_Password', psswd); rekviziti = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pošta); props.setProperty ('mail.smtp.host', gostitelj); props.setProperty ('mail.smtp.port', vrata); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', vrata); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'Astronavta ni mogoče najti!', img); r.stop konec end konec
Očitno je tukaj grdo, vendar bi se moralo kopirati, ko se kopira. Gesla in e -poštna sporočila za to morajo jasno dati tisti, ki izvajajo ta projekt.
Vendar pa je naš primer le eden od mnogih načinov, kako se poigravati s tem robotom, da bo ustrezal vsem. Narediti je treba veliko različnih stvari, ki si jih lahko prilagodite sami.
Priporočena:
ANTiDISTRACTION: Držalo za pametni telefon, ki vam pomaga pri osredotočanju: 7 korakov (s slikami)
ANTiDISTRACTION: Držalo za pametni telefon, ki vam pomaga pri osredotočanju: Naša naprava ANTiDISTRACTION je namenjena prekinitvi vseh oblik motenj celic v obdobjih intenzivnega ostrenja. Naprava deluje kot polnilna postaja, na katero je nameščena mobilna naprava, da olajša okolje brez motenj.
Mars Roomba Project UTK: 4 koraki
Mars Roomba Project UTK: OPOZORILO: TO BO DELOVALO SAMO, ČE JE ROOMBA NA VSAK POSEBEN NAČIN NASTAVLJENA, TO NAVODILO JE USTVARIL IN NAMENUJAL UPORABLJATI UNIVERZA TENENZENCEV UČENCEV IN FACULTY To kodo uporabite za to napisano in s
Roomba Explorer: 4 koraki
Roomba Explorer: Ta projekt bo z uporabo MATLAB -a in iRobotovega robota Create2 raziskal različna področja neznane lokacije. Na robotu smo uporabili senzorje za lažje manevriranje na nevarnem terenu. S pridobivanjem fotografij in video virov iz Raspberry Pi, ki
PCB, ki pomaga pri upravljanju kablov: 6 korakov (s slikami)
PCB, ki pomaga pri upravljanju kablov: Pred časom sem izdelal namizni CNC mlin po meri. Od takrat sem ga nadgrajeval z novimi komponentami. Zadnjič sem dodal drugi Arduino s 4 -mestnim zaslonom za nadzor vrtljajev mojega vretena s pomočjo PID zanke. Moral sem ga povezati s primarnim merjascem Arduino
Localino sledi Roomba IRobot, preslika okolje in omogoča nadzor .: 4 koraki
Localino sledi Roombi IRobot, zemljevidi okolja in omogočajo nadzor. Ta priročnik razlaga postopek, kako slediti in upravljati vaš Roomba iRobot v zaprtih prostorih s sistemom Localino Indoor Localization System, mostom WiFi-UART in aplikacijo za računalnik. Podrobnosti o razlagi tega navodila, ki pojasnjujejo nadzor HIL