开源软件名称(OpenSource Name):hulop/BLELocalization开源软件地址(OpenSource Url):https://github.com/hulop/BLELocalization开源编程语言(OpenSource Language):Java 76.1%开源软件介绍(OpenSource Introduction):BLELocalization has two functions: web api and fingerprint data management. BLE LocalizationThis is a Bluetooth LE localization library to locate smartphones by estimating position from beacon signal strength. The localization algorithm is based on Monte Carlo localization using a particle filter which integrates radio wave signal strength and various sensor data of smartphones to localize them. AboutLicenseDependent libraries for core library
library locations
Sample Web APIThe localization library is wrapped by an example servlet. (You can try) This section describes about Web API that calculate location from beacon signals and motion data. POST /locations/beaconsInput (post)To localize a user carrying a smartphone, multiple pairs of beacon identifier (UUID, major id and minor id) and Received Signal Strength Indicator (RSSI) received by a smartphone at some interval are input to the library. Data format example (JSON) {
"uuid": "00000000-0000-0000-0000-000000000000",
"data": [
{
"major": 1,
"minor": 1,
"rssi": -70
},
{
"major": 1,
"minor": 2,
"rssi": -75
}
],
"sensorCSV": "<motion data csv as a string including new lines.>"
} Motion dataIn the case that motion data are collected in addition to beacon data, time-series data from accelerometer and gyroscope are input to the library with the beacon data. Case 1: Process motion data in the library.Motion data is input in the following format. You need to input all motion data between the last two beacon signal sampling. (i.e. iOS provide beacon data every second so you will input all motion data within a second.)
Example (CSV)
Case 2: Preprocess on a smartphoneIf you want to reduce amount of data transfer and do not care user's orientation, you can just specify whether a user is walking or not by processing motion data on a smartphone.
Example (CSV)
ResponseReturns user's two-dimensional location (x, y, floor). Data format example (JSON) {"x": 1, "y": 1, "z": 0} When user's motion is also measured, orientation is appended to the output. {"x": 1, "y": 1, "z": 0, "orientation": 1.57} Test Web API on your machineTry a sample web application for BLE-based localization. In this section, Eclipse is used to explain how to run the sample web app. Prerequisites
Dependent libraries for Web app
library locations
Launch and use the sample appSetup
Localization on sample data
Fingerprinting data for the libraryTo use this library in the real world, fingerprinting i.e. collecting BLE RSSI readings at known locations is necessary. Data Directory
Fingerprint dataFingerprint data collected by a smartphone should be stored in the following format. Data format example (JSON) [{
"beacons": [{
"timestamp": 1444834000,
"uuid": "00000000-0000-0000-0000-000000000000",
"data": [{
"major": 1,
"minor": 1,
"rssi": -77.0
}, ...]
}, ...],
"information": {
"x": 2.0,
"y": 1.0,
"absx": 2.0,
"absy": 1.0,
"floor_num": 0.0,
"floor": 0.0
}
}] Test dataTest data is used to evaluate the accuracy of the localization algorithm at given data including fingerprints. Test data consist of locations, beacon RSSI readings and motion data. Test data format (CSV)
The third line contains a location, the number of observed beacons, and pairs of beacon identifier and RSSI. Beacon locationsThis library uses BLE beacon positions as auxiliary information. Data format example (GeoJSON) {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"type": "beacon",
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 1,
"minor": 2,
},
"geometry": {
"type": "Point",
"coordinates": [1.0, 2.0]
}
}, ...
]
} Virtual fingerprinting data generatorIn this sample app, an editor to create a virtual room where beacons and walls are installed is provided. The output of the editor is input to a tool to generate synthetic training and test data to be input to the localization library. The format of the data generated by these tools meets the input specifications of the library. Edit a virtual room
Generate synthetic data
Fingerprinting ManagementTBD |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论