Giter Club home page Giter Club logo

hdl_global_localization's Introduction

hdl_global_localization

hdl_global_localization

Build Status on ROS melodic and noetic

Requirements

hdl_global_localization requires the following libraries:

  • PCL
  • OpenCV
  • OpenMP
  • Teaser++ [optional]

Services

  • /hdl_global_localization/set_engine (hdl_global_localization::SetGlobalLocalizationEngine)
    • Available global localization engines: BBS, FPFH_RANSAC, FPFH_TEASER
  • /hdl_global_localization/set_global_map (hdl_global_localization::SetGlobalMap)
  • /hdl_global_localization/query (hdl_global_localization::QueryGlobalLocalization)

Algorithms

  • 2D Grid Map-based Branch-and-Bound Search
    • Real-time loop closure in 2D LIDAR SLAM, ICRA, 2016
  • FPFH + RANSAC (based on pcl::SampleConsensusPrerejective)
    • Fast Point Feature Histograms (FPFH) for 3D registration, ICRA, 2009
    • Pose Estimation using Local Structure-Specific Shape and Appearance Context, ICRA, 2013
  • FPFH + Teaser++
    • TEASER: Fast and Certifiable Point Cloud Registration, T-RO, 2020

Related packages

Contact

Kenji Koide, [email protected]

Human-Centered Mobility Research Center, National Institute of Advanced Industrial Science and Technology (AIST), Japan

hdl_global_localization's People

Contributors

gyoungtaechae avatar kazuki0824 avatar koide3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hdl_global_localization's Issues

combination with hdl_localization and move_base to autonomously move robot

hi i would like to use this hdl_localization with move_base and by the pictures i see that this package already publishes a 2d map, i was wondering if the 2d map has some areas where we wanted to edit such as maybe there was dynamic obstacles in that area which causes some black pixels to appear in the map would we be able to edit this map? if unable to do so, how should i implement it such that i can get a 2D map from hdl to use move_base with?

find_package(teaserpp REQUIRED)

Hi @koide3
I try to build with teaser. I downloaded your modified teaser++ and make installed the lib into the default path/usr/local/. Then the hdl_global_localization/CMakeLists.txt configs as following:

option(ENABLE_TEASER "Build with Teaser++" OFF)
find_package(teaserpp  REQUIRED)
include_directories( ${teaserpp_INCLUDE_DIR} )
set(TEASER_LIBRARIES
	   teaserpp::teaser_registration 
	   teaserpp::teaser_io
	   teaserpp::teaser_features
)
add_library(hdl_global_localization_teaser
	src/hdl_global_localization/engines/global_localization_fpfh_teaser.cpp
  )
target_link_libraries(hdl_global_localization_teaser
	${TEASER_LIBRARIES}
  )
target_link_libraries(hdl_global_localization
	hdl_global_localization_teaser
  )

When building, the output is:

CMake Error at hdl_global_localization_noted/CMakeLists.txt:45 (find_package):
  By not providing "Findteaserpp.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "teaserpp",
  but CMake did not find one.

  Could not find a package configuration file provided by "teaserpp" with any
  of the following names:

	teaserppConfig.cmake
	teaserpp-config.cmake

  Add the installation prefix of "teaserpp" to CMAKE_PREFIX_PATH or set
  "teaserpp_DIR" to a directory containing one of the above files.  If
  "teaserpp" provides a separate development package or SDK, be sure it has
  been installed.

In the /usr/local/lib/cmake/teaserpp/, there is no teaserppConfig.cmake or teaserpp-config.cmake, but teaserppTargets.cmake and teaserppTargets-release.cmake. How to fix this problem, thanks for your help and time!

/usr/local/lib/cmake/teaserpp/teaserppTargets.cmake
/usr/local/lib/cmake/teaserpp/teaserppTargets-release.cmake

Unable to set engine type

Hello @koide3 ,

Thank you for your great work. I can use the global localization now. But when I try to change the global localization engine, it has some error (in the right upper terminal):

Screenshot from 2021-01-20 15-16-05

Another question is after I run rosservice call /relocalize, The terminal would output:

