diff --git a/2013-canmet/owlps-config/listeners-rb.csv b/2013-canmet/owlps-config/listeners-rb.csv new file mode 100644 index 0000000..b84552f --- /dev/null +++ b/2013-canmet/owlps-config/listeners-rb.csv @@ -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 diff --git a/2013-canmet/owlps-config/mobiles-rb.csv b/2013-canmet/owlps-config/mobiles-rb.csv new file mode 100644 index 0000000..deb9c0c --- /dev/null +++ b/2013-canmet/owlps-config/mobiles-rb.csv @@ -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 diff --git a/2013-canmet/owlps-config/owlps-positioner.conf b/2013-canmet/owlps-config/owlps-positioner.conf new file mode 100644 index 0000000..10f4923 --- /dev/null +++ b/2013-canmet/owlps-config/owlps-positioner.conf @@ -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