00001 #include <ros/ros.h>
00002 #include <actionlib/client/simple_action_client.h>
00003 #include <actionlib/client/terminal_state.h>
00004 #include <turtle_actionlib/ShapeAction.h>
00005
00006 int main (int argc, char **argv)
00007 {
00008 ros::init(argc, argv, "test_shape");
00009
00010
00011
00012 actionlib::SimpleActionClient<turtle_actionlib::ShapeAction> ac("turtle_shape", true);
00013
00014 ROS_INFO("Waiting for action server to start.");
00015
00016 ac.waitForServer();
00017
00018 ROS_INFO("Action server started, sending goal.");
00019
00020 turtle_actionlib::ShapeGoal goal;
00021 goal.edges = 5;
00022 goal.radius = 1.3;
00023 ac.sendGoal(goal);
00024
00025
00026 bool finished_before_timeout = ac.waitForResult(ros::Duration(40.0));
00027
00028 if (finished_before_timeout)
00029 {
00030 actionlib::SimpleClientGoalState state = ac.getState();
00031 ROS_INFO("Action finished: %s",state.toString().c_str());
00032 }
00033 else
00034 ROS_INFO("Action did not finish before the time out.");
00035
00036
00037 return 0;
00038 }