Matteo Cypriani 8ef6344d7e Add positionerd.sh 2016-11-03 00:44:04 -04:00
figures [canmet] canmet70.svg: separate main/optional MPs 2014-06-26 12:37:26 -04:00
owlps-config [canmet] Add config Positioner 2013-07-23 14:43:41 -04:00
photos [canmet] Add photos 2013-07-23 14:14:40 -04:00
s01 [canmet] s21: split files + add coordinates 2013-07-22 13:04:25 -04:00
s02 [canmet] s02: add coordinates 2013-07-18 10:00:17 -04:00
s03 [canmet] s03_t03: add coordinates 2013-07-17 18:43:18 -04:00
s04 [canmet] Add report files for all the scenarios 2013-07-17 18:43:17 -04:00
s05 [canmet] Fix a couple of typos 2014-06-27 15:47:34 -04:00
s06 Add 2013-canmet 2013-07-17 18:43:17 -04:00
s07 [canmet] s07: add coordinates 2013-07-17 18:43:18 -04:00
s11 Add 2013-canmet 2013-07-17 18:43:17 -04:00
s12 Add 2013-canmet 2013-07-17 18:43:17 -04:00
s13 [canmet] Add report files for all the scenarios 2013-07-17 18:43:17 -04:00
s14 [canmet] s14: specify MPs 2013-09-10 14:39:29 -04:00
s21 [canmet] s21: split files + add coordinates 2013-07-22 13:04:25 -04:00
s22 [canmet] s22_t02: add +coord files 2014-07-28 16:11:27 -04:00
s23 Add 2013-canmet 2013-07-17 18:43:17 -04:00
s24 [canmet] Add report files for all the scenarios 2013-07-17 18:43:17 -04:00
s31 [canmet] Fix a couple of typos 2014-06-27 15:47:34 -04:00
COPYRIGHT Add license terms 2013-08-26 12:26:33 -04:00
README.org [canmet] Complete README.org 2013-09-10 14:38:41 -04:00
positionerd.sh Add positionerd.sh 2016-11-03 00:44:04 -04:00


OwlPS experiments at the CANMET mine, 2013


These experiments were conducted at the level -70 m of the CANMET laboratory mine near Val-d'Or, QC, Canada, in June 2013. The main goal was to test the behaviour of Wi-Fi positioning in underground mine tunnels.

File naming convention



scenario number, on two digits.
test number; for a given scenario, the first test number is 01, and each time the scenario is played the test number is incremented.
an optional informative string can be added, for example when a scenario has to be run several times with different parameters; when not obvious, the meaning of such suffixes should be documented in the report files.

an optional suffix can be added, separated by a +; suffixes have the following meanings:

