diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b18778033b48e886b57ff31216b71a3265704f71..cec2f98de7de8d791d2da639d61ad2baf071ca8e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,6 +56,7 @@ SET(HDRS point_set.h polyline.h scan_segment.h + loop_closure_base_2d.h ) IF(csm_FOUND) SET(HDRS ${HDRS} @@ -64,7 +65,8 @@ SET(HDRS IF(falkolib_FOUND) SET(HDRS ${HDRS} - corner_falko_2d.h) + corner_falko_2d.h + corner_scene.h) ENDIF(falkolib_FOUND) #sources @@ -84,6 +86,7 @@ SET(SRCS point_set.cpp polyline.cpp scan_segment.cpp + loop_closure_base_2d.cpp ) IF(csm_FOUND) SET(SRCS ${SRCS} @@ -92,7 +95,8 @@ SET(SRCS IF(falkolib_FOUND) SET(SRCS ${SRCS} - corner_falko_2d.cpp) + corner_falko_2d.cpp + corner_scene.cpp) ENDIF(falkolib_FOUND) diff --git a/src/corner_scene.cpp b/src/corner_scene.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/corner_scene.h b/src/corner_scene.h new file mode 100644 index 0000000000000000000000000000000000000000..a2cd43c7869b0b0c7c53ee420d3e18ca7d742324 --- /dev/null +++ b/src/corner_scene.h @@ -0,0 +1,23 @@ +/** + * \file corner_scene.h + * + * Created on: Feb 9, 2021 + * \author: spujol + */ + +#ifndef CORNER_SCENE_H_ +#define CORNER_SCENE_H_ + +#include <iostream> +#include <fstream> + +namespace laserscanutils +{ +struct cornerScene{ + std::vector<double> keypointsList; + std::vector<double> descriptorsList; +}; + +} /* namespace laserscanutils */ + +#endif /* CORNER_SCENE_H_ */ \ No newline at end of file diff --git a/src/loop_closure_base_2d.cpp b/src/loop_closure_base_2d.cpp index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1693e916e7ac1cba058dc72b985f6f01f2e4f673 100644 --- a/src/loop_closure_base_2d.cpp +++ b/src/loop_closure_base_2d.cpp @@ -0,0 +1,16 @@ +/** + * \file loop_closure_base_2d.h + * + * Created on: Feb 9, 2021 + * \author: spujol + */ + +# include "loop_closure_base_2d.h" + +namespace laserscanutils{ + + cornerScene extractScene(LaserScan scan,LaserScanParams scanParams){ + cornerScene NewScene; + return NewScene; + } +} \ No newline at end of file diff --git a/src/loop_closure_base_2d.h b/src/loop_closure_base_2d.h index 0c36cf1cb3ade3912dcf57b58ac6aec38add9168..73edd7dcb1efb23644a5ac0234520e72b51626e2 100644 --- a/src/loop_closure_base_2d.h +++ b/src/loop_closure_base_2d.h @@ -11,8 +11,20 @@ #include <iostream> #include <fstream> +/************************** + * laser_scan_utils includes * + **************************/ +#include "laser_scan.h" +#include "corner_scene.h" + namespace laserscanutils { + /* +struct cornerScene{ + std::vector<double> keypointsList; + std::vector<double> descriptorsList; +};*/ + /** \brief A 2base class for loop closure using falko library */ class loopClosureBase2d{ @@ -21,14 +33,21 @@ private: public: /** \brief Constructor **/ - loopClosureBase2d(); /** \brief Destructor **/ ~loopClosureBase2d(); + /** \brief compare new scans against the trained set in order to find loop closures + **/ + virtual void findLoopClosure(); + + /** \brief update the scene struct with keypoints and descriptors + **/ + virtual cornerScene extractScene(LaserScan scan,LaserScanParams scanParams); + }; } /* namespace laserscanutils */ -#endif /* LANDMARK_POLYLINE_2d_H_ */ \ No newline at end of file +#endif /* LOOP_CLOSURE_BASE_2D_H_ */ \ No newline at end of file