Indholdsfortegnelse:

Roomba Scout Explorer: 8 trin
Roomba Scout Explorer: 8 trin

Video: Roomba Scout Explorer: 8 trin

Video: Roomba Scout Explorer: 8 trin
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Juli
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Som et af de mest forventede og stærkt efterforskede amerikanske projekter er Mars rover-projekterne blevet menneskelige præstationer i den stadigt fremskridende produktion af højteknologiske autonome systemer med det ene formål at undersøge og fortolke landmasser og overflader på den røde planet bagved jorden. Som en del af et mere personligt projekt i hyldest til Mars -missionerne var vores mål at skabe en roomba -robot, der kunne handle autonomt over en bestemt tidsramme og reagere i overensstemmelse hermed på visse kriterier inden for dens nærhed.

Hvad angår unikhed, fokuserede vi på at lave et diagram, der viste hver vej, robotten tager fra dens oprindelse. Derudover vil robotten være i stand til at tælle antallet af objekter i sin nærhed i en panoramisk stil.

Trin 1: Udstyr

-Roomba w/ Attachable Camera (med specifikt navn kendt)

-Tilsluttet server

-Windows 10 / Mac med internetforbindelse

-Lette platform

-Mørkt gulv

-Alle herreløse objekter af monokromatisk design

Trin 2: MATLAB -opsætning

MATLAB opsætning
MATLAB opsætning

For at oprette opgaver og funktioner til din roomba skal du have de specifikke koder og værktøjskasser, der indeholder roomba -kommandoerne.

Med MATLAB 2016a og fremefter downloadet, skal du oprette en mappe for at indeholde disse robotfiler og indsætte følgende MATLAB -fil nedenfor i mappen og køre den for at installere de resterende nødvendige roomba -filer.

Derefter skal du højreklikke i vinduet Aktuel mappe, holde musen over "Tilføj en sti" og klikke på "Aktuel mappe". Nu skal der oprettes en sti, så hver af disse filer vil blive brugt til at aktivere roomba.

Brug nu kommandoen herunder i kommandovinduet til at konfigurere roomba:

