[canmet] Add config Positioner

This commit is contained in:
Matteo Cypriani 2013-07-23 14:43:41 -04:00
parent 392c1dfd88
commit e853e47557
3 changed files with 353 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# Capture points' (listeners') physical description file.
#
# Each line follows this format:
# MAC address;X;Y;Z;Channel (Hz);Antenna gain (dBi);Trx power (dBm)
#
# Blank lines are ignored. Commented lines must have a sharp (#) as
# their FIRST character.
# Note: here we assume everything is at 1 m above the floor, which is
# wrong but fine if we localise in two dimensions.
# CP1
# Model: RB433
D4:CA:6D:10:41:A0;128.25;142.40;1;2437000000;3;25
# CP2
# Model: RB433
D4:CA:6D:10:41:86;160.85;78.30;1;2437000000;3;25
# CP3
# Model: RB433
D4:CA:6D:10:41:AE;177.90;18.15;1;2437000000;3;25
# CP5
# Model: RB411
D4:CA:6D:11:8E:7D;72.10;122;1;2437000000;3;25
# CP6
# Model: RB411
D4:CA:6D:10:41:B8;121.80;-21.10;1;2437000000;3;25
1 # Capture points' (listeners') physical description file.
2 #
3 # Each line follows this format:
4 # MAC address;X;Y;Z;Channel (Hz);Antenna gain (dBi);Trx power (dBm)
5 #
6 # Blank lines are ignored. Commented lines must have a sharp (#) as
7 # their FIRST character.
8 # Note: here we assume everything is at 1 m above the floor, which is
9 # wrong but fine if we localise in two dimensions.
10 # CP1
11 # Model: RB433
12 D4:CA:6D:10:41:A0;128.25;142.40;1;2437000000;3;25
13 # CP2
14 # Model: RB433
15 D4:CA:6D:10:41:86;160.85;78.30;1;2437000000;3;25
16 # CP3
17 # Model: RB433
18 D4:CA:6D:10:41:AE;177.90;18.15;1;2437000000;3;25
19 # CP5
20 # Model: RB411
21 D4:CA:6D:11:8E:7D;72.10;122;1;2437000000;3;25
22 # CP6
23 # Model: RB411
24 D4:CA:6D:10:41:B8;121.80;-21.10;1;2437000000;3;25

View File

@ -0,0 +1,37 @@
# Mobiles' physical description file.
#
# Each line follows this format:
# MAC address;Antenna gain (dBi);Trx power (dBm)
#
# Blank lines are ignored. Commented lines must have a sharp (#) as
# their FIRST character.
# RB4 (client)
# Model: RB411AH
D4:CA:6D:10:41:C3;3;25
# Declaration of the listeners: this is (still) needed to take into
# account the autocalibration requests when
# positioning.accept-new-mobiles = false.
# CP1
# Model: RB433
D4:CA:6D:10:41:A0;3;25
# CP2
# Model: RB433
D4:CA:6D:10:41:86;3;25
# CP3
# Model: RB433
D4:CA:6D:10:41:AE;3;25
# CP5
# Model: RB411
D4:CA:6D:11:8E:7D;3;25
# CP6
# Model: RB411
D4:CA:6D:10:41:B8;3;25
1 # Mobiles' physical description file.
2 #
3 # Each line follows this format:
4 # MAC address;Antenna gain (dBi);Trx power (dBm)
5 #
6 # Blank lines are ignored. Commented lines must have a sharp (#) as
7 # their FIRST character.
8 # RB4 (client)
9 # Model: RB411AH
10 D4:CA:6D:10:41:C3;3;25
11 # Declaration of the listeners: this is (still) needed to take into
12 # account the autocalibration requests when
13 # positioning.accept-new-mobiles = false.
14 # CP1
15 # Model: RB433
16 D4:CA:6D:10:41:A0;3;25
17 # CP2
18 # Model: RB433
19 D4:CA:6D:10:41:86;3;25
20 # CP3
21 # Model: RB433
22 D4:CA:6D:10:41:AE;3;25
23 # CP5
24 # Model: RB411
25 D4:CA:6D:11:8E:7D;3;25
26 # CP6
27 # Model: RB411
28 D4:CA:6D:10:41:B8;3;25

View File

