Skip to content

Can GaussianVoxelMap be used with PCL points? #125

@themightyoarfish

Description

@themightyoarfish

Describe the bug
small_gicp-src/include/small_gicp/pcl/pcl_point_traits.hpp refers to .getCovariance4fMap() in set_cov(), but this function does not exist. Hence attempting to use GaussianVoxelMap with pcl point cloud fails.

In file included from /Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/build/_deps/small_gicp-src/include/small_gicp/pcl/pcl_registration.hpp:116:
In file included from /Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/build/_deps/small_gicp-src/include/small_gicp/pcl/pcl_registration_impl.hpp:13:
/Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/build/_deps/small_gicp-src/include/small_gicp/pcl/pcl_point_traits.hpp:33:84: error: no member named 'getCovariance4fMap' in 'pcl::PointXYZI'
   33 |   static Eigen::Matrix4d cov(const Points& points, size_t i) { return points.at(i).getCovariance4fMap().template cast<double>(); }
      |                                                                       ~~~~~~~~~~~~ ^
/Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/build/_deps/small_gicp-src/include/small_gicp/points/traits.hpp:53:21: note: in instantiation of member function 'small_gicp::traits::Traits<pcl::PointCloud<pcl::PointXYZI>>::cov' requested here
   53 |   return Traits<T>::cov(points, i);
      |                     ^
/Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/build/_deps/small_gicp-src/include/small_gicp/ann/incremental_voxelmap.hpp:71:13: note: in instantiation of function template specialization 'small_gicp::GaussianVoxel::add<pcl::PointCloud<pcl::PointXYZI>>' requested here
   71 |       voxel.add(voxel_setting, pt, points, i, T);
      |             ^
/Users/rasmus/Documents/Projects/autocrane-core/tools/lidar/icp_experiments/main.cpp:68:17: note: in instantiation of function template specialization 'small_gicp::IncrementalVoxelMap<small_gicp::GaussianVoxel>::insert<pcl::PointCloud<pcl::PointXYZI>>' requested here
   68 |       voxelmap->insert(*points);

To Reproduce
Steps to reproduce the behavior:

  1. install small_gicp
  2. Make main function with such content and compile
      auto voxelmap = std::make_shared<small_gicp::GaussianVoxelMap>(0.1);
      voxelmap->insert(pcl::PointCloud<pcl::PointXYZ>());

Expected behavior
Compile error telling me that voxelmap is unsuited with pcl pointclouds, or successful compile.

Environment (please complete the following information):

  • OS: macOS
  • Version 15.5
  • Language C++

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions