added tex

many changes/eval etc...
This commit is contained in:
2017-03-28 21:02:37 +02:00
parent 25e9b823eb
commit e718dc8cca
25 changed files with 4614 additions and 88 deletions

112
Helper.h
View File

@@ -3,6 +3,10 @@
#include <fstream>
#include <Indoor/geo/EarthPos.h>
#include <Indoor/sensors/radio/setup/WiFiFingerprints.h>
#include <Indoor/floorplan/v2/Floorplan.h>
#include "Plotty.h"
class LeHelper {
@@ -24,6 +28,114 @@ public:
}
/** remove all outdoor fingerprints */
static WiFiFingerprints removeOutdoor(const WiFiFingerprints& inp) {
WiFiFingerprints res;
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
const Point3 pos = fp.pos_m;
// garden
if (pos == Point3(21, 12, 1.3)) {continue;}
if (pos == Point3(21, 27, 1.3)) {continue;}
if (pos == Point3(39, 12, 1.3)) {continue;}
if (pos == Point3(39, 27, 1.3)) {continue;}
if (pos == Point3(67, 12, 1.3)) {continue;}
if (pos == Point3(67, 27, 1.3)) {continue;}
if (pos == Point3(88, 12, 1.3)) {continue;}
if (pos == Point3(88, 27, 1.3)) {continue;}
// front door
if (pos == Point3(94, 43, 4+1.3)) {continue;}
if (pos == Point3(110, 43, 4+1.3)) {continue;}
if (pos == Point3(94, 55, 4+1.3)) {continue;}
if (pos == Point3(110, 55, 4+1.3)) {continue;}
if (pos == Point3(67.2, 55, 4+1.3)) {continue;}
res.add(fp);
}
return res;
}
static WiFiFingerprints removeStaircases(const WiFiFingerprints& inp) {
WiFiFingerprints res;
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
const Point3 pos = fp.pos_m;
// floor 0
if (pos == Point3(67.2, 48.5, 1.3)) {continue;}
if (pos == Point3(11.2, 48.3, 1.3)) {continue;}
if (pos == Point3(16.5, 11.9, 1.3)) {continue;}
if (pos == Point3(57.4, 2.6, 1.3)) {continue;}
if (pos == Point3(57.4, -3.2, 3.0)) {continue;}
// floor 1
if (pos == Point3(67.2, 48.3, 4+1.3)) {continue;}
if (pos == Point3(11.4, 48.3, 4+1.3)) {continue;}
if (pos == Point3(16.1, 11.9, 4+1.3)) {continue;}
if (pos == Point3(57.4, 2.4, 4+1.3)) {continue;}
// floor 2
if (pos == Point3(67.0, 48.5, 3.4+4+1.3)) {continue;}
if (pos == Point3(11.6, 48.5, 3.4+4+1.3)) {continue;}
if (pos == Point3(16.3, 11.9, 3.4+4+1.3)) {continue;}
// floor 3
if (pos == Point3(67.0, 48.3, 3.4+3.4+4+1.3)) {continue;}
if (pos == Point3(11.4, 48.5, 3.4+3.4+4+1.3)) {continue;}
if (pos == Point3(16.3, 11.9, 3.4+3.4+4+1.3)) {continue;}
res.add(fp);
}
return res;
}
static void plot(const Floorplan::IndoorMap* map, const WiFiFingerprints& inp, const std::string& title = "Fingerprints") {
Plotty* p = new Plotty(map);
p->setTitle(title);
p->buildFloorplan();
p->cpoints.clear();
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
const K::GnuplotPoint3 gp(fp.pos_m.x, fp.pos_m.y, fp.pos_m.z);
//p->cpoints.add(gp, 1);
const float size = fp.measurements.entries.size() / 10.0 * 1.0;
p->addFloorRect(fp.pos_m, size, Color::fromRGB(255,0,0));
p->addLabel(std::to_string(fp.measurements.entries.size()), fp.pos_m+Point3(1,1,1));
}
p->plot();
}
/** is the given mac one of a FHWS ap? */
static inline bool isFHWS_AP(const MACAddress& mac) {
return mac.asString().substr(0,5) == "D8:84";
}
/** remove all non-FHWS APs from the calibration */
static inline void removeNonFHWS(WiFiFingerprints& calib) {
int removed = 0;
for (WiFiFingerprint& fp : calib.getFingerprints()) {
for (size_t i = 0; i < fp.measurements.entries.size(); ++i) {
const WiFiMeasurement& m = fp.measurements.entries[i];
if (!isFHWS_AP(m.getAP().getMAC())) {
fp.measurements.entries.erase(fp.measurements.entries.begin() + i);
--i;
++removed;
}
}
}
std::cout << "removed " << removed << " entries" <<std::endl;
}
};
#endif // HELPER_H