Indholdsfortegnelse:
Video: Roomba With MATLAB: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
Dette projekt gør brug af MATLAB og en iRobot Create2 programmerbar robot. Ved at sætte vores viden om MATLAB på prøve kan vi programmere Create2 til at fortolke billeder og registrere signaler. Robotens funktionalitet afhænger hovedsageligt af MATLAB -mobilappen og et Raspberry Pi -kameramodul.
Trin 1: Dele og materialer
1. iRobot Create, version 2
- Dette er en programmerbar robot, der ligner en Roomba. Vær opmærksom på, at dette produkt fra iRobot ikke er et vakuum. Det er beregnet til brugerdefineret programmering af brugeren.
2. MATLAB 2017a
- De fleste ældre versioner vil være kompatible med den kode, vi brugte nedenfor. MATLAB identificerer en kommando, der ikke er kompatibel med den version, du har, og foreslår en kommando, der passer bedst.
3. Raspberry Pi 3 Model B, version 1.2
- Kontroller, hvilken Raspberry Pi der er kompatibel med din iRobot. Se dette link for yderligere hjælp: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Denne instruktive forudsætter, at du arbejder med en forprogrammeret Raspberry Pi. Vær opmærksom på, at du skal arbejde med en forprogrammeret Pi for at følgende trin kan fungere. Brug af en forprogrammeret Pi giver dig mulighed for at udføre al din kodning i MATLAB alene.
4. Kameramodul V2 (til Raspberry Pi)
- Du kan blive overrasket; På trods af sin størrelse er Raspberry Pi kameramodulet meget god kvalitet. Det er den billigste og mest kompatible løsning til dette projekt.
Valgfrit: 3D-printet stativ. Dette bruges til at stabilisere kameraet. Det påvirker ikke robotens funktionalitet, men det hjælper med at hjælpe din kodning, hvis du ønsker at bruge billeddannelsesdata til farve- og/eller objektgenkendelse.
Trin 2: Konfiguration
1. Tilslutning af Raspberry Pi og kameramodul (hardware)
- For at drive Raspberry Pi skal du køre en mikro -USB -han til en kvindelig strømport på mikrokontrolleren. Valgfrit: En spændingsregulator kan bruges til at sikre, at spændingen ikke overstiger 5V. Efter at have tændt Raspberry Pi, kan du slutte den til din robot ved at køre USB -en han -ende fra bundkortet til USB -port A på mikrokontrolleren.
- Efter tilslutning af Pi til Roomba er kameraet klar til at blive installeret. Kameramodulet vil være meget mindre, end du forventer. Bemærk, at objektivet er monteret på en sensor, og et hvidt bånd strækker sig fra kameraet. Fjern eller riv IKKE båndet! Dette er kablet, du skal bruge for at slutte det til Raspberry Pi. Hold først enden af båndet og find sølvstikkene og det blå kabel. Disse er på modsatte sider. Find derefter åbningen mellem ethernet- og HDMI -portene på din Raspberry Pi. Bemærk, at der er en lille, hvid lås, der dækker den. Løft langsomt låsen, men fjern den ikke fra åbningen, da den klikker og bliver permanent beskadiget. Når du har løftet låsen, tag fat i båndet og vend sølvstikkene mod HDMI -porten. Den blå side vender mod Ethernet -porten. Skub langsomt båndet ind i åbningen, mens det stadig er låst op. Du behøver ikke at tvinge den ind i åbningen. Efter isætning skubbes låsen ned igen. Hvis dit kamera er ordentligt fastgjort, skal du (forsigtigt) kunne trække i båndet og mærke spændinger. Båndet skal ikke være løst. Når du har tilsluttet dit kamera til Pi'en, kan du bemærke, hvor løst det er. Derfor brugte vi en 3D-printet holder til at stabilisere den. Det er dit valg at afgøre, hvilke materialer du vil bruge til at holde dit kamera stille til billedbehandling i høj kvalitet.
2. Installation af korrekte filer og tilslutning af Roomba til din computer Når al din hardware er konfigureret, kan du nu gå videre til installation af MATLAB sammen med de tilhørende m-filer, der giver dig mulighed for at kommunikere med robotten. For at gøre dette skal du åbne MATLAB og oprette en ny mappe for at holde alle relaterede filer sammen. Brug dette script til at installere/opdatere de nødvendige filer:
- Alle filerne skal nu vises i din oprettede mappe. Højreklik i vinduet Aktuel mappe og vælg 'Tilføj til sti' for at tilføje stien til listen over mapper, hvor MATLAB leder efter filer. Sørg for, at alle dine filer er i den rigtige sti.
3. Når filerne er installeret, kan du nu begynde at oprette forbindelse til din robot. Begynd med at tænde din robot og derefter hårdt nulstille den direkte efter opstart (glem ikke at nulstille din robot hårdt hver gang før og efter brug). For det andet skal du slutte både din robot og din bærbare computer til det samme wifi -netværk. Herefter vil vi tale med den forprogrammerede Raspberry Pi via MATLAB ved at kalde Roomba ved hjælp af dets fornavn og funktionen roomba. For eksempel ville jeg oprette forbindelse til robot 28 ved hjælp af følgende linje: R = roomba (28).
- Læg mærke til, hvordan jeg tildelte objektet til en variabel R. Jeg kan nu få adgang til de tilhørende Roomba -funktioner fra installationsfilen ved at behandle variablen R som en struktur.
- R.turnAngle (90) Hvis alt gik godt, skulle der afspilles en musikalsk tone, der bekræfter forbindelsen.
Trin 3: MATLAB Logic
PDF -dokumentet i bunden af dette trin er et detaljeret logisk flowdiagram for vores kodningsproces i MATLAB. Vi aktiverede klippe-, lys- og lysstødsensorerne for at give robotten mulighed for at kommunikere med os, når den registrerer et objekt i umiddelbar nærhed. For eksempel, når robotten bevæger sig fremad, søger dens lyssensorer efter objekter i sin vej i henhold til vektoren, den kører ved. Vi valgte en afstandstærskel for robotten, så når den nærmer sig et objekt, vil den vende i stedet for at kollidere med den. Vores robot er også konfigureret med Twitter, som vi specificerede i vores kodningsproces (dette vil blive vist nedenfor).
For at forbedre oplevelsen brugte vi MATLAB -applikationen på vores mobile enheder, så vi kan kontrollere robotens bevægelser ved blot at vippe vores telefoner. Dette er en valgfri aktivitet, da du helt sikkert kan få robotten til at flytte ved at bruge kommandoen moveDistance i MATLAB -kodesegmentet i stedet. Husk, at brug af MATLAB -kommandoer til at styre din robot foretrækkes, hvis dit mål skal være præcist. Hvis du ønsker at rette robotten, så kameraet tager et billede på et bestemt sted, kan det være bedre at kode robotens bevægelser i MATLAB. Mens det er underholdende, er det ikke ønskeligt at bruge MATLAB -applikationen til at styre din robot for nøjagtighed.
Koden beordrer Roomba til at udføre en grundlæggende opsætning og derefter fortsætte gennem en kontinuerlig sløjfe. I første omgang opretter den bærbare computer et link til Roomba ved hjælp af kommandoen Roomba (). Det konfigurerer også twitterforbindelsen ved hjælp af kommandoen webwrite () i MATLAB. Sløjfen indeholder fem hovedlogiske strømninger afhængigt af miljøet omkring Roomba. Først kontrollerer Roomba for forhindringer og justerer baglæns, hvis den finder, at den er forhindret. Indlejret i den loop er den anden sti, der advarer brugere, hvis Roomba bliver ført væk. Et vigtigt værktøj i den barske krigszone. Efter at Roomba har fastslået, at dens position er sikker, ser den til den mobile enhed for at bestemme dens næste bevægelse. Hvis den mobile enhed vippes fremad, vil den beregne en basishastighed afhængigt af sværhedsgraden af rullemåling end at justere de enkelte hjulhastigheder til at dreje baseret på stigningsgraden. Telefonen kan også flytte Roomba omvendt. En neutral mobilenhedstilstand porter de sidste to stier. En hvilende Roomba vil søge efter et Alien -flag og advare brugeren om dette.
Nedenfor er vores kode (afsluttet i MATLAB 2017a)
%input: Orienteringsdata fra en wifi -tilsluttet enhed, kamera
%information, sensordata
%output: bevægelse styres af den wifi -tilsluttede enhed og bevægelsen
% kontrolleres ved at aflæse sensordata. Hvis kameraet registrerer
% et fremmed flag derefter reagerer roomba ved at tweete fjendens flag
% er blevet opdaget.
%formål: vores enhed lever uden formål, bortset fra at beskytte dem, der
% skabte det, det tjener dets skaber og gør
% præcis hvad det blev fortalt.
%Brug: i det væsentlige kører programmet alene.
ryd alle, luk alle, clc
%Initialiserer objekter og variabler
r = roomba (28);
m = mobiledev;
%use response = webwrite (værtsnavn, data)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop er operationel … venter på kommando';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (værtsnavn, data);
%løbende loop
mens 1 == 1
%Strukturer, der indeholder relavent data
o = m.orientering; %orientering af mobilenhed
light = r.getLightBumpers (); %Lette kofangerværdier
a = r.getCliffSensors (); %CLiff -sensorværdier
bump = r.getBumpers (); %Kofangersensorer
%tjek kofangere
hvis bump.right == 1 || bump. venstre == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%check lys sensorer
elseif light. venstre> 60 || light.leftFront> 60 || light.leftCenter> 60 || light.right> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
%tjek Cliff Sensors
%Tyverisikringssignal og meddelelse
elseif a. venstre <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.bip ();
tweet = 'RoboCop er ophævet!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (værtsnavn, data);
%Normal Cliff Undgåelse Operation
elseif a. venstre <300 || a.right <300 || a.leftFront <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
%Roomba bestod kontrollerne og kører nu med normal drift.
%Indledningsvis måles rullen af enheden og bliver til en base
%hastighed, som derefter bruges til at beregne hjulets hastighed
%Fremadgående bevægelse
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
hvis o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
ellers if (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
ellers r.stop
ende
%Baglæns bevægelse
ellers if (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.bip ();
r.bip ();
%hvile roomba vil søge efter Alien Flag markeret som en blomstrende
%grønt stykke papir
andet
r. stop
img = r.getImage (); %tage billede
tærskel = gråthresh (img (200: 383,:, 2))+. 1; %calc grønt niveau
hvis tærskel>.42
tweet = 'Enemy Spotted !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (værtsnavn, data);
andet
r. stop
ende
ende
ende
Trin 4: Konklusion
Husk, du kan bruge scriptet, vi skrev ovenfor, men du kan altid ændre det, så det passer til dine behov. Det behøver ikke at blive styret af din telefon! (Det gør det dog sjovere.) Vælg hvilken metode du foretrækker at bruge til at styre din robot. Kør rundt med din robot og nyd!
Anbefalede:
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
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Browserstyret Roomba -robot med Raspberry Pi Model 3 A+: 6 trin (med billeder)
Browserstyret Roomba -robot med Raspberry Pi Model 3 A+: Oversigt Denne instruktion vil fokusere på, hvordan man giver en død Roomba en ny hjerne (Raspberry Pi), øjne (webcam) og en måde at styre alt fra en webbrowser. Der er mange Roomba -hacks, der tillader kontrol via det serielle interface. Jeg har ikke
Roomba MATLAB -projekt: 5 trin
Roomba MATLAB -projekt: Den nuværende plan, som NASA har for Mars -roveren, er, at den skal være en dataindsamler og vandre rundt på Mars og indsamle prøver af jorden for at bringe den tilbage til Jorden, så forskere kan se, om der var nogen tidligere livsformer på Planeten. Ekstra
Roomblock: en platform til læring af ROS -navigation med Roomba, Raspberry Pi og RPLIDAR: 9 trin (med billeder)
Roomblock: en platform til læring af ROS -navigation med Roomba, Raspberry Pi og RPLIDAR: Hvad er dette? &Quot; Roomblock " er en robotplatform, der består af en Roomba, en Raspberry Pi 2, en lasersensor (RPLIDAR) og et mobilbatteri. Monteringsrammen kan laves af 3D -printere. ROS -navigationssystem gør det muligt at lave et kort over værelser og bruge