# Navigation using real time generate map without a known map

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 dont know what to do as AMCL does not have a tutorial with no known map. Right now in the robot configuration.launch

<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>

</launch>

**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 Ill 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 close merge delete

Sort by » oldest newest most voted

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 ;)

more

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_costmap:
global_frame: /map
update_frequency: 10.0
publish_frequency: 10.0
static_map: true
rolling_window: false

more