Running move_base for navigation via gmapping.
Hi, I am using gmapping (localization and map) to run the navigation by move_base node and I have this famous error :
[ WARN] [1350293255.494001686]: The origin for the sensor at (-0.16, 0.68) is out of map bounds. So, the costmap cannot raytrace for it.
I am running a simple differential robot, gmapping node, laser node, and move_base.
I searched a lot to find a solution through many links available but nothing clearly explained where is the problem coming from. I appreciate any help. Thanks
Here are my yaml files:
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: false
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[-0.279, -0.225], [-0.279, 0.225], [0.479, 0.225], [0.479, -0.225]]
robot_radius: 0.20
inflation_radius: 0.15
observation_sources: laser_scan_sensor
# point_cloud_sensor
laser_scan_sensor: {sensor_frame: laser_link, data_type: LaserScan, expected_update_rate: 0.2, topic: scan, marking: true, clearing: true}
# point_cloud_sensor: {sensor_frame: frame_name, data_type: PointCloud, topic: topic_name, marking: true, clearing: true}
local_costmap:
map_type: costmap
global_frame: /map
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
global_costmap:
map_type: costmap
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
Edit: rxconsole output for the warning:
Node: /move_base
Time: 1350389366.400216263
Severity: Warn
Location: /tmp/buildd/ros-electric-navigation-1.6.5/debian/ros-electric-navigation/opt/ros/electric/stacks/navigation/costmap_2d/src/costmap_2d.cpp:Costmap2D::raytraceFreespace:739
Published Topics: /rosout, /cmd_vel, /move_base/current_goal, /move_base/goal, /move_base/global_costmap/obstacles, /move_base/global_costmap/inflated_obstacles, /move_base/global_costmap/unknown_space, /move_base/global_costmap/robot_footprint, /move_base/global_costmap/parameter_descriptions, /move_base/global_costmap/parameter_updates, /move_base/NavfnROS/plan, /move_base/NavfnROS/NavfnROS_costmap/obstacles, /move_base/NavfnROS/NavfnROS_costmap/inflated_obstacles, /move_base/NavfnROS/NavfnROS_costmap/unknown_space, /move_base/NavfnROS/NavfnROS_costmap/robot_footprint, /move_base/local_costmap/obstacles, /move_base/local_costmap/inflated_obstacles, /move_base/local_costmap/unknown_space, /move_base/local_costmap/robot_footprint, /move_base/local_costmap/parameter_descriptions, /move_base/local_costmap/parameter_updates, /move_base/TrajectoryPlannerROS/global_plan, /move_base/TrajectoryPlannerROS/local_plan, /move_base/TrajectoryPlannerROS/cost_cloud, /move_base/TrajectoryPlannerROS/parameter_descriptions, /move_base/TrajectoryPlannerROS/parameter_updates, /move_base/result, /move_base/feedback, /move_base/status, /move_base/parameter_descriptions, /move_base/parameter_updates
The origin for the sensor at (0.50, -0.01) is out of map bounds. So, the costmap cannot raytrace for it.
well I increased it Lorenz. The rolling window is also already true. isn't is sth with my map dimensions maybe?
yes, I changed it already to odom. And the the location for the error as rxconsole says is : Location: /tmp/buildd/ros-electric-navigation-1.6.5/debian/ros-electric-navigation/opt/ros/electric/stacks/navigation/costmap_2d/src/costmap_2d.cpp:Costmap2D::raytraceFreespace:739
As I found from some discussions, it seems I didn’t realise that I had to configure the map to put its origin as in stage; but I don't know how to configure it.
Could you maybe edit your question and copy-paste the complete contents of the window in rxconsole? We are not interested in the location in the code that signals the warning but in the logger that signals it. That way, we know if it is the local or the global costmap.
Thanks a lot for your replies! I added the whole warning output then.
Hm. Unfortunately the rxconsole output doesn't really help. I really thought it was possible to get the logger but apparently it's not. Can you set the map width and height of the global costmap to something like 50.0 and set origin_x and origin_y to -25.0? The origins might do the trick.
Just a side note for future observers: the navigation robot setup tutorial states that you should have either "footprint" or "robot_radius" set, not both.