How is pr2_controller_manager service created?

asked 2018-06-19 06:33:06 -0600

jaduol391 gravatar image

updated 2018-06-19 11:29:20 -0600

I am trying to run roslaunch pr2_gazebo pr2_empty_world.launch on Mac OS (ROS installation from and packages built and installed from source) and the command seems to hang at the rospy.wait_for_service('pr2_controller_manager/load_controller') method as evidenced by the shutdown error when I cancel the command:

Traceback (most recent call last):
  File "/Users/joshuaaduol/ros_catkin_ws/install_isolated/lib/pr2_controller_manager/spawner", line 161, in <module>
    if __name__ == '__main__': main()
  File "/Users/joshuaaduol/ros_catkin_ws/install_isolated/lib/pr2_controller_manager/spawner", line 92, in main
  File "/Users/joshuaaduol/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/rospy/impl/", line 159, in wait_for_service
    raise ROSInterruptException("rospy shutdown")
rospy.exceptions.ROSInterruptException: rospy shutdown

This means that the pr2_controller_manager/load_controller service isn't started and so I would like to know how these services are initialised so that I can investigate what is going on.

From what I can see these services are created in the pr2_controller_manager/src/controller_manager.cpp file and when I compile the package this code is put into a .dylib file. What I don't get is what this file is linked to and how the code is actually run when you want to, say, spawn a controller.

I also suspect that the gazebo_ros_controller_manager plugin here is somehow related but when I change the .so extension to .dylib and add the path to the lib directory to GAZEBO_PLUGIN_PATH (or simply put the full path to the library) no changes are observed.

Any help with this would be greatly appreciated.

edit retag flag offensive close merge delete


I am also facing the same problemo on Ubuntu Xenial

Riss69 gravatar image Riss69  ( 2019-08-11 11:46:43 -0600 )edit