Vis enkel innførsel

dc.contributor.advisorHendseth, Sverre
dc.contributor.authorGöncz, Lasse
dc.date.accessioned2021-09-23T18:00:23Z
dc.date.available2021-09-23T18:00:23Z
dc.date.issued2020
dc.identifierno.ntnu:inspera:56990118:45475841
dc.identifier.urihttps://hdl.handle.net/11250/2780884
dc.description.abstractSom en del av NTNU Cyborg's langsiktige mål om å utvikle en autonom robot som kan kommunisere med biologiske nevrale nettverk i en lukket sløyfe konfigurasjon har en prototypet robot med navnet The Cyborg vært under utvikling. Store deler av navigasjonssystemet på Cyborgen består av utdatert kildekode, noe som setter funksjonelle begrensninger for navigasjon og muligheter for videreutvikling. Målet for dette prosjektet har derfor vært å re-implementere den utdaterte navigasjonsstacken med et nytt, mer robust og fleksibelt design, samt å optimalisere lokaliseringssystemet basert på en kvantitativ studie. For å løse de fire primære navigajsonsproblemene med kartlegging, lokalisering, banestrying og kollisjon unngåelse har et nettverk med ROS noder blitt utviklet med grunnalg i Robot Operating System (ROS) sin navigasjonsstack. Ulike banestyringsalgoritmer har blitt testet og konfigurert basert på eksperimentell data, og lokaliseringssystemet har blitt forbedret basert på en kvantitativ studie av konvergenstiden for variansen i de estimerte posisjonene kalkulert av Adaptive Monte Carlo Localization (AMCL) algoritmen. Den endelige versjonen av den re-implementerte navigasjonsstacken løser alle de fire nevnte navigasjonsproblemene med en oppførsel som tilfredsstiller menneske-robot interaksjon. I tillegg har lokaliserings algoritmen blitt forbedret med 55.6 % med hensyn til konvergenstiden for variansen i de estimerte posisjonene fra AMCL algoritmen. Til tross for at ikke alle funksjonene fra det tidligere navigasjonssystemet har blitt implementert, så fungerer det re-implementerte navigasjonssystemet som et fleksibelt grunnlag som muliggjør en mengde forbedringer og videreutvikling i fremtiden. Det modulære designet og bruken av åpen kildekode gjør systemet mer robust mot bugs, programvarefeil og utbytting av maskinvare/programvare.
dc.description.abstractAs part of NTNU Cyborg’s long-term research effort aimed at developing an autonomous robot interacting with a biological neural network in a closed-loop system, a prototype robot named The Cyborg has been under development. Major parts of the current navigation system on the Cyborg consists of legacy code, thus posing limitations on navigational functionality and possibilities for future development. The objectives of this project have been to address those issues by re-implementing the navigation stack with a more robust and flexible design, and optimize the localization system based on a quantitative study. With the Robot Operating System (ROS) navigation stack as foundation, a network of ROS nodes have been developed to solve the navigation tasks of mapping, localization, path planning, and obstacle avoidance. Various path planning algorithms have been tested and tuned based on experimental data, and the localization system have been improved based on a quantitative study of variance convergence in the estimated pose calculated by the Adaptive Monte Carlo Localization (AMCL) algorithm. The final version of the implemented navigation stack solves all four navigation tasks with a behavior customized for social human-robot interactions. Additionally, the performance of the AMCL algorithm was improved by 55.6% with respect to variance convergence time in the calculated pose estimations. Even though some navigational functionality is lost from the old system, the new navigation stack serve as a solid foundation that allows for a great number of modifications and improvements in the future. The modular design and use of open source code makes the system more robust to bugs, isolated issues, and hardware/software changes.
dc.language
dc.publisherNTNU
dc.titleDevelopment of a New Navigation Stack on the NTNU Cyborg
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

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

Vis enkel innførsel