fibonacci_client.py
Go to the documentation of this file.
00001 #! /usr/bin/env python
00002 
00003 # Copyright (c) 2009, Willow Garage, Inc.
00004 # All rights reserved.
00005 # 
00006 # Redistribution and use in source and binary forms, with or without
00007 # modification, are permitted provided that the following conditions are met:
00008 # 
00009 #     * Redistributions of source code must retain the above copyright
00010 #       notice, this list of conditions and the following disclaimer.
00011 #     * Redistributions in binary form must reproduce the above copyright
00012 #       notice, this list of conditions and the following disclaimer in the
00013 #       documentation and/or other materials provided with the distribution.
00014 #     * Neither the name of the Willow Garage, Inc. nor the names of its
00015 #       contributors may be used to endorse or promote products derived from
00016 #       this software without specific prior written permission.
00017 # 
00018 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00019 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00022 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00023 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00024 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00026 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00027 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00028 # POSSIBILITY OF SUCH DAMAGE.
00029 
00030 import roslib; roslib.load_manifest('actionlib_tutorials')
00031 import rospy
00032 
00033 # Brings in the SimpleActionClient
00034 import actionlib
00035 
00036 # Brings in the messages used by the fibonacci action, including the
00037 # goal message and the result message.
00038 import actionlib_tutorials.msg
00039 
00040 def fibonacci_client():
00041     # Creates the SimpleActionClient, passing the type of the action
00042     # (FibonacciAction) to the constructor.
00043     client = actionlib.SimpleActionClient('fibonacci', actionlib_tutorials.msg.FibonacciAction)
00044 
00045     # Waits until the action server has started up and started
00046     # listening for goals.
00047     client.wait_for_server()
00048 
00049     # Creates a goal to send to the action server.
00050     goal = actionlib_tutorials.msg.FibonacciGoal(order=20)
00051 
00052     # Sends the goal to the action server.
00053     client.send_goal(goal)
00054 
00055     # Waits for the server to finish performing the action.
00056     client.wait_for_result()
00057 
00058     # Prints out the result of executing the action
00059     return client.get_result()  # A FibonacciResult
00060 
00061 if __name__ == '__main__':
00062     try:
00063         # Initializes a rospy node so that the SimpleActionClient can
00064         # publish and subscribe over ROS.
00065         rospy.init_node('fibonacci_client_py')
00066         result = fibonacci_client()
00067         print "Result:", ', '.join([str(n) for n in result.sequence])
00068     except rospy.ROSInterruptException:
00069         print "program interrupted before completion"


actionlib_tutorials
Author(s): Melonee Wise
autogenerated on Thu Jan 2 2014 11:09:44