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

Navigation stack without map

asked 2011-09-12 14:26:15 -0500

jarjarbings gravatar image

updated 2011-09-12 14:34:04 -0500

Hey everyone,

I am facing some trouble while running the navigation stack without a static map on our bot. The problem is, that whenever I am sending a goal to the robot the robot doesn't stop moving. E.g.: I'm sending the bot(base_link) the goal x=1 y=0 z=0 w=0, so he just had to move one meter forward, an he moves and even avoid obstacles, but he doesn't stop moving forward after the goal was arrived. I already checked if the odometry msgs aren't publishing right, but they are.

I think this happens because there isn't a global coordinate frame like /map. Because we aren't using a static map.

Our costmap.yaml file:

global_frame: base_link
robot_base_frame: base_link
update_frequency: 20.0
publish_frequency: 20.0
publish_voxel_map: true
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.025

map_type: voxel
origin_z: 0.0
z_resolution: 1
z_voxels: 32
unknown_threshold: 10
mark_threshold: 0

transform_tolerance: 0.3
obstacle_range: 2.5
max_obstacle_height: 1.0
min_obstacle_height: 0.10
raytrace_range: 3.0
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
inflation_radius: 0.55
cost_scaling_factor: 10.0
lethal_cost_threshold: 100
observation_sources: ....

our localcostmap.yaml:

local_costmap:

global_frame: base_link
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:

global_frame: base_link
robot_base_frame: base_link
update_frequency: 5.0
static_map: false

move_base launch:

<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<remap from="/cmd_vel" to="/guardian_controller/command" />
<rosparam file="params_costmap2d.yaml" command="load" ns="global_costmap" />
<rosparam file="params_costmap2d.yaml" command="load" ns="local_costmap" />
<rosparam file="local_costmap_params.yaml" command="load" />
<rosparam file="global_costmap_params.yaml" command="load" />
<rosparam file="local_costmap_params.yaml" command="load" />
</node>

Which global_frame should I use, if I'm not using a map?

Thank you in advance

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
7

answered 2011-09-12 20:28:14 -0500

I think the problem is that you are using the same frame (base_link) for both an external reference point and for the moving base. So from the robot point of view it is not moving!

You don't need a map for the navigation, but you need a fixed frame of reference, which in your case could be the odometry. Information about how to publish a custom odometry tf is here.

In the PR2 this is odom_combined for example.

edit flag offensive delete link more

Comments

Thanks for your answer. Since we are using the robot_pose_ekf node for filtering and estimating odometry, the node allready publishes a tf called odom_combined as you said. So know I've added this frame as our global frame. Now the robot stops when he arrives his goal.
jarjarbings gravatar image jarjarbings  ( 2011-09-13 13:47:22 -0500 )edit

@jarjarbings Did you change the global frame only in globalcostmap.yaml file or as well as in local costmap.yaml

rohan gravatar image rohan  ( 2013-04-27 12:17:20 -0500 )edit

@rohan ,I think it should be both.

jxl gravatar image jxl  ( 2015-11-09 21:25:06 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2011-09-12 14:26:15 -0500

Seen: 5,266 times

Last updated: Sep 12 '11