Added all paths

This commit is contained in:
2019-07-16 14:40:53 +02:00
parent 4415288cda
commit a7571862c6
2 changed files with 55 additions and 32 deletions

View File

@@ -93,7 +93,7 @@ namespace Settings {
const std::string dataDir = "../measurements/data/"; const std::string dataDir = "../measurements/data/";
const std::string errorDir = "../measurements/error/"; const std::string errorDir = "../measurements/error/";
const bool UseKalman = false; const bool UseKalman = true;
/** describes one dataset (map, training, parameter-estimation, ...) */ /** describes one dataset (map, training, parameter-estimation, ...) */
@@ -143,20 +143,12 @@ namespace Settings {
const DataSetup Path1 = { const DataSetup Path1 = {
mapDir + "map2_ap_path1.xml", mapDir + "map2_ap_path1.xml",
{ {
dataDir + "Pixel2/Path1_7208.csv", dataDir + "Pixel2/path1/1560153927208_2_1.csv",
}, dataDir + "Pixel2/path1/1560153989866_2_2.csv",
{ dataDir + "Pixel2/path1/1560154049481_2_3.csv",
{ NUC1, {1, { 8.1, 18.7, 0.8}, 2.25, 0, 10.0f} }, // NUC 1 dataDir + "Pixel2/path1/1560154143357_2_4.csv",
{ NUC2, {2, { 8.4, 27.3, 0.8}, 3.25, 0, 10.0f} }, // NUC 2 dataDir + "Pixel2/path1/1560154188048_2_5.csv",
{ NUC3, {3, {21.3, 19.3, 0.8}, 2.50, 0, 10.0f} }, // NUC 3 dataDir + "Pixel2/path1/1560154230042_2_6.csv"
{ NUC4, {4, {20.6, 26.8, 0.8}, 3.00, 0, 10.0f} }, // NUC 4
},
{ 1, 2, 6, 7, 6, 2, 1 }
};
const DataSetup Path1_1 = {
mapDir + "map2_ap_path1.xml",
{
dataDir + "Pixel2/1560154188048_2_5.csv",
}, },
{ {
{ NUC1, {1, { 8.1, 18.7, 0.8}, 2.25, 0, 10.0f} }, // NUC 1 { NUC1, {1, { 8.1, 18.7, 0.8}, 2.25, 0, 10.0f} }, // NUC 1
@@ -172,6 +164,11 @@ namespace Settings {
mapDir + "map2_ap_path1.xml", mapDir + "map2_ap_path1.xml",
{ {
dataDir + "Pixel2/path2/1560154622883_3_1.csv", dataDir + "Pixel2/path2/1560154622883_3_1.csv",
dataDir + "Pixel2/path2/1560154679846_3_2.csv",
dataDir + "Pixel2/path2/1560154740633_3_3.csv",
dataDir + "Pixel2/path2/1560154852350_3_4.csv",
dataDir + "Pixel2/path2/1560154892633_3_5.csv",
dataDir + "Pixel2/path2/1560154931995_3_6.csv"
}, },
{ {
{ NUC1, {1, { 8.1, 18.7, 0.8}, 1.50, 0, 3.0f} }, // NUC 1 { NUC1, {1, { 8.1, 18.7, 0.8}, 1.50, 0, 3.0f} }, // NUC 1
@@ -188,6 +185,11 @@ namespace Settings {
mapDir + "map2_ap_path2.xml", mapDir + "map2_ap_path2.xml",
{ {
dataDir + "Pixel2/path3/1560155227376_4_1.csv", dataDir + "Pixel2/path3/1560155227376_4_1.csv",
dataDir + "Pixel2/path3/1560155332037_4_2.csv",
dataDir + "Pixel2/path3/1560155435568_4_3.csv",
dataDir + "Pixel2/path3/1560155662787_4_4.csv",
dataDir + "Pixel2/path3/1560155744688_4_5.csv",
dataDir + "Pixel2/path3/1560155821831_4_6.csv"
}, },
{ {
{ NUC1, {1, { 8.1, 18.7, 0.8}, 1.25, 0, 3.0f} }, // NUC 1 { NUC1, {1, { 8.1, 18.7, 0.8}, 1.25, 0, 3.0f} }, // NUC 1
@@ -203,6 +205,11 @@ namespace Settings {
mapDir + "map2_ap_path2.xml", mapDir + "map2_ap_path2.xml",
{ {
dataDir + "Pixel2/path4/1560156876457_5_1.csv", dataDir + "Pixel2/path4/1560156876457_5_1.csv",
dataDir + "Pixel2/path4/1560156976307_5_2.csv",
dataDir + "Pixel2/path4/1560157087291_5_3.csv",
dataDir + "Pixel2/path4/1560157347306_5_4.csv",
dataDir + "Pixel2/path4/1560157409937_5_5.csv",
dataDir + "Pixel2/path4/1560157495026_5_6.csv"
}, },
{ {
{ NUC1, {1, { 8.1, 18.7, 0.8}, 1.50, 0, 3.0f} }, // NUC 1 { NUC1, {1, { 8.1, 18.7, 0.8}, 1.50, 0, 3.0f} }, // NUC 1
@@ -212,13 +219,18 @@ namespace Settings {
}, },
{ 0, 1, 2, 3, 2, 6, 5, 6, 7, 8 } { 0, 1, 2, 3, 2, 6, 5, 6, 7, 8 }
}; };
// 5 Path: In R<>umen extendend // 5 Path: In R<>umen extendend
const DataSetup Path5 = { const DataSetup Path5 = {
mapDir + "map2_ap_path2.xml", mapDir + "map2_ap_path2.xml",
{ {
dataDir + "Pixel2/path5/1560158444772_6_1.csv",
dataDir + "Pixel2/path5/1560158562549_6_2.csv",
dataDir + "Pixel2/path5/1560158675012_6_3.csv", dataDir + "Pixel2/path5/1560158675012_6_3.csv",
dataDir + "Pixel2/path5/1560158823911_6_4.csv",
dataDir + "Pixel2/path5/1560158907998_6_5.csv",
dataDir + "Pixel2/path5/1560158988785_6_6.csv"
}, },
{ {
{ NUC1, {1, { 8.1, 18.7, 0.8}, 2.00, 0, 3.0f} }, // NUC 1 { NUC1, {1, { 8.1, 18.7, 0.8}, 2.00, 0, 3.0f} }, // NUC 1

View File

@@ -179,13 +179,13 @@ void exportFtmValues(Offline::FileReader& fr, Interpolator<uint64_t, Point3>& gt
static float kalman_procNoiseDistStdDev = 1.2f; // standard deviation of distance for process noise static float kalman_procNoiseDistStdDev = 1.2f; // standard deviation of distance for process noise
static float kalman_procNoiseVelStdDev = 0.1f; // standard deviation of velocity for process noise static float kalman_procNoiseVelStdDev = 0.1f; // standard deviation of velocity for process noise
static Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std::string folder) { static Stats::Statistics<float> run(Settings::DataSetup setup, int walkIdx, std::string folder) {
// reading file // reading file
std::string currDir = std::filesystem::current_path().string(); std::string currDir = std::filesystem::current_path().string();
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(setup.map); Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(setup.map);
Offline::FileReader fr(setup.training[numFile]); Offline::FileReader fr(setup.training[walkIdx]);
// ground truth // ground truth
std::vector<int> gtPath = setup.gtPath; std::vector<int> gtPath = setup.gtPath;
@@ -211,7 +211,7 @@ static Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std:
} }
std::ofstream errorFile; std::ofstream errorFile;
errorFile.open (evalDir.string() + "/" + std::to_string(numFile) + "_" + std::to_string(t) + ".csv"); errorFile.open (evalDir.string() + "/" + std::to_string(walkIdx) + "_" + std::to_string(t) + ".csv");
// wifi // wifi
@@ -221,7 +221,7 @@ static Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std:
kalmanMap->insert({ Settings::NUC3, Kalman(3, setup.NUCs.at(Settings::NUC3).kalman_measStdDev, kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev) }); kalmanMap->insert({ Settings::NUC3, Kalman(3, setup.NUCs.at(Settings::NUC3).kalman_measStdDev, kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev) });
kalmanMap->insert({ Settings::NUC4, Kalman(4, setup.NUCs.at(Settings::NUC4).kalman_measStdDev, kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev) }); kalmanMap->insert({ Settings::NUC4, Kalman(4, setup.NUCs.at(Settings::NUC4).kalman_measStdDev, kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev) });
std::cout << "Optimal wifi parameters for " << setup.training[numFile] << "\n"; std::cout << "Optimal wifi parameters for " << setup.training[walkIdx] << "\n";
optimizeWifiParameters(fr, gtInterpolator); optimizeWifiParameters(fr, gtInterpolator);
// mesh // mesh
@@ -397,6 +397,8 @@ static Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std:
//dbg.setTimeInMinute(static_cast<int>(ts.sec()) / 60, static_cast<int>(static_cast<int>(ts.sec())%60)); //dbg.setTimeInMinute(static_cast<int>(ts.sec()) / 60, static_cast<int>(static_cast<int>(ts.sec())%60));
//dbg.draw(); //dbg.draw();
//plot.printOverview("test");
plot.showParticles(pf.getParticles()); plot.showParticles(pf.getParticles());
plot.setCurEst(est.pos.pos); plot.setCurEst(est.pos.pos);
plot.setGroundTruth(gtPos); plot.setGroundTruth(gtPos);
@@ -407,9 +409,10 @@ static Stats::Statistics<float> run(Settings::DataSetup setup, int numFile, std:
//plot.splot.getView().setCamera(0, 0); //plot.splot.getView().setCamera(0, 0);
//plot.splot.getView().setEqualXY(true); //plot.splot.getView().setEqualXY(true);
plot.plot(); // plot.plot();
plot.plot();
//plot.closeStream();
//std::this_thread::sleep_for(500ms); //std::this_thread::sleep_for(500ms);
// error calc // error calc
@@ -457,7 +460,7 @@ int main(int argc, char** argv)
Stats::Statistics<float> tmp; Stats::Statistics<float> tmp;
std::string evaluationName = "prologic/tmp"; std::string evaluationName = "prologic/tmp";
std::vector<std::array<float, 3>> error; std::vector<std::array<float, 3>> error;
std::ofstream error_out; std::ofstream error_out;
error_out.open(Settings::errorDir + evaluationName + "_error_path1" + ".csv", std::ios_base::app); error_out.open(Settings::errorDir + evaluationName + "_error_path1" + ".csv", std::ios_base::app);
@@ -467,18 +470,26 @@ int main(int argc, char** argv)
//{ //{
// for (kalman_procNoiseVelStdDev = 0.1f; kalman_procNoiseVelStdDev < 0.5f; kalman_procNoiseVelStdDev += 0.1f) // for (kalman_procNoiseVelStdDev = 0.1f; kalman_procNoiseVelStdDev < 0.5f; kalman_procNoiseVelStdDev += 0.1f)
// { // {
for (int i = 0; i < 2; ++i) {
tmp = run(Settings::data.CurrentPath, 0, evaluationName); for (size_t walkIdx = 0; walkIdx < 6; walkIdx++)
statsMedian.add(tmp.getMedian()); {
statsAVG.add(tmp.getAvg()); std::cout << "Executing walk " << walkIdx << "\n";
statsSTD.add(tmp.getStdDev()); for (int i = 0; i < 1; ++i)
statsQuantil.add(tmp.getQuantile(0.75)); {
std::cout << "Start of iteration " << i << "\n";
std::cout << kalman_procNoiseDistStdDev << " " << kalman_procNoiseVelStdDev << std::endl; tmp = run(Settings::data.CurrentPath, walkIdx, evaluationName);
std::cout << "Iteration " << i << " completed" << std::endl; statsMedian.add(tmp.getMedian());
statsAVG.add(tmp.getAvg());
statsSTD.add(tmp.getStdDev());
statsQuantil.add(tmp.getQuantile(0.75));
std::cout << kalman_procNoiseDistStdDev << " " << kalman_procNoiseVelStdDev << std::endl;
std::cout << "Iteration " << i << " completed" << std::endl;
}
}
}
// error.push_back({{ kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev, statsAVG.getAvg() }}); // error.push_back({{ kalman_procNoiseDistStdDev, kalman_procNoiseVelStdDev, statsAVG.getAvg() }});