Local Costmap of move_base Package Does not Refresh when the Robot is Stationary.
Hi, I am encountering the issue that my local cost map does not refresh when the robot is stationary. This would create significant problems when there are moving obstacles around the robot. You can observe the behaviour here at 0:22 Local_costmap_issue Here is how I launch my move_base node in my robot launch file:
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<rosparam file="$(find turtlebot_vrep)/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find turtlebot_vrep)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find turtlebot_vrep)/config/local_costmap_params.yaml" command="load" />
<rosparam file="$(find turtlebot_vrep)/config/global_costmap_params.yaml" command="load" />
<rosparam file="$(find turtlebot_vrep)/config/base_local_planner_params.yaml" command="load" />
<rosparam file="$(find turtlebot_vrep)/config/move_base_params.yaml" command="load" />
<remap from="cmd_vel" to="cmd_vel_mux/input/navi"/>
</node>
Relevant data are getting published on /map
topic at about 16 Hz, on /scan topic at 20 Hz, on /odom
topic at 20 Hz, and on /tf
topic at about 300 Hz.
However, the /move_base/local_costmap/costmap
topic barely gets published on, and does not publish anything when the robot is stationary.
Also, here are my parameters:
controller_frequency: 20.0
TrajectoryPlannerROS:
max_vel_x: 10.45
min_vel_x: 0.1
max_vel_theta: 10.0
min_in_place_vel_theta: 0.4
acc_lim_theta: 3.2
acc_lim_x: 2.5
acc_lim_y: 2.5
holonomic_robot: true
global_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 1.0
static_map: true
publish_frequency: 0.5
transform_tolerance: 0.5
local_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 3.0
height: 3.0
resolution: 0.05
Move base node parameters.
shutdown_costmaps: false
controller_frequency: 5.0
controller_patience: 3.0
planner_frequency: 1.0
planner_patience: 5.0
oscillation_timeout: 10.0
oscillation_distance: 0.2
Costmap common psrsmeters:
transform_tolerance: 1
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[0.25, 0.2], [-0.25, 0.2], [-0.25, -0.2], [0.25, -0.2]]
inflation_radius: 0.35
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: Hokuyo_URG_04LX_UG01_ROS, data_type: LaserScan, topic: /scan, marking: true, clearing: true}
I get the same behaviour on the actual turtlebot as well, and I would really appreciate any help.
by "not refresh" do you mean that the clearing does not happen? You should also show how you configured the sensors feeding the costmaps.
Sorry for the late response, and thank you for your comment. What I meant by no clearing actions is that OccupancyGrid info gets published on /move_base/local_costmap/costmap topic very rarely when the robot is stationary. You can see that in my recorded video on the ubuntu terminal.
Therefore, when a dynamic obstacle is recorded as an obstacle on the costmap, it takes a while for the occupancy grid to be refreshed into free when the robot is stationary. I have updated the post to include my sensor configuration feeding the costmaps.