the real coordinate were added in the file;
the file is a manual calibration file, containing calibration requests (type 1) (+coord is implied, as manual calibration requests always contain the mobile's coordinates); it can be made from real calibration requests, or from simple positioning requests with added coordinates and adapted type.

file extension:

OwlPS Aggregator output file;
experiment report;
OwlPS Positioner log file (recorded at the input);
OwlPS Positioner results;
OwlPS Positioner standard output;
OwlPS Positioner standard error;
results formatted in a spreadsheet.

For the result files, the name of the similarity algorithm used to compute the positions is added after the suffix. For now it can be one of the following:

  • mean,
  • interval,
  • interval2.

Experiment rules and information

Except if stated otherwise, all the scenarios follow these rules (or should follow them for future tests). The description of the scenarios has precedence over these common rules. Moreover, the report files associated with each test should also warn about each noticed mistake, and each exception made to these rules or to the scenario description.

Deployment area

These measurements took place at the level -70 metres of the CANMET laboratory mine, which is pictured on the plan /mcy/owlps-experiments/media/branch/master/2013-canmet/figures/canmet70.svg.

CANMET is a formerly exploited gold mine. At the level -70 m, the tunnels are between about 2.50 and 3-metre wide, with some exceptions such as larger rooms or recesses. The walls are very irregular, and the actual width can vary by several dozens of centimetres depending on where it is measured.

The drifts are fairly long, the three main sections used in this series of experiments being around 130 metres long. They are relatively straight, but turn enough that it is easy to loose the line of sight between two devices that are a few dozens of metres apart.

In some tunnels, "doors" made of plastic blades hanging from the ceiling are installed; they are represented by short grey lines on the map. The short black line at the south of CP3 is a wooden wall with a door and a plastic tarp window, that closes a small heated room used an office when experimenting at this level of the mine.

Each tunnel section contains at least one water pipe (diameter 6 or 12 cm) and one compressed air pipe (diameter 6 cm). The southern tunnel contains a second 6-cm pipe which is empty. All these pipes are metallic and are attached to one of the walls of the drift. Additionally, an important group of cables and wires (network, electricity, radio, etc.) is attached to the ceiling.


Wireless cards

All the wireless devices (mobile terminal and capture points) are equipped with Mini PCI MikroTik RouterBoard R52Hn IEEE 802.11a/b/g/n cards. Since we work only with 802.11b/g, only one of the two MC connectors of the card is used (see the next paragraph, Antennas). The Linux driver for these cards is ath9k. The power transmission used is 25 dBm.


All the wireless devices are equipped with an RP-SMA triband 2.4/5.1/5.8 GHz rubber ducky antenna, connected to the device with a RP-SMA to Type N adapter and a 22 cm long cable with a MC connector plugged into the wireless card. The gain of these antennas at 2.4 GHz is 3 dBi.

Mobile terminal

The mobile terminal is a MikroTik RouterBoard 411AH powered by a portable car battery booster kit that provides 110 V AC power plugs (and is freaking heavy!). The operating system is OpenWrt 12.09.

Capture points

Five capture points are used, all of the MikroTik brand but with different models:

  • CP1, CP2 and CP3: RouterBoard 433 (3 Ethernet connectors)
  • CP5 and CP6: RouterBoard 411

(There is no CP4.)

Like the mobile terminal, they all run OpenWrt 12.09.

Aggregation server

Lenovo ThinkPad X200 running Debian GNU/Linux unstable (Linux 3.9).

Position of the capture points

CP1, CP2 and CP5 are powered by a 24 V PoE (Power over Ethernet) switch located next to CP1; CP3 and CP6 are powered by two PoE injectors located next to CP3.

CP1 hangs from metallic pipes attached to the ceiling near the middle of the intersection of the northern and the eastern tunnels; its antenna is:

  • 2.20 m above the floor
  • 2.70 m from the south wall
  • 1.80 m from the north wall
  • 2.27 m from the east angle
  • 32 m from the door in direction of CP5 (west)
  • approximately 74.50 m from CP2 (9.50 m from the small recess in the east wall of the eastern tunnel, which is itself 65 m away from CP2)

CP2 sits on top of a plastic door with a wooden frame; its antenna is:

  • in the middle of the tunnel (1.27 m from each wall)
  • 2.40 m above the floor
  • 0.20 m north of the door
  • 64.50 m from CP3
  • 18.20 m from the ventilation raise

CP3 is put on a block of concrete, its antenna is at 0.70 m above the floor, in vertical position, in direction of the ceiling. The other capture points are attached to the ceiling and have their antennas in vertical position, in the direction of the ground. CP3's antenna is also:

  • 1.50 m from the east wall
  • 3 m from the west wall
  • 2.50 m from the south angle

CP5 is hanging from a metallic part from the trapdoor of the raise 70-D-101. It's antenna is:

  • 2.20 m above the floor
  • 1 m from the west wall of the recess
  • 3.25 m from the south wall
  • 15 m from the raise 110-D-105
  • 26.50 m from the door in direction of CP1 (east)
  • 58.50 m from CP1

CP6 is attached on top of the group of cables that run along the ceiling. Its antenna is:

  • 2.30 m above the ground
  • 1.50 m from the south wall
  • 0.50 to 0.60 m from the north wall
  • approximately 75 m from CP3


  • CP1: 128.25;142.40;2.20
  • CP2: 160.85;78.30;2.40
  • CP3: 177.90;18.15;0.70
  • CP5: 72.10;122;2.20
  • CP6: 121.80;-21.10;2.30

The capture points' coordinates are also given in the OwlPS Positioner's configuration file /mcy/owlps-experiments/src/branch/master/2013-canmet/owlps-config/listeners-rb.csv, and you can also visualise their positions on the map /mcy/owlps-experiments/media/branch/master/2013-canmet/figures/canmet70.svg.

Network set up

The capture points and the aggregation server are connected through an Ethernet network. The deployment plan /mcy/owlps-experiments/media/branch/master/2013-canmet/figures/canmet_deployment.svg shows the wiring used, that takes advantage of the fact than the RouterBoard 433 have 3 Ethernet connectors (the 3 ports of each board are set up in a bridge). The IP network used in the wired deployment is Each capture point has an address of the form, where x is the capture point's number (CPx). The aggregation server has address

To transmit autocalibration requests, the capture points are connected through an ad hoc Wi-Fi network, and transmit requests to one of the other nearby capture points (this can also be seen in the deployment plan):

  • CP1 transmits to CP2
  • CP2 transmits to CP1
  • CP3 transmits to CP6
  • CP5 transmits to CP1
  • CP6 transmits to CP3

The IP network used in this ad hoc network is; the addresses are equivalent to the addresses in the wired network (

The mobile terminal is connected to a portable Wi-Fi access point (AP), which is a smartphone running CyanogenMod 10.1.0. The positioning requests are transmitted to the AP's IP address. Though it would have been possible to use the ad hoc network created by the capture points for this purpose, this would have implied to set up routing between the capture points (to avoid having to change the destination host from one capture point to another) and seemed a unnecessary complication. Moreover, it allows to control the transmission of the positioning requests simply by turning on and off the AP.

Environmental parameters

The temperature and humidity could not be measured precisely during the experiments. However, in the summer, it is known that the temperature is between 5 and 7 °C, and the humidity is very high.

OwlPS configuration


OwlPS Aggregator version v1.3.3-72-g4d8e9cf was used (slightly earlier versions were also used in the first days of the experiments).

OwlPS Aggregator is run with the default parameters as of the version used, with autocalibration enabled. These parameters can be found in the configuration file /mcy/owlps-experiments/src/branch/master/2013-canmet/owlps-config/owlps-aggregator.conf.

These parameters are not very important, except for the delay between two autocalibration orders. The default value is 1000 ms.


OwlPS Listener version v1.3.3-17-gdc60892 was used.

The OwlPS Listener program runs continuously, with the autocalibration activated. The exact parameters can be found in the configuration file /mcy/owlps-experiments/src/branch/master/2013-canmet/owlps-config/owlps-listener.conf.

The default autocalibration parameters are used, i.e.:

  • 20 packets (-n20),
  • 25 ms between two packets (-t25).


OwlPS Client version v1.3.3-17-gdc60892 was used.

The mobile terminal continuously sends positioning requests with the following parameters:

  • 20 packets (-n20),
  • 10 ms between two packets (-t10),
  • 800 ms between two requests (-F800).

Therefore, one request is transmitted approximately each second. As stated above, the destination IP address is the AP's one (i.e. in our setup).

The complete command used to launch OwlPS Client is the following:

owlps-client -i -n20 -t10 -F800

Measurement-related rules and information

  • When the terminal is static, it is put on a small wooden table (66 cm high) and the altitude of the antenna's base is 0.70 m above the floor.
  • When the terminal is carried by an operator, the altitude of the antenna's base is 1 m above the floor.
  • When the terminal is static, either on the table or carried by an operator, its antenna is vertical.
  • When the terminal is static, either on the table or carried by an operator, the measurements are taken for at least five minutes.
  • In the scenarios in which an operator carries it and walks, the terminal is attached to the belt, and the antenna can bend somewhat due to body motion (the bending is approximately 45° forward).
  • The default packet size is used; the packet size received by the capture points is 108 bytes for positioning requests and 121 bytes for (auto)calibration requests.

Measurement procedure

  • The infrastructure (Listeners and Aggregator) must be started first and at least two rounds of autocalibration request done (i.e. each capture point must have sent at least two autocalibration requests) before the mobile terminal is started. As a best practice, the measurements should start at least 20 seconds after the Aggregator is started.

Measurement points

For simplicity's sake, we defined a bunch of measurement points that can be used in the description of the scenarios. They are named after their proximity to the capture points.

  • North tunnel:

    next to CP1 (s07_t02): 127;141
    east of CP1, line of sight: 155.50;158.50
    10 m north of MP11: 155.50;168.50
    west intersection: 2;85.50
    between CP5 and the west intersection: 47.50;99.50
  • East tunnel:

    next to CP3, in the middle of the tunnel, at 1.30 m from CP3 and 1.80 m from the north-west wall: 184;18.50
    water tank: 198;24
    recess south-west of CP3: 175.80;10.90
    between CP2 and CP3: 173;48
  • South tunnel:

    under CP6 but in the middle of the tunnel (CP6 is not exactly in the middle of the tunnel, cf. supra, Position of the capture points): 121.80;-21.50
    emergency exit, at 2 m from the end of the tunnel, 49 m from CP6, middle of the tunnel (about 1.10 m from each side): 75.50;-34.50
    west ore loading point near the exit: 94.50;-29.50


Scenarios are divided in three series, and the scenario number starts ewith the series number:

Series 0
the client terminal is static, with no operator in the measurement area.
Series 1
ditto, but in unfavourable locations (uncovered areas, deep recesses, etc.).
Series 2
the client terminal is carried by a human operator, which can be either static or in motion.
Series 3
the client terminal is attached to a vehicle.

Series 0: empty area

In these scenarios, the client terminal is static, on a wooden table (cf. supra, Measurement-related rules). The measurements are taken for at least 5 minutes.

Scenario 01: dead end drift

The client terminal is located at the emergency exit (MP61).

Scenario 02: next to CP6

The client terminal is located under CP6 (MP6).

Scenario 03: next to CP3

The client terminal is located next to CP3 (MP3).

Scenario 04: against CP3

This is a test scenario in which the client terminal is very close to CP3, in order to determine if the transmission with CP6, CP2 and CP1 is the same for the two devices. Please see the report files for more detail.

Scenario 05: straight tunnel, middle and walls

In this scenario, the client terminal is located precisely between CP3 and CP2, which is a straight tunnel section. Measurements are taken with the terminal:

  1. in the middle of the tunnel (MP22), in which case it is in line of sight with both CP2 and CP3;
  2. against the east wall;
  3. against the west wall.

When against the walls, the terminal may not be in line of sight of the two CPs any more. Please see the report files for a precise indication of the terminal position.

Scenario 06: straight tunnel, middle and recess

This scenario is very similar to the previous one, except the mobile terminal is located in front of the ventilation raise in tunnel section between CP2 and CP1. Two measurements are taken:

  1. the terminal is in the middle of the tunnel, in line of sight with CP2 (and good visibility from CP1, despite the lack of line of sight);
  2. the terminal is in the recess of the west side of the tunnel, at about 50-60 cm from the wall, with no line of sight from both CPs.

At the first position, the client terminal is at 18 m from CP2 (18.20 m from the plastic door).

Scenario 07: intersection, next to CP1

The client terminal is located at the intersection where CP1 sits (MP1). Please see the report files for the precise position.

Series 1: empty area, difficult location

Scenario 11: ore loading point

The ore loading points are what appear as six short north-south-oriented tunnels in the southern tunnel where is CP6. In this scenario, the client terminal is in the second loading point from the east of the tunnel, that is between CP6 and CP3, at 13 m from CP6. It is in the middle (east-west) of the loading point, at 4.50 m north of the middle of the east-west tunnel (that is, about 5.50 m from the south wall). Obviously, the terminal is not in line of sight with either CP6 or CP3.

Scenario 12: recess, south-west of CP3

The client terminal is located in the recess at the south-west of CP3 (north wall of the south tunnel). More precisely, it is 12.20 m from CP3 and at about 0,75 m from the north and west walls of the recess. The west wall of the recess is at 13.50 m from CP3 (and therefore at 75 - 13.50 = 61.50 m from CP6). The terminal is in line of sight with CP3, but not with CP6 or CP2.

Scenario 13: uncovered area

The client terminal is located at the end of the tunnel at the east of CP3, near the water tank (MP31). On the map, the wall of the water tank is the red line at the end of the blue-coloured walls; the terminal is at 1.50 m at the east of this wall. Other distance indications:

  • the terminal is at 10 m from the plastic door and the door is at 6.50 m from the west wall of the main tunnel;
  • therefore, the terminal is at 16.50 m from the west wall of the main tunnel;
  • CP3 is at 5.80 m from the same point of the west wall of the main tunnel;
  • the terminal is at 1.90 m from the south wall of the room;
  • the terminal is at 1.30 m from the north side of the water tank, and at 4 m from the north wall of the room;
  • walking, CP3 and the terminal are separated by about 17.50 m.

Scenario 14: other non-covered area

The client terminal is located in the section at the west of CP1 (MP11 and MP12). Please see the report files for the precise location.

Series 2: human operator

Scenario 21: dead end drift

This scenario is similar to the scenario 01, but the client terminal is carried by a human operator. Please see the report files for the description of the variations experimented.

Scenario 22: walking along all the tunnels

In this scenario, the operator walks from the south-west end of the covered gallery (MP61, near the emergency exit), and goes all the way along the covered sections of tunnel to stop under CP5. In order to ease the treatment of the data, he stops next to each capture point and turns off the access point, hence preventing positioning requests to be sent. After about 30 seconds, the AP is started again, the operator waits for 5 to 6 seconds (the time needed by the client terminal to reconnect to the AP), then starts walking again.

See the report files for precise timing.

Scenario 23: walking in a non-covered area

This scenario is similar to scenario 13, but the operator carries the mobile terminal from the middle of the main tunnel, facing the plastic door (at 6.65 m from CP3, 4.85 m from the door and 1.70 m from the west wall) to the water tank. The operator stops at about 0.50 m in front of the water tank.

Scenario 24: walking in the northern tunnel

The operator starts 40 m east of CP1, in line of sight and walks the tunnel west, in direction of CP1 and CP5, to end at the intersection at the west of CP5 (MP51).

Series 3: vehicle

Scenario 31: driving along all the tunnels

This scenario is similar to scenario 22, but the mobile terminal is mounted on a small mine transporter of the following dimensions:

  • width: 1.40 m
  • length: 2 m
  • height: 1.90 m

The terminal is attached at 1.70 m above the ground level, and is at 0.30 m from the left side of the vehicle.

Since it is too big to go at the very end of the tunnel near the emergency exit, the vehicle starts from the western ore loading point (MP62). It then follows almost the same path as in scenario 22, stopping next to each capture point in the same way. After CP5, the vehicle continues to the west intersection (MP51).