[ INFO] [1611127781.690363903, 1563976074.256382391]: Query Global Localization
[ INFO] [1611127781.705907303, 1563976074.266465002]: Query 53 points
[ INFO] [1611127781.707902465, 1563976074.276539921]: Resolution trans:16 theta:0.0333349
[ INFO] [1611127781.708019880, 1563976074.276539921]: TransX range:-4 4
[ INFO] [1611127781.708191889, 1563976074.276539921]: TransY range:-4 4
[ INFO] [1611127781.708326331, 1563976074.276539921]: Theta  range:-95 95
[ INFO] [1611127781.712237307, 1563976074.276539921]: Initial transformation set size:15471
[ INFO] [1611127782.641870995, 1563976075.211462633]: Branch-and-Bound

What's does TransX range mean? Is it the range of relocalize? And can I change these parameters?

search window of bbs

Hi author,
Thanks for your sharing firstly :)
I have a question about search window meaning in config params about bbs/min_tx, bbs/max_tx, *_ty and *_theta. We use the candidates in the search window to transform the query sliced scan points, and then match with map's grid_map, whose resolution is the same with scoring candidate's resolution in BBSLocalization::localize(). If the query scan's sensor frame doesn't in the search window of the map frame, it seems that we can not get correct result, right? But to a certain extent, we can use this lib to relocalize the current scan's initial pose(x, y, theta) in map when we lost ourself's location.
I'm not sure if it’s right to understand as this, thanks for your any reply and help !

Fail to change engine with FPFH_TEASER

Hi,@koide3
Thanks for your great job in hdl_global_localization.I success run the global_localization with rosservice /relocalize,and it performs great in my own 3D pcdmap.But when i change the engine from FPFH_RANSAC to FPFH_TEASER,then catkin_make and the terminal has some error:

  • [ INFO] [1682495057.978073775]: Start Global Localization Node
    [ INFO] [1682495057.980986173]: Initializing nodelet with 12 worker threads.
    [ERROR] [1682495057.985300268]: Unknown Global Localization Engine:FPFH_TEASER
    [ INFO] [1682495058.214123043]: create registration method for localization
    [ INFO] [1682495058.215627533]: NDT_OMP is selected
    [ INFO] [1682495058.215741877]: search_method DIRECT7 is selected
    [ INFO] [1682495058.215750812]: create registration method for fallback during relocalization
    [ INFO] [1682495058.216961176]: NDT_OMP is selected
    [ INFO] [1682495058.216971597]: search_method DIRECT7 is selected
    [ INFO] [1682495058.217276848]: initialize pose estimator with specified parameters!!
    [ INFO] [1682495058.224749614]: wait for global localization services
    [ INFO] [1682495059.212321040]: globalmap received!
    [ INFO] [1682495059.255172053]: set globalmap for global localization!
    [ INFO] [1682495059.261228271]: Global Map Received
    [ INFO] [1682495059.409694719]: failed to set global map
    [hdl_global_localization-2] process has died [pid 1781230, exit code -11, cmd /home/clf/hdl_global_localization/devel/lib/hdl_global_localization/hdl_global_localization_node __name:=hdl_global_localization __log:=/home/clf/.ros/log/25ddf258-e406-11ed-94aa-ddd2548f4cbe/hdl_global_localization-2.log].
    log file: /home/clf/.ros/log/25ddf258-e406-11ed-94aa-ddd2548f4cbe/hdl_global_localization-2
    .log
    *

And I also set ENABLE_TEASER=ON.How to fix this problem?Thanks a lot!

calc_score of candidate in bbs

Hi author,
In code we use DiscreteTransformation::calc_score() to score each candidate,

const auto& gridmap = gridmap_pyramid[level];
auto transformed = transform(points, gridmap->grid_resolution(), theta_resolution);
score = gridmap->calc_score(transformed);

if we use the transformed points creates a grid_map with OccupancyGridMap::insert_points(), and then comapre the difference pixel by pixel, and then sum the whole difference value. We also modify bbs_localization.cpp#L27, to return score > rhs.score;. The smaller difference, the better the candidate.
Have you tried this scoring method? Thanks for your help and time !

How to change use another engine

Hi Koide!

Currently whenever i use /relocalize it always uses the
Branch and Bound method

How do i use the rosservice /hdl_global_localization/set_engine feature to change to fpfh_ransac or fpfh_teaser?

When I use "option(ENABLE_TEASER "Build with Teaser++" ON)".Then excute catkin_make, the terminal show " fatal error: pcl/features/fpfh.h: No such file or directory #include <pcl/features/fpfh.h>"?

