Innehållsförteckning:
- Steg 1: Nödvändiga delar
- Steg 2: Filer och kamerakonfiguration
- Steg 3: Initial Roomba -testning
- Steg 4: Exempel på MATLAB -kod
Video: Astronautassisterande Roomba: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Detta projekt görs genom att använda Raspberry Pi 3 ombord på iRobot Create Version 2. MATLAB används för att programmera roboten för att följa specifika instruktioner med dess sensorer och kamera. Sensorerna och kamerorna används för att utföra specifika uppgifter som skulle följa en astronaut och ge honom/henne möjlighet att kommunicera med sin hemmabas om något går fel.
Steg 1: Nödvändiga delar
1. iRobot Skapa version 2
IRobot Create är den viktigaste delen av detta projekt eftersom det är programmerbart och kan vara en bra representation för en verklig rover som följer astronauter och hjälper dem i framtiden
2. Hallon Pi 3
Raspberry Pi var den programmerbara som användes för detta projekt. Koden är utformad för Pi och den bifogade versionen av Pi är 3: an (modell B). Andra programmerbara kort som arduino är användbara, men arduino och de flesta andra brädor kommer att kräva annan kodning än beskrivs i ett annat steg
3. Raspberry Pi kameramodul
Den enda främmande anslutningen till Raspberry Pi som behövs för detta projekt är kameramodulen. Kameramodulen är en integrerad del av detta projekt, eftersom roomba bara kommer att utföra uppgifter baserat på vad den ser i kameran
4. MATLAB 2018a
MATLAB: s näst senaste version, 2018a, användes för kodningen som ingår i denna installation. Det är troligt att många andra versioner av MATLAB kommer att fungera med detta eftersom roomba -programmeringen har funnits ett tag
Steg 2: Filer och kamerakonfiguration
1. Raspberry Pi och kamerans anslutningar till roomba
- Pi kan ansluta till iRobot direkt med ett mikro -USB. Det är allt som behövs för att vara redo att använda. Det rekommenderas dock att det placeras säkert på roomba så som visas på bilder under hela presentationen hittills.
- Kameran har en direktanslutning till Raspberry Pi och det rekommenderas starkt att något köps eller görs för att hålla kameran direkt uppe. Det finns ingen riktig poäng med kameran om den inte kan hållas på plats för att visa vad roomba ser.
2. Filer
- Efter att allt är inställt och anslutet, se till att roboten är återställd och redo att gå genom att hålla "Spot" och "Dock" knapparna i 10 sekunder tillsammans.
- Det är här MATLAB först behövs. Filerna för roomba måste installeras först och allt som behövs för att dessa filer ska köras är koden som finns på denna länk:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Steg 3: Initial Roomba -testning
Det finns många första kontroller som ska utföras på roomba för att se till att det fungerar.
1. Se till att du är ansluten till samma WiFi -nätverk som roomba. Utan detta kommer du aldrig att ansluta via MATLAB.
2. Ta reda på vilket nummer din roomba har tilldelats så att du specifikt kan ansluta till den roomba du valde. Till exempel, om din roombas nummer är 30, skulle du ansluta till det genom att skriva roomba (30) i kommandofönstret i MATLAB.
3. Roomba kan styras genom strukturer i MATLAB. Om du till exempel anger din kod för roomba (30) till variabeln 'r' kan roboten flyttas framåt med kommandot r.moveDistance (0.2, 0.1).
4. Det finns många olika kommandon som kan kommuniceras till roomba och dessa kan ses genom att skriva "doc roomba" i kommandofönstret.
5. Sensorerna för ljus-, bump- och klippavläsningar kan alla läsas med hjälp av kommandona som visas i 'doc roomba' men ett sätt att ha en konstant, snygg meny för att se sensordata kan ses med hjälp av 'r.testSensors '.
6. Efter att ha testat allt detta kan robotens bildinsamlingsprogramvara användas för att läsa och se bilder som tagits. Grundkoden för detta skulle vara img = r.getImage och imshow (img);.
7. Bildens RGB -värden kan hittas med koderna red_mean = medelvärde (medelvärde (img (:,:, 1)));
green_mean = medelvärde (medelvärde (img (:,:, 2))); och blue_mean = medelvärde (medelvärde (img (:,:, 3)));.
Steg 4: Exempel på MATLAB -kod
Vid denna tidpunkt är du nu redo att använda sensorerna och bildtagningsprogramvaran för att skapa din egen snurr på en Human-Assisting Prototype Mars Rover. Vårt exempel är att följa astronauten genom att spåra färgen vit och gå mot den. Roboten piper om sensorerna läser höga värden så att astronauten kan återställa roboten om den fastnar eller gå och hämta den och återställa den om den fastnar på en klippa. Den läser dock bara dessa fel så länge den ser vitt. Utan att kunna se färgen vit kommer roboten in i felläget. Den är programmerad att skicka två olika sorters e -postmeddelanden tillbaka till hemmabasen beroende på vad den ser. Om det ser astronautens hudfärg är det uppenbarligen inte bra, så det kommer att varna hemmabasen om astronauten har hud som visar sig med en kostymfel. Det andra budskapet är förberett om astronauten helt enkelt försvinner ur sikte. Om det inte visas något vitt eller hudfärg för kamerorna kommer roboten att snurra runt och skicka ett annat men annorlunda e -postmeddelande. Bilderna där roomba inte kan se astronauten skickas tillsammans med meddelandet i e -postmeddelandena. Koden för vårt projekt visas nedan:
för i = 1:.1: 3 img = r.getImage; bild (img) red_mean = medelvärde (medelvärde (img (:,:, 1))); green_mean = medelvärde (medelvärde (img (:,:, 2))); blue_mean = medelvärde (medelvärde (img (:,:, 3))); om red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.vänster> 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 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stopp annars för i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end om green_mean <35 && blue_mean <35 %hudfärg visas (måste justeras baserat på astronautens hudfärg) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; %skickar e -post som visar att kostym är avstängd psswd = 'yeah'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'ämne'; m_text = 'test'; setpref ('Internet', 'E_mail', e -post); setpref ('Internet', 'SMTP_Server', värd); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); rekvisita = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', värd); 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, 'Help!', 'The astronauts uniform is off!', img); avsluta om red_mean 135 || green_mean 135 || blue_mean 135 för j = 1: 2 %om vitt inte kan hittas av roboten r.turnAngle (360) mail = '[email protected]'; psswd = 'ja'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'ämne'; m_text = 'test'; setpref ('Internet', 'E_mail', e -post); setpref ('Internet', 'SMTP_Server', värd); setpref ('Internet', 'SMTP_Username', mail); setpref ('Internet', 'SMTP_Password', psswd); rekvisita = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', värd); 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 inte hittas!', img); r. stoppa ändänden
Uppenbarligen är det rörigt här, men det borde buffra ut när det har kopierats. Lösenord och e -postmeddelanden för detta ska givetvis tillhandahållas av dem som gör detta projekt.
Vårt exempel är dock bara ett av många sätt att bråka med den här roboten så att den passar alla. Det finns många olika saker att göra, som du kan passa för dig själv.
Rekommenderad:
Förvandla din Roomba till en Mars Rover: 5 steg
Förvandla din Roomba till en Mars Rover:
Roomba Bot the Bulider: 5 steg (med bilder)
Roomba Bot Bulider: Bot the Builder är en roomba, som med " grabbers " fäst på framsidan kommer att kunna flytta föremål runt. Koden med den är inställd för att spela in den första satsen med en GUI -låda som du kan styra med bara ett musklick. Efter
MATLAB -kontrollerad Roomba: 5 steg
MATLAB -styrd Roomba: Målet med detta projekt är att använda MATLAB samt en modifierad iRobot programmerbar robot. Vår grupp kombinerade våra kodningskunskaper för att skapa ett MATLAB -skript som använder många funktioner i iRobot, inklusive klippsensorer, stötfångare
Mars Roomba Project UTK: 4 steg
Mars Roomba Project UTK: ANSVARSFRISKRIVNING: DETTA KOMMER ENDAST ATT ROOMBA INSTALLERAS PÅ AVERY SPECIFIK SÄTT, DENNA INSTRUKTABEL SKAPADE FÖR OCH AVSIKTAD ATT ANVÄNDAS AV UNIVERSITETEN I TENNESSEE STUDENTER OCH FAKULTYT Denna kod används för att ställa in lokalt skrivet och s
Från Roomba till Rover på bara 5 steg !: 5 steg
Från Roomba till Rover i bara fem steg !: Roomba -robotar är ett roligt och enkelt sätt att doppa tårna i robotikens värld. I denna instruktionsbok kommer vi att beskriva hur man konverterar en enkel Roomba till en kontrollerbar rover som samtidigt analyserar sin omgivning.Parts lista1.) MATLAB2.) Roomb