dc.contributor.advisor | Onshus, Tor | |
dc.contributor.author | Pedersen, Kristian Fjelde | |
dc.date.accessioned | 2019-10-31T15:13:24Z | |
dc.date.issued | 2019 | |
dc.identifier | no.ntnu:inspera:35771502:16987766 | |
dc.identifier.uri | http://hdl.handle.net/11250/2625758 | |
dc.description.abstract | Denne oppgaven beskriver implementering, bruk og analyse av to forskjellige kommunikasjonsprotokoller
designet for IoT implementert som to separate løsninger for å betjene
roboter som utførerer ”Simultaneous Localization And Mapping” (SLAM). Nettverkstopologien
som ble valgt, var mesh, og de to protokollene er Bluetooth Low Energy Mesh
og Thread. Oppgaven inneholder også relevant teori, informasjon om både hardware og
software brukt i oppgaven, og robotapplikasjonen slik den virker.
Den første nettverksprotokollen implementert var Bluetooth Low Energy Mesh, som
ble implementert ved hjelp av Nordic Semiconductors Software Development Kit (SDK)
for Mesh- og System-on-Chip-løsninger. Nye modeller ble implementert for å være kompatible
med Bluetooth Low Energy Mesh-spesifikasjonen, til tross for at ikke all funksjonalitet
ble tatt i betraktning. Dessuten ble et UART- og USB-grensesnitt satt opp for å
kommunisere med robotene, som de allerede gjorde med den forrige løsningen, for å se
hvordan implementeringen oppførte seg.
Den andre protokollen, Thread, ble også implementert med et SDK fra Nordic Semiconductor
basert på en Open-Source-implementering av Thread, OpenThread. Applikasjonslaget
i Thread-implementasjonen bruker MQTT-SN, som er et publish/subscribe system
for meldingsutveksling. Et UART-grensesnitt ble også implementert med løsningen for å
imøtekomme meldinger fra robotene. Meldingene ble sendt til en ekstern server gjennom
en gateway lokalisert på en Raspberry Pi 3+, som også fungerer som en Thread router.
Noen av sensorene på roboten ble kalibrert og testet mot en ny server som ble implementert
på samme tid som denne oppgaven. En ny kommunikasjonsstack ble også laget
til robotprogramvaren, og fjernet dermed noe av den tidligere programvaren, for å lage et
mer minimalistisk grensesnitt til de nye applikasjonene.
Ulike testoppsett ble satt opp for å få en dypere forståelse av hvordan programmene
presterte med hensyn til pålitelighet, skalerbarhet, forsinkelse og dataflyt. Verktøy for
monitorering og analyse av nettverk ble satt opp for de to programmene for å få en oversikt
over meldingsoverføringer mellom enheter i Mesh-nettverkene i sanntid. Data ble deretter
hentet ut for å visualisere meldingsflyt, hvis og hvor meldinger gikk tapt og hvordan de
ble behandlet på ulike punkt med tanke på blant annet forsinkelse. | |
dc.description.abstract | This thesis describes the implementation, use, and analysis of two different communication
protocols designed for the internet of things, IoT, implemented as two separate solutions
to serve robots doing Simultaneous Localization and Mapping (SLAM). The network
topology chosen was mesh, and the two protocols were Bluetooth Low Energy Mesh and
Thread. The thesis also covers the relevant theory and a look at the hardware and software
used.
The first network protocol was Bluetooth Low Energy Mesh, which was implemented
using Nordic Semiconductor’s software development kit for mesh and system-on-chip solutions.
New models were implemented accordingly to be compliant with the defined
Mesh Profile and Model specification, though not all features were taken into consideration.
Besides, a UART and a USB interface were set up to communicate with the robots
and the host computer as they already did with the previous solution, and to see how the
implementation behaves.
The second protocol, Thread, was also implemented with a software development kit
by Nordic Semiconductor based on the open-source implementation of Thread, OpenThread.
The application layer of the Thread implementation features MQTT-SN, which is a publish/
subscribe message transport system. A MQTT-SN topic structure for message publishing
and subscribing was made to suit the system in the way of best practice. A UART
interface was also implemented with the solution to accommodate messages from the
robots. The messages were published to an external broker through a gateway located
on a Raspberry Pi 3+, which also acts as a Thread Border Router.
Some sensors on the robot were calibrated and tested towards a new server that was
implemented at the same time as this thesis. Also, a new communication stack was made
on the robot, removing some of its previous parts, to make a more lightweight interface to
the new applications.
Different test setups were made to get a deeper understanding of how the applications
performed in terms of reliability, scalability, latency, and throughput. Network monitors
and sniffer tools were set up for the two applications to enable real-time message transmission
between the devices in the mesh networks. Data were extracted to visualize the
message flow, if they were lost and how they were processed where that was needed. | |
dc.language | eng | |
dc.publisher | NTNU | |
dc.title | Mesh Networking for IoT - Implemented on robots using Bluetooth Low Energy Mesh and Thread | |
dc.type | Master thesis | |