diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cec2f98de7de8d791d2da639d61ad2baf071ca8e..3860988eaeeebb60a99e5a75b61e50639dd746c4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -66,6 +66,7 @@ SET(HDRS IF(falkolib_FOUND) SET(HDRS ${HDRS} corner_falko_2d.h + loop_closure_falko.h corner_scene.h) ENDIF(falkolib_FOUND) @@ -96,6 +97,7 @@ SET(SRCS IF(falkolib_FOUND) SET(SRCS ${SRCS} corner_falko_2d.cpp + loop_closure_falko.cpp corner_scene.cpp) ENDIF(falkolib_FOUND) diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2008e2892c49df3db5f904edd7f6b25efe3b0d6d --- /dev/null +++ b/src/loop_closure_falko.cpp @@ -0,0 +1,26 @@ +/** + * \file loop_closure_base_2d.h + * + * Created on: Feb 9, 2021 + * \author: spujol + */ + +# include "loop_closure_falko.h" + +namespace laserscanutils{ + + loopClosureFalko::loopClosureFalko(){} + loopClosureFalko::~loopClosureFalko(){} +/* + std::shared_ptr<cornerScene> loopClosureBase2d::extractScene(LaserScan &scan,LaserScanParams &scanParams){ + + auto NewScene=std::make_shared<cornerScene>(); + + return NewScene; + } +*/ + + //void findLoopClosure(std::list<cornerScene>& scenes, const cornerScene newScene){} + + +} diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h new file mode 100644 index 0000000000000000000000000000000000000000..6053c7bf27b2475a585becfd16db8da4ff8a7a0a --- /dev/null +++ b/src/loop_closure_falko.h @@ -0,0 +1,64 @@ +/** + * \file loop_closure_base_2d.h + * + * Created on: Feb 9, 2021 + * \author: spujol + */ + +#ifndef LOOP_CLOSURE_FALKO_H_ +#define LOOP_CLOSURE_FALKO_H_ + +#include <iostream> +#include <fstream> +#include <memory> + +/************************** + * laser_scan_utils includes * + **************************/ +#include "laser_scan.h" +#include "corner_scene.h" + +/************************** + * Falko includes * + **************************/ +#include <falkolib/Feature/FALKO.h> +#include <falkolib/Feature/CGH.h> +#include <falkolib/Feature/BSC.h> +#include <falkolib/Feature/FALKOExtractor.h> + +#include <falkolib/Feature/BSCExtractor.h> +#include <falkolib/Feature/CGHExtractor.h> + +#include <falkolib/Matching/NNMatcher.h> +#include <falkolib/Matching/AHTMatcher.h> + +namespace laserscanutils +{ + + /** \brief A 2base class for loop closure using falko library +*/ +class loopClosureFalko{ +private: + +public: + /** \brief Constructor + **/ + loopClosureFalko(); + + /** \brief Destructor + **/ + ~loopClosureFalko(); + + /** \brief compare new scans against the trained set in order to find loop closures + **/ + void findLoopClosure(std::list<cornerScene>& scenes, const cornerScene newScene){} + + /** \brief update the scene struct with keypoints and descriptors + **/ + std::shared_ptr<cornerScene> extractScene(LaserScan &scan,LaserScanParams &scanParams){} + + +}; +} /* namespace laserscanutils */ + +#endif /* LOOP_CLOSURE_FALKO_H_ */