Vis enkel innførsel

dc.contributor.advisorOnshus, Tor Engebret
dc.contributor.authorMullins, Michael Skibeli
dc.date.accessioned2021-09-23T18:06:28Z
dc.date.available2021-09-23T18:06:28Z
dc.date.issued2020
dc.identifierno.ntnu:inspera:56990118:43313080
dc.identifier.urihttps://hdl.handle.net/11250/2780923
dc.descriptionFull text not available
dc.description.abstractDenne oppgaven fortsetter arbeidet utført av Blom (2020). Prosjektet handler om å produsere en server på et C++ Thread-nettverk som samarbeider med flere LEGO roboter for å løse Simultaneous Localisation and Mapping (SLAM) problemet. Ved oppstart av oppgaven er serveren utstyrt med et grafisk brukergrensesnitt og kommunikasjon mellom server og roboter er funksjonell. Oppgaven omhandler dermed implementasjon av en SLAM algoritme på serveren. Et litteratursøk er gjennomført med den hensikt å identifisere den mest passende SLAM-algoritmen for prosjektet. Algoritmen må være gjennomførbar med hensyn til de tilgjengelige robotene med sine sensorer, samt skalerbar med hensyn til fremtidige planer i prosjektet. Konklusjonen etter fullført litteratursøk er at et Rao-Blackwellized Partikkelfilter (RBPF) er den beste løsningen for dette problemet, potensielt med en utvidelse som gir en forbedret forslags-distribusjon. Konklusjonen er basert på løsningens effektivitet, nøyaktighet og utprøvde utvidelser for håndtering av flere roboter. Noen generelle endringer på serveren er gjennomført først for å tilrettelegge for implementasjonen av en SLAM algoritme. På lavt nivå har applikasjonen blitt konvertert til å være en 64-bit applikasjon fremfor 32-bit som den var før. Dette ble gjort for å ha mer minne tilgjengelig, ettersom SLAM algoritmen trenger potensielt mer minne enn 32-bit kan addressere. I tillegg er multithreading implementert i serveren for å forbedre funksjonaliteten når en tung SLAM algoritme er implementert. På høyere nivå er den visuelle representasjonen av kartet samt meldingsstrukturen endret til å være mer kompatible med SLAM. En utvidelse av kontrollpanelet er lagt til i brukergrensesnittet, hvor brukeren kan velge startposeringen til en tilkoblet robot. I tillegg er det utviklet en ny simulator som simulerer robotenes oppførsel i et simulert miljø mer presist enn den tidligere simulatoren. På den modifiserte serveren som er kompatibel, implementeres RBPF SLAM algoritmen. Den implementerte algoritmen får ikke til å konstruere et brukbart kart med simulatoren innenfor tidsrammen nødvendig for å kjøre i sanntid. Algoritmen blir derfor utvidet med en scan matching-algoritme for å øke nøyaktigheten og effektiviteten til algoritmen. Som scan matching-algoritme blir Novel point-to-point algoritmen (Konecny et al., 2016) implementert, modifisert til å være feature-basert. Den forbedrede RBPF SLAM algoritmen representerer det simulerte kartet rimelig nøyaktig og innenfor fornuftige tidsrammer, under visse betingelser. Serveren blir påfølgende testet med en ekte robot, hvorpå den klarer å representere the ekte kartet rimelig nøyaktig i et relativt ideelt miljø. I et mindre ideelt miljø er resultatet betydelig mindre nøyaktig. Konklusjonen av oppgaven er at en funksjonell SLAM-algoritme er implementert i serveren, selv om mer testing og optimalisering er nødvendig for å oppnå et tilstrekkelig robust system. Å bytte scan matching-algoritme kan være fordelaktig for effektiviteten, nøyaktigheten, og derav robustheten, til RBPF SLAM algoritmen. Øvrig er relevante endringer er gjennomført på serveren for å tilrettelegge for implementasjonen av en SLAM-algoritme. Et litteratursøk av tidligere løsninger innenfor SLAM er gjennomført, og en skalerbar, effektiv og nøyaktig SLAM-algoritme blir valgt for videre implementasjon. Etter at algoritmen er implementert, blir det gjennomført eksperimenter for å undersøke systemets funksjonalitet med både simulator og en ekte robot. Eksperimentene blir analysert og diskutert for å fremheve styrker og svakheter i implementasjonen. En kartleggelse av det nødvendige videre arbeid på serveren er også gjennomført.
dc.description.abstractThis thesis continues the work of Blom (2020) to develop a server on a C++ Thread network, which collaborates with multiple LEGO robots to solve the Simultaneous Localisation and Mapping (SLAM) problem. The initial server has a Graphical User Interface (GUI) with a grid map and communicates with connected robots. Hence, the continued development in this thesis is the implementation of a SLAM algorithm in the server. A literature review is first conducted in order to identify the most suitable SLAM algorithm for the problem, considering available robots and their sensors, as well as future plans of the project. The conclusion of the review is that a Rao-Blackwellized Particle Filter (RBPF), potentially extended with an improved proposal distribution, is the best solution for the problem given its speed, accuracy, and scalability for multiple robots. Some general modifications are made on the server in order to facilitate the implementation of a SLAM algorithm. On the lower levels, the application is converted from being 32-bit to 64-bit to achieve more addressing space, and the application is modified to execute tasks in separate threads running concurrently. On the higher levels, the visual representation of the map and the message structure between robots and server are modified to be more compatible with solving the SLAM problem. A new control panel allowing the user to set the initial pose of a connected robot is added. Additionally, a new simulator is developed, which more accurately simulates the robots' behaviour in a simulated environment. With the server being compatible with SLAM, the RBPF SLAM algorithm is implemented. When testing with the simulator, the algorithm is not able to accurately represent the map within a reasonable computational cost to run in real-time. The algorithm is therefore extended with a scan matching algorithm in order to improve the accuracy and computational cost. The implemented scan matching algorithm is the Novel point-to-point (P2P) algorithm (Konecny et al., 2016), modified to become a feature-based algorithm. With the improved RBPF SLAM implemented, the algorithm is able to accurately represent the simulated map, within a reasonable computational cost, under certain conditions. The server is further tested with a real robot, and is able to accurately represent the real map in reasonably ideal conditions, although significantly less accurately in non-ideal conditions. The conclusion of the thesis is that a functional SLAM algorithm is successfully implemented in the server, although further research and optimisation is necessary to achieve a more robust system. Changing the scan matching algorithm may be advantageous for the efficiency and accuracy, and thereby the robustness, of the RBPF SLAM algorithm. Otherwise, relevant modifications are made in the initial server to facilitate the implementation of the SLAM algorithm. A review of previous work within the field is completed, from which a scalable, computationally effective, and accurate algorithm is selected for implementation. After the algorithm is implemented, several experiments are conducted in order to test the system's functionality with the simulator and the real robot. The experiments are analysed and discussed to determine weaknesses and strengths of the implementation, and the further work to be done on the server is discussed.
dc.language
dc.publisherNTNU
dc.titleImplementation of Simultaneous Localisation and Mapping in Robotic System using the improved Rao-Blackwellized Particle Filter
dc.typeMaster thesis


Tilhørende fil(er)

FilerStørrelseFormatVis

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

Vis enkel innførsel