Vis enkel innførsel

dc.contributor.advisorOnshus, Tor
dc.contributor.authorHalvorsen, Karoline
dc.date.accessioned2021-09-23T18:21:13Z
dc.date.available2021-09-23T18:21:13Z
dc.date.issued2021
dc.identifierno.ntnu:inspera:66462738:20909299
dc.identifier.urihttps://hdl.handle.net/11250/2781018
dc.description.abstractI denne masteroppgaven har fokusområdet vært å undersøke årsaken til feil i Arduino-robotens posisjonsestimering. Dette har blitt gjort ved å evaluere posisjonsestimering under firkanttesten, for å finne posisjonsnøyaktigheten. I tillegg evalueres estimeringsapplikasjonen og alle sensorer som er koblet til roboten. I begynnelsen av prosjektet ble noen feil oppdaget. De fleste ble løst, utenom problemet med lidaren, derfor ble den utelatt fra prosjektet. Roboten har en tendens til å få en større feil etter kontinuerlige runder i firkanttesten. Det ble oppdaget at roboten tilsynelatende har en stokastisk oppførsel. Dette kan skyldes et problem med FreeRTOS eller et initialiseringsproblem. Det er ikke undersøkt nærmere, men er satt som et forslag for videre arbeid. Roboten er i tilegg testet i en mer omfattende bane, og i rundbanen, med varierende resultat. Denne oppgaven har i tilegg undersøkt vinkelhastigheten, dTheta, i robotens heading. dTheta er et direkte resultat av vekting av målinger fra gyroskopet og enkoderen. Den estimerte robot-headingen er en integrasjon av dTheta. Robotens heading har en økende feil over tid, som følge av denne integrasjonen. Feilen varierte når vektingen mellom gyroskopet og enkoderen ble endret. Oppgaven vil også beskrive hvordan alle sensorer blir testet. De fem sensorene på roboten ble testet og bedømt til å være brukbare. Gyroskopet hadde en drift på 0,02 grader i løpet av 30 minutter. Bias ble funnet å være rundt -5 til -6 dps, men hadde to avvik, med en økning på 300 %. Plasseringen av akselerometeret ødelegger tildels dataene. Når roboten står stille, kan alle aksene måle 1 g i vertikal retning, men hadde en målefeil på 0,49 til -0,0320 g. Videre ble de nye enkoderne testet, og funnet å ha et sted mellom 90-110 tikk per hjulrotasjon. I den siste perioden av arbeidet med masteren ble det oppdaget at funksjonen brukt til å hente ut antall enkoder-tikk, var feil. Etter at den var fikset, ble det funnet å være 225 steg per hjulrotasjon. Kompasset ble kalibrert, noe som resulterte i en mer nøyaktig måling sammenlignet med forrige kalibrering. Den nye kalibreringen av kompasset gir en x-offset på -456 milligauss og en y-offset på 246 milligauss. For å måle avstand ble IR-sensorene kalibrert. Den gamle kalibreringen måler ofte for langt på korte avstander (opptil 30 cm), og den nye kalibreringen underestimerte avstanden. Den nye kalibreringen fluktuerer mer enn den gamle, hvilket resulterte i konklusjonen om å beholde den gamle kalibreringen. For å forbedre posisjonsestimatoren presenteres et design som bruker et utvidet Kalman-filter til å fusjonere sensordataene. Dette er ikke implementert og er forelsått som fremtidig arbeid.
dc.description.abstractIn this master thesis, the focus area has been to investigate the sources for the error in the Arduino robot's position estimation. This has been done by evaluating position estimation in square tests, to find the position accuracy. In addition, the estimation application and all sensors connected to the robot, are evaluated. In the beginning of the project, some bugs were detected. Most were fixed, but the problem with the lidar was not solved and was excluded from the project. In the continuous square test, the robot tended to get a larger error after driving multiple rounds. It was detected that the robot is stochastic in the way it behaves. This might be due to a problem with FreeRTOS or an initialization problem. This has not been investigated further but is left as a suggestion for future work. The robot was also tested in a more extensive track and in the round court, with varying results. This project has, in addition, investigated the angular velocity, dTheta, of the robot's heading. dTheta is a direct result from the weighted data measurement from the gyroscope and encoder. The estimated robot heading is an integration of dTheta. The heading of the robot is found to have an increasing error over time, due to integration. The error varied when changing the weighting between the gyroscope and encoder. The thesis will also describe how all sensors are tested. The five sensors on the robot were tested and found usable. The gyroscope was found to have a drift of 0.02 degrees in 30 minutes. The bias was found to be around -5 to -6 dps, but two outliers have been found, with an increase of 300%. The placement of the accelerometer corrupts the data. When the robot is standing still, all axes can measure 1 g in the vertical direction, but had a measurement error of 0.49 to -0.0320 g. The new encoders were then tested and found to have between 90-110 ticks per wheel rotation. In the last period of this thesis work, it was discovered that the function used, to extract encoder ticks, was wrong. After it was fixed, the encoder ticks were found to be 225 ticks per wheel rotation. The compass was calibrated, which resulted in a more accurate measurement compared to the previous calibration. The new calibration of the compass gives an x offset of -456 milligauss and a y offset of 246 milligauss. To measure distance, the IR sensors were calibrated. The old calibration often measures too far, at shorter distances (up to 30 centimetres). The new calibration underestimated the distance. However, the new calibration was fluctuating more than than the old one, which resulted in the conclusion of keeping the old calibration. To improve the position estimate, a design for an extended Kalman filter to fuse the sensor data, is presented. This has not been implemented and is left for future work.
dc.languageeng
dc.publisherNTNU
dc.titleAnalysis of position estimation in a dead reckoning navigation robot
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel