commit before new model is implemented
This commit is contained in:
53
filter/KLB.h
53
filter/KLB.h
@@ -29,31 +29,30 @@
|
||||
#include <Indoor/math/divergence/JensenShannon.h>
|
||||
#include <Indoor/data/Timestamp.h>
|
||||
|
||||
#include <KLib/math/statistics/Statistics.h>
|
||||
//#include <KLib/math/statistics/Statistics.h>
|
||||
|
||||
#include <KLib/math/filter/particles/Particle.h>
|
||||
#include <KLib/math/filter/particles/ParticleFilterMixing.h>
|
||||
#include <KLib/math/filter/particles/ParticleFilterInitializer.h>
|
||||
#include <KLib/math/filter/particles/ParticleFilterHistory.h>
|
||||
#include <Indoor/smc/Particle.h>
|
||||
#include <Indoor/smc/filtering/ParticleFilterMixing.h>
|
||||
#include <Indoor/smc/filtering/ParticleFilterInitializer.h>
|
||||
#include <Indoor/smc/filtering/ParticleFilterHistory.h>
|
||||
|
||||
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h>
|
||||
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h>
|
||||
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h>
|
||||
//#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationKernelDensity.h>
|
||||
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationWeightedAverage.h>
|
||||
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationRegionalWeightedAverage.h>
|
||||
#include <Indoor/smc/filtering/estimation/ParticleFilterEstimationOrderedWeightedAverage.h>
|
||||
|
||||
#include <KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h>
|
||||
#include <KLib/math/filter/particles/resampling/ParticleFilterResamplingPercent.h>
|
||||
#include <KLib/math/filter/particles/resampling/ParticleFilterResamplingDivergence.h>
|
||||
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingSimple.h>
|
||||
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingPercent.h>
|
||||
#include <Indoor/smc/filtering/resampling/ParticleFilterResamplingDivergence.h>
|
||||
|
||||
#include <KLib/math/filter/merging/MarkovTransitionProbability.h>
|
||||
#include <KLib/math/filter/merging/mixing/MixingSamplerDivergency.h>
|
||||
#include <KLib/math/filter/merging/estimation/JointEstimationPosteriorOnly.h>
|
||||
#include <Indoor/smc/merging/MarkovTransitionProbability.h>
|
||||
#include <Indoor/smc/merging/mixing/MixingSamplerDivergency.h>
|
||||
#include <Indoor/smc/merging/estimation/JointEstimationPosteriorOnly.h>
|
||||
|
||||
#include <KLib/math/filter/smoothing/BackwardSimulation.h>
|
||||
#include <KLib/math/filter/smoothing/CondensationBackwardFilter.h>
|
||||
#include <KLib/math/filter/smoothing/sampling/ParticleTrajectorieSampler.h>
|
||||
#include <KLib/math/filter/smoothing/sampling/CumulativeSampler.h>
|
||||
#include <KLib/math/filter/smoothing/BackwardFilterTransition.h>
|
||||
//#include <Indoor/smc/smoothing/BackwardSimulation.h>
|
||||
//#include <Indoor/smc/CondensationBackwardFilter.h>
|
||||
//#include <Indoor/smc/smoothing/sampling/ParticleTrajectorieSampler.h>
|
||||
//#include <Indoor/smc/smoothing/sampling/CumulativeSampler.h>
|
||||
#include <Indoor/smc/smoothing/BackwardFilterTransition.h>
|
||||
|
||||
#include "Structs.h"
|
||||
|
||||
@@ -61,7 +60,7 @@
|
||||
#include "Logic.h"
|
||||
#include "../Settings.h"
|
||||
|
||||
static double getKernelDensityProbability(std::vector<K::Particle<MyState>>& particles, MyState state, std::vector<K::Particle<MyState>>& samplesWifi){
|
||||
static double getKernelDensityProbability(std::vector<SMC::Particle<MyState>>& particles, MyState state, std::vector<SMC::Particle<MyState>>& samplesWifi){
|
||||
|
||||
Distribution::KernelDensity<double, MyState> parzen([&](MyState state){
|
||||
int size = particles.size();
|
||||
@@ -80,11 +79,11 @@ static double getKernelDensityProbability(std::vector<K::Particle<MyState>>& par
|
||||
std::vector<double> probsParticleV;
|
||||
|
||||
//just for plottingstuff
|
||||
std::vector<K::Particle<MyState>> samplesParticles;
|
||||
std::vector<SMC::Particle<MyState>> samplesParticles;
|
||||
|
||||
const int step = 4;
|
||||
int i = 0;
|
||||
for(K::Particle<MyState> particle : samplesWifi){
|
||||
for(SMC::Particle<MyState> particle : samplesWifi){
|
||||
if(++i % step != 0){continue;}
|
||||
MyState state(GridPoint(particle.state.position.x_cm, particle.state.position.y_cm, particle.state.position.z_cm));
|
||||
|
||||
@@ -94,7 +93,7 @@ static double getKernelDensityProbability(std::vector<K::Particle<MyState>>& par
|
||||
double probiwifi = particle.weight;
|
||||
probsWifiV.push_back(probiwifi);
|
||||
|
||||
//samplesParticles.push_back(K::Particle<MyState>(state, probiParticle));
|
||||
//samplesParticles.push_back(SMC::Particle<MyState>(state, probiParticle));
|
||||
}
|
||||
|
||||
//make vectors
|
||||
@@ -111,7 +110,7 @@ static double getKernelDensityProbability(std::vector<K::Particle<MyState>>& par
|
||||
|
||||
|
||||
//estimate the mean
|
||||
// K::ParticleFilterEstimationOrderedWeightedAverage<MyState> estimateWifi(0.95);
|
||||
// SMC::ParticleFilterEstimationOrderedWeightedAverage<MyState> estimateWifi(0.95);
|
||||
// const MyState estWifi = estimateWifi.estimate(samplesWifi);
|
||||
// plot.addEstimationNodeSmoothed(estWifi.position.inMeter());
|
||||
|
||||
@@ -119,7 +118,7 @@ static double getKernelDensityProbability(std::vector<K::Particle<MyState>>& par
|
||||
}
|
||||
|
||||
|
||||
static double kldFromMultivariatNormal(std::vector<K::Particle<MyState>>& particles, MyState state, std::vector<K::Particle<MyState>>& particleWifi){
|
||||
static double kldFromMultivariatNormal(std::vector<SMC::Particle<MyState>>& particles, MyState state, std::vector<SMC::Particle<MyState>>& particleWifi){
|
||||
//kld: particle die resampling hatten nehmen und nv daraus schätzen. vergleiche mit wi-fi
|
||||
//todo put this in depletionhelper.h
|
||||
|
||||
@@ -155,7 +154,7 @@ static double kldFromMultivariatNormal(std::vector<K::Particle<MyState>>& partic
|
||||
0, 0, 0.01;
|
||||
|
||||
//estimate the mean
|
||||
K::ParticleFilterEstimationOrderedWeightedAverage<MyState> estimateWifi(0.95);
|
||||
SMC::ParticleFilterEstimationOrderedWeightedAverage<MyState> estimateWifi(0.95);
|
||||
const MyState estWifi = estimateWifi.estimate(particleWifi);
|
||||
|
||||
Eigen::VectorXd meanWifi(3);
|
||||
|
||||
Reference in New Issue
Block a user