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

Navigation using real time generate map without a known map

asked 2012-12-06 01:13:33 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I know this should be possible but at the point of using AMCL. I don`t know what to do as AMCL does not have a tutorial with no known map. Right now in the robot configuration.launch


<node pkg="hokuyo_node" type="hokuyo_node" name="hokuyo_node" output="screen"> </node>

<node pkg="laser_scan_matcher" type="laser_scan_matcher_node" name="laser_scan_matcher_node" output="screen"> </node>

<node pkg="tf" type="static_transform_publisher" name="laser_link" args="0.0 0.0 0.10 0.0 0.0 0.0 /base_link /laser 40"/>

<node pkg="gmapping" type="slam_gmapping" name="gmapping" output="screen" >="" <param="" name="odom_frame" value="/world"/> </node>


**A map generated, and current laser scan data can be seen in the rviz. Then I follows navigation tutorial to write configuration for navigation stack

the other yaml file are all the same except that at global_costmap_params.yaml static_map is set to false

amcl_diff.launch is similiar to the one found in drh-robotics-ros - Revision 108: /trunk/ros/ardros/launch

But I got problem for the last part move_base.launch map server is need to run navigation stack which operates on the known map

This part specific ask a known map for processing where as I need it to use the /map generated by slam_gmapping. And I`ll need it to be real time.

I know I have to change <node name="map_server" pkg="map_server" type="map_server" args="$(find my_map_package)/my_map.pgm my_map_resolution"/> to a real time map generated by slam_gmapping. But I dont know how to do it as there wasnt much info out of here amcl/Tutorials

Does any one knows how to do it? How to modify the last move_base.launch to read real time map data?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-12-06 01:25:17 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

AMCL is meant for localization only (based on a known map) and will not work with a non-static map. SLAM (Simultaneous Localization and Mapping) methods are meant for the task you're looking at. Options for that are gmapping and (shameless plug :) ) hector_mapping.

I suppose you could look into hacking AMCL to work with a map generated online by some other approach, but for that other approach to be able to generate a consistent map you need localization. And that's the chicken-egg problem of SLAM ;)

edit flag offensive delete link more

answered 2013-01-15 21:37:42 -0600

Namal Senarathne gravatar image

updated 2013-01-15 21:39:57 -0600

All you have to do is to keep the robot_configuration.launch as it is and make sure that AMCL, map_server are not run and to set the static_map parameter to true in global_costmap_params.yaml

This is my global_costmap_params.yaml

  global_frame: /map
  robot_base_frame: /base_link
  update_frequency: 10.0
  publish_frequency: 10.0
  static_map: true
  rolling_window: false
edit flag offensive delete link more

Question Tools

1 follower


Asked: 2012-12-06 01:13:33 -0600

Seen: 2,869 times

Last updated: Jan 15 '13