From 93c8821ae243a300c6a3ec6dba9e57eb3bdb61c6 Mon Sep 17 00:00:00 2001 From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu> Date: Tue, 16 Feb 2021 11:36:05 +0100 Subject: [PATCH] sceneExtract moved to .h file --- src/loop_closure_falko.cpp | 3 ++- src/loop_closure_falko.h | 15 +++++++++++---- test/gtest_loop_closure_base_2d.cpp | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp index c0ab0fb..824400a 100644 --- a/src/loop_closure_falko.cpp +++ b/src/loop_closure_falko.cpp @@ -42,7 +42,7 @@ namespace laserscanutils{ ((*scanFALKO).fromRanges)(doubleRanges); return scanFALKO; } - +/* template <typename D,typename Extr, typename M> typename loopClosureFalko<D,Extr, M>::sceneFalkoBSCPtr loopClosureFalko<D,Extr, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){ auto newScene=std::make_shared<sceneFalko<D>>(); @@ -54,6 +54,7 @@ namespace laserscanutils{ extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList); return newScene; } + */ /* template <typename D,typename Extr, typename M> typename loopClosureFalko<D,Extr, M>::matchLoopClosurePtr matchScene(std::shared_ptr<sceneFalko<D>> scene1,std::shared_ptr<sceneFalko<D>> scene2){ diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h index bfbcb78..95c534e 100644 --- a/src/loop_closure_falko.h +++ b/src/loop_closure_falko.h @@ -69,15 +69,23 @@ public: **/ //void findLoopClosure(std::list<sceneFalko>& scenes, const cornerScene newScene){} - /** \brief update the scene struct with keypoints and descriptors + /** \brief Create and update the scene struct with keypoints and descriptors **/ - sceneFalkoBSCPtr extractScene(LaserScan &scan,LaserScanParams &scanParams) override; + sceneFalkoBSCPtr extractScene(LaserScan &scan,LaserScanParams &scanParams) { + auto newScene=std::make_shared<sceneFalko<D>>(); + auto scanFALKO =loopClosureFalko<D,Extr,M>::convert2LaserScanFALKO(scan, scanParams); + // Extract keypoints + extract((*scanFALKO), (newScene->keypointsList)); + // Compute descriptors + extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList); + return newScene; + } /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object **/ std::shared_ptr<falkolib::LaserScan> convert2LaserScanFALKO(LaserScan &scan,LaserScanParams &scanParams); - /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object + /** \brief Create and update a matchLoopClosure struct with the info that is produced when matching two given scenes **/ matchLoopClosurePtr matchScene(sceneFalkoBSCPtr scene1 ,sceneFalkoBSCPtr scene2){ std::vector<std::pair<int, int> > assoNN; @@ -93,7 +101,6 @@ public: new_match -> sceneTuple = std::make_tuple(scene1,scene2); return new_match; } - }; } /* namespace laserscanutils */ diff --git a/test/gtest_loop_closure_base_2d.cpp b/test/gtest_loop_closure_base_2d.cpp index e2cab5c..d1777d5 100644 --- a/test/gtest_loop_closure_base_2d.cpp +++ b/test/gtest_loop_closure_base_2d.cpp @@ -44,7 +44,7 @@ TEST(loop_closure_falko, TestExtractSceneAndMatcher) // PRINTF("All good at TestTest::DummyTestExample !\n"); } -TEST(loop_closure_falko, convert2laserScanFalko) +TEST(loop_closure_falko2, convert2laserScanFalko) { int scanSize = 1440; -- GitLab