diff --git a/src/loop_closure_base_2d.h b/src/loop_closure_base_2d.h index def39c0476b51016b0aa5921d63dd34dd2dafbcd..58ddc4ec45134adf3588615dff2a7c4a82815e9f 100644 --- a/src/loop_closure_base_2d.h +++ b/src/loop_closure_base_2d.h @@ -56,7 +56,7 @@ public: /** \brief update the scene struct with keypoints and descriptors **/ - virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){} + //virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){} /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object **/ diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp index 38fb1643cfbb7e729d862ef391a05d8933154690..f03732a273a59b103e8eb0ce83cf99c100b21978 100644 --- a/src/loop_closure_falko.cpp +++ b/src/loop_closure_falko.cpp @@ -22,10 +22,11 @@ namespace laserscanutils{ setGridSectors(16); // Matcher Extractor Parameters - matcher.setDistanceThreshold(0.1); + //matcher.setDistanceThreshold(0.1); } + // DESTRUCTOR template <typename D,typename E, typename M> loopClosureFalko<D,E,M>::~loopClosureFalko(){} @@ -35,9 +36,10 @@ namespace laserscanutils{ auto scanFALKO =loopClosureFalko<D,E,M>::convert2LaserScanFALKO(scan, scanParams); - auto NewScene=std::make_shared<cornerScene<D>>(); + //((*NewScene).keypointsList)=((*scanFALKO).ranges); + return NewScene; } @@ -45,5 +47,6 @@ namespace laserscanutils{ //void findLoopClosure(std::list<cornerScene>& scenes, const cornerScene newScene){} - + //Explicitly compile all the templates + template class loopClosureFalko <bsc, bscExtractor, NNMatcher>; } diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h index 451cb82dd84e08df40956ff6d9c7758685e3df2f..41503976af69950f028da67e93106fed021f8273 100644 --- a/src/loop_closure_falko.h +++ b/src/loop_closure_falko.h @@ -17,6 +17,7 @@ **************************/ #include "laser_scan.h" #include "corner_scene.h" +#include "loop_closure_base_2d.h" /************************** * Falko includes * @@ -42,8 +43,9 @@ typedef falkolib::NNMatcher<falkolib::FALKO> NNMatcher; /** \brief A base class for loop closure using falko library **/ + template <typename D, typename E, typename M> -class loopClosureFalko : public falkolib::FALKOExtractor{ +class loopClosureFalko : public loopClosureBase2d, public falkolib::FALKOExtractor{ private: public: @@ -63,8 +65,8 @@ public: **/ std::shared_ptr<cornerScene<D>> extractScene(LaserScan &scan,LaserScanParams &scanParams); - E extractor; - M matcher; + //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 d60cab974f9cd212773c71ca4f6d26525a1ec17f..7ba63720c6db4bcb9b0467e801395e57364d0ca2 100644 --- a/test/gtest_loop_closure_base_2d.cpp +++ b/test/gtest_loop_closure_base_2d.cpp @@ -1,10 +1,44 @@ #include "gtest/utils_gtest.h" #include "testData2.h" #include "../src/loop_closure_base_2d.h" +#include "../src/loop_closure_falko.h" + //#include "laser_scan_utils.h" using namespace laserscanutils; +TEST(loop_closure_fako, extractScene) +{ + int scanSize = 1440; + + LaserScan scan; + LaserScanParams laserParams; + + laserParams.angle_min_=0; + laserParams.angle_max_=2.0 * M_PI; + + for (int i=0; i<scanSize; i++) { + scan.ranges_raw_.push_back(testRanges1[i]); + } + + loopClosureFalko<bsc, bscExtractor, NNMatcher> LCFalko; + + std::cout << "AAA" << std::endl; +/* + + std::shared_ptr<falkolib::LaserScan> scanFALKO=LCBase.convert2LaserScanFALKO(scan, laserParams); + + int firstPoint = ((*scanFALKO).ranges)[0]; + + EXPECT_FALSE(false); + + ASSERT_TRUE(true); + + ASSERT_EQ(firstPoint, 250); +*/ +// PRINTF("All good at TestTest::DummyTestExample !\n"); +} + TEST(loop_closure_base_2d, convert2laserScanFalko) { int scanSize = 1440;