From a7c83d4d5fe830265effe46be564c673436bd573 Mon Sep 17 00:00:00 2001 From: kazu Date: Fri, 16 Sep 2016 08:55:42 +0200 Subject: [PATCH] fixed issue with WiFi floor-estimation due to float rounding errors added smartphone-above-ground height (1.3m) to all positions for wifi calculations --- competition/src/competition/Optimizer.h | 6 +++--- competition/src/competition/filter/WiFi.h | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/competition/src/competition/Optimizer.h b/competition/src/competition/Optimizer.h index ecb9bc7..ed84ed9 100644 --- a/competition/src/competition/Optimizer.h +++ b/competition/src/competition/Optimizer.h @@ -251,9 +251,9 @@ public: // convert it from world(lat,lon) to map(x,y) //const float fixedFloorHeight = 4.0; - const Point3 mapPos = scaler.convert3D(worldPos.lat, worldPos.lon, worldPos.floorNr); - //const float z = fixedFloorHeight * worldPos.floor; - //const Point3 mapPos = Point3(mapPos2.x, mapPos2.y, z); // TODO! z coordinate + const Point3 _mapPos = scaler.convert3D(worldPos.lat, worldPos.lon, worldPos.floorNr); + const Point3 person(0, 0, 1.3); // quick-fix. add persons height to the wifi-receiver-position + const Point3 mapPos = _mapPos + person; // model estimation for the AP const float rssiModel = model.getRSSI(mac, mapPos); diff --git a/competition/src/competition/filter/WiFi.h b/competition/src/competition/filter/WiFi.h index d285fb5..a3c142d 100644 --- a/competition/src/competition/filter/WiFi.h +++ b/competition/src/competition/filter/WiFi.h @@ -87,7 +87,11 @@ public: // return getRSSI(ap.getMAC(), p); // } - float getRSSI(const MACAddress& mac, const Point3 p) const override { + float getRSSI(const MACAddress& mac, const Point3 _p) const override { + + const Point3 person(0, 0, 1.3); // quick-fix. add persons height to the wifi-receiver-position + const Point3 p = _p + person; + auto it = aps.find(mac); if (it == aps.end()) {throw "error!";} APParams params = it->second;