I am trying to run `roslaunch pr2_gazebo pr2_empty_world.launch` on Mac OS (ROS installation from http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source 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
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](https://github.com/PR2/pr2_common/blob/kinetic-devel/pr2_description/gazebo/gazebo.urdf.xacro) 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.
↧