Added 3D boxKDE
This commit is contained in:
@@ -38,9 +38,15 @@ namespace Settings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace KDE {
|
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(70*100, 35*100, 0*100); // use destination
|
||||||
const GridPoint destination = GridPoint(0,0,0); // do not use destination
|
const GridPoint destination = GridPoint(0,0,0); // do not use destination
|
||||||
|
|
||||||
|
|||||||
5
main.cpp
5
main.cpp
@@ -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::ParticleFilterResamplingSimple<MyState>>();
|
||||||
auto resample = std::make_unique<SMC::ParticleFilterResamplingSimpleImpoverishment<MyState, MyNavMeshTriangle>>();
|
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::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
|
// setup
|
||||||
MyFilter pf(numParticles, std::move(init));
|
MyFilter pf(numParticles, std::move(init));
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingSimple.h>
|
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingSimple.h>
|
||||||
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingKLD.h>
|
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingKLD.h>
|
||||||
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationBoxKDE.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/ParticleFilterEstimationWeightedAverage.h>
|
||||||
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationMax.h>
|
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationMax.h>
|
||||||
#include <Indoor/navMesh/walk/NavMeshWalkSimple.h>
|
#include <Indoor/navMesh/walk/NavMeshWalkSimple.h>
|
||||||
@@ -61,6 +62,11 @@ struct MyState {
|
|||||||
return pos.pos.y;
|
return pos.pos.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float getZ() {
|
||||||
|
return pos.pos.z;
|
||||||
|
}
|
||||||
|
|
||||||
float getBinValue(const int dim) const {
|
float getBinValue(const int dim) const {
|
||||||
switch (dim) {
|
switch (dim) {
|
||||||
case 0: return this->pos.pos.x;
|
case 0: return this->pos.pos.x;
|
||||||
|
|||||||
Reference in New Issue
Block a user