Ask Your Question
0

Navigation stack's observation buffer & Costmap2DROS transform

asked 2011-07-14 19:28:44 -0500

sam gravatar image

updated 2014-01-28 17:10:03 -0500

What my errors are

 The base_scan observation buffer has not been updated for 1056.13 seconds, and it should be updated every 0.40 seconds.
 Costmap2DROS transform timeout. Current time: 1310714584.1730, global_pose stamp: 1310714583.0928, tolerance: 0.3000

What am I missing? I have checked rxgraph to make sure all connections are set.

My launch file is

 <launch>
    <!-- Navigation Core -->
   <node pkg="move_base" type="move_base" respawn="false"      name="move_base_node" output="screen">
       <remap from="map" to="/map" />
       <param name="controller_frequency" value="10.0" />
       <rosparam file="$(find nav_core)/conf/costmap_common_params.yaml"      command="load" ns="global_costmap" />
       <rosparam file="$(find nav_core)/conf/costmap_common_params.yaml"      command="load" ns="local_costmap" />
       <rosparam file="$(find nav_core)/conf/local_costmap_params.yaml"      command="load" />
       <rosparam file="$(find nav_core)/conf/global_costmap_params.yaml"      command="load" />
       <rosparam file="$(find      nav_core)/conf/base_local_planner_params.yaml" command="load" />
     </node>

   <node pkg="robot_setup_tf" type="tf_broadcaster"      name="transform_configuration_name" output="screen">
     <param name="transform_configuration_param" value="param_value" />
   </node>

   <node pkg="robot_setup_odometry" type="odometry" name="odom_node"      output="screen">
     <param name="odom_param" value="param_value" />
   </node>

   <node pkg="robot_setup_laser" type="laser" name="sensor_node_name"      output="screen">
     <param name="sensor_param" value="param_value" />
   </node>
 </launch>

view_frames Result

 /odom->/base_link->/map

        /base_link->/base_laser

costmap_common_params.yaml

 #This file contains common configuration options for the two costmaps used in      the navigation stack for more details on the parameters in this file, and a full list of the      parameters used by the costmaps, please see http://www.ros.org/wiki/costmap_2d

 #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
 obstacle_range: 2.5
 max_obstacle_height: 2.0
 raytrace_range: 3.0

 #The footprint of the robot and associated padding
 footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325,      -0.325]]
 footprint_padding: 0.01

 #Cost function parameters
 inflation_radius: 0.55
 cost_scaling_factor: 10.0

 #The cost at which a cell is considered an obstacle when a map is read from the      map_server
 lethal_cost_threshold: 100

 #Configuration for the sensors that the costmap will use to update a map
 observation_sources: base_scan
 base_scan: {data_type: LaserScan, expected_update_rate: 0.4,
   observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.08}
edit retag flag offensive close merge delete

Comments

Could you post your costmap_common_params file? And the output of 'rosrun tf view_frames' while you are seeing that error so we can verify that your frames are connected properly? Eric Perko ( 2011-07-15 01:22:33 -0500 )edit
I have updated,thanks. sam ( 2011-07-15 23:10:57 -0500 )edit

2 answers

Sort by ยป oldest newest most voted
0

answered 2011-07-17 14:30:07 -0500

sam gravatar image

Thank you~ I solved it. In my global_costmap_params.yaml I set the static_map to false, because I misunderstanding that parameter. Before I think static_map means the map is static not generate by gmapping dynamically. So I choose static_map parameter to be false,because I want to do a online slam. When I change static_map to true,that two warning message disappeared!

edit flag offensive delete link more

Comments

Sorry for my misunderstanding again. I found that when I change the setting, it just ask for a map first. That situation let me think my question is solved,but not. Because when I give it a static map to try,the same problem showed again... sam ( 2011-07-17 20:03:28 -0500 )edit
Why when I only run :export ROBOT=sim and roslaunch navigation_stage move_base_gmapping_5cm.launch. It also showed that " The /base_scan/scan observation buffer has not been updated for 126.30 seconds" and couldn't move by setting goal on rviz. What happened? sam ( 2011-07-18 20:59:26 -0500 )edit
1

answered 2011-07-16 05:58:50 -0500

It looks like your laser scan is not updated at the expected update rate you set. This may be because you forgot to set the topic name for the base_scan observation source.

See the costmap_2d parameters for details. Make sure you fill in the "topic" parameter for the base_scan observation source.

edit flag offensive delete link more

Comments

Thank you~Is there any example about this? sam ( 2011-07-16 22:26:45 -0500 )edit
You mean like the Costmap Configuration section of the Navigation stacks's Robot Setup tutorial? http://www.ros.org/wiki/navigation/Tutorials/RobotSetup#Costmap_Configuration_.28local_costmap.29_.26_.28global_costmap.29Eric Perko ( 2011-07-17 06:45:47 -0500 )edit
That example means a really code or settings run on real robot. I have try to add `topics: "base_scan" sensor_frame: "sensor_msgs/LaserScan"` on costmap_common_params.yaml but not works. sam ( 2011-07-17 20:11:02 -0500 )edit
Have you verified with something like "rostopic hz base_scan" that your laser scan is actually being published? Are you able to visualize the scan in the map frame in rviz? eitan ( 2011-07-18 14:43:55 -0500 )edit

Your Answer

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

Add Answer

[hide preview]

Stats

Asked: 2011-07-14 19:28:44 -0500

Seen: 1,849 times

Last updated: Jul 17 '11