diff --git a/CMakeLists.txt b/CMakeLists.txt index 3de1ad0855c24d42a947a640eb44b619e0d4b6ed..1886fd5119aa1aaba3259fb5fcbfc1832e34bdbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,11 +85,6 @@ find_package(PkgConfig) pkg_check_modules(csm QUIET csm) # link_directories(${csm_LIBRARY_DIRS}) find_package(PCL 1.10 COMPONENTS common registration io) -if (PCL_FOUND) -include_directories(${PCL_INCLUDE_DIRS} ) -link_directories(${PCL_LIBRARY_DIRS}) -add_definitions(${PCL_DEFINITIONS}) -endif(PCL_FOUND) # ============ CONFIG.H ============ set(_WOLF_ROOT_DIR ${CMAKE_SOURCE_DIR}) @@ -241,20 +236,6 @@ if(PCL_FOUND) SET(SRCS_PROCESSOR ${SRCS_PROCESSOR} src/processor/processor_odom_icp_3d.cpp ) - - -# SET(HDRS_PROCESSOR ${HDRS_PROCESSOR} -# include/${PROJECT_NAME}/processor/processor_loop_closure_falko.h -# ) -# SET(SRCS_PROCESSOR ${SRCS_PROCESSOR} -# src/processor/processor_loop_closure_falko.cpp -# ) -# SET(HDRS_FEATURE ${HDRS_FEATURE} -# include/${PROJECT_NAME}/feature/feature_scene_falko.h -# ) -# SET(SRCS_FEATURE ${SRCS_FEATURE} -# src/feature/feature_scene_falko.cpp -# ) endif(PCL_FOUND) diff --git a/include/laser/capture/capture_laser_3d.h b/include/laser/capture/capture_laser_3d.h index 7917cb0d7e5d50f9623350d069f70238558edfab..4e0e84f6f4deb54d8c8ae6cde43efd0b0dedd7dd 100644 --- a/include/laser/capture/capture_laser_3d.h +++ b/include/laser/capture/capture_laser_3d.h @@ -31,8 +31,6 @@ namespace wolf { -namespace laser -{ WOLF_PTR_TYPEDEFS(CaptureLaser3d); @@ -41,14 +39,14 @@ class CaptureLaser3d : public CaptureBase public: CaptureLaser3d(const TimeStamp& _timestamp, SensorBasePtr _sensor, pcl::PointCloud<pcl::PointXYZ>::Ptr _point_cloud); ~CaptureLaser3d(); - pcl::PointCloud<pcl::PointXYZ>::Ptr getPointCloud() const; + pcl::PointCloud<pcl::PointXYZ>::Ptr getPointCloud(); + pcl::PointCloud<pcl::PointXYZ>::ConstPtr getPointCloud() const; private: pcl::PointCloud<pcl::PointXYZ>::Ptr point_cloud_; }; -} // namespace laser } // namespace wolf #endif // CAPTURE_LASER_3d_H_ \ No newline at end of file diff --git a/include/laser/processor/processor_odom_icp_3d.h b/include/laser/processor/processor_odom_icp_3d.h index 8ac0c656b4646922a25fe4198f8bef57291f9c0f..8a4e7902b2b8f3c4a8760ef90ef5df03b7dbd756 100644 --- a/include/laser/processor/processor_odom_icp_3d.h +++ b/include/laser/processor/processor_odom_icp_3d.h @@ -44,9 +44,6 @@ namespace wolf { -namespace laser -{ - WOLF_STRUCT_PTR_TYPEDEFS(ParamsProcessorOdomIcp3d); struct ParamsProcessorOdomIcp3d : public ParamsProcessorTracker, public ParamsMotionProvider @@ -168,7 +165,7 @@ class ProcessorOdomIcp3d : public ProcessorTracker, public MotionProvider void establishFactors() override; }; -} // namespace laser + } // namespace wolf #endif // SRC_PROCESSOR_ODOM_ICP_3D_H_ diff --git a/include/laser/sensor/sensor_laser_3d.h b/include/laser/sensor/sensor_laser_3d.h index 771b96e061fd5bbe842169c6cac57c1458d3aaf3..9b9ca106bfbe6f220ea1e429ee140807d32528ec 100644 --- a/include/laser/sensor/sensor_laser_3d.h +++ b/include/laser/sensor/sensor_laser_3d.h @@ -27,8 +27,6 @@ namespace wolf { -namespace laser -{ WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorLaser3d); @@ -54,8 +52,6 @@ class SensorLaser3d : public SensorBase ParamsSensorLaser3dPtr params_laser3d_; }; - -} // namespace laser } // namespace wolf #endif // SENSOR_LASER_3d_H_ \ No newline at end of file diff --git a/include/laser/utils/laser3d_tools.h b/include/laser/utils/laser3d_tools.h index f1c19fa21b1b2c217bcb2647522441f265f527a2..b0e2dcfd510bc083ff9e73282b427482822990cc 100644 --- a/include/laser/utils/laser3d_tools.h +++ b/include/laser/utils/laser3d_tools.h @@ -37,8 +37,6 @@ namespace wolf { -namespace laser -{ // _cloud_ref: first PointCloud // _cloud_other: second PointCloud inline void pairAlign(const pcl::PointCloud<pcl::PointXYZ>::Ptr _cloud_ref, @@ -91,5 +89,4 @@ inline void pairAlign(const pcl::PointCloud<pcl::PointXYZ>::Ptr // _transform_final = _transform_final.inverse(); // Maybe we messed up } -} // namespace laser } // namespace wolf diff --git a/src/capture/capture_laser_3d.cpp b/src/capture/capture_laser_3d.cpp index 63fe33ceb4f4e9b5bb7ac54408d9d9c3902c3f27..7df9a1b1f8c1a95aedd6000668c819976923ffe5 100644 --- a/src/capture/capture_laser_3d.cpp +++ b/src/capture/capture_laser_3d.cpp @@ -23,8 +23,6 @@ namespace wolf { -namespace laser -{ CaptureLaser3d::CaptureLaser3d(const TimeStamp& _timestamp, SensorBasePtr _sensor, pcl::PointCloud<pcl::PointXYZ>::Ptr _point_cloud) : CaptureBase("CaptureLaser3d", _timestamp, _sensor), point_cloud_(_point_cloud) @@ -33,10 +31,14 @@ CaptureLaser3d::CaptureLaser3d(const TimeStamp& _timestamp, SensorBasePtr _senso CaptureLaser3d::~CaptureLaser3d() {} -pcl::PointCloud<pcl::PointXYZ>::Ptr CaptureLaser3d::getPointCloud() const +pcl::PointCloud<pcl::PointXYZ>::Ptr CaptureLaser3d::getPointCloud() +{ + return point_cloud_; +} + +pcl::PointCloud<pcl::PointXYZ>::ConstPtr CaptureLaser3d::getPointCloud() const { return point_cloud_; } -} // namespace laser } // namespace wolf \ No newline at end of file diff --git a/src/processor/processor_loop_closure_icp.cpp b/src/processor/processor_loop_closure_icp.cpp index 09d35ccdf3fcc2eb75ced42a97da1d4844b798db..3877c722fd75ac1af83aab812cd42a4906a9d3f9 100644 --- a/src/processor/processor_loop_closure_icp.cpp +++ b/src/processor/processor_loop_closure_icp.cpp @@ -85,11 +85,8 @@ std::map<double,MatchLoopClosurePtr> ProcessorLoopClosureIcp::findLoopClosures(C // Frame can have more than one laser capture for (auto cap_ref : frm->getCapturesOfType<CaptureLaser2d>()) { - auto cap_ref_laser = std::dynamic_pointer_cast<CaptureLaser2d>(cap_ref); - assert(cap_ref_laser != nullptr); - // Match Scans - auto match = matchScans(cap_ref_laser, cap_laser); + auto match = matchScans(cap_ref, cap_laser); // IT'S A MATCH! if (match != nullptr) diff --git a/src/processor/processor_odom_icp_3d.cpp b/src/processor/processor_odom_icp_3d.cpp index 92e2dfdaf36b5c3b37581b6135a589e1228affab..c9104c9026b20e1f28ccb4f1d408851248e2c255 100644 --- a/src/processor/processor_odom_icp_3d.cpp +++ b/src/processor/processor_odom_icp_3d.cpp @@ -25,8 +25,7 @@ namespace wolf { -namespace laser -{ + ProcessorOdomIcp3d::ProcessorOdomIcp3d(ParamsProcessorOdomIcp3dPtr _params) : ProcessorTracker("ProcessorOdomIcp3d", "PO", 3, _params), MotionProvider("PO", _params) { @@ -187,5 +186,4 @@ void ProcessorOdomIcp3d::establishFactors() feature, feature, origin_laser_->getFrame(), shared_from_this(), false, TOP_MOTION); }; -} // namespace laser } // namespace wolf \ No newline at end of file diff --git a/src/sensor/sensor_laser_3d.cpp b/src/sensor/sensor_laser_3d.cpp index f72ae298bdcac594a40d3cff7e61eb3e8733715a..1cb46b8b355aa6df5d6b37e9228d10e4228f1fc2 100644 --- a/src/sensor/sensor_laser_3d.cpp +++ b/src/sensor/sensor_laser_3d.cpp @@ -23,8 +23,6 @@ namespace wolf { -namespace laser -{ SensorLaser3d::SensorLaser3d(StateBlockPtr _p_ptr, StateBlockPtr _o_ptr) : SensorBase("SensorLaser3d", _p_ptr, _o_ptr, nullptr, 0) @@ -44,5 +42,4 @@ SensorBase("SensorLaser3d", SensorLaser3d::~SensorLaser3d() {} -} // namespace laser } // namespace wolf \ No newline at end of file diff --git a/test/gtest_laser3d_tools.cpp b/test/gtest_laser3d_tools.cpp index d0cedb247a70c58e624f1bae5130e21646de5cc3..8c5541d5f51b220ebb2c56f1a702932fe629bd8b 100644 --- a/test/gtest_laser3d_tools.cpp +++ b/test/gtest_laser3d_tools.cpp @@ -86,7 +86,7 @@ TEST(pairAlign, identity) registration_solver.setMaximumIterations(200); // Alignment - wolf::laser::pairAlign(pcl_ref, + wolf::pairAlign(pcl_ref, pcl_other, transformation_guess, transformation_final, @@ -136,7 +136,7 @@ TEST(pairAlign, known_transformation) registration_solver.setMaximumIterations(100); // Alignment - wolf::laser::pairAlign(pcl_ref, + wolf::pairAlign(pcl_ref, pcl_other, transformation_guess, transformation_final, diff --git a/test/gtest_processor_odom_icp_3d.cpp b/test/gtest_processor_odom_icp_3d.cpp index b14d44658b2b9233dfc20950ff418c232c6da045..0cb18a1fb3a270ef879cac22b38f1b1455596018 100644 --- a/test/gtest_processor_odom_icp_3d.cpp +++ b/test/gtest_processor_odom_icp_3d.cpp @@ -1,3 +1,24 @@ +//--------LICENSE_START-------- +// +// Copyright (C) 2020,2021,2022 Institut de Robòtica i Informà tica Industrial, CSIC-UPC. +// Authors: Joan Solà Ortega (jsola@iri.upc.edu) +// All rights reserved. +// +// This file is part of WOLF +// WOLF is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--------LICENSE_END-------- // wolf #include "laser/processor/processor_odom_icp_3d.h" #include "core/processor/factory_processor.h"