From cc9c706110615ac926ec42b3ba1374192aea6d04 Mon Sep 17 00:00:00 2001 From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu> Date: Sat, 6 Feb 2021 11:56:42 +0100 Subject: [PATCH] evaluateNewRefScene function modified --- src/corner_falko_2d.cpp | 13 ++++++++----- src/corner_falko_2d.h | 3 +++ src/examples/corner_falko_demo.cpp | 6 +++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/corner_falko_2d.cpp b/src/corner_falko_2d.cpp index c48b928..8bd0c3a 100644 --- a/src/corner_falko_2d.cpp +++ b/src/corner_falko_2d.cpp @@ -91,14 +91,18 @@ int CornerFalko2d::evaluateNewReferenceScene(LaserScan scan,LaserScanParams scan int NewSceneAdded=0; - if (scanNumber % scanInterval == 0){ + if (scanNumber % scanInterval == 0 || scanNumber == 1){ - falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams); + findLoopClosure(scan, scanParams); - AddNewReferenceScene(scanFALKO); + if (matchingNumber < refSceneAddingTh) { - NewSceneAdded=1; + falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams); + AddNewReferenceScene(scanFALKO); + + NewSceneAdded=1; + } } return NewSceneAdded; @@ -106,5 +110,4 @@ int CornerFalko2d::evaluateNewReferenceScene(LaserScan scan,LaserScanParams scan } - } // laserscanutils namespace diff --git a/src/corner_falko_2d.h b/src/corner_falko_2d.h index bdab934..a3a3048 100644 --- a/src/corner_falko_2d.h +++ b/src/corner_falko_2d.h @@ -108,6 +108,9 @@ public: int matchingPosition=-1; int keypointsNumberTh=2; + + // Max number of matched keypoints between 2 scenes for the candidate scene be considered a good New reference scene + int refSceneAddingTh =6; }; } /* namespace laserscanutils */ diff --git a/src/examples/corner_falko_demo.cpp b/src/examples/corner_falko_demo.cpp index e9af47f..30358e4 100644 --- a/src/examples/corner_falko_demo.cpp +++ b/src/examples/corner_falko_demo.cpp @@ -35,10 +35,14 @@ int main(int argc, char** argv) CornerFalko2d cornerMatching; - cornerMatching.evaluateNewReferenceScene(scan, laserParams, scanInterval); + int sceneAdded = cornerMatching.evaluateNewReferenceScene(scan, laserParams, scanInterval); std::cout << "num keypoints1 extracted: " << cornerMatching.lastKeypointSet.size() << std::endl; + if (sceneAdded==1){ + std::cout << "NewRefSceneAdded!!! " << std::endl; + } + cornerMatching.findLoopClosure(scan, laserParams); std::cout << "matching number : " << cornerMatching.matchingNumber << std::endl; -- GitLab