Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

why the costmaps don't clear obstacles in time when using move_base package?

Hello all, I am using gmapping and move_base to navigate and generate a map.But I ran into a problem.Becaust of the interference of external factors to laser(URG04LX),the map may take several points as obstacles.But with the robot moving ,the map updates and the points (fake obstacles) are cleared.But the costmap donot clear the points in time ,even several minutes after the map have already cleared those points.Picture 1 is the map and Picture2 is the costmap at the same time.As we can see ,the costmap take those yellow points as obstacles including those around the robot which actually has already been cleared on the map.As a result the robot was stuck and can't rotate.

image description

image description

I donot know if I have something wrong with configuration of costmap,so I paste the files below. base_local_planner_params.yaml:

 TrajectoryPlannerROS:
  max_vel_x: 0.20   
  min_vel_x: 0.08
  max_rotational_vel: 0.23  
  min_in_place_rotational_vel: 0.05

  acc_lim_th: 1.05
  acc_lim_x: 1.0
  acc_lim_y: 1.0

  holonomic_robot: false

costmap_common_params.yaml:

obstacle_range: 5.0       
raytrace_range: 5.0         
footprint: [[0.5, 0.25],
            [-0.3, 0.25],
            [-0.3, -0.25],
            [0.5, -0.25]]                   
inflation_radius: 0.15   
observation_sources: laser_scan_sensor 
laser_scan_sensor: {sensor_frame: base_laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

global_costmap_params.yaml:

global_costmap:
  global_frame: /map
  robot_base_frame: base_link
  update_frequency: 0.5
  publish_frequency: 0.5
  static_map: false
  rolling_window: true

  width: 190.0
  height: 190.0
  resolution: 0.03

local_costmap_params.yaml:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 0.5       
  publish_frequency: 0.5        
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.03

move_base.launch:

<?xml version="1.0"?>
<launch>
  <master auto="start"/>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/base_local_planner_params.yaml" command="load" />
    <param name="controller_frequency" value="5.0" />
  </node>
</launch>

Has anyone met the problem before?Any advice will be appreciated.Thank you very much.

Yuichi

why the costmaps don't clear obstacles in time when using move_base package?

Hello all, I am using gmapping and move_base to navigate and generate a map.But I ran into a problem.Becaust of the interference of external factors to laser(URG04LX),the map may take several points as obstacles.But with the robot moving ,the map updates and the points (fake obstacles) are cleared.But the costmap donot clear the points in time ,even several minutes after the map have already cleared those points.Picture 1 is the map and Picture2 is the costmap at the same time.As we can see ,the costmap take those yellow points as obstacles including those around the robot which actually has already been cleared on the map.As a result the robot was stuck and can't rotate.

image description

image descriptionPicture1 : costmap

Picture2 : map

I donot know if I have something wrong with configuration of costmap,so I paste the files below. base_local_planner_params.yaml:

 TrajectoryPlannerROS:
  max_vel_x: 0.20   
  min_vel_x: 0.08
  max_rotational_vel: 0.23  
  min_in_place_rotational_vel: 0.05

  acc_lim_th: 1.05
  acc_lim_x: 1.0
  acc_lim_y: 1.0

  holonomic_robot: false

costmap_common_params.yaml:

obstacle_range: 5.0       
raytrace_range: 5.0         
footprint: [[0.5, 0.25],
            [-0.3, 0.25],
            [-0.3, -0.25],
            [0.5, -0.25]]                   
inflation_radius: 0.15   
observation_sources: laser_scan_sensor 
laser_scan_sensor: {sensor_frame: base_laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

global_costmap_params.yaml:

global_costmap:
  global_frame: /map
  robot_base_frame: base_link
  update_frequency: 0.5
  publish_frequency: 0.5
  static_map: false
  rolling_window: true

  width: 190.0
  height: 190.0
  resolution: 0.03

local_costmap_params.yaml:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 0.5       
  publish_frequency: 0.5        
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.03

move_base.launch:

<?xml version="1.0"?>
<launch>
  <master auto="start"/>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/base_local_planner_params.yaml" command="load" />
    <param name="controller_frequency" value="5.0" />
  </node>
</launch>

Has anyone met the problem before?Any advice will be appreciated.Thank you very much.

Yuichi

why the costmaps don't clear obstacles in time when using move_base package?

Hello all, I am using gmapping and move_base to navigate and generate a map.But I ran into a problem.Becaust of the interference of external factors to laser(URG04LX),the map may take several points as obstacles.But with the robot moving ,the map updates and the points (fake obstacles) are cleared.But the costmap donot clear the points in time ,even several minutes after the map have already cleared those points.Picture 1 is the map costmap and Picture2 is the costmap map at the same time.As we can see ,the costmap take those yellow points as obstacles including those around the robot which actually has already been cleared on the map.As a result the robot was stuck and can't rotate.

Picture1 : costmap

Picture2 : map

I donot know if I have something wrong with configuration of costmap,so I paste the files below. base_local_planner_params.yaml:

 TrajectoryPlannerROS:
  max_vel_x: 0.20   
  min_vel_x: 0.08
  max_rotational_vel: 0.23  
  min_in_place_rotational_vel: 0.05

  acc_lim_th: 1.05
  acc_lim_x: 1.0
  acc_lim_y: 1.0

  holonomic_robot: false

costmap_common_params.yaml:

obstacle_range: 5.0       
raytrace_range: 5.0         
footprint: [[0.5, 0.25],
            [-0.3, 0.25],
            [-0.3, -0.25],
            [0.5, -0.25]]                   
inflation_radius: 0.15   
observation_sources: laser_scan_sensor 
laser_scan_sensor: {sensor_frame: base_laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

global_costmap_params.yaml:

global_costmap:
  global_frame: /map
  robot_base_frame: base_link
  update_frequency: 0.5
  publish_frequency: 0.5
  static_map: false
  rolling_window: true

  width: 190.0
  height: 190.0
  resolution: 0.03

local_costmap_params.yaml:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 0.5       
  publish_frequency: 0.5        
  static_map: false
  rolling_window: true
  width: 3.0
  height: 3.0
  resolution: 0.03

move_base.launch:

<?xml version="1.0"?>
<launch>
  <master auto="start"/>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find SEU_Jolly_2dnav)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find SEU_Jolly_2dnav)/base_local_planner_params.yaml" command="load" />
    <param name="controller_frequency" value="5.0" />
  </node>
</launch>

Has anyone met the problem before?Any advice will be appreciated.Thank you very much.

Yuichi