El posicionamiento en interiores de personas, animales y objetos ha experimentado avances significativos, impulsado especialmente por el auge del Internet de las Cosa (IoT), esto ha supuesto una demanda creciente en servicios centrados en la localización. Aunque el GPS ha sido la tecnología principal para este propósito, su uso en espacios interiores se ve limitado debido a la pérdida de señal del satélite recibida por el dispositivo a localizar. Para contrarrestar estas limitaciones en espacios de interior, se están desarrollando tecnologías complementarias al GPS, como la navegación inercial, el posicionamiento basado en Wi-Fi o Bluetooth, y la integración de sensores adicionales en los dispositivos para mejorar la precisión de la ubicación en estos entornos.
Para la realización de este proyecto se ha centrado el desarrollo en dos metodologías de localización: trilateración y “fingerprinting”. Estos métodos utilizan la tecnología Bluetooth de baja energía (BLE) y la intensidad de la señal recibida (RSSI) para estimar la posición. Para su implementación se utilizan balizas BLE que se distribuyen por el entorno, y un dispositivo ESP32 programado en Arduino que recoge las señales. Estas señales son procesadas posteriormente de forma ‘offline’ en un ordenador.
Se ha seleccionado un dispositivo con microprocesador ESP32 por su capacidad de procesamiento, recursos y software existente. El ESP32 es empleado para recoger señales BLE y guardar la información en ficheros CSV. Debido a la tarea sencilla que va a tener este microprocesador, no se ha visto la necesidad de emplear otras opciones más complejas como pueden ser los STM32 de STMicroelectronics.
En cuanto al desarrollo del sistema de posicionamiento, como primera opción de sistema se utiliza el método de la trilateración. Este método utiliza el cálculo de distancia en metros a partir del RSSI. No obstante, los resultados no han sido los esperados en cuanto a precisión del sistema, debido a las fluctuaciones de las señales RSSI provenientes de las balizas BLE.
Para suavizar estas fluctuaciones se implementó un filtro de Kalman, que sí reduce esas fluctuaciones, pero que se queda corto en el proceso de filtrado ante la aleatoriedad de estas fluctuaciones en los valores de RSSI.
Para solventa esta situación, se planteó la solución al problema del posicionamiento usando método de “fingerprinting”, en un intento de desarrollar un sistema con mayor grado de precisión y con mayor robustez a las fluctuaciones en las señales BLE. Este sistema requiere de una primera fase de creación de una base de datos que no requiere el método de trilateración, donde se mapea el área en su totalidad. En su segunda fase es capaz de posicionar al objetivo en el entorno con un rango de precisión aceptable, limitado entorno cada 2 metros de separación, se va a tener un error de 2 metros, y asi sucesivamente.
Este método compara mediante un algoritmo clasificador las señales recogidas durante la ruta realizada por el ESP32 con los valores de la base de datos creada durante el mapeo del entorno, y devuelve la posición de la ruta más cercana a los valores registrados durante el recorrido.
Al avanzar en el desarrollo, se valoró el implementar una interfaz de usuario sencilla para acompañar al método de “fingerprinting” desarrollado. Por ello se ha proporcionado un cliente de escritorio para Windows con el objetivo de que un usuario final de este sistema de posicionamiento no se vea obligado a instalarse todo un entorno de programación para poder utilizarlo. Este cliente está desarrollado en Python, se ha encapsulado todo el código en un ejecutable y se ha implementado una interfaz de usuario sencilla, dentro de las dimensiones del proyecto, para su uso.
En resumen, el objetivo de este Proyecto Fin de Grado plantea el diseño, caracterización y desarrollo de un sistema de posicionamiento en interiores basado en la tecnología Bluetooth BLE, con el fin de aprovechar sus ventajas en términos de bajo consumo de energía, bajo costo y compatibilidad con dispositivos modernos.
Abstract:
Indoor positioning of people, animals and objects has experienced significant advancements, driven especially by the rise of the Internet of Things (IoT), this has led to a growing demand for location-centric services. Although GPS has been the main technology for this purpose, its use in indoor spaces is limited due to the loss of satellite signal received by the device to be located. To counteract these limitations in indoor spaces, complementary technologies to GPS are being developed, such as inertial navigation, Wi-Fi or Bluetooth-based positioning, and the integration of additional sensors into devices to enhance location accuracy in these environments.
To carry out this project, the development has focused on two localization methodologies: trilateration and fingerprinting. These methods use Bluetooth Low Energy (BLE) technology and Received Signal Strength Indicator (RSSI) to estimate position. For its implementation, BLE beacons are used and are distributed throughout the environment, and an ESP32 device programmed in Arduino collects the signals. These signals are subsequently processed offline on a computer.
A device with an ESP32 microprocessor has been selected due to its processing capacity, resources and existing software. The use of this ESP32 is to collect BLE signals and save the information in CSV files. Due to the simple task that this microprocessor will have, there has not been a need to use other more complex options such as the STM32 from STMicroelectronics
Regarding the development of the positioning system, the trilateration method is used as the first system option. This method uses the calculation of distance in meters from the RSSI. However, the results have not been as expected in terms of system accuracy, due to the fluctuations of the RSSI signals coming from the BLE beacons.
To smooth out these fluctuations, a Kalman filter was implemented, which does reduce these fluctuations, but falls short in the filtering process due to the randomness of these fluctuations in the RSSI values.
To solve this situation, the solution to the positioning problem was proposed using the fingerprinting method, in an attempt to develop a system with a higher degree of precision and greater robustness to fluctuations in BLE signal. This system requires a first phase of creating a database that does not requires the trilateration method, where the area is mapped in its entirety. In its second phase the system is capable of positioning the target in the environment with an acceptable range of precision, limited by the mapping carried out in phase one. In this way, if a mapping of the environment is carried out every 2 meters of separation, it will have an error of 2 meters, and so on.
This method compares, using a classifier algorithm, the signals collected during the route carried out by the ESP32 with the values in the database created during the mapping of the environment, and returns the position of the route closest to the values recorded by the ESP32.
As development progressed, it was valued to implement a simple user interface to accompany the “fingerprinting” method developed. For this reason, a desktop client for Windows has been provided so that an end user of this positioning system is not forced to install an entire programming environment to be able to use it. This client is developed in Python, all the code has been encapsulated in an executable and a simple user interface has been implemented, within the dimensions of the project, for its use.
In summary, the objective of this Final Degree Project is the design, characterization and development of an indoor positioning system based on Bluetooth BLE technology, to take advantage of its advantages in terms of low energy consumption, low cost and Compatibility with modern devices.
El posicionamiento en interiores de personas, animales y objetos ha experimentado avances significativos, impulsado especialmente por el auge del Internet de las Cosa (IoT), esto ha supuesto una demanda creciente en servicios centrados en la localización. Aunque el GPS ha sido la tecnología principal para este propósito, su uso en espacios interiores se ve limitado debido a la pérdida de señal del satélite recibida por el dispositivo a localizar. Para contrarrestar estas limitaciones en espacios de interior, se están desarrollando tecnologías complementarias al GPS, como la navegación inercial, el posicionamiento basado en Wi-Fi o Bluetooth, y la integración de sensores adicionales en los dispositivos para mejorar la precisión de la ubicación en estos entornos.
Para la realización de este proyecto se ha centrado el desarrollo en dos metodologías de localización: trilateración y “fingerprinting”. Estos métodos utilizan la tecnología Bluetooth de baja energía (BLE) y la intensidad de la señal recibida (RSSI) para estimar la posición. Para su implementación se utilizan balizas BLE que se distribuyen por el entorno, y un dispositivo ESP32 programado en Arduino que recoge las señales. Estas señales son procesadas posteriormente de forma ‘offline’ en un ordenador.
Se ha seleccionado un dispositivo con microprocesador ESP32 por su capacidad de procesamiento, recursos y software existente. El ESP32 es empleado para recoger señales BLE y guardar la información en ficheros CSV. Debido a la tarea sencilla que va a tener este microprocesador, no se ha visto la necesidad de emplear otras opciones más complejas como pueden ser los STM32 de STMicroelectronics.
En cuanto al desarrollo del sistema de posicionamiento, como primera opción de sistema se utiliza el método de la trilateración. Este método utiliza el cálculo de distancia en metros a partir del RSSI. No obstante, los resultados no han sido los esperados en cuanto a precisión del sistema, debido a las fluctuaciones de las señales RSSI provenientes de las balizas BLE.
Para suavizar estas fluctuaciones se implementó un filtro de Kalman, que sí reduce esas fluctuaciones, pero que se queda corto en el proceso de filtrado ante la aleatoriedad de estas fluctuaciones en los valores de RSSI.
Para solventa esta situación, se planteó la solución al problema del posicionamiento usando método de “fingerprinting”, en un intento de desarrollar un sistema con mayor grado de precisión y con mayor robustez a las fluctuaciones en las señales BLE. Este sistema requiere de una primera fase de creación de una base de datos que no requiere el método de trilateración, donde se mapea el área en su totalidad. En su segunda fase es capaz de posicionar al objetivo en el entorno con un rango de precisión aceptable, limitado entorno cada 2 metros de separación, se va a tener un error de 2 metros, y asi sucesivamente.
Este método compara mediante un algoritmo clasificador las señales recogidas durante la ruta realizada por el ESP32 con los valores de la base de datos creada durante el mapeo del entorno, y devuelve la posición de la ruta más cercana a los valores registrados durante el recorrido.
Al avanzar en el desarrollo, se valoró el implementar una interfaz de usuario sencilla para acompañar al método de “fingerprinting” desarrollado. Por ello se ha proporcionado un cliente de escritorio para Windows con el objetivo de que un usuario final de este sistema de posicionamiento no se vea obligado a instalarse todo un entorno de programación para poder utilizarlo. Este cliente está desarrollado en Python, se ha encapsulado todo el código en un ejecutable y se ha implementado una interfaz de usuario sencilla, dentro de las dimensiones del proyecto, para su uso.
En resumen, el objetivo de este Proyecto Fin de Grado plantea el diseño, caracterización y desarrollo de un sistema de posicionamiento en interiores basado en la tecnología Bluetooth BLE, con el fin de aprovechar sus ventajas en términos de bajo consumo de energía, bajo costo y compatibilidad con dispositivos modernos.
Abstract:
Indoor positioning of people, animals and objects has experienced significant advancements, driven especially by the rise of the Internet of Things (IoT), this has led to a growing demand for location-centric services. Although GPS has been the main technology for this purpose, its use in indoor spaces is limited due to the loss of satellite signal received by the device to be located. To counteract these limitations in indoor spaces, complementary technologies to GPS are being developed, such as inertial navigation, Wi-Fi or Bluetooth-based positioning, and the integration of additional sensors into devices to enhance location accuracy in these environments.
To carry out this project, the development has focused on two localization methodologies: trilateration and fingerprinting. These methods use Bluetooth Low Energy (BLE) technology and Received Signal Strength Indicator (RSSI) to estimate position. For its implementation, BLE beacons are used and are distributed throughout the environment, and an ESP32 device programmed in Arduino collects the signals. These signals are subsequently processed offline on a computer.
A device with an ESP32 microprocessor has been selected due to its processing capacity, resources and existing software. The use of this ESP32 is to collect BLE signals and save the information in CSV files. Due to the simple task that this microprocessor will have, there has not been a need to use other more complex options such as the STM32 from STMicroelectronics
Regarding the development of the positioning system, the trilateration method is used as the first system option. This method uses the calculation of distance in meters from the RSSI. However, the results have not been as expected in terms of system accuracy, due to the fluctuations of the RSSI signals coming from the BLE beacons.
To smooth out these fluctuations, a Kalman filter was implemented, which does reduce these fluctuations, but falls short in the filtering process due to the randomness of these fluctuations in the RSSI values.
To solve this situation, the solution to the positioning problem was proposed using the fingerprinting method, in an attempt to develop a system with a higher degree of precision and greater robustness to fluctuations in BLE signal. This system requires a first phase of creating a database that does not requires the trilateration method, where the area is mapped in its entirety. In its second phase the system is capable of positioning the target in the environment with an acceptable range of precision, limited by the mapping carried out in phase one. In this way, if a mapping of the environment is carried out every 2 meters of separation, it will have an error of 2 meters, and so on.
This method compares, using a classifier algorithm, the signals collected during the route carried out by the ESP32 with the values in the database created during the mapping of the environment, and returns the position of the route closest to the values recorded by the ESP32.
As development progressed, it was valued to implement a simple user interface to accompany the “fingerprinting” method developed. For this reason, a desktop client for Windows has been provided so that an end user of this positioning system is not forced to install an entire programming environment to be able to use it. This client is developed in Python, all the code has been encapsulated in an executable and a simple user interface has been implemented, within the dimensions of the project, for its use.
In summary, the objective of this Final Degree Project is the design, characterization and development of an indoor positioning system based on Bluetooth BLE technology, to take advantage of its advantages in terms of low energy consumption, low cost and Compatibility with modern devices. Read More


