MoveIt的trajectory_controller的action server根本不管feedback

前几天刚弄完MoveIt2的demo,对于trajectory的处理是通过ros2_control的trajectory_controller进行的,原理是moveit2发布trajectory_msg::msg::JointTrajectory的消息,由ros2_control加入trajectory_controller处理。然而这种处理并没有实时的把trajectory执行情况反馈给moveit。所以这两天在纠结是否要派生出一个trajectory_controller的类,弄一个action server来处理。

结果看了两天ros2_control和MoveIt2的代码,ros2_controller的trajectory_controller本身就说明现阶段还没有实现action。所以server这边就不用想了,要做action的话只有自己写。然后再看了看MoveIt2关于moveit_simple_controller_manager的代码,结果发现人家MoveIt2压根就不管feedback,只有对结果的处理。moveit_simple_controller_manager里面的follow_joint_trajectoryy_controller_handle.cpp连feedback处理的callback函数都没有。

本以为也许是MoveIt2还在beta,转头去看MoveIt的代码,发现MoveIt1代码里面是有feedback的callback函数,但是却是一个空函数。(代码在:follow_joint_trajectory_controller_handle.cpp)

void FollowJointTrajectoryControllerHandle::controllerFeedbackCallback(
    const control_msgs::FollowJointTrajectoryFeedbackConstPtr& /* feedback */)
{
}

由此可见,MoveIt压根就不管feedback。

你可能感兴趣的:(ROS2)