Hi all,

I am trying to navigate my pioneer 3dx robot using move_base and cost files. I am using sicklms200 laser. I am running the robot using ROSARIA. I have written my own transformation node following tf tutorials and it works fine.

I could build the map using gmapping package. Also global lacalisation using AMCL package has worked well. I am using amcl_diff.launch file in the examples folder of amcl package.

I am then trying to navigate using move_base with the following supporting files. base_local_planner_params.yaml

    TrajectoryPlannerROS:
max_vel_x: 0.8
min_vel_x: 0.1
max_rotational_vel: 0.8
min_in_place_rotational_vel: 0.3
backup_vel: -0.2

sim_time: 2.0
path_distance_bias: 0.6
goal_distance_bias: 0.6

acc_limit_th: 3.2
acc_limit_x: 2.5
acc_limit_y: 2.5

holonomic_robot: false


costmap_common_params.yaml

    obstacle_range: 2.5
raytrace_range: 3.0

footprint: [ [0.3302, -0.0508], [0.254, -0.0508], [0.254, -0.254], [-0.254, -0.254], [-0.254, 0.254], [0.254, 0.254], [0.254, 0.0508], [0.3302, 0.0508] ]

transform_tolerance: 0.2
map_type: costmap

observation_sources: laser_scan_sensor

laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true, expected_update_rate: 0.2}


global_costmap_params.yaml

global_costmap:
global_frame: /map
update_frequency: 2.0
publish_frequency: 10.0
static_map: true


local_costmap_params.yaml

local_costmap:
global_frame: /odom
update_frequency: 5.0
publish_frequency: 10.0
static_map: false
rolling_window: true
width: 5.0
height: 5.0
resolution: 0.025


along with these I use a launch file for my move_base as navigation.launch

<launch>

<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<rosparam file="$(find p2os_launch)/costmap_common_params.yaml" command="load" ns="global_costmap" /> <rosparam file="$(find p2os_launch)/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find p2os_launch)/local_costmap_params.yaml" command="load" /> <rosparam file="$(find p2os_launch)/global_costmap_params.yaml" command="load" />
<param name="base_global_planner" type="string" value="NavfnROS" />
<param name="conservative_reset_dist" type="double" value="3.0" />
<param name="controller_frequency" type="double" value="15.0" />
</node>
</launch>


on running these I can see all the topics in my rviz also the inflated obstacle and if I give a path it also plans the path and I can see that in rviz, but it doesn't move. The laptop hangs for sometime and then I see in my terminal the following errors.

[ WARN] [1331748630.289077383]: [/move_base]:Sensor data is out of date, we're not going to allow commanding of the base for safety
[ WARN] [1331748630.331339888]: Map update loop missed its desired rate of 10.0000Hz... the loop actually took 2.4046 seconds
[ WARN] [1331748630.355892025]: [/move_base]:Sensor data is out of date, we're not going to allow commanding of the base for safety
[ WARN] [1331748630.422665254]: [/move_base]:Sensor data is out of date, we're not going to allow commanding of the base for safety
[ WARN] [1331748630.472304319]: The scan observation buffer has not been updated for 5.58 seconds, and it should be updated every 0.20 seconds.


and this error keeps on repeating. I also tried to close rviz ...

edit retag close merge delete

Sort by » oldest newest most voted

Take a look at costmap2d parameters. The navigation stack has given you the warning and told you why the robot is not moving:

[/move_base]:Sensor data is out of date, we're not going to allow commanding of the base for safety


You might want to increase your laser scan publish rate (if possible), or tweak some of the parameters in costmap_common_params.yaml Perhaps higher transform tolerance? Or change the expected update rate of the laser scan?

more

If i increase the baud rate of laser i get a warnin " a scan was probably missed" . I had changed the expected update rate in costmap_common_params.yaml to 3, but i still get the error message. I will try to use higher transform tolerance today and will try. But if possible i want a robust soln..

( 2012-03-15 00:26:57 -0500 )edit

why not leave the expected update rate at its default of 0.0? This gives infinite time between readings and will help you see if the timestamp of your laser messages are set correctly as pointed out by michikarg. You can also do a rostopic hz of your topic to see how fast it is being published

( 2012-03-15 15:05:57 -0500 )edit

ok i will make update rate to default. The timestamp was correct. I did rostopic hz. I am getting my laser at 8hz avg. My transform at 50hz avg. my robot position at 10hz avg. the transformation b/w map and base_link is 5hz. after making the controller frequency to 1 hz also i get the same result.

( 2012-03-16 02:01:28 -0500 )edit

You should also try to check if the timestamps of your laser messages are set correctly...

more