How is pr2_controller_manager service created?
I am trying to run roslaunch pr2_gazebo pr2_empty_world.launch
on Mac OS (ROS installation from http://wiki.ros.org/kinetic/Installat... 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
rospy.wait_for_service('pr2_controller_manager/load_controller')
File "/Users/joshuaaduol/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/rospy/impl/tcpros_service.py", 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.
I am also facing the same problemo on Ubuntu Xenial