Turtlebot SLAM gmapping parameter
Hi, I am quite new to gmapping and I am seeking some advice regarding the gmapping parameter. So, I did a gmapping and the result (the map) is not quite good enough. As you can see in the attachment, the map bends to the left where it supposes to be straight as the red line.
I teleop my turtlebot (waffle pi) to move forward (upward in the map) at 0.1 m/s. I did stop it and made it turn around several times. The room size is about 3 m wide and 35 m long. My gmapping parameter is as below.
<!-- Gmapping -->
<node pkg="gmapping" type="slam_gmapping" name="turtlebot3_slam_gmapping" output="screen">
<param name="base_frame" value="$(arg set_base_frame)"/>
<param name="odom_frame" value="$(arg set_odom_frame)"/>
<param name="map_frame" value="$(arg set_map_frame)"/>
<param name="map_update_interval" value="2.0"/>
<param name="maxUrange" value="3.0"/>
<param name="sigma" value="0.05"/>
<param name="kernelSize" value="1"/>
<param name="lstep" value="0.05"/>
<param name="astep" value="0.05"/>
<param name="iterations" value="5"/>
<param name="lsigma" value="0.075"/>
<param name="ogain" value="3.0"/>
<param name="lskip" value="0"/>
<param name="minimumScore" value="50"/>
<param name="srr" value="0.1"/>
<param name="srt" value="0.2"/>
<param name="str" value="0.1"/>
<param name="stt" value="0.2"/>
<param name="linearUpdate" value="1.0"/>
<param name="angularUpdate" value="0.2"/>
<param name="temporalUpdate" value="0.5"/>
<param name="resampleThreshold" value="0.5"/>
<param name="particles" value="100"/>
<param name="xmin" value="-10.0"/>
<param name="ymin" value="-10.0"/>
<param name="xmax" value="10.0"/>
<param name="ymax" value="10.0"/>
<param name="delta" value="0.05"/>
<param name="llsamplerange" value="0.01"/>
<param name="llsamplestep" value="0.01"/>
<param name="lasamplerange" value="0.005"/>
<param name="lasamplestep" value="0.005"/>
</node>
I also checked the CPU usage, which is about 90% in total. So, I think map_update_interval is not a problem.
I know that the odometry isn't going to give the accurate pose or location, but can someone please tell me which parameter should I tune to get a better map? I read the ros programming book, but I still don't understand which parameters give the most impact on the result. I really appreciate some advice. Thanks!