added tex
many changes/eval etc...
This commit is contained in:
178
main.cpp
178
main.cpp
@@ -1,3 +1,5 @@
|
||||
#define BREAK raise(SIGTRAP);
|
||||
|
||||
#include "Indoor/sensors/radio/setup/WiFiOptimizer.h"
|
||||
#include "Indoor/sensors/radio/setup/WiFiFingerprint.h"
|
||||
#include "Indoor/sensors/radio/setup/WiFiFingerprints.h"
|
||||
@@ -10,6 +12,7 @@
|
||||
#include "Indoor/floorplan/v2/FloorplanHelper.h"
|
||||
|
||||
#include <KLib/misc/gnuplot/Gnuplot.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotPlotElementLines.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplot.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplotElementPoints.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplotElementLines.h>
|
||||
@@ -22,11 +25,102 @@
|
||||
#include "EvalWalk.h"
|
||||
#include "EvalData.h"
|
||||
#include "EvalWiFi.h"
|
||||
#include "EvalWiFiSigStrength.h"
|
||||
|
||||
#include "PlotErrFunc.h"
|
||||
|
||||
// build plots for the paper
|
||||
void paperOutputs() {
|
||||
|
||||
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(Settings::fMap);
|
||||
|
||||
if (1==1){
|
||||
EvalWiFiSigStrength sig(Settings::fMap, Settings::fCalib);
|
||||
Plotty* p = new Plotty(map);
|
||||
p->writeCodeTo(Settings::fPathGFX + "compare-wifi-in-out.gp");
|
||||
p->writeEpsTex(Settings::fPathGFX + "compare-wifi-in-out.tex");
|
||||
p->settings.floors = {0};
|
||||
p->settings.maxZ = 1;
|
||||
p->buildFloorplan();
|
||||
sig.forAP_avg(p, MACAddress("d8:84:66:4a:23:d0"));
|
||||
p->equalXY();
|
||||
p->setView(0,0);
|
||||
p->setScale(3.1, 3.1);
|
||||
p->addRectangle(Point3(62, 24, 0), Point3(72, 34, 0), Color::fromRGB(0,0,0), false, false);
|
||||
p->noFrame();
|
||||
p->plot();
|
||||
delete p;
|
||||
}
|
||||
|
||||
if (1==1) {
|
||||
|
||||
const bool ignoreStaircases = false;
|
||||
const bool ignoreOutdoor = false;
|
||||
EvalCompareOptAllFixed allFixed(Settings::fMap, Settings::fCalib, ignoreStaircases, ignoreOutdoor);
|
||||
|
||||
K::Statistics<float> s1 = allFixed.fixedPosFixedParamsForAll(); //BREAK;
|
||||
K::Statistics<float> s2 = allFixed.fixedPosOptParamsForAll(); //BREAK;
|
||||
K::Statistics<float> s3 = allFixed.fixedPosOptParamsForEach(); //BREAK;
|
||||
K::Statistics<float> s4 = allFixed.optPosOptParamsForEach(); //BREAK;
|
||||
|
||||
PlotErrFunc pef("\\small{error (dB)}", "\\small{fingerprints (\\%)}");
|
||||
pef.add("\\small{empiric}", s1);
|
||||
pef.add("\\small{real pos, opt params}", s2);
|
||||
pef.add("\\small{real pos, opt params [per AP]}", s3);
|
||||
pef.add("\\small{opt pos, opt params [per AP]}", s4);
|
||||
|
||||
pef.getGP().setTerminal("epslatex", K::GnuplotSize(8.5, 5));
|
||||
pef.getGP().setOutput(Settings::fPathGFX + "wifi-opt-error-hist-methods.tex");
|
||||
pef.writeCodeTo(Settings::fPathGFX + "wifi-opt-error-hist-methods.gp");
|
||||
pef.getGP() << "set key right bottom width -4 samplen 0.5\n";
|
||||
pef.getGP() << "set rmargin 0.4\n";
|
||||
pef.getGP() << "set tmargin 0.4\n";
|
||||
pef.plot();
|
||||
|
||||
}
|
||||
|
||||
// error histogram all pos, all params, between in/out/stair, in/out, in/stair, in
|
||||
if(1==1){
|
||||
EvalCompareOptAllFixed e1(Settings::fMap, Settings::fCalib, false, false);
|
||||
EvalCompareOptAllFixed e2(Settings::fMap, Settings::fCalib, true, false);
|
||||
EvalCompareOptAllFixed e3(Settings::fMap, Settings::fCalib, false, true);
|
||||
EvalCompareOptAllFixed e4(Settings::fMap, Settings::fCalib, true, true);
|
||||
|
||||
K::Statistics<float> s1 = e1.optPosOptParamsForEach();
|
||||
K::Statistics<float> s2 = e2.optPosOptParamsForEach();
|
||||
K::Statistics<float> s3 = e3.optPosOptParamsForEach();
|
||||
K::Statistics<float> s4 = e4.optPosOptParamsForEach();
|
||||
|
||||
PlotErrFunc pef("\\small{error (dB)}", "\\small{fingerprints (\\%)}");
|
||||
pef.add("\\small{floor + stairs + out}", s1);
|
||||
pef.add("\\small{floor + out}", s2);
|
||||
pef.add("\\small{floor + stairs}", s3);
|
||||
pef.add("\\small{floor}", s4);
|
||||
|
||||
pef.getGP().setTerminal("epslatex", K::GnuplotSize(8.5, 5));
|
||||
pef.getGP().setOutput(Settings::fPathGFX + "wifi-opt-error-hist-stair-outdoor.tex");
|
||||
pef.writeCodeTo(Settings::fPathGFX + "wifi-opt-error-hist-stair-outdoor.gp");
|
||||
pef.getGP() << "set key right bottom width -3\n";
|
||||
pef.getGP() << "set rmargin 0.4\n";
|
||||
pef.getGP() << "set tmargin 0.4\n";
|
||||
pef.plot();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#define BREAK raise(SIGTRAP);
|
||||
|
||||
int main(void) {
|
||||
|
||||
// paperOutputs(); return 0;
|
||||
|
||||
if (1 == 1) {
|
||||
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(Settings::fMap);;
|
||||
EvalWalk walk(map);
|
||||
walk.walk1();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// test gps within data files
|
||||
if (1 == 0) {
|
||||
EvalData::dumpGPSforPath(Settings::path1a); BREAK;
|
||||
@@ -35,35 +129,83 @@ int main(void) {
|
||||
EvalData::dumpGPSforPath(Settings::path2b); BREAK;
|
||||
}
|
||||
|
||||
// test wifi within data files
|
||||
if (1 == 1) {
|
||||
//EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path2);
|
||||
EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path1);
|
||||
//ew1.fixedParams(-40, 2.5, -8); BREAK;
|
||||
ew1.fixedParams(-64.5905, 1.25988, -2.47863); BREAK;
|
||||
// eval average signal-strength per AP
|
||||
if (1 == 0) {
|
||||
|
||||
EvalWiFiSigStrength ewss(Settings::fMap, Settings::fCalib);
|
||||
ewss.perAP_avg();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// test wifi within data files
|
||||
if (1 == 0) {
|
||||
//EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path2);
|
||||
EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path2);
|
||||
//ew1.fixedParams(-40, 2.5, -8); BREAK;
|
||||
//ew1.fixedParams(-64.5905, 1.25988, -2.47863); BREAK;
|
||||
ew1.fixedParams(-59.4903,1.52411,-3.25077); BREAK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// run walking
|
||||
|
||||
|
||||
// run earthmapping
|
||||
//testMapEarthReg(fMap);
|
||||
|
||||
// EvalApOpt eval(fMap, fCalib);
|
||||
// eval.optAll();
|
||||
|
||||
|
||||
// run evaluation
|
||||
if (1 == 0) {
|
||||
EvalCompareOptAllFixed allFixed(Settings::fMap, Settings::fCalib);
|
||||
allFixed.fixedPosFixedParamsForAll();
|
||||
allFixed.fixedPosOptParamsForAll();
|
||||
allFixed.fixedPosOptParamsForEach();
|
||||
allFixed.optPosOptParamsForEach();
|
||||
EvalApOpt eval(Settings::fMap, Settings::fCalib);
|
||||
eval.optAll();
|
||||
}
|
||||
|
||||
|
||||
// compare wifi opt methods
|
||||
if (1 == 1) {
|
||||
|
||||
const bool ignoreStaircases = false;
|
||||
const bool ignoreOutdoor = false;
|
||||
EvalCompareOptAllFixed allFixed(Settings::fMap, Settings::fCalib, ignoreStaircases, ignoreOutdoor);
|
||||
|
||||
K::Statistics<float> s1 = allFixed.fixedPosFixedParamsForAll(); //BREAK;
|
||||
K::Statistics<float> s2 = allFixed.fixedPosOptParamsForAll(); //BREAK;
|
||||
K::Statistics<float> s3 = allFixed.fixedPosOptParamsForEach(); //BREAK;
|
||||
K::Statistics<float> s4 = allFixed.optPosOptParamsForEach(); //BREAK;
|
||||
|
||||
PlotErrFunc pef("error (dB)", "fingerprints (%)");
|
||||
pef.add("empiric", s1);
|
||||
pef.add("real pos, opt params [same for all]", s2);
|
||||
pef.add("real pos, opt params [for each]", s3);
|
||||
pef.add("opt pos, opt params [for each]", s4);
|
||||
pef.plot();
|
||||
|
||||
}
|
||||
|
||||
// compare leaving out fingerprints
|
||||
if (1 == 0) {
|
||||
|
||||
EvalCompareOptAllFixed e1(Settings::fMap, Settings::fCalib, false, false);
|
||||
EvalCompareOptAllFixed e2(Settings::fMap, Settings::fCalib, true, false);
|
||||
EvalCompareOptAllFixed e3(Settings::fMap, Settings::fCalib, false, true);
|
||||
EvalCompareOptAllFixed e4(Settings::fMap, Settings::fCalib, true, true);
|
||||
|
||||
K::Statistics<float> s1 = e1.optPosOptParamsForEach();
|
||||
K::Statistics<float> s2 = e2.optPosOptParamsForEach();
|
||||
K::Statistics<float> s3 = e3.optPosOptParamsForEach();
|
||||
K::Statistics<float> s4 = e4.optPosOptParamsForEach();
|
||||
|
||||
PlotErrFunc pef("error (dB)", "fingerprints (%)");
|
||||
pef.add("floor + stairs + out", s1);
|
||||
pef.add("floor + out", s2);
|
||||
pef.add("floor + stairs", s3);
|
||||
pef.add("floor", s4);
|
||||
pef.plot();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile("/apps/android/workspace/OTHER2017/data/SHL33a.xml");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user