From 8c173a8846bd76e4e72813049263ec46e865e291 Mon Sep 17 00:00:00 2001 From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu> Date: Mon, 15 Feb 2021 11:53:57 +0100 Subject: [PATCH] modified loopClosureFalko constructor --- src/corner_scene.h | 5 +++++ src/loop_closure_falko.cpp | 27 +++++++++++++++++++-------- src/loop_closure_falko.h | 11 +++++++---- test/gtest_loop_closure_base_2d.cpp | 8 ++++---- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/corner_scene.h b/src/corner_scene.h index 19e45d3..fb1932c 100644 --- a/src/corner_scene.h +++ b/src/corner_scene.h @@ -28,12 +28,17 @@ namespace laserscanutils { + + template <typename D> struct cornerScene{ std::vector<falkolib::FALKO> keypointsList; std::vector<D> descriptorsList; }; +typedef std::shared_ptr<cornerScene<falkolib::BSC>> cornerSceneBSCPtr; + + } /* namespace laserscanutils */ #endif /* CORNER_SCENE_H_ */ diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp index 3a5a20c..caf5518 100644 --- a/src/loop_closure_falko.cpp +++ b/src/loop_closure_falko.cpp @@ -10,8 +10,13 @@ namespace laserscanutils{ //CONSTRUCTOR - template <typename D,typename E, typename M> - loopClosureFalko<D,E, M>::loopClosureFalko(){ + template <typename D,typename Extr, typename M> + loopClosureFalko<D,Extr, M>::loopClosureFalko(int _circularSectorNumber, int _radialRingNumber) : + loopClosureBase2d(), + falkolib::FALKOExtractor(), + extractor_(_circularSectorNumber, _radialRingNumber), + matcher_() + { // FALKO Extractor Parameters setMinExtractionRange(0.1); setMaxExtractionRange(25); @@ -28,15 +33,21 @@ namespace laserscanutils{ // DESTRUCTOR - template <typename D,typename E, typename M> - loopClosureFalko<D,E,M>::~loopClosureFalko(){} + template <typename D,typename Extr, typename M> + loopClosureFalko<D,Extr,M>::~loopClosureFalko(){} - template <typename D,typename E, typename M> - std::shared_ptr<cornerScene<D>> loopClosureFalko<D,E, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){ + template <typename D,typename Extr, typename M> + std::shared_ptr<cornerScene<D>> loopClosureFalko<D,Extr, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){ auto newScene=std::make_shared<cornerScene<D>>(); - auto scanFALKO =loopClosureFalko<D,E,M>::convert2LaserScanFALKO(scan, scanParams); + auto scanFALKO =loopClosureFalko<D,Extr,M>::convert2LaserScanFALKO(scan, scanParams); // Extract keypoints - extract((*scanFALKO), ((*newScene).keypointsList)); + extract((*scanFALKO), (newScene->keypointsList)); + + // Compute descriptors + //loopClosureFalko<D,Extr,M>::extractor: + extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList); + //extractor.compute((*scanFALKO),((*newScene).keypointsList), ((*newScene).descriptorsList)); + //loopClosureFalko<D,Extr,M>::extractor::compute((*scanFALKO),((*newScene).keypointsList), ((*newScene).descriptorsList)); return newScene; } diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h index 4150397..379a49d 100644 --- a/src/loop_closure_falko.h +++ b/src/loop_closure_falko.h @@ -44,14 +44,18 @@ typedef falkolib::NNMatcher<falkolib::FALKO> NNMatcher; /** \brief A base class for loop closure using falko library **/ -template <typename D, typename E, typename M> +template <typename D, typename Extr, typename M> class loopClosureFalko : public loopClosureBase2d, public falkolib::FALKOExtractor{ private: public: + Extr extractor_; + M matcher_; + int test=1; + /** \brief Constructor **/ - loopClosureFalko(); + loopClosureFalko(int _circularSectorNumber=16, int _radialRingNumber=8); /** \brief Destructor **/ @@ -65,8 +69,7 @@ public: **/ std::shared_ptr<cornerScene<D>> extractScene(LaserScan &scan,LaserScanParams &scanParams); - //E extractor; - //M matcher; + }; } /* namespace laserscanutils */ diff --git a/test/gtest_loop_closure_base_2d.cpp b/test/gtest_loop_closure_base_2d.cpp index f45d07f..66aca01 100644 --- a/test/gtest_loop_closure_base_2d.cpp +++ b/test/gtest_loop_closure_base_2d.cpp @@ -7,7 +7,7 @@ using namespace laserscanutils; -TEST(loop_closure_fako, extractScene) +TEST(loop_closure_falko, extractScene) { int scanSize = 1440; @@ -27,12 +27,12 @@ TEST(loop_closure_fako, extractScene) int detectedKeypoints =((*newScene).keypointsList).size(); - EXPECT_FALSE(false); - - ASSERT_TRUE(true); + int detectedDescriptors =newScene->descriptorsList.size(); ASSERT_EQ(detectedKeypoints, 18); + ASSERT_EQ(detectedDescriptors, 18); + // PRINTF("All good at TestTest::DummyTestExample !\n"); } -- GitLab