Closed WangYixuan12 closed 4 years ago
Looks like the master
branch of smmap
was never updated to match arc_utiliies
. The branch that I was developing on was, but those changes have not made it to master (see commit https://github.com/UM-ARM-Lab/smmap/commit/c9c244229a43e18d83db66998de59b92418b3c7c). For your purposes, I suggest you checkout the OnlineLearning
branch. (At least, I think this will fix the problem; if not, then this repo needs to be updated to match arc_utilities
again.)
If you then get other build problems related to sdf_tools
, checkout the EightConnected
branch over there (though I doubt you will need to).
When I switch to OnlineLearning branch, it still cannot compile with similar problem. The output is shown below.
Errors << smmap:make /home/deformtrack/catkin_ws/logs/smmap/build.make.007.log
/home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp: In function ‘void smmap::GetFreeSpaceGraph(ros::NodeHandle&, arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >&, std::vector<long int>&)’:
/home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:216:50: error: ‘class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘DeserializeSelf’; did you mean ‘deserializeSelf’?
current_position += free_space_graph.DeserializeSelf(srv_data.response.graph_data_buffer, current_position, value_deserializer_fn);
^~~~~~~~~~~~~~~
deserializeSelf
In file included from /home/deformtrack/catkin_ws/src/smmap_utilities/include/smmap_utilities/grippers.h:6:0,
from /home/deformtrack/catkin_ws/src/smmap/include/smmap/ros_communication_helpers.h:8,
from /home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:1:
/home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:218:55: error: no matching function for call to ‘arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >::CheckGraphLinkage()’
assert(free_space_graph.CheckGraphLinkage());
^
In file included from /home/deformtrack/catkin_ws/src/arc_utilities/include/arc_utilities/dijkstras.hpp:4:0,
from /home/deformtrack/catkin_ws/src/smmap/include/smmap/ros_communication_helpers.h:6,
from /home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:1:
/home/deformtrack/catkin_ws/src/arc_utilities/include/arc_utilities/graph.hpp:562:21: note: candidate: static bool arc_dijkstras::Graph<NodeValueType, Allocator>::CheckGraphLinkage(const arc_dijkstras::Graph<NodeValueType, Allocator>&) [with NodeValueType = Eigen::Matrix<double, 3, 1>; Allocator = std::allocator<Eigen::Matrix<double, 3, 1> >]
static bool CheckGraphLinkage(const Graph<NodeValueType, Allocator>& graph)
^~~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/arc_utilities/include/arc_utilities/graph.hpp:562:21: note: candidate expects 1 argument, 0 provided
/home/deformtrack/catkin_ws/src/arc_utilities/include/arc_utilities/graph.hpp:567:21: note: candidate: static bool arc_dijkstras::Graph<NodeValueType, Allocator>::CheckGraphLinkage(const std::vector<arc_dijkstras::GraphNode<NodeValueType, Allocator> >&) [with NodeValueType = Eigen::Matrix<double, 3, 1>; Allocator = std::allocator<Eigen::Matrix<double, 3, 1> >]
static bool CheckGraphLinkage(const std::vector<GraphNode<NodeValueType, Allocator>>& nodes)
^~~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/arc_utilities/include/arc_utilities/graph.hpp:567:21: note: candidate expects 1 argument, 0 provided
In file included from /opt/ros/melodic/include/ros/ros.h:40:0,
from /home/deformtrack/catkin_ws/src/smmap/include/smmap/ros_communication_helpers.h:4,
from /home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:1:
/home/deformtrack/catkin_ws/src/smmap/src/ros_communication_helpers.cpp:219:88: error: ‘class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodesImmutable’
ROS_INFO_STREAM_NAMED("ros_comms_helpers", "Recieved " << free_space_graph.GetNodesImmutable().size() << " graph nodes");
^
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:18:17: note: #pragma message: Magic number - Stretching weight multiplication factor here
#pragma message "Magic number - Stretching weight multiplication factor here"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:20:17: note: #pragma message: Magic number - Step size and min progress for forward projection of dijkstras field following
#pragma message "Magic number - Step size and min progress for forward projection of dijkstras field following"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘smmap::ObjectDeltaAndWeight smmap::DijkstrasCoverageTask::calculateErrorCorrectionDeltaFixedCorrespondences(const smmap::WorldState&, const std::vector<std::vector<long int, std::allocator<long int> > >&)’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:892:50: error: ‘class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
target_point = free_space_graph_.GetNodeImmutable(target_idx_in_free_space_graph).GetValueImmutable();
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘void smmap::DijkstrasCoverageTask::visualizeFreeSpaceGraph() const’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:942:43: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodesImmutable’
const auto& nodes = free_space_graph_.GetNodesImmutable();
^~~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:943:29: error: unable to deduce ‘auto&&’ from ‘nodes’
for (const auto& node : nodes)
^~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:949:33: error: unable to deduce ‘auto&&’ from ‘out_edges’
for (const auto& edge : out_edges)
^~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘void smmap::DijkstrasCoverageTask::visualizeIndividualDijkstrasResult(size_t, const Vector3d&) const’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:982:77: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
const Eigen::Vector3d next_in_world = free_space_graph_.GetNodeImmutable(next_idx_in_free_space_graph).GetValueImmutable();
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘bool smmap::DijkstrasCoverageTask::saveDijkstrasResults()’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1054:27: error: ‘class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘SerializeSelf’; did you mean ‘serializeSelf’?
free_space_graph_.SerializeSelf(buffer, &arc_utilities::SerializeEigen<double, 3, 1>);
^~~~~~~~~~~~~
serializeSelf
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘bool smmap::DijkstrasCoverageTask::loadDijkstrasResults()’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1095:65: error: ‘class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘SerializeSelf’; did you mean ‘serializeSelf’?
const uint64_t serialzed_graph_size = free_space_graph_.SerializeSelf(temp_buffer, &arc_utilities::SerializeEigen<double, 3, 1>);
^~~~~~~~~~~~~
serializeSelf
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘Eigen::Vector3d smmap::DijkstrasCoverageTask::sumVectorFields(const std::vector<long int, std::allocator<long int> >&, const Vector3d&) const’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1142:75: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
const Eigen::Vector3d& graph_aligned_querry_point = free_space_graph_.GetNodeImmutable(graph_aligned_querry_ind).GetValueImmutable();
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1152:65: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
const Eigen::Vector3d& target_point = free_space_graph_.GetNodeImmutable(target_ind_in_work_space_graph).GetValueImmutable();
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘virtual smmap::DijkstrasCoverageTask::Correspondences smmap::DistanceBasedCorrespondencesTask::getCoverPointCorrespondences_impl(const smmap::WorldState&) const’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1254:39: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
free_space_graph_.GetNodeImmutable(best_target_idx_in_free_space_graph).GetValueImmutable());
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp: In member function ‘virtual smmap::DijkstrasCoverageTask::Correspondences smmap::FixedCorrespondencesTask::getCoverPointCorrespondences_impl(const smmap::WorldState&) const’:
/home/deformtrack/catkin_ws/src/smmap/src/task_specification.cpp:1412:79: error: ‘const class arc_dijkstras::Graph<Eigen::Matrix<double, 3, 1> >’ has no member named ‘GetNodeImmutable’
current_correspondences_next_step.push_back(free_space_graph_.GetNodeImmutable(target_ind_in_free_space_graph).GetValueImmutable());
^~~~~~~~~~~~~~~~
/home/deformtrack/catkin_ws/src/smmap/src/least_squares_controller_with_object_avoidance.cpp:9:17: note: #pragma message: Magic number - damping threshold and damping coefficient
#pragma message "Magic number - damping threshold and damping coefficient"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/smmap_infrastructure.dir/src/ros_communication_helpers.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/smmap_infrastructure.dir/src/task_specification.cpp.o] Error 1
make[1]: *** [CMakeFiles/smmap_infrastructure.dir/all] Error 2
make: *** [all] Error 2
cd /home/deformtrack/catkin_ws/build/smmap; catkin build --get-env smmap | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -
I recommend you create a new branch, make the changes needed to match what was done in https://github.com/UM-ARM-Lab/arc_utilities/pull/85 (and whatever else you need to update), and then submit a pull request.
I just did it and succeed in compiling it and integrating with cdcpd. The new branch is smmap_cdcpd
.
My computer is Ubuntu 18.04, and my local repo is shown below.
But when I run
catkin build
after clean build and install files, it returnsI checked the corresponding functions inside
arc_utilities/graph.hpp
. I found some functions in it truly have different names likedeserializeSelf
forDeserializeSelf
and so. I am wondering whether it is the reason for the problem.