Inhoudsopgave:
- Stap 1: Materialen
- Stap 2: Verbinding
- Stap 3: Logisch een MATLAB-code maken om sensoren te gebruiken
- Stap 4: De code en robot testen
- Stap 5: Herkenning van fout
- Stap 6: Conclusie
Video: Roomba Parking Pal: 6 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit project maakt gebruik van een iRobot Create programmeerbare roomba, MATLAB r2018a en MATLAB mobiel. Door deze drie media en onze kennis van codering te gebruiken, hebben we de iRobot Create geprogrammeerd om kleuren te interpreteren en ingebouwde sensoren te gebruiken om taken uit te voeren. Dit project is afhankelijk van de Raspberry Pi- en MATLAB-communicatie om deze taken uit te voeren.
Stap 1: Materialen
1. iRobot Robot maken
2. MATLAB r2018a
3. Raspberry Pi
4. Cameramodule
5. 3D-geprinte camerastabilisatorstandaard
6. Smartphone waarop MATLAB mobiel is geïnstalleerd
7. Laptop/computer waarop MATLAB is geïnstalleerd
Stap 2: Verbinding
Deze stap gaat over het aansluiten van de Raspberry Pi op de robot, ten tweede het aansluiten van de robot op uw computer en het aansluiten van de smartphone op de computer.
Het gemakkelijkste deel van dit proces is het aansluiten van de Raspberry Pi op uw robot, aangezien de Raspberry Pi aan de bovenkant van de robot is gemonteerd. Er is een snoer van de robot dat je alleen maar in de zijkant van de Raspberry Pi hoeft te steken.
De volgende stap is het aansluiten van de robot op uw computer, zodat u opdrachten kunt uitvoeren die de robot moet uitvoeren. Het eerste dat u moet doen, is uw computer verbinden met het draadloze netwerk dat uw roomba aan het maken is. Nu wordt aanbevolen dat u het pictogram Pad instellen in MATLAB gebruikt om het pad in te stellen, zodat u de functies in de Roomba-toolbox van MATLAB kunt gebruiken. Elke keer dat u het gebruik van de robot begint en beëindigt, moet u een "Two-Finger Salute" hard uitvoeren om de robot te resetten, wat betekent dat u de dock- en spot-knoppen tien seconden ingedrukt houdt totdat het lampje dimt om aan te geven dat u de robot moet loslaten. Je was succesvol met deze harde reset als je de robot een korte schaal hoort spelen. Vervolgens moet je verbinding maken met de roomba met behulp van een regel code zoals deze "r=roomba(x)" waarbij 'x' het nummer is dat is toegewezen aan de robot die je hebt.
Ten slotte moet je MATLAB mobiel downloaden op elk mobiel apparaat dat je voor dit project gaat gebruiken, en deze applicatie is beschikbaar op zowel Android- als Apple-apparaten. Nadat de applicatie is geïnstalleerd, moet u inloggen met uw inloggegevens. Vervolgens moet u dit apparaat op uw computer aansluiten via het tabblad met het label "Meer" -> klik vervolgens op "instellingen" -> klik vervolgens op "Een computer toevoegen". Dit zou het scherm moeten openen dat wordt weergegeven in de bovenstaande afbeeldingen. Nadat u dit ziet, de volgende stap die u moet doorlopen, is gewoon de informatie die het vraagt, aansluiten en doorslikken. Zodra u succesvol bent verbonden, kunt u functies die u op uw computer op uw telefoon definieert, oproepen om uw robot te besturen.
Stap 3: Logisch een MATLAB-code maken om sensoren te gebruiken
De code is het gemakkelijkst te maken wanneer een meerderheid ervan zich in de while-lus bevindt, zodat de roomba constant geldige waarden kan bijwerken waar hij naar kijkt. Als er een fout is, geeft MATLAB een fout weer en waar deze in de code voorkomt, waardoor het oplossen van problemen relatief eenvoudig is.
Ontworpen in r2018a MATLAB, maakt deze code gebruik van de standaard toolboxen, de iRobot Create toolbox, evenals de MATLAB mobiele toolbox. De roomba die in dit voorbeeld wordt gebruikt, wordt aangeduid als 26, en de r=roomba(26) hoeft maar één keer te worden uitgevoerd om volledig met de roomba te communiceren.
Code:
functie parkeerhulp(x)if x==1
r=roomba(26) % maakt verbinding met roomba
terwijl het waar is
r.setDriveVelocity(.05,.05) % stelt roomba in op een lagere rijsnelheid
bump=r.getBumpers % haalt de gegevens van de bump-sensoren
cliff=r.getCliffSensors % haalt de gegevens van de cliff-sensoren
light=r.getLightBumpers % haalt de gegevens van de lichtstootsensoren
img=r.getImage;% leest de camera van de robot af
red_mean = mean(mean(img(:,:, 1))) % leest het gemiddelde aantal rode pixels
green_mean = mean(mean(img(:,:, 2))) % leest het gemiddelde aantal groene pixels
blue_mean = mean(mean(img(:,:, 3))) % leest het gemiddelde aantal blauwe pixels
if bump.front == 1 %leest de voorste bumpersensoren
r.stop %stopt roomba
msgbox('Path Obscured!', 'Parking Assistant Message') %geeft bericht weer dat het pad niet zichtbaar is pauze % beëindigt de lus
elseif green_mean >150
r.stop %stopt roomba
cont = questdlg('Continue?', 'Path Completed') %geeft een vraagvenster weer met de vraag om door te gaan
if cont == 'Ja'
parkassist(1) %start de code opnieuw
anders
einde
break % beëindigt de lus
elseif red_mean > 140
r.turnAngle(45) %draait de roomba 45 graden
r.timeStart %start een tijdteller
terwijl het waar is
r.setDriveVelocity(.05,.05) %set snelheid van de roomba
time=r.timeGet %wijst de tijd toe aan een variabele
bump=r.getBumpers % haalt de gegevens van de bump-sensoren
cliff=r.getCliffSensors % haalt de gegevens van de cliff-sensoren
light=r.getLightBumpers % haalt de gegevens van de lichtstootsensoren
img=r.getImage;% leest de camera van de robot af
red_mean = mean(mean(img(:,:, 1))) % leest het gemiddelde aantal rode pixels
green_mean = mean(mean(img(:,:, 2))) % leest het gemiddelde aantal groene pixels
blue_mean = mean(mean(img(:,:, 3))) % leest het gemiddelde aantal blauwe pixels
als blue_mean > 120
r.moveDistance(-0.01) %verplaatst de roomba een bepaalde afstand achteruit songPlay(r, 'T400, C, D, E, F, G, A, B, C^', 'true') % speelt een stijgende toonladder af
msgbox('Water Found!', 'Parking Assistant Message') % geeft een bericht weer dat er water is gevonden r.turnAngle(-80) %draait roomba 80 graden
break % beëindigt huidige lus
elseif light.rightFront > 25 || light.leftFront > 25 %leest lichtstootsensoren
r.moveDistance(-0.01) % verplaatst de roomba een ingestelde afstand achteruit
r.turnAngle(-35) % draait de roomba 35 graden
verbreek %beëindigt huidige lus
elseif cliff.rightFront < 2500 && cliff.leftFront < 2500 %leest beide cliff-sensoren
r.moveDistance(-0.1) % verplaatst roomba een ingestelde afstand achteruit
r.turnAngle(-80) %draait roomba 80 graden
break % beëindigt huidige lus
anders als tijd >= 3
r.stop %stopt roomba
contin=questdlg('Station Free, Continue?', 'Parking Assistant Message') %vraagt of de roomba moet doorgaan if contin == 'Yes'
r.turnAngle(-90) % draait de roomba 90 graden
parkassist(1) %start de functie opnieuw
anders
r.stop % stopt de roomba
einde
anders
einde
einde
elseif cliff.rightFront < 2500 && cliff.leftFront < 2500 %leest beide cliff-sensoren
r.moveDistance(-0.1) %verplaatst roomba een ingestelde afstand achteruit
r.turnAngle(-90) %draait roomba 90 graden
elseif cliff.rightFront < 2500 %leest de rechter cliff-sensor
r.turnAngle(-5) %draait de roomba lichtjes in de tegenovergestelde richting van de afgrondsensor
elseif cliff.leftFront < 2500 %leest de linker cliff-sensor
r.turnAngle(5) %draait de roomba lichtjes in de tegenovergestelde richting van de afgrondsensor
anders
einde
einde
einde
Stap 4: De code en robot testen
Nadat de code was ontwikkeld, was de volgende stap het testen van de code en de robot. Aangezien er veel verschillende aanpassingen in de code kunnen worden gemaakt, zoals de hoek waarin de robot draait, de snelheid waarmee hij beweegt en de drempels voor elke kleur, is de beste manier om deze waarden voor uw robot te bepalen, te testen ze en verander gaandeweg. Voor elke werkdag die we hadden, veranderden we deze waarden voortdurend, omdat sommige afhankelijk zijn van de omgeving waarin uw robot werkt. De beste manier die we hebben gevonden, was om de roomba op het pad te plaatsen dat u wilt dat hij volgt, en een barrière die hoog genoeg is zodat de camera geen kleuren kan detecteren die u niet wilt. De volgende stap is om het te laten lopen en het de kleuren te laten zien die je wilt, wanneer je wilt dat het die taak voltooit. Als u onderweg een probleem ziet, kunt u het beste de voorbumper naar binnen duwen, zodat deze stopt, en vervolgens de parameter wijzigen waarmee u problemen had.
Stap 5: Herkenning van fout
Bij elk voltooid project zijn er altijd bronnen van fouten. Voor ons hebben we een fout ervaren met het simpele feit dat de robot niet precies is met de hoek waaronder hij draait, dus als je hem vertelt om 45 graden te draaien, zal het niet exact zijn. Een andere bron van fouten voor ons was dat de robot soms niet goed werkt en dat je hem hard moet resetten voordat hij weer werkt. De belangrijkste laatste bron van fouten voor ons was dat dezelfde code niet hetzelfde effect zal hebben op verschillende robots, dus het kan zijn dat je er geduld mee moet hebben en dienovereenkomstig moet aanpassen.
Stap 6: Conclusie
Nu heb je alle tools om met je roomba te spelen, wat betekent dat je de code kunt manipuleren zoals je wilt om de doelen te bereiken die je wilt. Dit zou het beste deel van je dag moeten zijn, dus veel plezier en rijd veilig!
Aanbevolen:
Arduino Car Reverse Parking Alert-systeem - Stap voor stap: 4 stappen
Arduino Car Reverse Parking Alert-systeem | Stappen voor stap: In dit project zal ik een eenvoudig Arduino Car Reverse Parking Sensor Circuit ontwerpen met behulp van Arduino UNO en HC-SR04 ultrasone sensor. Dit op Arduino gebaseerde Car Reverse-waarschuwingssysteem kan worden gebruikt voor autonome navigatie, Robot Ranging en andere ranger
Arduino Parking Assistant - Parkeer uw auto elke keer op de juiste plek - Ajarnpa
Arduino-parkeerassistent - Parkeer uw auto elke keer op de juiste plek: in dit project laat ik u zien hoe u uw eigen parkeerassistent kunt bouwen met behulp van een Arudino. Deze parkeerassistent meet de afstand tot uw auto en begeleidt u om deze op de juiste plek te parkeren met behulp van een LCD-display en een LED, die progressief
Arduino Smart Parking: 4 stappen
Arduino Smart Parking: Bill Blankenship, Willam Bailey, Hannah Hargrove Met behulp van een Arduino-bord is onze groep erin geslaagd een systeem te maken waarmee lichtsensoren kunnen detecteren wanneer een auto een ruimte inneemt of leeg is. Na achtenzestig regels, we e
MIDI Pod-Pal: 4 stappen
MIDI Pod-Pal: ***UPDATE 22/4/'21****** Ik heb een volledig schema toegevoegd met alle bedrading om te helpen bij de constructie. ***Ik zal niet ingaan op een belachelijke hoeveelheid diepte hier op het bouwgedeelte, het was mijn bedoeling om nog een voorbeeld te laten zien van het bouwen van een op Arduino gebaseerde MI
Van Roomba naar Rover in slechts 5 stappen!: 5 stappen
Van Roomba naar Rover in slechts 5 stappen!: Roomba-robots zijn een leuke en gemakkelijke manier om je tenen onder te dompelen in de wereld van robotica. In deze Instructable zullen we in detail beschrijven hoe we een eenvoudige Roomba kunnen omzetten in een bestuurbare rover die tegelijkertijd zijn omgeving analyseert. Onderdelenlijst1.) MATLAB2.) Roomb