Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClamGripperCommandAction.h not available #2

Closed
rojas70 opened this issue May 28, 2014 · 7 comments
Closed

ClamGripperCommandAction.h not available #2

rojas70 opened this issue May 28, 2014 · 7 comments

Comments

@rojas70
Copy link
Contributor

rojas70 commented May 28, 2014

There are several files that #include ClamGripperCommandAction.h.

For example:
/clam_controller/src/clam_gripper_controller_test.cpp

This file is nowhere to be found. In clam_msgs, we only have the following files:
clam_msgs->

  • action folder
    -- ClamGripperCommand.action (& other action files)
  • CMakeLists.txt
    -package.xml

Please include the .h and .cpp files.

@davetcoleman
Copy link
Owner

ClamGripperCommandAction.h is generated automatically by catkin, or at least it should be. Try running catkin_make several times.

@rojas70
Copy link
Contributor Author

rojas70 commented May 29, 2014

Dave,

Thanks for your time. This is a great project. I think people all around the world, can use it to get their own arm and try all kinds of manipulation work. I am using it in China to help 2nd and 3rd year undergraduate students learn about middleware and manipulation.

About the . It must not have generated yet, because there are a number of other errors.

  1. There was a pcl headers that was deprecated that I fixed.
  2. There seems to be an issue with virtual functions in the "clam_moveit_ikfast_plugin". I suspect, this is not a real error either: kinematics_base exists in ./include/moveit/kinematics_base/kinematics_base.h and seems fine. The compiler error is below:
In file included from /opt/ros/hydro/include/class_loader/class_loader_core.h:39:0,
                 from /opt/ros/hydro/include/class_loader/class_loader_register_macro.h:33,
                 from /opt/ros/hydro/include/class_loader/class_loader.h:39,
                 from /opt/ros/hydro/include/pluginlib/class_list_macros.h:40,
                 from /home/vmrguser/ros/hydro/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:828:
