仅使用(n线)激光雷达跑gmapping,laser_scan_matcher构建简单的栅格地图

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Discoverhfub/article/details/98848896

一般来说gmapping必须要有里程计信息才能使用:
laser_scan_matcher包是通过激光雷达去匹配环境然后模拟出机器人的odom

wiki
github下载链接
下载到catkin_ws/src下,catkin_make编译即可

在demo_gmapping.launch中有一句读取数据集(需要用自己的数据集,要改)

  <node pkg="rosbag" type="play" name="play" 
    args="$(find laser_scan_matcher)/demo/demo.bag --delay=5 --clock"/>

运行:

roslaunch laser_scan_matcher demo_gmapping.launch

效果图:(自己的数据集)在这里插入图片描述
简单建图,不是很准,,看不下去了
问题出在/laser的频率要改(将40 改成 200)

在这里插入图片描述
这效果就杠杠的


也可以将它改为一个发布虚拟/odom的工具
改一下

<!-- 
Example launch file: uses laser_scan_matcher together with
slam_gmapping 
-->

<launch>

  #### publish an example base_link -> laser transform ###########

  <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" 
    args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 200" />

  #### start the laser scan_matcher ##############################

  <node pkg="laser_scan_matcher" type="laser_scan_matcher_node" 
    name="laser_scan_matcher_node" output="screen">

    <param name="fixed_frame" value = "odom"/>
    <param name="max_iterations" value="10"/>


    <param name="base_frame" value="base_link"/>
    <param name="use_odom" value="false"/>
    <param name="publy_pose" value="true"/>
    <param name="publy_tf" value="true"/>

  </node>

</launch>

猜你喜欢

转载自blog.csdn.net/Discoverhfub/article/details/98848896