Installation

Requirements

  • uSensor Dongle BLE (see more in Hardware section)
  • uGateway (see more in Hardware section)
  • regular POE switch
  • computer (when running the Location manager locally) - specifications available on request

Steps

  1. Follow the steps describe in the Back Office configuration
  2. Install the uSensors

Install and configure Ubudu Location Solution

Ubudu Location Solution is distributed as a zipped package which contains:

  • ubudu_location_server a web application which can
    • configure the map, the uGateways, the uSensor Dongle BLE positions on the map and the differents tags you will be using.
    • display computed positions received from the Ubudu Location Engine
  • ubudu_location_engine
    • An engine that receive realtime BLE data from the uSensor Dongle BLE through the uGateways.
    • Compute positions from the raw BLE data using different algorithms and optimizations.
    • Broadcast the computed positions to be displayed by the Ubudu Location Server or other services.
  • ubudu_location_logger A middleware which stores computed position into a Redis queue and pushes the content of the queue to Elastic Search.
  • Readme.txt a readme with the same information as this current page
  • ubudu_location_engine_config.json` ubudu_location_engine configuration files (see below).
  • run.sh the bash script to launch the solution

ubudu_location_engine_config.json

{
  "worker": {
    "dispatcher_timeout": 500,
    "collector_timeout": 5000,
    "gateway_watcher_timeout": 1000,
    "is_gateway_watcher_enabled": true,
    "circular_buffer_size": 100,
    "do_broadcast_udp": true,
    "do_broadcast_traject": false,
    "do_broadcast_kibana": false,
    "broadcaster_port": "1191",
    "gateway_port": "7000",
    "ils_host": "localhost",
    "ils_port": "5000",
    "verbosity_level": 1,
    "strategy": "2d"
  },
  "two_d": {
    "expiration_time": 4000,
    "max_rssi_count": 3,
    "min_rssi_val": -35,
    "average_or_median": "median"
  },
  "attractor": {
    "expiration_time": 5000,
    "threshold": -60,
    "average_or_median": "median",
    "history_optimization": {
      "is_enabled": true,
      "attraction_duration": 10000
    }
  },
  "particle_filter": {
    "is_enabled": true,
    "particle_total_count": 100,
    "sampling_count": 5,
    "standard_deviation": 0.2,
    "reset_optimization": {
      "is_enabled": true,
      "distance_factor": 3,
      "time_before_reset": 3000
    }
  }
}
worker
  • dispatcher_timeoutSpawn frequency of algo threads => acts on the refresh rate of computed positions.
  • collector_timeoutTimeout before retrying connection with uGateways if connection was lost.
  • circular_buffer_sizeSize of the circular buffer used to store RSSI received by uGateway collectors. All RSSI are averaged (or median) based on the RSSI life expectancy.
  • do_broadcast_udpEnable computed position broadcast over UDP.
  • do_broadcast_traject[EXPERIMENTAL] Enable computed position broadcast over traject.ubudu.com (currently done by ubudu_location_server).
  • do_broadcast_kibana[EXPERIMENTAL] Enable computed position broadcast over kibana through ubudu_location_logger (currently done by ubudu_location_server).
  • broadcaster_port_udpPort on which ils_worker broadcasts computed positions over udp.
  • gateway_portDefault port to open socket connection with uGateway.
  • ils_hostAddress of Ubudu Location Server (used to retrieve maps, tags and uGateways configuration).
  • ils_portPort of ILS Server (used to retrieve maps, tags and uGateways configuration).
  • verbosity_level[0 (no logs), 1 (RSSI entry and computed positions), 2, 3, 4 (debug levels)].
  • strategy2d | attractor | fusion
    • 2dcompute real time 2d positions for each tag.
    • attractorcheck if each tag is in the attraction zone (depending of an RSSI threshold) of a uSensor Dongle BLE.
    • fusionuse attractor and 2d strategies at the same time with a priority on attractor.
2D
  • expiration_timeLife expectancy for a RSSI input stored in the circular buffer. Every RSSI older than this value won't be used for 2d positioning.
  • max_rssi_countMax number of averaged RSSI used to calculate a position.
  • min_rssi_valMinimum value used for weight calculation.
  • average_or_medianChoose "average" or "median" to compute the average of all RSSI for a given uSensor Dongle BLE.

Attractor

  • expiration_timeLife expectancy for a RSSI input stored in the circular buffer. Every RSSI older than this value won't be used to find attractor.
  • thresholdThreshold under which a tag would be considered in area of influence of a uDongle or table scanner.
  • average_or_medianChoose "average" or "median" to compute the average of all RSSI for a given uSensor Dongle BLE.
  • history_optimizationPrevent flickering by having a temporal priotity for attractor over computed 2D position.
    • is_enabledEnable history optimization.
    • attraction_durationDuration of attractor priority.
Particle Filter
  • is_enabledEnable particle filtering.
  • particle_total_countNumber of particle to use for filtering (default 100).
  • sampling_countNumber of particle used for resampling (default 5).
  • standard_deviationDeviation spread of the cloud of particles (default 0.5).
  • reset_optimizationAllow particle filter to reset over raw 2D position if distance is bigger than distance_factor during time_before_reset ms. This optimization prevents re-sampling inertia if position changed rapidly over a big distance.
    • is_enabledEnable reset optimization.
    • distance_factorDistance over which the optimization applies.
    • time_before_resetTime over which the optimization applies.

Run the solution

$ cd ubudu-location-linux-x64
$ ./run.sh
or
$ ./run.sh --daemonize          # to run the solution as a daemon
$ ./run.sh --undaemonize        # to kill the processes

To test the solution, go to http://localhost:5000. This will give you access to the configuration UI.

results matching ""

    No results matching ""