Inhoudsopgave:
- Stap 1: Stap 1: Benodigde materialen
- Stap 2: Stap 2: Code instellen/opvragen voor Roomba
- Stap 3: Stap 3: Afgrondsensoren/LED-verlichting instellen
- Stap 4: Stap 4: Controleren op obstakels
- Stap 5: Stap 5: plotten
Video: Roomba MATLAB-project: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Het huidige plan dat NASA voor de Marsrover heeft, is dat het een gegevensverzamelaar wordt en rond Mars gaat zwerven, waarbij monsters van de grond worden verzameld om terug naar de aarde te brengen, zodat wetenschappers kunnen zien of er eerdere levensvormen op de planeet waren. Bovendien stuurt de rover afbeeldingen terug naar wetenschappers, zodat ze kunnen helpen bij het navigeren door de rover en eventuele problemen kunnen oplossen.
Het idee van onze groep voor ons project is dat de rover hetzelfde doet als de NASA-rover die in 2020 de aarde zal verlaten, maar ook om de geografie van het land in kaart te brengen. De roomba zou kliffen kunnen voelen en zichzelf kunnen stoppen voordat hij eraf valt, en dan achteruit gaan, draaien en van koers veranderen zodat hij niet valt en beschadigd raakt. Ons andere idee dat in ons project is geïntegreerd, is dat de roomba de oriëntatiepunten die hij ziet kan uitzetten en een plot kan laten zien telkens wanneer de lus is voltooid en zijn koers is gelopen.
Deze instructable is voor iedereen die hetzelfde type code voor zijn roomba wil maken.
Stap 1: Stap 1: Benodigde materialen
Je zal nodig hebben:
- een kamerba
- MATLAB
- Dit bestand om de roomba. uit te voeren
- Een plat oppervlak
- Een tafelblad om als "klif" te fungeren
Stap 2: Stap 2: Code instellen/opvragen voor Roomba
Uw scherm ziet er zo uit zodra u de bestanden invoert.
Stap 3: Stap 3: Afgrondsensoren/LED-verlichting instellen
Deze code vertelt uw roomba precies in welke hoek hij moet draaien, controleert de batterij-informatie, vertelt uw roomba hoe snel hij moet gaan en controleert of er een persoon is via de camera van de roomba. Hij piept ook als hij een persoon identificeert en stopt zichzelf voordat hij van een klif afgaat.
% probeer rob.setLEDDigits('') x=0; y=0; theta=0; obstakel = ; cyclus = 1; AngCorr = @(x)x + 3.059.*x.^0.4205; %Functie om draaihoeken te corrigeren terwijl rob.getBatteryInfo.percent > 15 rob.setLEDDigits('') rob.setDriveVelocity(0.1) %Go %Check For Person if AA_checkperson(rob) rob.beep end %Check Cliff Sensor if AA_cliffcheck(rob) rob.stop rob.setLEDDigits('Cliff') pauze (0.5) obstakel (cyclus) = 2; AA_cliffbeep(rob) %Back-up en draai rob.moveDistance(-.15) rob.turnAngle(30) end
Stap 4: Stap 4: Controleren op obstakels
Deze code zorgt ervoor dat de roomba wordt gecontroleerd op items eromheen en controleert de stootsensor om ervoor te zorgen dat deze stopt voordat deze zichzelf beschadigt.
%Controleer de lichtsensor als AA_lightcheck(rob) rob.stop rob.setLEDDigits('Wall') pauze (0.5) obstakel (cyclus) = 1; %Wall AA_wallbeep(rob) %Back-up en draai rob.moveDistance(-.15) rob.turnAngle(30) end %Check Bump Sensor if AA_bumpcheck(rob) rob.stop rob.setLEDDigits('Wall') pause(0.5) obstakel (cyclus) = 1; %Wall AA_wallbeep(rob) %Back-up en draai rob.moveDistance(-.15) rob.turnAngle(30) end %Als geen indien leeg (obstakel) obstakel (cyclus) = 0; elseif lengte(obstakel) <cyclus obstakel(cyclus) = 0; einde
Stap 5: Stap 5: plotten
Deze code vertelt je roomba dat hij moet uitstippelen wat hij op zijn reis tegenkomt. Een plot als deze zal verschijnen nadat de roomba is gestopt.
%Get Positie d = rob.getDistance; als cyclus == 1 theta(cyclus) = 0; x(cyclus) = d.*cosd(theta(cyclus)); % totale afgelegde afstand in x y(cyclus) = d.*sind(theta(cyclus)); % totaal afgelegde afstand in y else theta(cycle) = theta(cycle-1) + rob.getAngle; x(cyclus) = d.*cosd(theta(cyclus)) + x(cyclus-1); % totale afgelegde afstand in x y(cyclus) = d.*sind(theta(cyclus)).*d + y(cyclus-1); % totaal afgelegde afstand in y einde %Break condition if rob.getButtons.clean break end %Increment cycle cycle = cycle + 1; end rob.stop for i = 1:cycle if obstakel(i) == 1 %Wall plot(x(i), y(i), 'Marker', 'square', 'MarkerEdgeColor', 'r') elseif obstakel (i) == 2 %Cliff plot(x(i), y(i), 'Marker', 'o', 'MarkerEdgeColor', 'k') end text(.9, 0.9, sprintf('Square = Wall \nCircle = Cliff'), 'Units', 'normalized') vasthouden aan einde %Distress Signaal terwijl true rob.beep pause(3) if rob.getButtons.clean break end end % catch % rob.stop % end
Aanbevolen:
Uw Roomba in een Mars Rover veranderen: 5 stappen
Uw Roomba in een Mars Rover veranderen:
MATLAB-gestuurde Roomba: 5 stappen
MATLAB Controlled Roomba: Het doel van dit project is om zowel MATLAB als een aangepaste iRobot programmeerbare robot te gebruiken. Onze groep combineerde onze codeervaardigheden om een MATLAB-script te maken dat veel functies van de iRobot gebruikt, inclusief de klifsensoren, bumpersensoren
Roomba Parking Pal: 6 stappen
Roomba Parking Pal: Dit project maakt gebruik van een iRobot Create programmeerbare roomba, MATLAB r2018a en MATLAB mobile. 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
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
Roomba met MATLAB - Ajarnpa
Roomba Met MATLAB: Dit project maakt gebruik van MATLAB en een iRobot Create2 programmeerbare robot. Door onze kennis van MATLAB op de proef te stellen, zijn we in staat om de Create2 te programmeren om beelden te interpreteren en signalen te detecteren. De functionaliteit van de robot hangt vooral af van de