9.3.2 导航实现02_SLAM建图

关于建图实现,仍然选用第7章中学习的:gmapping,实现如下:

2.1编写gmapping节点相关launch文件

在上一节创建的导航功能包中新建 launch 目录,并新建launch文件(文件名自定义,比如: gmapping.launch),代码示例如下:

<launch>
    <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
      <remap from="scan" to="scan"/>
      <param name="base_frame" value="base_footprint"/><!--底盘坐标系-->
      <param name="odom_frame" value="odom"/> <!--里程计坐标系-->
      <param name="map_update_interval" value="5.0"/>
      <param name="maxUrange" value="16.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="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.5"/>
      <param name="temporalUpdate" value="3.0"/>
      <param name="resampleThreshold" value="0.5"/>
      <param name="particles" value="30"/>
      <param name="xmin" value="-50.0"/>
      <param name="ymin" value="-50.0"/>
      <param name="xmax" value="50.0"/>
      <param name="ymax" value="50.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>
</launch>

关键代码解释:

<remap from="scan" to="scan"/><!-- 雷达话题 -->
<param name="base_frame" value="base_footprint"/><!--底盘坐标系-->
<param name="odom_frame" value="odom"/> <!--里程计坐标系-->

2.2执行

1.执行相关launch文件,启动机器人并加载机器人模型:roslaunch mycar_start start.launch

2.启动地图绘制的 launch 文件:roslaunch nav gmapping.launch

3.启动键盘键盘控制节点,用于控制机器人运动建图:rosrun teleop_twist_keyboard teleop_twist_keyboard.py

4.在 rviz 中添加地图显示组件,通过键盘控制机器人运动,同时,在rviz中可以显示gmapping发布的栅格地图数据了,该显示结果与仿真环境下类似。下一步,还需要将地图单独保存。

results matching ""

    No results matching ""