=====SLAM: Self Localization and  Mapping =====
**Prerequisite:**
  * get a running catkin environment.
  * check your environment variables.
  * check the necessary topics are up and running (''cmd_vel'', ''laser'', ''tf'',...)
  * [[ROSLaserFilter|Filter]] the LaserScan if necessary.
  * Run: roscore and robot drivers and scripts. 
----
==== gmapping ====
Even without having a map of the environment, we can create one on-the-fly, thanks to
[[http://wiki.ros.org/slam_gmapping/Tutorials|SLAM]] (Self Localization and Mapping).
You will need to set up you robot completely, then to launch ''slam_gmapping''. It may be helpful to create a launchfile to pass parameters, for example in ''gmapping.launch'':
''\\
    \\
    \\
        \\        
        \\
        \\
        \\
        \\
        \\
        \\
        
         \\
        \\
        \\
        \\
        
        \\
    \\
 '' 
Then, launch ''rviz'' and see the result, published in topic ''/map''.
----
==== Hector Slam====
  * This [[http://wiki.ros.org/hector_slam|metapackage]] is part of the [[http://wiki.ros.org/tu-darmstadt-ros-pkg|TU Darmstadt]] repository.
  * To install it in Debian/Ubuntu:  ''sudo apt-get install ros-hydro-hector-slam'' 
  * For mapping, we're intested in the [[http://wiki.ros.org/hector_mapping|hector_mapping]] package.
----
====Working offline with a "bag" of data====
One may need to first record the data before computing the map. That is possible, with a "bag".
See the tutorial [[http://wiki.ros.org/slam_gmapping/Tutorials/MappingFromLoggedData]]
One first needs to make a bag of data, e.g.:  ''rosbag record -O mylaserdata /scan /tf''