ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

navfn planning through wall

asked 2014-04-24 19:27:36 -0500

prince gravatar image

updated 2014-04-27 17:56:17 -0500

I am trying navigation_stage package in Hydro, ubuntu 12.04. I am using move_base_multi_robot.lauch.

But navfn is planning through the walls. The map used in willow map which have small openinings. Navfn is not considering size of the robot.

EDIT 3: The other problem is cost map is not accumulating the observed obstacles which were not part of map. What i understand is when rbot gets stucj, recovery behaviour is initiated and costmap is cleared. All previous observations are lost in cost map. Because of this, robot keep on oscillating from one small opening to next.Following is the configuration files:

There is also an extrapolation error reported : " lookup would require extrapolation into future. Requested time is 627.3 but the latest data is at 627.2 when looking up for transform from frame [robot1/odom] to frame [map]

local cost map params

  #We'll publish the voxel grid used by this costmap
  publish_voxel_map: true

  #Set the global and robot frames for the costmap
  global_frame: odom
  robot_base_frame: base_link

  #Set the update and publish frequency of the costmap
  update_frequency: 5.0
  publish_frequency: 2.0

  #We'll configure this costmap to be a rolling window... meaning it is always
  #centered at the robot
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.025
  origin_x: -1.0
  origin_y: -1.0
  map_type: costmap

global cost map params
  #Set the global and robot frames for the costmap
  global_frame: /map
  robot_base_frame: base_link

  #Set the update and publish frequency of the costmap
  update_frequency: 5.0
  publish_frequency: 0.0

  #We'll use a map served by the map_server to initialize this costmap
  static_map: true
  rolling_window: false

  footprint_padding: 0.02
  map_type: costmap


  Example move_base configuration. Descriptions of parameters, as well as a full list of all amcl parameters, can be found at
  <node pkg="move_base" type="move_base" respawn="false" name="move_base_node" output="screen">
    <param name="footprint_padding" value="0.01" />
    <param name="controller_frequency" value="10.0" />
    <param name="controller_patience" value="3.0" />

    <param name="oscillation_timeout" value="30.0" />
    <param name="oscillation_distance" value="0.5" />

    <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />

    <rosparam file="$(find navigation_stage)/move_base_config/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find navigation_stage)/move_base_config/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find navigation_stage)/move_base_config/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find navigation_stage)/move_base_config/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find navigation_stage)/move_base_config/base_local_planner_params.yaml" command="load" />
    <rosparam file="$(find navigation_stage)/move_base_config/dwa_local_planner_params.yaml" command="load" />


#For this example we'll configure the costmap in voxel-grid mode
map_type: voxel

#Voxel grid specific parameters
origin_z: 0.0
z_resolution: 0.2
z_voxels: 10
unknown_threshold: 9
mark_threshold: 0

#Set the tolerance we're willing to have for tf transforms
transform_tolerance: 0.3

#Obstacle marking parameters changed from 2.5 to 4.5 meters
obstacle_range: 14.5
max_obstacle_height: 2.0
#raytrace range changed from three to five meters
raytrace_range: 15.0

#The footprint of the robot and associated padding
footprint: [[-0.325, -0 ...
edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2015-10-01 12:57:45 -0500

jessiems10 gravatar image

I don't see some parameters that I know of in costmap_common_params that would help you in the cost map: cost_scaling_factor and inflation_radius. I would throw these parameters in an inflation layer namespace. So it would look something like this in your .yaml file:

      enabled:             true
      cost_scaling_factor: 10 #default value; for my work, I have been using values between 40-50
      inflation_radius:    0.55 #default value; for my work, I have been using values between 0.8-1.0

There are plenty of other parameters you can add in to get the costmap working the way you need it to. I would do some research here and read up on what other parameters you may want to add in rather than using the defaults: and

edit flag offensive delete link more

answered 2014-04-25 00:51:01 -0500

Mike Charikov gravatar image

Navfn works good for me and my drone (in the real flights) but i don't set footprint of robot. I set robot_radius parameter instead. You should try this, may be it will help.

P.S. On picture you provided i do not see any troubles with robot size. If obstacles are presented as black pixels, then pathfinding works correctly.

edit flag offensive delete link more


P.S. I have updated the question with more information.

prince gravatar image prince  ( 2014-04-25 01:48:23 -0500 )edit

Try to increase footprint_padding. (Pay attention, that you set it three times in your configs (values 0.01, 0.02 and 0.2 - i do not think that this is good idea). Or jump to robot_radius instead footprint.

Mike Charikov gravatar image Mike Charikov  ( 2014-04-25 02:06:51 -0500 )edit

Thanks for pointing this out. But using footprint_padding do not help. Same behaviour. :( there is an error asking for at least three foot print points

prince gravatar image prince  ( 2014-04-27 17:49:35 -0500 )edit

Dont undestand about error. When does it appear? (When you use robot_radius parameter, ypu don't need footprint_padding at all.)

Mike Charikov gravatar image Mike Charikov  ( 2014-04-29 04:14:11 -0500 )edit

Yes. When I use robot padding but no footprint polygon .

prince gravatar image prince  ( 2014-05-04 22:19:25 -0500 )edit

Try to use robot_radius without robot_padding and robot_footprint.

Mike Charikov gravatar image Mike Charikov  ( 2014-05-07 02:55:09 -0500 )edit

Hi, I am interested in your comment "Navfn works good for me and my drone (in the real flights) ". I have time trying for it and I had not arrived my drone flies. Can you help me? I have done all the tutorials but I don't know why my quadrotor doesn't fly.


LisCampo gravatar image LisCampo  ( 2015-03-25 13:01:50 -0500 )edit

answered 2014-04-28 00:33:29 -0500

Siegfried Gevatter gravatar image

From the images it looks like it's planning through holes in the walls that lead to unknown space. If that's not what you want, you could disallow moving through unknown cells (there's a parameter for this somewhere; note: I've had problems with voxel and unknown cells before, I'd recommend using a plain 2d costmap).

edit flag offensive delete link more


I am trying to work on exploration of unknown region. Disallowing a robot to move through unknown spaces will not help me. I want Nanfn to consider Rohit size while planning move!

prince gravatar image prince  ( 2014-05-04 22:21:26 -0500 )edit

Question Tools



Asked: 2014-04-24 19:27:36 -0500

Seen: 1,503 times

Last updated: Oct 01 '15