r = roomba (#).

Symbolet # er 'nummeret' på den specificerede roomba; men hvis du blot vil have en simulator af roomba, skal du blot skrive følgende kommando:

r = roomba (0).

Simuleringen vil blive anbefalet til test af bevægelsesmønstre.

Hvis du er nysgerrig efter, hvilke kommandoer roomba kan følge, skal du skrive følgende i kommandovinduet:

doc roomba.

For flere detaljer, besøg følgende websted:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Trin 3: Funktion: Bevægelse

Funktion: Bevægelse
Funktion: Bevægelse
Funktion: Bevægelse
Funktion: Bevægelse

Med hensyn til bevægelse skal roomba bevæge sig automatisk i en bestemt periode angivet i input. Målet med robotens bevægelse er at reagere ordentligt, når dets sensorer (kofangere, lysstøddæmpere og klippesensorer) ændres i nærvær af forskellige forhindringer. Denne del ville fungere som basis for alle roombas kommandoer, efterhånden som flere funktioner til koden tilføjes senere. Nogle specifikationer var nødvendige:

-For at reducere skader skal robotten reducere hastigheden til en lavere hastighed.

-Når den nærmer sig en klippe eller væg, vil robotten bevæge sig baglæns og ændre sin vinkel afhængigt af slagpunktet

-Efter noget kørsel vil roomba i sidste ende stoppe og tage billeder af det omkringliggende område

Bemærk, at de anvendte værdier var i forhold til simulatoren; værdier som drejevinklerne drejningshastigheder og robotsensorindstillinger bør ændres, når den faktiske robot bruges for at sikre stabilitet og regnskab for udstyrsfejl.

Trin 4: Funktion: Billedbehandling

Funktion: Billedbehandling
Funktion: Billedbehandling

Pr. Anmodning fik vi til opgave at ændre dataene for et billede (eller flere billeder), der blev modtaget af robotens kamera, hvortil vi besluttede at få roomba til at "tælle" antallet af objekter, som det ser i billedet.

Vi fulgte teknikken med at lade MATLAB tegne grænser omkring sorte objekter, der står i kontrast til en hvid baggrund. Denne funktion er imidlertid tilbøjelig til at have svært i et åbent område, da de forskellige former og farver opfattes af kameraet, hvilket resulterer i usædvanligt høje tællinger.

Bemærk, at denne funktion ikke kan fungere i simulatoren, da der ikke leveres et kamera; hvis der forsøges, opstår der en fejl, der kun erklærer en (:,:, 3) matrix.

Trin 5: Funktion: Kortlægning

Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning
Funktion: Kortlægning

En ekstra funktion, som vi ønskede, at robotten skulle have, var at kortlægge dens placeringer, da den direkte interagerer med miljøet. Koden nedenfor søger således at åbne et kort og oprette et koordinatsystem, der beskriver hvert sted, hvor der trykkes på robotens kofangersensorer. Dette viste sig at være den længste del af de tre dele, der blev testet individuelt, men det viste sig meget enklere, når det blev anvendt på det endelige script.

For at tilføje en grænse til længden af funktionens driftstid blev n <20 -grænsen for while loop brugt til testformål.

Husk dog på grund af kodens kompleksitet, opstår der flere fejl, da kodesegmentet kører i lang tid; fra tidligere tests synes ti stød at være antallet af point, før der opstår væsentlige fejl.

Trin 6: Sammenstilling

Sammenstilling
Sammenstilling
Sammenstilling
Sammenstilling
Sammenstilling
Sammenstilling
Sammenstilling
Sammenstilling

Da alt dette vil blive placeret i en enkelt fil, oprettede vi en funktion ved hjælp af hvert af de to foregående trin som dens underfunktioner. Et sidste udkast blev foretaget med følgende ændring af redux -funktionen kaldet "recon". For at undgå forvirring for MATLAB blev "counter" og "rombplot3" scripts omdøbt til henholdsvis indlejrede funktioner "CountR" og "plotr".

Flere ændringer skulle foretages i den endelige version i modsætning til de tidligere scripts:

-Oprindelsen vil altid være markeret med en rød cirkel

-Hver gang roomba stopper fra sine kofangere, markeres placeringen med en sort cirkel

-Hver gang roomba stopper fra sine klippesensorer, markeres placeringen med en blå cirkel

-Hver gang roomba stopper med at undersøge området, markeres placeringen med en grøn cirkel

-Billeder ændres for at få den øverste del fjernet på grund af tidsstemplet, der potentielt kan forstyrre resultaterne

-Grænser tælles ikke ud som et objekt på grund af temmelig høje tal erhvervet

-Flere variabler er blevet ændret, så brug versionerne ovenfor som reference for at undgå forvirring.

Trin 7: Test

Test
Test

Tests for hver enkelt komponent viste sig til tider at være temmelig blandede, hvorfor ændringer af visse forudindstillede værdier var nødvendige. Den tematiske baggrund, som vi ønskede at teste robotens evner i et lukket område, bestod ganske enkelt af et whiteboard, der var lagt på et meget mørkere gulv. Du kan sprede objekterne rundt i området; få dem til at fungere som objekter, der skal stødes ind i eller fjerne genstande fra robotens bevægelige område.

Efter at have indstillet sin regulerede tid og basishastighed, demonstrerede roomba tilstrækkelig bevægelsesadfærd, stoppede og bakkede væk fra hver "klippe" eller genstand, den støder ind i, samt bremsede, da den opdagede noget i nærheden. Efter at have nået den ønskede tre meters kørselsafstand, ville robotten fortsætte med at stoppe og evaluere området, tage billeder af hver 45 graders region og fortsætte, hvis tiden tillader det. Dens sving syntes imidlertid større end anmodet, hvilket betyder, at koordinatdataene ville blive tilsløret.

Hver gang det stopper, blev der placeret et nyt punkt i den omtrentlige region af dets position på koordinatsystemet; det bemærkes imidlertid, at den indledende retning, hvormed roomba starter, spiller en afgørende rolle i udformningen af kortet. Hvis en kompasfunktion kunne implementeres, ville den have været brugt som en afgørende del af kortdesignet.

Den faktiske tid, som funktionen tager for at køre fuldt ud, går altid over den ønskede tid, hvilket er fornuftigt i betragtning af, at den ikke kan stoppe midt i en af dens genoprettelser. Desværre har denne version af billedtælling sine problemer, især i områder, der enten for det meste er monokromatiske eller varierer i lysstyrke; fordi den forsøger at skelne mellem to nuancer, har den en tendens til at opfatte objekter, der ikke er ønsket, derfor tæller den altid op til vanvittigt høje tal.

Trin 8: Konklusion

Konklusion
Konklusion

Selvom denne opgave var et meget eventyrligt og kreativt stykke arbejde, der medførte lettelsesglæde, kunne jeg ud fra mine personlige observationer se et stort antal fejl, der kunne være problematiske, både i koden og adfærden for robotten.

Begrænsningen ved at bruge specifikationen af tid i while loop gør, at den samlede tid er længere end ønsket; processen med panoramateknik og billedbehandling kunne faktisk tage længere tid, hvis den køres af en langsom computer eller ikke blev brugt på forhånd. Derudover handlede roomba, der blev brugt i vores præsentation, med et stort antal fejl, især i bevægelse, sammenlignet med simulatoren. Den anvendte robot havde desværre en tendens til at læne sig lidt til venstre, da den kørte lige og lavede større sving end ønsket. Af denne grund og mange andre anbefales det stærkt, at for at kompensere for disse fejl, skal der foretages ændringer for dens drejevinkler.

Ikke desto mindre er dette et langt, men intellektuelt stimulerende projekt, der havde fungeret som en interessant læringsoplevelse til anvendelse af koder og kommandoer til direkte at påvirke en egentlig robots adfærd.

Anbefalede: