[ros-users] [Pr2-users] move_base SimpleActionClient

Dejan Pangercic dejan.pangercic at gmail.com
Mon Oct 11 22:57:12 UTC 2010


Hi Eitan,
yup, your understanding is correct. I see message "Error in moving to
goal pose..." 5 times, just that the first time takes 15 seconds and
the others happen back-to-back.
d.
On Tue, Oct 12, 2010 at 12:50 AM, Eitan Marder-Eppstein
<eitan at willowgarage.com> wrote:
> Dejan,
> I'm not sure I quite understood the question. Are you seeing the message
> "Error in moving to goal pose..." 5 times, just that the first time takes 15
> seconds and the others happen back-to-back? If so, that may be a bug in
> move_base and I'll have a look. If you're not seeing that message print 5
> times then it could be a problem in actionlib, which I can also look at.
> From glancing briefly at your code, I'd expect things to work.
> Let me know and hope all is well,
> Eitan
>
> On Sat, Oct 9, 2010 at 5:26 PM, Dejan Pangercic <dejan.pangercic at gmail.com>
> wrote:
>>
>> Hi there,
>>
>> I am using "move_base" SimpleActionClient and I have a problem that it
>> sort of randomly fails (due to unstable/hallucinated percepts).
>> Using below code I wanted to make it retry 5 times. It however does
>> not do so (It was supposed to be retrying for 15 seconds each time, it
>> however does so only in the first go). What am I doing wrong?
>> CODE:
>> void moveRobot(geometry_msgs::Pose goal_pose)
>> {
>>  int count = 0;
>>  while (count < 5)
>>    {
>>      actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction>
>> ac("move_base", true);
>>
>>      //wait for the action server to come up
>>      while(!ac.waitForServer(ros::Duration(5.0)))
>>        {
>>          ROS_INFO("Waiting for the move_base action server to come up");
>>        }
>>      move_base_msgs::MoveBaseGoal goal;
>>      goal.target_pose.header.frame_id = "/map";
>>      goal.target_pose.header.stamp = ros::Time::now();
>>
>>      if (count == 0)
>>        goal.target_pose.pose = goal_pose;
>>      else
>>        {
>>          goal_pose.orientation.z =  goal_pose.orientation.z + 0.01;
>>          goal.target_pose.pose = goal_pose;
>>        }
>>      ROS_INFO("Sending goal");
>>      ac.sendGoal(goal);
>>      ac.waitForResult();
>>
>>      ROS_INFO("Pose Position x: %f, y:%f, z:%f Orientation x:%f,
>> y:%f, z:%f, w:%f", goal.target_pose.pose.position.x,
>>               goal.target_pose.pose.position.y,
>> goal.target_pose.pose.position.z, goal.target_pose.pose.orientation.x,
>>               goal.target_pose.pose.orientation.y,
>> goal.target_pose.pose.orientation.z,
>> goal.target_pose.pose.orientation.w);
>>
>>      actionlib::SimpleClientGoalState state = ac.getState();
>>      if(state == actionlib::SimpleClientGoalState::SUCCEEDED)
>>        {
>>          ROS_INFO("Robot has moved to the goal pose");
>>          count = 10;
>>        }
>>      else
>>        {
>>          count++;
>>          ROS_ERROR("Error in moving robot to goal pose: %s. Retrying
>> %d time", state.toString().c_str(), count);
>>          sleep(1);
>>        }
>>    }
>>  if (count == 5)
>>    {
>>      ROS_ERROR("Plan aborted, exiting!!!");
>>      exit(1);
>>    }
>> }
>>
>>
>> cheers, d.
>>
>> --
>> MSc. Dejan Pangercic
>> PhD Student/Researcher
>> Intelligent Autonomous Systems Group
>> Technische Universität München
>> Telephone: +49 (89) 289-26908
>> E-Mail: dejan.pangercic at cs.tum.edu
>> WWW: http://ias.cs.tum.edu/people/pangercic
>> _______________________________________________
>> PR2-users mailing list
>> PR2-users at lists.willowgarage.com
>> http://lists.willowgarage.com/cgi-bin/mailman/listinfo/pr2-users
>
>



-- 
MSc. Dejan Pangercic
PhD Student/Researcher
Intelligent Autonomous Systems Group
Technische Universität München
Telephone: +49 (89) 289-26908
E-Mail: dejan.pangercic at cs.tum.edu
WWW: http://ias.cs.tum.edu/people/pangercic



More information about the ros-users mailing list