Executing Trajectories Generated by Descartes on Either ABB or FANUC Arm
I've been following the descartes tutorial here: http://wiki.ros.org/descartes/Tutoria...
I made a few changes, namely I used the descartes_moveit::IkFastMoveitStateAdapter in lieu of MoveitStateAdapter. The other change, which is the one I'm struggling with, is that I'm not seeing a topic called "joint_trajectory_action", which was alluded to in this thread:
https://answers.ros.org/question/1994...
I do, however, have a topics called "/execute_trajectory/cancel", "/execute_trajectory/goal" and a few others. These topics have type moveit_msgs::ExecuteTrajectoryAction, so when trying to modify the line:
actionlib::SimpleActionClient<control_msgs::FollowJointTrajectoryAction> ac("joint_trajectory_action", true);
and make it:
actionlib::SimpleActionClient<moveit_msgs::ExecuteTrajectoryAction> ac("execute_trajectory", true);
I get the following compilation error:
/home/rnd/catkin_ws/src/motiontest_core/src/motion_test.cpp: In function ‘bool executeTrajectory(const JointTrajectory&)’:
/home/rnd/catkin_ws/src/motiontest_core/src/motion_test.cpp:265:19: error: no matching function for call to ‘actionlib::SimpleActionClient<moveit_msgs::ExecuteTrajectoryAction_<std::allocator<void> > >::sendGoal(moveit_msgs::ExecuteTrajectoryAction&)’
ac.sendGoal(goal);
^
In file included from /home/rnd/catkin_ws/src/motiontest_core/src/motion_test.cpp:6:0:
/opt/ros/kinetic/include/actionlib/client/simple_action_client.h:317:6: note: candidate: void actionlib::SimpleActionClient<ActionSpec>::sendGoal(const Goal&, actionlib::SimpleActionClient<ActionSpec>::SimpleDoneCallback, actionlib::SimpleActionClient<ActionSpec>::SimpleActiveCallback, actionlib::SimpleActionClient<ActionSpec>::SimpleFeedbackCallback) [with ActionSpec = moveit_msgs::ExecuteTrajectoryAction_<std::allocator<void> >; actionlib::SimpleActionClient<ActionSpec>::Goal = moveit_msgs::ExecuteTrajectoryGoal_<std::allocator<void> >; actionlib::SimpleActionClient<ActionSpec>::SimpleDoneCallback = boost::function<void(const actionlib::SimpleClientGoalState&, const boost::shared_ptr<const moveit_msgs::ExecuteTrajectoryResult_<std::allocator<void> > >&)>; typename ActionSpec::_action_result_type::_result_type = moveit_msgs::ExecuteTrajectoryResult_<std::allocator<void> >; actionlib::SimpleActionClient<ActionSpec>::SimpleActiveCallback = boost::function<void()>; actionlib::SimpleActionClient<ActionSpec>::SimpleFeedbackCallback = boost::function<void(const boost::shared_ptr<const moveit_msgs::ExecuteTrajectoryFeedback_<std::allocator<void> > >&)>; typename ActionSpec::_action_feedback_type::_feedback_type = moveit_msgs::ExecuteTrajectoryFeedback_<std::allocator<void> >]
void SimpleActionClient<ActionSpec>::sendGoal(const Goal & goal,
^
/opt/ros/kinetic/include/actionlib/client/simple_action_client.h:317:6: note: no known conversion for argument 1 from ‘moveit_msgs::ExecuteTrajectoryAction {aka moveit_msgs::ExecuteTrajectoryAction_<std::allocator<void> >}’ to ‘const Goal& {aka const moveit_msgs::ExecuteTrajectoryGoal_<std::allocator<void> >&}’
motiontest_core/CMakeFiles/motion_test.dir/build.make:62: recipe for target 'motiontest_core/CMakeFiles/motion_test.dir/src/motion_test.cpp.o' failed
make[2]: *** [motiontest_core/CMakeFiles/motion_test.dir/src/motion_test.cpp.o] Error 1
CMakeFiles/Makefile2:19040: recipe for target 'motiontest_core/CMakeFiles/motion_test.dir/all' failed
make[1]: *** [motiontest_core/CMakeFiles/motion_test.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
I'm wondering what the correct action server is to publish to? I've tried this using the fanuc_experimental and the abb package with no luck. I'm also wondering what message type to use, given the correct action server?
Any help would be appreciated!