Show simple item record

dc.contributor.advisorOnshus, Tor
dc.contributor.authorStenset, Arild
dc.date.accessioned2021-09-23T18:09:04Z
dc.date.available2021-09-23T18:09:04Z
dc.date.issued2020
dc.identifierno.ntnu:inspera:56990118:20965219
dc.identifier.urihttps://hdl.handle.net/11250/2780936
dc.description.abstractDenne oppgaven beskriver endringer gjort på roboten i detalj, hvordan de ble implementert og hvilke vurderinger som ble gjort underveis. Fra tidligere rapporter var problemer med høyre motor kjent i starten av oppgaven. Høyre motor ble byttet før den første navigasjonstesten ble gjennomført. Den første navigasjonstesten ble gjennomført mens man ventet på de nye motorene. Denne testen avslørte problemer som ikke er nevnt i de tidligere rapportene. Roboten viste tegn til at vinkelen sakte drifter. Siden avstandsmålingene regnes ut fra robotens vinkel, vil de også drifte. Dette medførte at målingene som blir sendt til serveren også flytter seg med vinkelen. En grundig undersøkelse av hva som forårsaker dette ble gjennomført, og en løsning som løser det ble implementert i koden. Løsningen medfører at sensitiviteten til gyroskopet er noe redusert, men har så langt ikke vist problemer under resten av testene. En annen oppdagelse som ble gjort samtidig er at vinkelestimatet fra kalman filteret ikke oppdateres like raskt som summen av vinkelhastighetene fra gyroen. Over noe tid førte dette til et betydelig avvik i vinkelen mellom de to. Vinkelen gitt av summen av vinkelhastigheter viste seg å være et bedre estimat for robotens vinkel. Installasjonen av de nye motorene, inkludert girboks, hjul og encodere ble installert uten store problemer. På grunn av manglende innganger på roboten kan ikke de nye encoderne benyttes fult ut. Et avvik mellom faktisk og oppgitt utveksling for girboksen ble avdekket gjennom testing. Kontrolleren for de forrige motorene viste seg å være vanskelig å justere for å passe sammen med de nye motorene. På bakgrunn av dette ble nye kontrollere laget og implementert. De nye kontrollerne består av en kontroller for vinkel og en kontroller for avstand. De to er implementert i to separate funksjoner som gjør det mulig å justere de individuelt. De nye kontrollerne sammen med de nye motorene gir gode resultater under navigasjonstester, men bør ha en ny justering for å fungere optimalt på flere typer underlag. Anti-kollisjons funksjonaliteten som ble implementert kjøres bare når roboten kjører fremover. Den benytter avstandsmålinger fra sensoren som peker forover for å detektere en mulig kollisjon. Sensoren har en ganske smal dekningsgrad som gjør at roboten fortsatt kan kollidere om et objekt er utenfor dekningssektoren til sensoren. Anti-kollisjonen har vist seg å stoppe roboten for hindringer rett foran den, men bør oppgraderes til å dekke et større område av fronten av roboten. Selv om roboten detekterer et objekt og stopper, kan objektet dekke en betydelig del av robotens front. For at roboten skal kunne håndtere dette ble kollisjons-sektorer implementert. Når roboten står i ro lager den sektorer der den har detektert kollisjoner. Disse sektorene brukes videre for å validere nye punkter den skal kjøre til. Om vinkelen til punktet er innenfor en sektor blir det forkastet før det blir håndtert videre av roboten. Kollisjonssektorene har vist seg å fungere, men på grunn av at sensorene roterer så sakte, tar det lang tid før en eventuell sektor blir klarert igjen. Den nye kommunikasjonsprotokollen for den nye serverapplikasjonen viste seg å ha uventede begrensninger. Størrelsen på meldinger som roboten mottar er begrenset fra en tidligere implementasjon. På tross av dette viste tester at en litt større melding fortsatt ble mottatt riktig av roboten. En videre utvidelse av protokollen må inkludere grundige undersøkelser om mottatte meldinger blir riktig mottatt av roboten om den nåværende maskinvaren fortsatt skal benyttes.
dc.description.abstractThis thesis describes the changes done to the robot in detail and covers how the implementation was done and which design choices were made. At the beginning of the thesis an issue with the right motor and the existing powertrain was known from earlier reports. Before the evaluation of the current navigation performance could be tested, the right motor was replaced. A new powertrain was ordered and while waiting for this, the navigation performance revealed issues which has not been mentioned in earlier reports. The issue is a slow drift in the robot's heading, this not only causes problems with navigation, but is also affecting the distance measurements sent to the server application. A thorough investigation to analyse the drift problem has been done, and a solution to the drift issue has been implemented in the software. The applied solution reduces the sensitivity of the gyro, but this has showed no signs of being a problem through all the performed tests. During the testing of the gyro, an issue with the update rate of the estimated heading from the kalman filter was discovered. The sum of the angular rates from the gyro showed to be a closer estimate for the robot's heading. The new powertrain was installed without major problems, however the full potential of the new encoders can not be utilized because of lacking input pins. Testing of the new powertrain revealed a deviation between the actual gear ratio and the ratio mentioned in the specifications. The previous motor controller showed to be difficult to tune to fit the new powertrain. A new controller design was made, where the heading and distance controllers now are separated into individual functions which makes it possible to tune them separately. The new powertrain combined with the current tune of the controllers offers good navigation results, but there is still room for a better tune of the controllers to give the robot better performance for different floor conditions. The current implementation of the anti-collision is only ran when the robot is driving forward. Because it only uses the forward distance sensor the robot can still hit objects outside the detection sector of the sensor. The anti-collision stops the robot, but has room for improvements, especially for detecting a possible collision outside the narrow sensor sector. Since the detection sector for a sensor is very narrow, the collision object may be larger. For the robot to discover the whole object, collision sectors was introduced and implemented. The collision sectors are used by the robot to validate waypoints before processing them. The collision sectors works as intended, but the slow turning speed of the sensors caused issues with clearing the sectors taking some time. The new communication protocol for use with the new server application showed to have unexpected limitations. Testing revealed that the limitations do not affect small changes in message size for messages received at the robot. To expand the protocol and the message size further, extended testing has do be done to ensure received messages arrives correctly.
dc.language
dc.publisherNTNU
dc.titlenRF52 robot with OpenThread
dc.typeMaster thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record