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

Exploration stack on p3dx [closed]

asked 2011-03-16 02:06:10 -0500

Aravindhan K Krishnan gravatar image

updated 2011-03-19 20:14:11 -0500

I am setting up exploration stack on p3dx with gmapping.

When I launch the exploration node I get the following warning repeatedly

The base_scan observation buffer has not been updated for 3.05 seconds, and it should be updated every 0.20 seconds.

How should I resolve this? The robot rotates in the same position and after a while the exploration stops. Any problem with the base_scan topic here? Is this problem causing exploration to stop early?

Update

Just to verify what I did. 1) I set static_map to false and rolling_window to "true" 2) I am not running amcl node for localization 3) Set the expected_update_rate for base_scan to 0.2

Am I right?

The "base_scan not updated" warning comes from the explore node.

The following warning comes from move_base node

The robot's start position is off the global costmap. Planning will always fail, are you sure the robot has been properly localized?

Should I post all my configuration files?

Update

global_costmap_params.yaml

global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
static_map: false

local_costmap_params.yaml

local_costmap: global_frame: odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.05

base_local_planner_params.yaml

TrajectoryPlannerROS:
max_vel_x: 0.45
min_vel_x: 0.1
max_rotational_vel: 1.0
min_in_place_rotational_vel: 0.4
acc_lim_th: 3.2
acc_lim_x: 2.5
acc_lim_y: 2.5
holonomic_robot: true

costmap_common_params.yaml

obstacle_range: 3.0
raytrace_range: 3.5
footprint: [[-0.2, 0.2], [-0.2, -0.2], [0.2, 0.2], [0.2, -0.2]]
inflation_radius: 0.55
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: /laser, data_type: LaserScan, topic: base_scan, marking: true, clearing: true, expected_update_rate: 0.5}

Update

move_base log

[roscpp_internal] [2011-03-19 18:07:31,567] [thread 0xb6906740]: [DEBUG] XML-RPC call [searchParam] returned an error (-1): [Cannot find parameter [footprint_padding] in an upwards search]
[roscpp_internal] [2011-03-19 18:07:37,936] [thread 0xb6906740]: [DEBUG] Publisher update for [/odom]: already have these connections:
[roscpp_internal] [2011-03-19 18:07:37,962] [thread 0xb6906740]: [DEBUG] XML-RPC call [searchParam] returned an error (-1): [Cannot find parameter [controller_frequency] in an upwards search]
[ros.base_local_planner] [2011-03-19 18:07:37,962] [thread 0xb6906740]: [INFO] Sim period is set to 0.05
[roscpp_internal] [2011-03-19 18:07:38,002] [thread 0xb6906740]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlannerROS/backup_vel] is not set]
[roscpp_internal] [2011-03-19 18:07:38,003] [thread 0xb6906740]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlannerROS/escape_vel] is not set]
[roscpp_internal] [2011-03-19 18:07:38,010] [thread 0xb6906740]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlannerROS/y_vels] is not set]
[ros.costmap_2d] [2011-03-19 18:07:39,407] [thread 0xa869fb70]: [WARN] The base_scan observation buffer has not been updated for 0.79 seconds, and it should be updated every 0.50 seconds.
[ros.costmap_2d] [2011-03-19 18:07:40,407] [thread 0xa869fb70]: [WARN] The base_scan observation buffer has not been updated for 1.79 seconds, and it should be updated every 0.50 seconds.

Launch files

robot_configuration.launch

<launch >
    <node pkg="p2os_dashboard" type="p2os_dashboard" name="p2os_dashboard" output ...
(more)
edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by tfoote
close date 2012-02-21 18:33:54

Comments