/opt/ros/hydro/include/class_loader/meta_object.h: In member function ‘B* class_loader::class_loader_private::MetaObject<C, B>::create() const [with C = ikfast_kinematics_plugin::IKFastKinematicsPlugin, B = kinematics::KinematicsBase]’:
/home/vmrguser/ros/hydro/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:829:101:   instantiated from here
/opt/ros/hydro/include/class_loader/meta_object.h:193:17: error: cannot allocate an object of abstract type ‘ikfast_kinematics_plugin::IKFastKinematicsPlugin’
/home/vmrguser/ros/hydro/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:65:7: note:   because the following virtual functions are pure within ‘ikfast_kinematics_plugin::IKFastKinematicsPlugin’:
/opt/ros/hydro/include/moveit/kinematics_base/kinematics_base.h:89:16: note:    virtual bool kinematics::KinematicsBase::getPositionIK(const Pose&, const std::vector<double>&, std::vector<double>&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
  1. The real culprit seems in to be in the RobotState class. MoveIt upgraded their code. I think you point to this in pr2_moveit_tests broken moveit/moveit_pr2#27. Someone offered a solution in https://groups.google.com/forum/#!topic/moveit-users/2e6MFeCdNIk, but it is not clear to me how to address the change of JointStateGroup...

@davetcoleman
Copy link
Owner

Yea, I haven't really updated the code since Aug 25, 2013... anything that has changed then is likely broken. I am now working on other robots so can't put time into maintaining this one (for free), but I'll happily take any pull requests.

@rojas70
Copy link
Contributor Author

rojas70 commented May 29, 2014

I will try.

I went back to try to work with the Groovy version. There were two errors. I could fix one, not yet the other. Would like to ask for some quick feedback.

  1. Fixed Error: In clam_moveit_controller_manager.cpp::MoveItControllerManager::ControllerState there is no longer a "_loaded" data member. Commented out this member.
  2. Pending: In clam_arm_ikfast_moveit_plugin, the compiler cannot see that the IKFastKinematicsPlugin class inherits from KinematicsBase as in:
class IKFastKinematicsPlugin : public kinematics::KinematicsBase

I wonder if this has to do with the PLUGIN_EXPORT_CLASS. But all details seem to be working fine.

PLUGINLIB_EXPORT_CLASS(ikfast_kinematics_plugin::IKFastKinematicsPlugin, kinematics::KinematicsBase);

This is my current compiler error:

>>$ catkin_make
Base path: /home/vmrguser/ros/groovy/clamArm_ws
Source space: /home/vmrguser/ros/groovy/clamArm_ws/src
Build space: /home/vmrguser/ros/groovy/clamArm_ws/build
Devel space: /home/vmrguser/ros/groovy/clamArm_ws/devel
Install space: /home/vmrguser/ros/groovy/clamArm_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/vmrguser/ros/groovy/clamArm_ws/build"
####
####
#### Running command: "make -j8 -l8" in "/home/vmrguser/ros/groovy/clamArm_ws/build"
####
[  0%] [  0%] [  0%] [  0%] [  0%] Built target geometry_msgs_generate_messages_py
Built target std_msgs_generate_messages_py
Built target trajectory_msgs_generate_messages_cpp
Built target trajectory_msgs_generate_messages_py
Built target actionlib_msgs_generate_messages_py
[  0%] [  0%] [  0%] [  0%] Building CXX object clam/clam_moveit_ikfast_plugin/CMakeFiles/clam_moveit_ikfast_kinematics_plugin.dir/src/clam_arm_ikfast_moveit_plugin.cpp.o
[  0%] Built target trajectory_msgs_generate_messages_lisp
Built target std_msgs_generate_messages_cpp
Built target geometry_msgs_generate_messages_cpp
Built target actionlib_msgs_generate_messages_cpp
[  0%] Built target block_grasp_generator_grasp_filter
[  0%] [  1%] Built target geometry_msgs_generate_messages_lisp
Built target block_grasp_generator_block_grasp_generator
[  1%] Built target std_msgs_generate_messages_lisp
[  1%] Built target actionlib_msgs_generate_messages_lisp
[  5%] [  6%] Built target flexiport
Built target manual_square_calibrate
[  9%] Built target GbxUtilAcfr
[ 14%] [ 14%] Built target dynamixel_hardware_interface_generate_messages_cpp
Built target GbxLockFileAcfr
[ 15%] Built target calibrate_kinect_checkerboard
[ 21%] [ 27%] Built target dynamixel_hardware_interface_generate_messages_py
Built target dynamixel_hardware_interface_generate_messages_lisp
[ 28%] [ 28%] [ 28%] Built target joint_state_aggregator
Built target clam_gripper_controller_test
Built target block_manipulation_logic
[ 29%] Built target clam_moveit_controller_manager
[ 29%] Built target block_perception_server
[ 45%] Built target clam_msgs_generate_messages_py
[ 46%] Built target point_cloud_lab
[ 46%] Built target point_cloud_lab_template
[ 62%] [ 62%] [ 78%] Built target clam_msgs_generate_messages_cpp
Built target clam_msgs_generate_messages_lisp
Built target grasp_filter_test
[ 79%] [ 80%] Built target block_grasp_generator_test
[ 80%] [ 81%] Built target porttoport
Built target serial_example
Built target tcp_example
[ 82%] [ 82%] [ 83%] Built target udp_example
Built target locktest
[ 83%] Built target GbxSerialAcfr
Built target mathtest
[ 84%] [ 84%] Built target trivialstatustest
Built target tokenisetest
[ 84%] Built target trivialtracertest
[ 84%] Built target dynamixel_hardware_interface_gencpp
[ 84%] [ 84%] [ 84%] Built target clam_msgs_generate_messages
Built target dynamixel_hardware_interface_generate_messages
Built target serialechotest
[ 86%] [ 86%] Built target hokuyo_aist
[ 87%] Built target serialloopbacktest
Built target clam_msgs_gencpp
[ 88%] Built target GbxGarminAcfr
[ 89%] Built target GbxNovatelUtilAcfr
[ 90%] [ 90%] [ 90%] [ 91%] [ 92%] Built target hokuyo_aist_getid
[ 92%] Built target hokuyo_aist_example
Built target hokuyo_aist_py
Built target dynamixel_hardware_interface
Built target sim_controller_manager
Built target sim_dynamixel_controllers
[ 92%] [ 92%] Built target gbxgarminacfrtest
Built target crc32test
[ 93%] Built target clam_gripper_controller
[ 95%] [ 95%] [ 95%] Built target GbxNovatelAcfr
Built target controller_manager
Built target dynamixel_io
[ 97%] Built target dynamixel_controllers
[ 98%] Built target dynamixeliopy
[100%] Built target gbxnovatelacfrtest
In file included from /opt/ros/groovy/include/class_loader/class_loader_core.h:39:0,
                 from /opt/ros/groovy/include/class_loader/class_loader_register_macro.h:33,
                 from /opt/ros/groovy/include/class_loader/class_loader.h:39,
                 from /opt/ros/groovy/include/pluginlib/class_list_macros.h:40,
                 from /home/vmrguser/ros/groovy/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:828:
/opt/ros/groovy/include/class_loader/meta_object.h: In member function ‘B* class_loader::class_loader_private::MetaObject<C, B>::create() const [with C = ikfast_kinematics_plugin::IKFastKinematicsPlugin, B = kinematics::KinematicsBase]’:
/home/vmrguser/ros/groovy/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:829:101:   instantiated from here
/opt/ros/groovy/include/class_loader/meta_object.h:193:17: error: cannot allocate an object of abstract type ‘ikfast_kinematics_plugin::IKFastKinematicsPlugin’
/home/vmrguser/ros/groovy/clamArm_ws/src/clam/clam_moveit_ikfast_plugin/src/clam_arm_ikfast_moveit_plugin.cpp:65:7: note:   because the following virtual functions are pure within ‘ikfast_kinematics_plugin::IKFastKinematicsPlugin’:
/opt/ros/groovy/include/moveit/kinematics_base/kinematics_base.h:90:16: note:   virtual bool kinematics::KinematicsBase::getPositionIK(const Pose&, const std::vector<double>&, std::vector<double>&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
/opt/ros/groovy/include/moveit/kinematics_base/kinematics_base.h:108:16: note:  virtual bool kinematics::KinematicsBase::searchPositionIK(const Pose&, const std::vector<double>&, double, std::vector<double>&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
/opt/ros/groovy/include/moveit/kinematics_base/kinematics_base.h:128:16: note:  virtual bool kinematics::KinematicsBase::searchPositionIK(const Pose&, const std::vector<double>&, double, const std::vector<double>&, std::vector<double>&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
/opt/ros/groovy/include/moveit/kinematics_base/kinematics_base.h:150:16: note:  virtual bool kinematics::KinematicsBase::searchPositionIK(const Pose&, const std::vector<double>&, double, std::vector<double>&, const IKCallbackFn&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
/opt/ros/groovy/include/moveit/kinematics_base/kinematics_base.h:173:16: note:  virtual bool kinematics::KinematicsBase::searchPositionIK(const Pose&, const std::vector<double>&, double, const std::vector<double>&, std::vector<double>&, const IKCallbackFn&, moveit_msgs::MoveItErrorCodes&, const kinematics::KinematicsQueryOptions&) const
make[2]: *** [clam/clam_moveit_ikfast_plugin/CMakeFiles/clam_moveit_ikfast_kinematics_plugin.dir/src/clam_arm_ikfast_moveit_plugin.cpp.o] Error 1
make[1]: *** [clam/clam_moveit_ikfast_plugin/CMakeFiles/clam_moveit_ikfast_kinematics_plugin.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

Multiple attempts at catkin_make won't solve this.

@davetcoleman
Copy link
Owner

Last August I updated the Hydro branch to work with the latest changes, but the Groovy branch is likely much older and out of date.

@rojas70
Copy link
Contributor Author

rojas70 commented May 29, 2014

The errors I saw in Groovy seemed easier to fix than those in Hydro, but I may just be scratching the surface. Thanks

@davetcoleman
Copy link
Owner

I have tested all the software and now remember the status. There are very big changes between Groovy and Hydro in MoveIt!, this ClamArm software has already been ported to Hydro so reverting back to Groovy would require going into the commit log and finding the right now. Do not try to use the lastest commit with Hydro!

I just updated all the installation documentation for Hydro/Indigo, and I also did a lot of code changes. There is no longer a dependency on block_grasp_generator, fyi. See the above issue for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants