Show simple item record

dc.contributor.advisorOnshus, Tor
dc.contributor.authorGrindvik, Torstein
dc.date.accessioned2019-10-31T15:05:43Z
dc.date.available2019-10-31T15:05:43Z
dc.date.issued2019
dc.identifier.urihttp://hdl.handle.net/11250/2625684
dc.description.abstractDenne tesa hadde som oppgåve å omskrive ein komplett SLAM serverapplikasjon i C++ programmeringsspråket, då Java serverapplikasjonen tidlegere i bruk skulle bli forkasta. Oppgåva innbefatta å lage ein grafisk applikasjon for teikning av målingar sendt frå robotar, å lage eit brukergrensesnitt for å la brukarar yte kontroll over forskjellege oppgåver, og å implementere ein framtidsretta kommunikasjonsmetode med robotar. Kommunikasjonsoppsettet brukt av Java serverapplikasjonen bygde på Bluetooth Low Energy og brukerimplementerte protokollar. Denne implementasjonen vart forkasta, då den forhindra framgang i utvikling og medfulgte fleire begrensningar. Eit eksempelstudie vart utført for å vurdere fordelar ved bruk av eit alternativ kommunikasjonsoppsett. Det nye oppsettet brukte Thread nettverksteknologi og løyste begrensningane ved forrige oppsett. Robotane hadde ikkje støtte for det nye oppsettet då nyare maskinvare var påkrevd. Dette vart løyst til ein viss grad ved å lage eit overgangslag som bestod av maskinvare med støtte for den nye teknologien og programvara for å styre den, men denne løysinga er kun meint som ei midlertidig løysing. Det er råda å oppgrade robotar til ny maskinvare. Eksperimenter med bruk av robotar viste at den nye serverapplikasjonen virka som tenkt gitt omfanget til tesa: Ein grafisk C++ SLAM serverapplikasjon bygd i moderne C++ med enkelt utvidbart brukergrensesnitt og eigenskapar plotta målingar frå robotar vellukka via eit meir berekrafig programvaregrunnlag, med dokumenterte eksempler på videreutvikling av applikasjonen. Ein simulert programvarerobot har vore brukt til å teste serveren og kan bli aktivert via brukergrensesnittet. Dette har tillatt testing av robustheita til serveren, verifikasjon av eigenskapar til robot-kontrollpanel, og profilering av langtidstestar utan behov for fysisk robotinteraksjon. Testar med ekte robotar gikk bra, då den nye applikasjonen plotta robotmålingar og ga kommandoar for robotar til å bevege seg mot. Robotar reagerte i samsvar med dette. Samanlikna med Java serverapplikasjonen er den nye applikasjonen meir fleksibel i utvikling og har fleire nyttige grunnleggjande eigenskapar, men har enno ikkje SLAM eigenskapar på høgt nivå. Fleire teknologiske begrensningar er no ikkje lenger til stades som følgje av den nye applikasjonen: Eit vilkårleg antal robotar kan no bli tilkopla, kommunikasjonen er mindre skøyr og svært forenkla, og den nødvendige maskinvara og programvareoppsettet er forenkla for neste generasjons robotar.
dc.description.abstractThis thesis was tasked with rewriting a complete SLAM server application in the C++ programming language, as the Java server application previously in use was to be discarded. The task included creating a graphical application for drawing measurements sent by robots, creating a user interface in order to let users issue control over various tasks, and implementing a future-proof communication method with robots. The communication stack used by the Java server application built upon Bluetooth Low Energy and user-implemented protocols. This implementation was entirely discarded, as it was found to greatly hinder development progress and provided several limitations. A case study was conducted in order to consider the benefits of an alternative communication stack. The new stack used Thread networking technology, and solves the limitations of the previous stack. Robots did not have support for the new stack as newer hardware was required. This has been mitigated to some degree by creating a legacy layer consisting of hardware with support for the new technology and the software to control it, although this solution is meant for the short term. It is advised to upgrade robots to new hardware. Experiments using robots proved the new server application to work as intended by the scope of the thesis: A graphical C++ SLAM server application built in modern C++ with easily extensible user interfaces and features successfully plotted robot measurements via a more sustainable software stack, with documented examples on how to further extend the application. A simulated software robot has been used to test the server and can be activated through the user interface. This has allowed for testing the robustness of the server, verifying robot control panel features, and profiling long-running tests without the need of physical robot interaction. Tests using real robots were successful as the new application plotted robot measurements and issued commands for robots to move towards. Robots responded accordingly. Compared to the Java server application, the new application is more flexible in development and has more useful basic features, but does not yet have higher level SLAM features. Several technological limitations are no longer present due to the new application: An arbitrary number of robots can be connected, communication is less brittle and greatly simplified, and the necessary hardware and software setup is simplified for next generation robots.
dc.languageeng
dc.publisherNTNU
dc.titleCreating the foundations of a graphical SLAM application in Modern C++
dc.typeMaster thesis


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record