From cc62e5234fd92a629b83849408b4b9b78b8cc69e Mon Sep 17 00:00:00 2001 From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu> Date: Thu, 4 Feb 2021 16:59:15 +0100 Subject: [PATCH] refactor. function created convert2LaserScanFALKO. Added line in CMakelists to solve eigen Error --- src/CMakeLists.txt | 1 + src/corner_falko_2d.cpp | 23 +++++++++++++---------- src/corner_falko_2d.h | 5 ++++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9c9cf60..b187780 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,6 +31,7 @@ IF(faramotics_FOUND) ENDIF(faramotics_FOUND) if(${falkolib_FOUND}) + add_definitions(-DEIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT) include_directories(${falkolib_INCLUDE_DIRS}) link_directories(${falkolib_LIBRARY_DIRS}) endif() diff --git a/src/corner_falko_2d.cpp b/src/corner_falko_2d.cpp index 64b4b5a..5c1193a 100644 --- a/src/corner_falko_2d.cpp +++ b/src/corner_falko_2d.cpp @@ -34,11 +34,8 @@ void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int scanNumber=scanNumber+1; if (scanNumber % scanInterval == 0){ - - //Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object - falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size()); - std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end()); - scanFALKO.fromRanges(doubleRanges); + + falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams); // Extract keypoints lastKeypointSet.clear(); @@ -59,11 +56,8 @@ void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){ - //Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object - falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size()); - std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end()); - scanFALKO.fromRanges(doubleRanges); - + falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams); + //Compute descriptors std::vector<falkolib::FALKO> keypointSet2; extract(scanFALKO, keypointSet2); @@ -98,6 +92,15 @@ void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){ } +falkolib::LaserScan CornerFalko2d::convert2LaserScanFALKO(LaserScan scan,LaserScanParams scanParams){ + + falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size()); + std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end()); + scanFALKO.fromRanges(doubleRanges); + return scanFALKO; + +} + } // laserscanutils namespace diff --git a/src/corner_falko_2d.h b/src/corner_falko_2d.h index ffcff43..4d707cd 100644 --- a/src/corner_falko_2d.h +++ b/src/corner_falko_2d.h @@ -71,7 +71,6 @@ public: /** \brief Extract landmark/scene (list of corners) from a given 2D scan **/ - //void extract(falkolib::LaserScan scan); /** \brief compare new scans against the training set in order to find loop closures **/ @@ -82,6 +81,10 @@ public: keypointsNumberTh = _th; } + /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object + **/ + falkolib::LaserScan convert2LaserScanFALKO(LaserScan scan,LaserScanParams scanParams); + std::vector<std::vector<falkolib::FALKO>> keypointSets; std::vector<falkolib::FALKO> lastKeypointSet; std::vector<std::vector<falkolib::BSC>> descriptorSets; -- GitLab