Indholdsfortegnelse:
- Trin 1: Nødvendige dele
- Trin 2: Filer og kamerakonfiguration
- Trin 3: Indledende Roomba -test
- Trin 4: Eksempel på MATLAB -kode
Video: Astronaut-assisterende Roomba: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Dette projekt er lavet ved at bruge Raspberry Pi 3 ombord på iRobot Create Version 2. MATLAB bruges til at programmere robotten til at følge specifikke instruktioner ved hjælp af dens sensorer og kamera. Sensorerne og kameraerne bruges til at udføre specifikke opgaver, der ville følge en astronaut og give ham/hende mulighed for at kommunikere med sin hjemmebase, hvis noget går galt.
Trin 1: Nødvendige dele
1. iRobot Opret version 2
IRobot Create er den mest essentielle del af dette projekt, da det er programmerbart og kan være en god repræsentation for en egentlig rover, der følger astronauter og hjælper dem i fremtiden
2. Raspberry Pi 3
Raspberry Pi var den programmerbare, der blev brugt til dette projekt. Koden er designet til Pi, og versionen af Pi vedhæftet er 3 (model B). Andre programmerbare tavler, f.eks. Arduino, kan bruges, men arduino og de fleste andre tavler kræver anden kodning end beskrevet i et andet trin
3. Raspberry Pi kameramodul
Den eneste fremmede forbindelse til Raspberry Pi, der er nødvendig til dette projekt, er kameramodulet. Kameramodulet er en integreret del af dette projekt, da roomba kun vil udføre opgaver baseret på, hvad det ser i kameraet
4. MATLAB 2018a
MATLABs anden seneste version, 2018a, blev brugt til kodning involveret i denne opsætning. Det er sandsynligt, at mange andre versioner af MATLAB vil arbejde med dette, da roomba -programmeringen har eksisteret i et stykke tid
Trin 2: Filer og kamerakonfiguration
1. Raspberry Pi og kameraforbindelser til roomba
- Pi kan tilslutte til iRobot direkte med en mikro -USB. Det er alt det skal være klar til brug. Det anbefales dog, at det placeres sikkert på roomba, som vist på billeder under hele præsentationen indtil nu.
- Kameraet har en direkte forbindelse til Raspberry Pi, og det anbefales stærkt, at der købes eller laves noget for at holde kameraet direkte oppe. Der er ingen reel mening med kameraet, hvis det ikke kan holdes på plads for at vise, hvad roomba ser.
2. Filer
- Når alt er sat op og tilsluttet, skal du sørge for, at robotten er nulstillet og klar til at gå ved at holde knapperne "Spot" og "Dock" i 10 sekunder sammen.
- Det er her, MATLAB først er nødvendigt. Filerne til roomba skal installeres først, og alt, hvad der er nødvendigt for at disse filer skal køre, er koden på dette link:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Trin 3: Indledende Roomba -test
Der er mange indledende kontroller, der skal udføres på roomba for at sikre, at det fungerer.
1. Sørg for, at du har forbindelse til det samme WiFi -netværk som roomba. Uden dette vil du aldrig oprette forbindelse via MATLAB.
2. Find ud af, hvilket nummer din roomba er tildelt, så du specifikt kan oprette forbindelse til den roomba, du valgte. For eksempel, hvis dit roombas nummer er 30, ville du oprette forbindelse til det ved at skrive roomba (30) i kommandovinduet i MATLAB.
3. Roomba kan styres gennem strukturer i MATLAB. Hvis du f.eks. Indstiller din kode for roomba (30) til variablen 'r', kan robotten flyttes fremad med kommandoen r.moveDistance (0.2, 0.1).
4. Der er mange forskellige kommandoer, der kan kommunikeres til roomba, og disse kan ses ved at skrive 'doc roomba' i kommandovinduet.
5. Sensorerne til lys-, bump- og klippeaflæsninger kan alle læses ved hjælp af kommandoerne set i 'doc roomba', men en måde at få en konstant, pæn menu til at se sensordata kan ses ved hjælp af 'r.testSensors '.
6. Efter at have testet alt dette kan robotens billedopsamlingssoftware bruges til at læse og se billeder taget. Den grundlæggende kode for dette ville være img = r.getImage og imshow (img);.
7. Billedets RGB -værdier kan findes med koderne red_mean = mean (middelværdi (img (:,:, 1)));
green_mean = middelværdi (middelværdi (img (:,:, 2))); og blue_mean = middelværdi (middelværdi (img (:,:, 3)));.
Trin 4: Eksempel på MATLAB -kode
På dette tidspunkt er du nu klar til at bruge sensorerne og billedoptagelsessoftwaren til at oprette dit eget spin på en Human-Assisting Prototype Mars Rover. Vores eksempel er at følge astronauten ved at spore farven hvid og bevæge sig mod den. Robotten vil bippe, hvis dens sensorer læser høje værdier, så astronauten kan nulstille robotten, hvis den sidder fast, eller gå og hente den og nulstille den, hvis den sidder fast på en klippe. Den læser dog kun disse fejl, så længe den ser hvid. Uden at kunne se farven hvid, går robotten ind i fejltilstand. Det er programmeret til at sende to forskellige slags e -mails tilbage til hjemmebasen afhængigt af hvad den ser. Hvis det ser astronautens hudfarve, er det naturligvis ikke godt, så det vil advare hjemmebasen, hvis astronauten har hud, der viser sig med en jakkesætfunktion. Det andet budskab er forberedt, hvis astronauten simpelthen forsvinder ud af syne. Hvis der ikke vises nogen hvid eller hudfarve til kameraerne, vil robotten dreje rundt og sende en anden, men anden e -mail. De billeder, hvor roomba ikke kan se astronauten, sendes sammen med beskeden i e -mailsne. Koden til vores projekt er vist herunder:
for i = 1:.1: 3 img = r.getImage; billede (img) red_mean = middelværdi (middelværdi (img (:,:, 1))); green_mean = middelværdi (middelværdi (img (:,:, 2))); blue_mean = middelværdi (middelværdi (img (:,:, 3))); hvis red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump. venstre> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff. venstre <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop ellers for i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end hvis green_mean <35 && blue_mean <35 %hudfarve vises (skal justeres ud fra astronautens hudfarve) r.beep (); r.bip (); r.bip (); mail = '[email protected]'; %sender e -mail, hvor farven er slukket psswd = 'yeah'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'emne'; m_text = 'test'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', vært); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); rekvisitter = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', vært); props.setProperty ('mail.smtp.port', port); 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', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Hjælp!', 'Astronauternes uniform er slukket!', img); slut hvis red_mean 135 || green_mean 135 || blue_mean 135 for j = 1: 2 %hvis hvid ikke kan findes af robotten r.turnAngle (360) mail = '[email protected]'; psswd = 'ja'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'emne'; m_text = 'test'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', vært); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); rekvisitter = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', vært); props.setProperty ('mail.smtp.port', port); 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', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Hjælp!', 'Astronauten kan ikke findes!', img); r. stop ende ende ende
Det er naturligvis rodet her, men det skal buffes ud, når det er kopieret. Adgangskoder og e -mails til dette skal naturligvis leveres af dem, der laver dette projekt.
Vores eksempel er dog kun en af mange måder at rode med denne robot på, så den passer til alle. Der er mange forskellige ting, der skal gøres, som du kan passe til dig selv.
Anbefalede:
Gør din Roomba til en Mars Rover: 5 trin
Gør din Roomba til en Mars Rover:
Cosmo -ur - skifter farve, hver gang en astronaut kommer ind i rummet: 8 trin (med billeder)
Cosmo -ur - skifter farve, hver gang en astronaut træder ind i rummet: Hej! Er du en rumentusiast? Hvis ja så hi-fi! Jeg elsker rum og astronomi. Jeg er naturligvis ingen astronaut til at tage derop og se nærmere på universet. Men hver gang jeg finder ud af, at en person fra jorden har rejst til himlen, bliver jeg inspireret
Roomba Bot the Bulider: 5 trin (med billeder)
Roomba Bot Bulider: Bot the Builder er en roomba, der med " grabbers " fastgjort til fronten vil kunne flytte objekter rundt. Koden med den er indstillet til at optage den første sats med en GUI -boks, som du kan styre med bare et klik med musen. Efter
MATLAB -styret Roomba: 5 trin
MATLAB -styret Roomba: Målet med dette projekt er at udnytte MATLAB samt en modificeret iRobot programmerbar robot. Vores gruppe kombinerede vores kodningsevner for at oprette et MATLAB -script, der bruger mange funktioner i iRobot, herunder cliff -sensorer, kofanger -sensorer
Fra Roomba til Rover på bare 5 trin !: 5 trin
Fra Roomba til Rover på bare 5 trin !: Roomba -robotter er en sjov og nem måde at dyppe tæerne i robotikens verden. I denne Instructable vil vi detaljeret beskrive, hvordan man konverterer en simpel Roomba til en kontrollerbar rover, der samtidigt analyserer sine omgivelser. Deleliste1.) MATLAB2.) Roomb