Introduction

The indoor-location-emulator is a project that was designed to compile and provide a set of synthetic data from a simulated environment that would allow for the application, study, and evaluation of a set of real characteristic factors, and that would allow the creation of real automatic learning models in the future, using Machine Learning techniques, to be applied in a context of asset localization and prediction in an indoor environment, using passive RFID tags and the RSSI values obtained from RF antennas. Use a decoupled architecture with pluggable location modules, allow users to create routes, evaluate movement and train ML models. The communication between system modules is done through the MQTT protocol over websockets.

The mapping of indoor spaces was carried out through the plugin map-gl-indoor.

Main Modules:

Inside the src directory are disposed the main modules:

  • frontend: This module includes the frontend processing of Indoor Location Emulator (based on Mapbox GL JS) [Developed with HTML, Vanilla Javascript & CSS].
  • backend: This module includes the backend processing of Indoor Location Emulator [Developed in Python].
  • ml-models: This module includes Machine Learning scripts [Developed in Python].
  • static-files: This module includes the Static Files objects used in Emulation.

For the communication of the system modules, an MQTT broker mosquitto was configured. Feel free to use a similar approach or any other MQTT broker.

Important Notes:

  • This page is an aggregator of all the documentation pages of the different modules of the indoor localization emulation system.
  • All the relevant information of each module is presented in the corresponding documentation pages, as well as the useful commands to setup the solution.
  • Follow the links to see their content.

Frontend Documentation

JavaScript Documentation of Frontend Module, built with jsdoc and better-docs: here.

Backend Documentation

Python Documentation of Backend Module, built with pdoc: here.

ML Models Documentation

Python Documentation of ML Models Module, built with pdoc: here.

Deployment

The docker-compose.yml file include the setup for:

  • An image of nginx to serve frontend and static-files modules.
  • An image of eclipse-mosquitto to setup MQTT broker.
  • A reference to generate an image for backend module to an individual container.
  • An reference to generate an image for ml-models module to an individual container.
The src/mosquitto directory includes the eclipse-mosquitto configuration files used in communication of the Emulator modules (deployable via docker compose).
  • Install docker and docker-compose (Example Tutorial: here).
  • Then on project root directory, on command prompt execute:
    docker-compose up -d
  • To have a look on deployed containers, on command prompt execute:
    docker ps -a

Demo

After the deployment is completed nginx, mosquitto, backend and ml-models containers must be up, then it is possible run a demo of the emulator at: http://localhost:8080.

About Project

This work is supported by the European Regional Development Fund (FEDER), through the Competitiveness and Internationalization Operational Programme (COMPETE 2020) of the Portugal 2020 framework [Project SDRT with Nr. 070192 (POCI-01-0247-FEDER-070192)].

A project by:

Funded by:

GitHub Repository: