grid_map icon indicating copy to clipboard operation
grid_map copied to clipboard

Compilation error while building SdfDemo

Open antoan opened this issue 2 years ago • 0 comments

Setup: Ubuntu Focal 20.04, ROS 1 Noetic

I have installed grid_map grid_map_sdf. I compile the master branch with the following lines added to the demo package CmakeLists.txt

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

And I get the following build errors

/home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp: In member function ‘void grid_map_demos::SdfDemo::callback(const GridMap&)’:
/home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:44:77: error: no matching function for call to ‘grid_map::SignedDistanceField::SignedDistanceField(grid_map::GridMap&, std::string&, const float&, const float&)’
   44 |   grid_map::SignedDistanceField sdf(map, elevationLayer_, minValue, maxValue);
      |                                                                             ^
In file included from /home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:14:
/opt/ros/noetic/include/grid_map_sdf/SignedDistanceField.hpp:24:3: note: candidate: ‘grid_map::SignedDistanceField::SignedDistanceField()’
   24 |   SignedDistanceField();
      |   ^~~~~~~~~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_sdf/SignedDistanceField.hpp:24:3: note:   candidate expects 0 arguments, 4 provided
/opt/ros/noetic/include/grid_map_sdf/SignedDistanceField.hpp:21:7: note: candidate: ‘grid_map::SignedDistanceField::SignedDistanceField(const grid_map::SignedDistanceField&)’
   21 | class SignedDistanceField
      |       ^~~~~~~~~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_sdf/SignedDistanceField.hpp:21:7: note:   candidate expects 1 argument, 4 provided
/home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:48:66: error: no matching function for call to ‘grid_map::GridMapRosConverter::toPointCloud(grid_map::SignedDistanceField&, sensor_msgs::PointCloud2&)’
   48 |   grid_map::GridMapRosConverter::toPointCloud(sdf, pointCloud2Msg);
      |                                                                  ^
In file included from /home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:13:
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const string&, sensor_msgs::PointCloud2&)’
   91 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note:   candidate expects 3 arguments, 2 provided
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const std::vector<std::__cxx11::basic_string<char> >&, const string&, sensor_msgs::PointCloud2&)’
  104 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:15: note:   candidate expects 4 arguments, 2 provided
/home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:51:116: error: no matching function for call to ‘grid_map::GridMapRosConverter::toPointCloud(grid_map::SignedDistanceField&, sensor_msgs::PointCloud2&, int, grid_map_demos::SdfDemo::callback(const GridMap&)::<lambda(float)>)’
   51 |   grid_map::GridMapRosConverter::toPointCloud(sdf, pointCloud2Msg, 1, [](float sdfValue) { return sdfValue > 0.0; });
      |                                                                                                                    ^
In file included from /home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:13:
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const string&, sensor_msgs::PointCloud2&)’
   91 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note:   candidate expects 3 arguments, 4 provided
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const std::vector<std::__cxx11::basic_string<char> >&, const string&, sensor_msgs::PointCloud2&)’
  104 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:53: note:   no known conversion for argument 1 from ‘grid_map::SignedDistanceField’ to ‘const grid_map::GridMap&’
  104 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:54:117: error: no matching function for call to ‘grid_map::GridMapRosConverter::toPointCloud(grid_map::SignedDistanceField&, sensor_msgs::PointCloud2&, int, grid_map_demos::SdfDemo::callback(const GridMap&)::<lambda(float)>)’
   54 |   grid_map::GridMapRosConverter::toPointCloud(sdf, pointCloud2Msg, 1, [](float sdfValue) { return sdfValue <= 0.0; });
      |                                                                                                                     ^
In file included from /home/antoan/dev/autonomy_ws/src/litterbot_desktop/litterbot_gridmap/src/SdfDemo.cpp:13:
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const string&, sensor_msgs::PointCloud2&)’
   91 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:91:15: note:   candidate expects 3 arguments, 4 provided
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:15: note: candidate: ‘static void grid_map::GridMapRosConverter::toPointCloud(const grid_map::GridMap&, const std::vector<std::__cxx11::basic_string<char> >&, const string&, sensor_msgs::PointCloud2&)’
  104 |   static void toPointCloud(const grid_map::GridMap& gridMap,
      |               ^~~~~~~~~~~~
/opt/ros/noetic/include/grid_map_ros/GridMapRosConverter.hpp:104:53: note:   no known conversion for argument 1 from ‘grid_map::SignedDistanceField’ to ‘const grid_map::GridMap&’
  104 |   static void toPointCloud(const grid_map::GridMap& gridMap,

It is the only example I am unable to build from the demo package (which I really appreciate) I would be grateful for any advice on how to get past this.

Cheers,

Antoan

antoan avatar Mar 21 '23 14:03 antoan