ebook img

Improving Navigation and Mapping with Arduino robot PDF

74 Pages·2017·12.56 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Improving Navigation and Mapping with Arduino robot

Improving Navigation and Mapping with Arduino robot Jørund Øvsttun Amsen Master of Science in Cybernetics and Robotics Submission date: June 2017 Supervisor: Tor Engebret Onshus, ITK Norwegian University of Science and Technology Department of Engineering Cybernetics i Problem description TheLEGO-robotprojecthasbeenongoingsince2004andhasbeenthesubjectofseveralmas- terthesisandprojects. Duringthissemesteritconsistedoffourrobotsandaserverapplication. The robots all had motion sensors, wheels and four distance sensors rotating to cover 360 de- grees.Usingthis,theywerecapableofrecievingcommandswithheadinganddistancefromthe serverandreturninformationaboutdistancefromeachsensoranditsownestimatedposition. The goal was to navigate and map an unknown labyrinth. The server functions as the brain, issuingcommandsandcommunicatingwithalltherobotsinvolved, usinganA*shortestpath algorithmaswellasoptimallycoordinatingthedifferentrobotsbasedonpositiontoexplorethe unknownareas. OftheserobotstheArduinoisthenewestadditionandthefocusofthispaper. TheArduino as with the other robots use a dead-reckoning method of position estimation using an IMU, encoder and magnetometer. The robot’s ability to estimate and navigate according to the real world andserver commandswas foundtobe lacking, and causedmappingover large areas to beskewedandwarped. The purpose of this project was to focus on the two main points of accuracy; the naviga- tionoftherobotbasedonitspositionestimation,andtheacquiringofthispositionestimation throughsensorusage. Thefollowingtaskswereagreedupon. 1. Aquireanoverviewofsensorcapabilitiesandaccuracies. 2. Improvesensorsifpossible. 3. Improvehardwarefaults. 4. Improvenavigationalgorithm. ii Preface This Master thesis is the culmination of 5 years at Norwegian University of Science and Tech- nology (NTNU). It is a project covering 20 weeks of work on a subject of my own choosing. It followsinthefootstepsofstudentsonaprojectthathasbeenon-goingatNTNUsince2004. It hasbeenanenrichingandexcitingexperiencetoworkonaprojectsomanydifferentstudents haveputtheirmarkon. Theworkonthisthesishasbeenindividual,howeverI’vehadthepleasureofworkingwithother studentsonthesameproject,creatingavariedandinterestingenvironment.Duringthisproject I’velearnedalotaboutalargevarietyofengineeringsubjects,bothhardwareandsoftwareand howmanysmallpartscometogethertomakealargesystem. ThankstoKristianLienandLarsMariusStrande,whomcreatedalivelyandenjoyableworking area. ThankstoJanLeistadforgreatworkontheplate,StefanoBertelliandtheothertechnicalstaffat D040fortheirpatienceandhelp. AbigthankstoTorOnshus, whohasgivenmoresupportthanIeverexpected, andhasbeena sourceofbothknowledgeandmotivationeveryweek. JørundAmsen Trondheim,2017-11-06 iii Summary and Conclusions During this Master Thesis work has been made on the Arduino robot to improve its general capabilities. Workhasalsobeenmadetofurtherexplorethepossibilitiesofthesensorsusedon allrobotsinthesystem. Ahardwarefaultwiththewheelarmaturecogsontheleftsideoftherobotwasdiscovered. Thisproblemleadtotherobotfaultilyestimatingitspositionandbeunabletodriveinastraight line. Thiscausedtherobottooftendriveintowallsandnotgivereliableinformationaboutthe mappingduetoitscorruptedpositionestimation. Thisproblemwassolvedusingametalplate mountedonthearmaturetoimproveitsstabilityandthetightnessofeachcogontheleftside, sothecogscouldnotsliponeachother. Thissolutioncompletelyremovedtheaforementioned problem and the robot now registers the correct wheel rotation. We do not expect a similar problem to occur on the right side as the work on the armature on that side is significantly better. Eachsensorwassearchedforfaultsandtestedforaccuracy.Theencodersweretestedmainly by the wheel factor; the number converting encoder "ticks" to distance moved. This num- berwasfoundtobeadequate, howevercautionmustbemadeastothepossibilityofdiffering wheelfactorsdependingonthesurface. ThesurfacetestedonwasroomB333,"Slangelabben" atNTNU. Thegyroscopewastestedduringrotationandcomparedtotheencoderandthereal-world valueusingtheOptiTrackreflector-camerasystem. Thegyroscopewasfoundtobeslightlyoff the real value each test. It was decided to poll for mean value more frequently to remove bias on the gyroscope on a more consistent basis. This seemed to improve the rotation estimation duringourfinaltests. Thecompasswasalsotestedduringrotationandfoundtobeverylacking. Thenoisefactor onthesensorprovedtoogreattoadequatelyfilteroutduringrotation. Duetothis,thecompass valueshadanegativeimpactontheheadingestimation,andwasremovedfromthesystem. It isadvisedthatmoreworkbedonetoexplorethepossibilitiesoffilteringthecompassanduseit toresetgyroscopeoff-set. Theaccelerometerwasfoundtogivevaluable, butverynoisydata. Attemptsweremadeat iv filteringandusingthedata,howevernoneprovedusableenoughtodirectlyimplementonthe current position estimation. It was decided to not be included in the software. More work is advised as the data is valuable and could potentially be used to detect slippage of the wheels andcrashes. As the old navigation algorithm was not based on coordinates, but rather on distance and heading, it was decided that a new navigation algorithm be implemented in the robot. This algorithm is based on converting the heading and distance commands the server sends into specific coordinates, then use a similar controller to minimize the distance to the target. This controller is a two-step algorithm, which first rotates to the target, then drives forward while continuously controlling the heading towards the coordinates. A lot of focus was also put on smoothermovements,aswewitnessedalotofovershootontherobotbothduringrotationand forward movement due to the robot’s mass. This new algorithm showed much greater results thanexpectedandhasalmosteliminatedthenavigationerror. During the final testing with the other robots it was shown to work well even if it showed someexpectedfaults. Thenavigationissmootherandmorereliablethanbefore,andtheposi- tionestimationisadequatebasedonitscurrentalgorithm. v Oppsummering og konklusjoner UnderdennemasteroppgavenerdetgjortarbeidpåArduino-robotenforåforbedredensgenerelle evner.Detharogsåblittarbeidetforåundersøkemulighetenetilsensorenesombrukespåsam- ntlige roboter i systemet. En maskinvarefeil med tannhjulene i hjulopphenget på venstre side av roboten ble oppdaget. Dette problemet førte til at roboten feilaktig estimerte sin posisjon og ikke klarte å kjøre i en rett linje. Dette førte til at roboten ofte kjørte inn i vegger og ikke ga påliteliginformasjonomkartleggingpågrunnavsinkorrupteposisjonsestimering. Detteprob- lemet ble løst ved hjelp av en metallplate montert på opphenget for å forbedre stabiliteten og tetthetentilhverttannhjulpåvenstreside,slikattannhjuleneikkekunneglippepåhverandre. Denne løsningen fjernet det tidligere nevnte problemet og roboten registrerer nå riktig hjul- rotasjon. Vi forventer ikke at et lignende problem oppstår på høyre side, da arbeidet på op- phengetpådensidenerbetydeligbedre. Hversensorblesøktetterfeilogtestetfornøyaktighet. Enkoderene ble testet hovedsakelig i forhold til hjulfaktoren; tallet som konverterer encoder "ticks" til avstand flyttet. Dette tallet ble funnet tilstrekkelig, men det må utvises forsiktighet ommulighetenforforskjelligehjulfaktoreravhengigavoverflaten. Overflatensombletestetvar romB333,"Slangelabben"PåNTNU. Gyroskopetbletestetunderrotasjonogsammenlignetmedenkoderenogvirkeligverdived hjelpavOptiTrack-reflektorkamera-systemet. Gyroskopetblefunnetåværelittunnadenvirke- ligeverdienhvertest. Detblebesluttetåfinnegjennomsnittligverdioftereforåfjernebiaspå gyroskopetpåenmerkonsistentbasis.Dettesyntesåforbedrerotasjonsestimatetunderdesiste testene. Kompassetbleogsåtestetunderrotasjonogfunnetåværesværtmangelfullt. Støyfaktoren påsensorenvistesegforstortilåfiltreretilstrekkeligutunderrotasjon.Pågrunnavdettehadde kompassverdieneennegativinnvirkningpåkursestiamtet, ogblefjernetfrasystemet. Detan- befalesatdetgjøresmerarbeidpååutforskemuligheteneforåfiltrerekompassetogbrukedet foråtilbakestillegyroskopetsinoff-set. Akselerometeret ble funnet å gi verdifulle, men svært støyende data. Forsøk ble gjort på filtrering og bruk av dataene, men viste seg ikke brukbart nok til å implementere direkte på nåværendeposisjonsestimering. Detblebesluttetåikkeinkludereakselerometeretiprogram- vi varen. Mer arbeid er anbefalt da dataene er verdifulle og kan potensielt brukes til å oppdage glidningavhjuleneogkrasj. Ettersom den gamle navigasjonsalgoritmen ikke var basert på koordinater, men heller på avstand og på kurs ble det bestemt at en ny navigasjonsalgoritme skulle bli implementert i roboten. Dennealgoritmenerbasertpååkonverterekurs-ogavstandskommandoeneserveren sendertilkoordinater,deretterbrukeenlignendekontrollerforåminimereavstandentilmålet. Dennekontrollerenerento-trinnsalgoritme, somførstroterertilmålet, ogsåkjørerfremover mensdenkontinuerligregulererkursenmotkoordinatene. Detbleogsålagtmyevektpåglat- tere bevegelser, da vi opplevde mye "overshoot" på roboten både under rotasjon og fremover- bevegelsepågrunnavrobotensmasse. Dennenyealgoritmenvistelangtbedreresultaterenn forventet,ogharnesteneliminertnavigasjonsfeilen. Under den endelige testen med de andre robotene ble det vist å fungere godt, selv om det oppstodnoenforventedefeil. Navigasjonenerjevnereogmerpåliteligennfør,ogposisjonses- timeringeertilstrekkeligbasertpådennåværendealgoritmen. Contents Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii SummaryandConclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Oppsummeringogkonklusjoner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v 1 Introduction 2 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Earlierwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Goalsandlimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 BackgroundandTheory 4 2.1 SystemOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Statusfromearlierwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Theoreticalbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 Gyroscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.2 Compass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.4 Accelerometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.1 Gyroscopehandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2 Compasshandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.3 Encoderhandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.5 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.6 Positionestimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 vii CONTENTS viii 2.6.1 Currentmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.7 Equipment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.7.1 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.7.2 Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 Problemsandsolutions 18 3.1 Leftmotorproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Sensorimprovements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.1 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.2 Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3 Positioncontrolimplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.1 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.2 Testingandsimulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.3 Implementationontherobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4 TestingandResults 44 4.1 Leftmotorproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2 Rotationtests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3 Navigationaltests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3.1 Squaretests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.2 Longermovementtests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.3.3 Fulllabyrinthtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5 Discussionandfurtherwork 58 5.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.1 Leftmotorfix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.2 Improvementstothesensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1.3 Navigationalgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 RecommendationsforFurtherWork . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 A AdditionalInformation 63 A.1 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Description:
The goal was to navigate and map an unknown labyrinth. The server functions .. The work on this project is primarily on the Arduino robot, its hardware and software. This does .. Overview of project progression, list of to-dos and.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.