/controller_manager/list_controllers service response

asked 2017-03-05 09:48:23 -0500

yangtfu gravatar image

updated 2017-03-05 09:51:29 -0500

Hi, I am writing a service client to query the states of running controllers. But after calling a controller_manager_msgs::ListControllers service ,I cannot get a response.

ros::ServiceClient controller_client=nh.serviceClient<controller_manager_msgs::ListControllers>("/controller_manager/list_controllers");
controller_manager_msgs::ListControllers srv;
controller_client.call(srv);
std::cout<<"***************"<<std::endl;

typedef controller_manager_msgs::ControllerState cstate_t;
std::cout<<srv.response.controller.size()<<std::endl;

BOOST_FOREACH (const cstate_t& cs, srv.response.controller)
 {
   std::cout<<cs.type<<std::endl;
 }

I actually have three controllers loaded when I rosrun controller_manager controller_manager list

joint_vel_ctrl - hardware_interface::VelocityJointInterface ( stopped )
joint_state_controller - hardware_interface::JointStateInterface ( running )
arm_trajectory_controller - hardware_interface::VelocityJointInterface ( stopped )

The returned srv.response.controller.size() is 0. Please help me. Thanks!

edit retag flag offensive close merge delete