Added 3D boxKDE

This commit is contained in:
2018-07-31 15:36:18 +02:00
parent 5d2216f205
commit 3aaa470422
3 changed files with 16 additions and 3 deletions

View File

@@ -38,9 +38,15 @@ namespace Settings {
}
namespace KDE {
const Point2 bandwidth(100,100);
const Point2 bandwidth(1,1);
const float gridSize = 0.2;
}
namespace KDE3D {
const Point3 bandwidth(1, 1, 1);
const Point3 gridSize(0.2, 0.2, 1); // in meter
}
//const GridPoint destination = GridPoint(70*100, 35*100, 0*100); // use destination
const GridPoint destination = GridPoint(0,0,0); // do not use destination

View File

@@ -122,9 +122,10 @@ Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std::string
//auto resample = std::make_unique<SMC::ParticleFilterResamplingSimple<MyState>>();
auto resample = std::make_unique<SMC::ParticleFilterResamplingSimpleImpoverishment<MyState, MyNavMeshTriangle>>();
//auto estimate = std::make_unique<SMC::ParticleFilterEstimationBoxKDE<MyState>>(map, 0.2, Point2(1,1));
//auto estimate = std::make_unique<SMC::ParticleFilterEstimationBoxKDE<MyState>>(map, Settings::KDE::gridSize, Settings::KDE::bandwidth);
//auto estimate = std::make_unique<SMC::ParticleFilterEstimationWeightedAverage<MyState>>();
auto estimate = std::make_unique<SMC::ParticleFilterEstimationMax<MyState>>();
//auto estimate = std::make_unique<SMC::ParticleFilterEstimationMax<MyState>>();
auto estimate = std::make_unique<SMC::ParticleFilterEstimationBoxKDE3D<MyState>>(map, Settings::KDE3D::gridSize, Settings::KDE3D::bandwidth);
// setup
MyFilter pf(numParticles, std::move(init));

View File

@@ -14,6 +14,7 @@
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingSimple.h>
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingKLD.h>
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationBoxKDE.h>
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationBoxKDE3D.h>
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationWeightedAverage.h>
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationMax.h>
#include <Indoor/navMesh/walk/NavMeshWalkSimple.h>
@@ -61,6 +62,11 @@ struct MyState {
return pos.pos.y;
}
float getZ() {
return pos.pos.z;
}
float getBinValue(const int dim) const {
switch (dim) {
case 0: return this->pos.pos.x;