How to track unknown space using NavfnRos

asked 2017-05-21 09:52:36 -0600

alsora gravatar image


I have implemented a navigation stack on a non holonomic robot. I am using movebase with the default local planner and navfn global planner. I want to prohibit to my robot to plan paths that traverse the unknown space.

In order to do so, I am using the following parameters in the costmap:
map_type: voxel
lethal_cost_threshold: 100
track_unknown_space: true
unknown_cost_value: 255
And for the global planner:
allow_unknown: false

In the occupancy map I am using there are only 3 values: 100 for occupied, 0 for free and -1 for unknown.

This works as expected: the robot does not plan in unknown space. However I encounter some problems when I start the system. Given this initial configuration, if I use the setup described before I am not able to issue any goal using actionlib::SimpleActionClient (move_base_msgs::MoveBaseAction).
On the other hand, if I use the simple goal interface, everything works fine.

The problem is that according to the planner the robot is in the unknown space, even if as you can see from the image, the footprint has been cleared as free space.

Investigating I discovered that Navfn planner has a strange behaviour: even if I provide a certain start position, the first pose in the plan is a little bit behind the real one. In this particular situation this causes the planner to think that the robot is in the unknown region and so it does not move.

Has someone an idea about how to correct these strange situations ??

Thank you for your help

edit retag flag offensive close merge delete


I have the same issue, did you solve it yet??

Redhwan gravatar image Redhwan  ( 2020-08-25 01:43:50 -0600 )edit