Aravindhan, please tell us which node is throwing the warnings. (use rxconsole). Can you also post a screenshot of your rxgraph. Posting your config files can help too.
raphael favier gravatar image raphael favier  ( 2011-03-17 02:30:13 -0500 )edit
/explore node gives "base_scan not updated warning". /move_node gives "The robot's start position.. " warning.. The rxgraph can be found at https://picasaweb.google.com/110788714639433489887/ROSExplorationStack#5585070225405574658. Any specific configuration file you want me to post?
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-17 03:25:50 -0500 )edit
mmmhhh.. but which nodes gives you the warning you wrote in your initial question? I guess you must have 3 or 4 config files. Could you post all of them?
raphael favier gravatar image raphael favier  ( 2011-03-17 04:19:37 -0500 )edit
Also check the comment of Eric. He thinks that the problem might come from a tf publisher not publishing fast enough the transform between your laser sensor and the global frame (chosen in the config files). You could check your tf frames by running your software and running "rosrun tf view_frames" in another terminal. Generaly, did you follow this tutorial when setting your robot up? http://www.ros.org/wiki/navigation/Tutorials/RobotSetup
raphael favier gravatar image raphael favier  ( 2011-03-17 04:23:58 -0500 )edit
yes.. I did follow the same tutorial.. Will post the configuration files in couple of mins.
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-17 04:54:43 -0500 )edit
The warning in my initial question comes from /explore node
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-17 05:03:49 -0500 )edit
try to add the parameters footprint_padding and controller_frequency as in http://www.ros.org/wiki/move_base_stage/Tutorials/stage%20and%20navigation%20stack section 7.6 in move_base.yaml/ Also, please try to format your posts a bit more. Use the GUI and the preview field. It gets very hard reading this conversation
raphael favier gravatar image raphael favier  ( 2011-03-19 07:20:19 -0500 )edit
Added the parameters footprint_padding and controller_frequency.. No luck.!
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-19 20:37:36 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2011-03-19 00:58:22 -0500

raphael favier gravatar image

Hello Aradvindhan,

May I ask a few more questions, exploring Eric's suggestion:

Which laser scanner are you using? Can you actually see your laser scans in rviz in a simple setup? What frame are they published in (are you sure their frame is /laser?

When you run rosrun tf view_frames while your nodes are running, it generates a tf graph with the publishing frequencies of each transform. Have a look at the transform tree from your laser scanner (/laser) to the robot frame (/base_link), what are the publishing rates for these transforms?

Raph

edit flag offensive delete link more

Comments

I am using SICK LMS 200. Yes, I can see the laser scans in rviz, and the frame is /laser. I can see this when I do "rosrun tf view_frames". The tf tree is map->odom->base_link->laser. Is this the right tf? The publishing rates are 9.57, 10.20 and 10.19 Hz respectively.
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-19 01:19:56 -0500 )edit
Ok all is good on that side then. From the move_base log, it seems one node is not running (move_base cannot find some parameters). Can you post your launchfiles?
raphael favier gravatar image raphael favier  ( 2011-03-19 01:29:54 -0500 )edit
I added the missing parameters in base_local_planner_params.yaml. It didn't make any difference.
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-20 02:40:41 -0500 )edit
0

answered 2011-03-16 10:17:46 -0500

raphael favier gravatar image

updated 2011-03-16 10:25:09 -0500

Can you tell which node is throwing this warning? You can use rxconsole for that.

I think one of your node expects laser scans at 5 Hz and your hardware is somehow not powerful enough to deliver the scans on time. I would be on the local costmap and the parameter update_frequency, but I am not sure.

check for example local_costmap_params.yaml:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05

If I am right, check the documentation of costmap_2d and this navigation tutorial, it explains how to set your parameters. If you find which node throws this warning, you can look at its parameters in the wiki.

Relative to the rotation behavior, have a look at these posts on the ros user list. They discuss the problem of rotating robots.

Please post your findings, I am curious. :)

Raph

edit flag offensive delete link more

Comments

I think it may also be possible to see that warning if the costmaps cannot transform the laser scans into their global_frame at the expected rate, but I can't remember if that is definitely the case.
Eric Perko gravatar image Eric Perko  ( 2011-03-16 11:16:14 -0500 )edit
I am now trying a very basic setup of the navigation stack, without the explore node. I get the "The base_scan observation buffer has not been updated" warning from move_base node and later move_base crashes with the following error "terminate called after throwing an instance of std::bad_alloc"
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-19 00:41:05 -0500 )edit
What should I do if the laser_scans are not transformed to the global frame at the expected rate.? I have changed the update_frequency to 1.0 in the configuration files. Still, the same problem. Anything else I should try?
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-19 00:43:20 -0500 )edit
I have posted the move_base log above. Might be helpful. This is the log after the crash
Aravindhan K Krishnan gravatar image Aravindhan K Krishnan  ( 2011-03-19 00:49:18 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2011-03-16 02:06:10 -0500

Seen: 1,532 times

Last updated: Mar 19 '11