Table des matières

SLAM: Self Localization and Mapping

Prerequisite:


gmapping

Even without having a map of the environment, we can create one on-the-fly, thanks to 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:

<launch>
<param name=“use_sim_time” value=“false”/>
<node pkg=“gmapping” type=“slam_gmapping” name=“slam_gmapping” output=“screen”>
<!– descriptions and defaults:
http://www.ros.org/wiki/gmapping#Parameters –>
<param name=“xmin” value=“-5.0”/>
<param name=“ymin” value=“-5.0”/>
<param name=“xmax” value=“5.0”/>
<param name=“ymax” value=“5.0”/>
<param name=“maxUrange” value=“59.0”/><!–60! ?–>
<param name=“maxRange” value=“63.0”/>
<param name=“map_update_interval” value=“5.0”/> <!– def –>
<param name=“linearUpdate” value=“0.2”/>
<param name=“angularUpdate” value=“0.15”/>
<param name=“particles” value=“50”/>
<param name=“delta” value=“0.1”/>
</node>
</launch>

Then, launch rviz and see the result, published in topic /map.


Hector Slam


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