When I use "option(ENABLE_TEASER "Build with Teaser++" ON)" at CMakeLists. Then I execute catkin_make, the terminal show "No such file or directory #include <pcl/features/fpfh.h> ". However, I have install pcl-1.8 and melodic in Ubuntu18.04 docker. I ensure I have fpfh.h at direction "/usr/include/pcl-1.8/pcl/features/fpfh.h ". The error message is as follows:

In file included from /home/tang/tang/rover_slam/build/ROVER_SLAM/hdl_global_localization/teaser-prefix/src/teaser/teaser/src/fpfh.cc:9:0:
/home/tang/tang/rover_slam/build/ROVER_SLAM/hdl_global_localization/teaser-prefix/src/teaser/teaser/include/teaser/fpfh.h:12:10: fatal error: pcl/features/fpfh.h: No such file or directory
#include <pcl/features/fpfh.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
teaser/CMakeFiles/teaser_features.dir/build.make:62: recipe for target 'teaser/CMakeFiles/teaser_features.dir/src/fpfh.cc.o' failed
make[5]: *** [teaser/CMakeFiles/teaser_features.dir/src/fpfh.cc.o] Error 1
CMakeFiles/Makefile2:560: recipe for target 'teaser/CMakeFiles/teaser_features.dir/all' failed
make[4]: *** [teaser/CMakeFiles/teaser_features.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
[ 15%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmc_maxclique.cpp.o
[ 18%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmcx_maxclique.cpp.o
[ 21%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmcx_maxclique_basic.cpp.o
[ 25%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmc_cores.cpp.o
[ 28%] Linking CXX shared library libtinyply.so
[ 28%] Built target tinyply
[ 31%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmc_utils.cpp.o
[ 34%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmc_graph.cpp.o
[ 37%] Building CXX object pmc-build/CMakeFiles/pmc.dir/pmc_clique_utils.cpp.o
[ 40%] Linking CXX shared library libpmc.so
[ 40%] Built target pmc
[ 43%] Linking CXX static library libgtest.a
[ 43%] Built target gtest
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
ROVER_SLAM/hdl_global_localization/CMakeFiles/teaser.dir/build.make:110: recipe for target 'ROVER_SLAM/hdl_global_localization/teaser-prefix/src/teaser-stamp/teaser-build' failed
make[2]: *** [ROVER_SLAM/hdl_global_localization/teaser-prefix/src/teaser-stamp/teaser-build] Error 2
CMakeFiles/Makefile2:4120: recipe for target 'ROVER_SLAM/hdl_global_localization/CMakeFiles/teaser.dir/all' failed
make[1]: *** [ROVER_SLAM/hdl_global_localization/CMakeFiles/teaser.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4" failed

How can I fixed this problem?

can you share your pcd file?

hi developer i try to use your awesome project.

but some how i got wrong global localization in my case by yours.

i want to check wheter my data wrong or not when i use your data to find bug.

can you provide it??

and if you can introduce how to use yours in detail, i really appreciate it !

thank you !

About the slice 2D map

Hi, @koide3 .
Is it possible to change the grid size when transforming 3D pointcloud map into slice 2D map? Because we found that the big grid size would cause bad effect on global planner in navigation. We think it's the matter on bbs_config file, and we tried to adjust the parameters, but the grid size was still not changed.

rviz_screenshot_2021_04_21-16_16_33

Question about calc_score function

I am currently studying your implementation of the OccupancyGridMap class in the hdl_global_localization namespace and I have a question regarding its functionality of the code that I hope you could clarify.

  1. calc_score Function
    • Could you elaborate on the intended logic calc_score method? I noticed that the function sums up the grid values corresponding to the points but seems to overlook how these values reflect the actual occupancy
      (I assumed that there would be some metric comparing occupancy grid and scan , but i think it just sums up of scan points..)

Thankyou!

Build Error

Hi @koide3 ,

It seems still have some errors in compiling hdl_global_localization. The error info is below:

Errors     << hdl_global_localization:make /home/yutouwd/workspace/hdl_global/logs/hdl_global_localization/build.make.001.log                                                                              
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0,
                 from /usr/include/c++/7/bits/allocator.h:46,
                 from /usr/include/c++/7/string:41,
                 from /opt/ros/melodic/include/ros/platform.h:38,
                 from /opt/ros/melodic/include/ros/time.h:53,
                 from /opt/ros/melodic/include/ros/ros.h:38,
                 from /home/yutouwd/workspace/hdl_global/src/hdl_global_localization/include/hdl_global_localization/engines/global_localization_fpfh_ransac.hpp:4,
                 from /home/yutouwd/workspace/hdl_global/src/hdl_global_localization/src/hdl_global_localization/engines/global_localization_fpfh_ransac.cpp:1:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘class __gnu_cxx::new_allocator<const Eigen::Matrix<int, 3, 1> >’:
/usr/include/c++/7/bits/allocator.h:108:11:   required from ‘class std::allocator<const Eigen::Matrix<int, 3, 1> >’
/usr/include/c++/7/bits/hashtable.h:173:11:   recursively required by substitution of ‘template<class _Tp, class _Up> struct std::__allocator_traits_base::__rebind<_Tp, _Up, std::__void_t<typename _Tp::rebind<_Up>::other> > [with _Tp = Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >; _Up = std::__detail::_Hash_node<Eigen::Matrix<int, 3, 1>, true>]’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<Eigen::Matrix<int, 3, 1>, Eigen::Matrix<int, 3, 1>, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >, std::__detail::_Identity, std::equal_to<Eigen::Matrix<int, 3, 1> >, hdl_global_localization::Vector3iHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >’
/usr/include/c++/7/bits/unordered_set.h:99:18:   required from ‘class std::unordered_set<Eigen::Matrix<int, 3, 1>, hdl_global_localization::Vector3iHash, std::equal_to<Eigen::Matrix<int, 3, 1> >, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> > >’
/home/yutouwd/workspace/hdl_global/src/hdl_global_localization/include/hdl_global_localization/ransac/voxelset.hpp:31:10:   required from here
/usr/include/c++/7/ext/new_allocator.h:93:7: error: ‘const _Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::const_reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::const_pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::const_reference = const Eigen::Matrix<int, 3, 1>&]’ cannot be overloaded
       address(const_reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
/usr/include/c++/7/ext/new_allocator.h:89:7: error: with ‘_Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::reference = const Eigen::Matrix<int, 3, 1>&]’
       address(reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0,
                 from /usr/include/c++/7/bits/allocator.h:46,
                 from /usr/include/c++/7/string:41,
                 from /usr/include/c++/7/stdexcept:39,
                 from /usr/include/c++/7/array:39,
                 from /usr/include/c++/7/tuple:39,
                 from /usr/include/c++/7/unordered_set:41,
                 from /home/yutouwd/workspace/hdl_global/src/hdl_global_localization/include/hdl_global_localization/ransac/voxelset.hpp:4,
                 from /home/yutouwd/workspace/hdl_global/src/hdl_global_localization/src/hdl_global_localization/ransac/voxelset.cpp:1:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘class __gnu_cxx::new_allocator<const Eigen::Matrix<int, 3, 1> >’:
/usr/include/c++/7/bits/allocator.h:108:11:   required from ‘class std::allocator<const Eigen::Matrix<int, 3, 1> >’
/usr/include/c++/7/bits/hashtable.h:173:11:   recursively required by substitution of ‘template<class _Tp, class _Up> struct std::__allocator_traits_base::__rebind<_Tp, _Up, std::__void_t<typename _Tp::rebind<_Up>::other> > [with _Tp = Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >; _Up = std::__detail::_Hash_node<Eigen::Matrix<int, 3, 1>, true>]’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<Eigen::Matrix<int, 3, 1>, Eigen::Matrix<int, 3, 1>, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >, std::__detail::_Identity, std::equal_to<Eigen::Matrix<int, 3, 1> >, hdl_global_localization::Vector3iHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >’
/usr/include/c++/7/bits/unordered_set.h:99:18:   required from ‘class std::unordered_set<Eigen::Matrix<int, 3, 1>, hdl_global_localization::Vector3iHash, std::equal_to<Eigen::Matrix<int, 3, 1> >, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> > >’
/home/yutouwd/workspace/hdl_global/src/hdl_global_localization/include/hdl_global_localization/ransac/voxelset.hpp:31:10:   required from here
/usr/include/c++/7/ext/new_allocator.h:93:7: error: ‘const _Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::const_reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::const_pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::const_reference = const Eigen::Matrix<int, 3, 1>&]’ cannot be overloaded
       address(const_reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
/usr/include/c++/7/ext/new_allocator.h:89:7: error: with ‘_Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::reference = const Eigen::Matrix<int, 3, 1>&]’
       address(reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0,
                 from /usr/include/c++/7/bits/allocator.h:46,
                 from /usr/include/c++/7/vector:61,
                 from /home/yutouwd/workspace/hdl_global/src/hdl_global_localization/src/hdl_global_localization/ransac/ransac_pose_estimation.cpp:44:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘class __gnu_cxx::new_allocator<const Eigen::Matrix<int, 3, 1> >’:
/usr/include/c++/7/bits/allocator.h:108:11:   required from ‘class std::allocator<const Eigen::Matrix<int, 3, 1> >’
/usr/include/c++/7/bits/hashtable.h:173:11:   recursively required by substitution of ‘template<class _Tp, class _Up> struct std::__allocator_traits_base::__rebind<_Tp, _Up, std::__void_t<typename _Tp::rebind<_Up>::other> > [with _Tp = Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >; _Up = std::__detail::_Hash_node<Eigen::Matrix<int, 3, 1>, true>]’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<Eigen::Matrix<int, 3, 1>, Eigen::Matrix<int, 3, 1>, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> >, std::__detail::_Identity, std::equal_to<Eigen::Matrix<int, 3, 1> >, hdl_global_localization::Vector3iHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >’
/usr/include/c++/7/bits/unordered_set.h:99:18:   required from ‘class std::unordered_set<Eigen::Matrix<int, 3, 1>, hdl_global_localization::Vector3iHash, std::equal_to<Eigen::Matrix<int, 3, 1> >, Eigen::aligned_allocator<const Eigen::Matrix<int, 3, 1> > >’
/home/yutouwd/workspace/hdl_global/src/hdl_global_localization/include/hdl_global_localization/ransac/voxelset.hpp:31:10:   required from here
/usr/include/c++/7/ext/new_allocator.h:93:7: error: ‘const _Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::const_reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::const_pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::const_reference = const Eigen::Matrix<int, 3, 1>&]’ cannot be overloaded
       address(const_reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
/usr/include/c++/7/ext/new_allocator.h:89:7: error: with ‘_Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::reference) const [with _Tp = const Eigen::Matrix<int, 3, 1>; __gnu_cxx::new_allocator<_Tp>::pointer = const Eigen::Matrix<int, 3, 1>*; __gnu_cxx::new_allocator<_Tp>::reference = const Eigen::Matrix<int, 3, 1>&]’
       address(reference __x) const _GLIBCXX_NOEXCEPT
       ^~~~~~~
make[2]: *** [CMakeFiles/hdl_global_localization.dir/src/hdl_global_localization/ransac/voxelset.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/hdl_global_localization.dir/src/hdl_global_localization/engines/global_localization_fpfh_ransac.cpp.o] Error 1
make[2]: *** [CMakeFiles/hdl_global_localization.dir/src/hdl_global_localization/ransac/ransac_pose_estimation.cpp.o] Error 1
make[1]: *** [CMakeFiles/hdl_global_localization.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

munmap_ chunk(): invalid pointer

The following error occurs when I set "global_localization_engine" to "FPFH_RANSAC"

[ INFO] [1672397280.276861671]: Normal Estimation: Radius(2)

munmap_ chunk(): invalid pointer

[ INFO] [1672397281.218082355]: failed to set global map

Then the program exits. I run "hdl_localization" on the Jetson agx. What is the reason for this

Missing install instruction in CMakeLists.txt

Hello !

Thanks a lot for another great ROS package !

I have been struggling a bit in installing this ROS package. While compiling it is not a problem at all (with or without Teaser++) generating its debians is something else..

I added the following to the CMakeLists.txt:

#############
## Install ##
#############

install(TARGETS hdl_global_localization_node
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

install(TARGETS hdl_global_localization
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

if(TEASER_LIBRARIES)
  install(TARGETS hdl_global_localization_teaser
    RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
    ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  )
endif()

install(DIRECTORY launch/ config/ 
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

The main issue is actually getting all the .so files by building the libraries hdl_global_localization and lastly hdl_global_localization_teaser which is even worse...

Do you have some tips regarding this ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.