@ -0,0 +1,285 @@
# Sample configuration file for OwlPS Positioner
# [Miscellaneous options]
# This option controls whether or not the output text files are flushed
# (written to the storage support) after each line.
# The default is to flush.
#flush-output-files = true
# "Replay" mode. With this option enabled, the current time is the
# emission timestamp of the most recent request; you will want to
# enable this when reading inputs (requests) off-line to replay
# scenarios, if time-related options are enabled (e.g.
# positioning.calibration-requests-timeout).
# To be useful, this option requires the listeners' clocks to be
# synchronised. If it is not the case, you should leave it disabled.
# The default is to run in "live mode", i.e. with this option disabled.
#replay = off
[data-input]
# The options in this section are related to the data that are read
# when the program starts.
# Description of the machines running the listeners (capture points).
cp-medium = CSV
cp-csv-file = /usr/local/etc/owlps/listeners.csv
# Description of the clients
mobile-medium = CSV
mobile-csv-file = /usr/local/etc/owlps/mobiles.csv
# Description of deployment area topology.
# You probably don't need a full description of the topology, see the
# topology example file for details.
# Uncomment the following line to activate the topology reading.
#topology-medium = CSV
#areas-csv-file = /usr/local/etc/owlps/topology.csv
#waypoints-csv-file = /usr/local/etc/owlps/waypoints.csv
#reference-points-medium = CSV
#reference-points-csv-file = /usr/local/etc/owlps/reference_points.csv
[input]
# The following options are related to the input of the requests
# (positioning requests and (auto-)calibration requests) from the
# aggregator.
medium = CSV
#csv-file = /tmp/input.csv
#medium = UDP
#udp-port = 9902
[log]
# The following options allow to log the requests received from the
# aggregator.
# Uncomment the following line to completely disable logging (has
# precedence over the other logging options):
#medium = none
medium = CSV
csv-file = /tmp/owlps-positioner.log
[positioning]
# The options in this section are related to the way the requests are
# handled and the results are computed.
# Uncomment lines to activate one or more algorithm.
algorithm = Real
#algorithm = InterlinkNetworks
#algorithm = FBCM
algorithm = NSS
#algorithm = FRBHMBasic
# This option allows to create a new mobile when a request is sent by
# a mobile which is not currently in the mobiles' list (i.e. not
# declared in the mobiles' configuration file). If unset, the requests
# sent by unknown mobiles will be dropped.
# It is unactivated by default, mainly to avoid interferent devices.
#accept-new-mobiles = false
# This option allows to create a new capture point (CP) when a request
# is captured by a CP which is not currently in the CPs' list (i.e. not
# declared in the CPs' configuration file), or when a self-calibration
# request is sent by an unknown CP.
# It is unactivated by default for the sake of security.
#accept-new-cps = false
# When receiving a calibration or autocalibration request from a CP,
# containing the transmiter's coordinates, memorise the new CP's
# coordinates.
# This is unactivated by default for the sake of security.
#update-cp-coordinates-online = false
# Coordinates of the deployment area.
# This is used to delimit the area in which reference points are
# generated (when generate-reference-points includes "mesh"), and
# also by the MinMax trilateration method.
# Since MinMax is currently the only trilateration method implemented
# in OwlPS, you should define these parameters if you use any of the
# trilateration-based algorithms (InterlinkNetworks, FBCM, FRBHM).
# With the autocalibration, the Z coordinate is the floor number, not
# a true coordinate in meters.
# They are declared as strings (X;Y;Z). Do not quote!
# start: X = the west intersection, Y = emergency exit
area-start = 0;-37;1
# stop: X = the water tank, Y = north-east intersection
area-stop = 200;170;1
# Algorithm to calculate the similarity, in the signal strength space,
# of two measurements.
# The following algorithms are implemented:
# - mean: The mean of all the packets in the measurement is
# computed, then the euclidean distance between the two means is
# used.
# - interval: The mean Im and the standard deviation Is of the
# packets in the measurement I are computed; the closest reference
# measurement R is the one with the highest number of packets in
# the interval [Im-Is, Im+Is].
# - interval2: Derived of the previous one, this algorithm
# computes the percent of packets in both the intervals
# [Im-0.674×Is, Im+0.674×Is] and [Im-Is, Im+Is].
# Assuming a normal distribution, we should find approximately
# 50% of the packets in the first interval, and 68% in the second
# interval. The closest R is the one for which the percents of
# the two intervals are the closest to these theoretical scores.
# The default is "mean".
#ss-similarity = mean
#ss-similarity = interval
#ss-similarity = interval2
# Smallest possible value for a received signal strength, in dBm. This
# depends on the sensibility of the CPs' Wi-Fi hardware. It is used to
# compensate for CPs that are not in coverage in a given measurement.
# The default value is -99 dBm, which should be fine in most cases.
#smallest-ss = -99
# Generate reference points from the (auto)calibration requests
# received.
# This option can be set to any combination of the following values,
# separated by any characters of your choice (or even none):
# - false (default): do not generate reference points; this is
# equivalent to an empty string and if at least one of the next
# values are present, the presence of the "false" string in the
# option's value will be ignored.
# - mesh: generate reference points according to the regular meshing
# defined by the options area-start/stop and
# generated-meshing-grain-*.
# - line: generate reference points according to the line defined by
# the option generated-line-path and generated-line-step.
# - list: generate only the reference points defined by the option
# generated-points-list.
# Any other or extra characters are ignored, and the string is
# equivalent to "false" if it doesn't contain any valid value.
# Default value:
#generate-reference-points = false
# Example of valid value to activate both meshing and list generation:
#generate-reference-points = mesh+list
#generate-reference-points = list,mesh
#generate-reference-points = meshlist
#generate-reference-points = falselistmesh
generate-reference-points = line
# With this option disabled, each generated reference point contains
# a single packet in a single calibration request, computed from the
# mean of the real measurements.
# If enabled, the generated reference points will contain a series of
# packets, better matching the real requests; if no packet ID from the
# real requests match, a single packet reference point is generated
# instead. Default is enabled.
#generate-multi-packet-reference-points = true
# When generate-reference-points includes "list", the reference points
# are generated with the specified distance (in metres) between one
# another, in the X and Y axis.
#generated-meshing-grain-x = 0.5
#generated-meshing-grain-y = 0.5
# The Z option is currently a floor number instead of a vertical
# coordinate in meters. You should leave it to 1, except if you are
# deploying across non-contiguous floors, which is unlikely.
#generated-meshing-grain-z = 1
# When generate-reference-points includes "line", the reference points
# are generated along to the path defined by this option. They are
# generated in a straight line between the given points. In the string,
# the values are separated by semicolons, and each group of coordinates
# can optionnaly be surrounded by parenthesis. The two following
# examples, which declare a path following the points (1;1;1), (10;1;1)
# and (10;10;1), are equivalent:
#generated-line-path = (1;1;1);(10;1;1);(10;10;1)
#generated-line-path = 1;1;1;10;1;1;10;10;1
# Emergency exit ; CP6 ; CP3 ; CP2 ; CP1 ; CP5 ; west of CP5 ; west intersection
generated-line-path = (75.50;-34.50;1);(121.80;-21.10;1);(177.90;18.15;1);(160.85;78.30;1);(128.25;142.40;1);(72.10;122;1);(47.50;99.50;1);(2;85.50;1)
# When generate-reference-points includes "line", the reference points
# are generated with this (approximate) distance (in metres) between one
# another.
generated-line-step = 1
# When generate-reference-points includes "list", the list of reference
# points declared here is be generated. In the string, the values are
# separated by semicolons, and each group of coordinates can optionnaly
# be surrounded by parenthesis. The two following examples, which
# declare the points (1;2;1) and (4;2.5;1), are equivalent:
#generated-points-list = (1;2;1);(4;2.5;1)
#generated-points-list = 1;2;1;4;2.5;1
# This option allows the calibration requests sent during the
# positioning phase to be added to the calibration request's list. They
# are added to the calibration requests read by InputDataReader during
# the start-up phase. If this option is not activated, the calibration
# requests are handled as positioning requests.
# This option must be activated for the self-calibration to work, but
# it is not activated by default for security purposes.
accept-new-calibration-requests = true
# Maximum age of the calibration requests, in seconds. If greater than
# zero, the calibration requests older than this timeout will be
# deleted. See also the replay option.
#calibration-requests-timeout = 0
# With this option activated, the calibration requests associated with
# an existing reference point are deleted when receiving a new
# calibration request, before to associate the new request with the
# reference point.
# The default is true, as there is generally no point keeping old
# calibration requests.
#unique-calibration-requests = true
# If you activate the above option and want the calibration requests
# to be treated as positioning requests (in addition to the normal
# treatment of calibration requests), activate this option.
# The default is false: the first calibration requests' purpose is to
# serve the positioning process, not to use it.
#position-calibration-requests = false
[positioning.nss]
# This subsection contains the options related to the NSS (a.k.a. RADAR)
# algorithm and derivated.
# For a given positioning request, average all the calibration requests
# associated with a reference point before to compute the SS similarity.
# The default is false, i.e. the positioning request is compared
# directly to each calibration request.
#average-reference-points = false
# Do not select reference points on which a CP is sit, as far as
# possible (i.e. if there are reference points where no CP sits).
# This is useful if you are using autocalibration and want to select
# only the generated reference points.
# The default is false.
ignore-cp-reference-points = true
[output]
# The following options are related to the output of the results.
# Compute the euclidean distance error in two dimensions instead of
# three dimensions. This can be useful when doing experiments on only
# one floor.
# The default is false, i.e. the error is computed in 3D.
2d-error = true
# This is the default output if none is specified.
medium = Terminal
medium = CSV
csv-file = /tmp/owlps-positioner.out
#medium = UDP
# Currently, the host must be an IPv4 address (not a DNS name, nor an
# IPv6).
#udp-host =
#udp-port = 9910
# The TCPEvAAL output follows the specification of EvAAL 2012 to
# communicate with the SocketAdapter program developed by the
# organizers.
# Note: you can use only one algorithm when using the TCPEvAAL output.
#medium = TCPEvAAL
# Currently, the host must be an IP address (not a DNS name).
#tcpevaal-host = 127.0.0.1
#tcpevaal-port = 4444
# vim: syntax=cfg