[ros-users] Weird behavior when instantiating SimpleActionClient right after initializing node in rospy

Chris Bersch chris.bersch at gmail.com
Wed Jun 15 02:22:50 UTC 2011


Hi all,

I ran into a problem when I ran python scripts where an actionlib
action client is intantiated right after the node a the
wait_for_server() function does not seem to work properly (it just
does not wait).

E.g.

if __name__ == '__main__':
    rospy.init_node('test_manipulation')
#    rospy.sleep(1.0)

    trajClient =
actionlib.SimpleActionClient("r_arm_controller/joint_trajectory_action",
pr2_controllers_msgs.msg.JointTrajectoryAction)
    if not trajClient.wait_for_server(rospy.Duration(10.0)):
        rospy.logerr("Could not connect to actionserver " )
        exit(1)


will return immediately with an error, even though I would expect it
to wait 10s. If I uncomment rospy.sleep(1.0), everything works always
as expected. Is there a more elegant solution to this?

Chris



More information about the ros-users mailing list