Ask Your Question
0

Get Feedback from Move Base if goal is reachable

asked 2019-07-25 08:32:24 -0500

JanOr gravatar image

updated 2019-07-25 08:33:06 -0500

Hi,

I am running the move base navigation package (Local planner DWA, global planner NavfnROS). The problem is, I would like to determine whenever the goal is not reachable. Unfortunately, the documentation of the actions is currently down: http://docs.ros.org/api/move_base_msg...

I suspect the information to be available via the topics

/move_base/feedback
/move_base/status
/move_base/result

Also using the action server:

move_base_client_.sendGoal(goal);
actionlib::SimpleClientGoalState status=move_base_client_.getState();

I could not find any indicator that if the goal is reachable in the status message.

Do you have any idea how to get a notification when the goal is not reachable?
Thanks a lot!!!!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-07-26 05:20:55 -0500

ashutosh08 gravatar image

You might want to modify and compile your own version of NavfnROS. Clone the navigation stack from github and search for

NavfnROS::getPlanFromPotential

Then look for the snippet below and modify it to publish your feedback!

if(!costmap_->worldToMap(wx, wy, mx, my)){
  //publish the feedback from here!
  ROS_WARN_THROTTLE(1.0, "The goal sent to the navfn planner is off the global costmap. Planning will always fail to this goal.");
  return false;
}
edit flag offensive delete link more

Comments

Hi, thanks a lot for your help. I have tried your idea with:

std_msgs::Bool flag_goal_not_reachable;
flag_goal_not_reachable.data=false;
if(!costmap_->worldToMap(wx, wy, mx, my)){
  flag_goal_not_reachable.data=true;
  pub_target_not_reachable_.publish(flag_goal_not_reachable);
  ROS_WARN_THROTTLE(1.0, "The goal sent to the navfn planner is off the global costmap. Planning will always fail to this goal.");
  return false;
}
pub_target_not_reachable_.publish(flag_goal_not_reachable);

Unfortunately, I in my tests this does not work (publish "True" when goal is unreachable). My problem is that my robot gets stuck in corners: The goal is between the robot's base and the wall, while the footprint of the robot inhibits collides with the wall an inhibits the robot to move further. So the goal is not reached?!

I have the feeling that the footprint may not be considered in the "!costmap_->worldToMap(wx, wy, mx, my)" routine? Do you have any recommendation?

JanOr gravatar imageJanOr ( 2019-07-29 10:32:13 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2019-07-25 08:32:24 -0500

Seen: 107 times

Last updated: Jul 26