compile of pr2_moveit_plugin fails
SInce there is no binary version of pr2 for kinetic, I downloaded source code of moveitpr2, pr2mechanismmsgs and pr2controllersmsgs from github. Now I am trying to build the source code. The error I met now is shardptr in namespace std does not name a template type. Here is the output:
In file included from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:40:0,
from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:43,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:38:
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:52:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<Type> Name##Ptr; \
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:102:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(MoveItControllerHandle);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:53:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<const Type> Name##ConstPtr;
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:102:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(MoveItControllerHandle);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:52:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<Type> Name##Ptr; \
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:144:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(MoveItControllerManager);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:53:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<const Type> Name##ConstPtr;
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:144:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(MoveItControllerManager);
^
In file included from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:38:0:
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/controller_manager/include/moveit/controller_manager/controller_manager.h:185:11: error: ‘MoveItControllerHandlePtr’ does not name a type
virtual MoveItControllerHandlePtr getControllerHandle(const std::string& name) = 0;
^
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:419:38: error: ‘MoveItControllerHandlePtr’ in namespace ‘moveit_controller_manager’ does not name a type
virtual moveit_controller_manager::MoveItControllerHandlePtr getControllerHandle(const std::string &name)
^
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:597:30: error: ‘MoveItControllerHandlePtr’ in namespace ‘moveit_controller_manager’ does not name a type
moveit_controller_manager::MoveItControllerHandlePtr getControllerHandleHelper(const std::string &name, const std::string &ns)
^
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:627:25: error: ‘MoveItControllerHandlePtr’ is not a member of ‘moveit_controller_manager’
std::map<std::string, moveit_controller_manager::MoveItControllerHandlePtr> handle_cache_;
^
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:627:25: error: ‘MoveItControllerHandlePtr’ is not a member of ‘moveit_controller_manager’
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:627:77: error: template argument 2 is invalid
std::map<std::string, moveit_controller_manager::MoveItControllerHandlePtr> handle_cache_;
^
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:627:77: error: template argument 4 is invalid
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp: In member function ‘virtual bool pr2_moveit_controller_manager::Pr2MoveItControllerManager::switchControllers(const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&)’:
/home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_moveit_controller_manager/src/pr2_moveit_controller_manager.cpp:545:25: error: request for member ‘erase’ in ‘((pr2_moveit_controller_manager::Pr2MoveItControllerManager*)this)->pr2_moveit_controller_manager::Pr2MoveItControllerManager::handle_cache_’, which is of non-class type ‘int’
handle_cache_.erase(activate[i]);
^
make[2]: *** [pr2_moveit_controller_manager/CMakeFiles/pr2_moveit_controller_manager.dir/src/pr2_moveit_controller_manager.cpp.o] Error 1
make[1]: *** [pr2_moveit_controller_manager/CMakeFiles/pr2_moveit_controller_manager.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:40:0,
from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:42,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_arm_kinematics/include/moveit/pr2_arm_kinematics/pr2_arm_ik_solver.h:44,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_arm_kinematics/src/pr2_arm_ik_solver.cpp:37:
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:52:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<Type> Name##Ptr; \
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:137:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(KinematicsBase);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:53:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<const Type> Name##ConstPtr;
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:137:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(KinematicsBase);
^
make[2]: *** [pr2_arm_kinematics/CMakeFiles/pr2_moveit_arm_kinematics.dir/src/pr2_arm_ik_solver.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:40:0,
from /home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:42,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_arm_kinematics/include/moveit/pr2_arm_kinematics/pr2_arm_ik_solver.h:44,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_arm_kinematics/include/moveit/pr2_arm_kinematics/pr2_arm_kinematics_plugin.h:45,
from /home/ruinianxu/ws_moveit/src/moveit_pr2/pr2_moveit_plugins/pr2_arm_kinematics/src/pr2_arm_kinematics_plugin.cpp:37:
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:52:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<Type> Name##Ptr; \
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:137:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(KinematicsBase);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/declare_ptr.h:53:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
typedef std::shared_ptr<const Type> Name##ConstPtr;
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:51:3: note: in expansion of macro ‘MOVEIT_DECLARE_PTR’
MOVEIT_DECLARE_PTR(C, C);
^
/home/ruinianxu/ws_moveit/src/moveit/moveit_core/kinematics_base/include/moveit/kinematics_base/kinematics_base.h:137:1: note: in expansion of macro ‘MOVEIT_CLASS_FORWARD’
MOVEIT_CLASS_FORWARD(KinematicsBase);
^
make[2]: *** [pr2_arm_kinematics/CMakeFiles/pr2_moveit_arm_kinematics.dir/src/pr2_arm_kinematics_plugin.cpp.o] Error 1
make[1]: *** [pr2_arm_kinematics/CMakeFiles/pr2_moveit_arm_kinematics.dir/all] Error 2
make: *** [all] Error 2
Asked by Oh233 on 2017-06-07 14:35:23 UTC
Answers
A lot of pieces in your error output comes from moveit
, not moveit_pr2
etc.
Do you need to build MoveIt! from source? Then first make sure you follow a tutorial. Otherwise, binary is available on Kinetic for MoveIt! so you might want to use it.
For errors for moveit_pr2
, it most likely is not compatible with the Kinetic version of MoveIt! yet. Someone is planning a port so you might be appreciated if you can contribute.
Asked by 130s on 2017-06-07 17:01:25 UTC
Comments