美文网首页ROS机器人操作系统RosROS
ROS下无机器人,仅用激光雷达数据跑GMapping

ROS下无机器人,仅用激光雷达数据跑GMapping

作者: 大二哈 | 来源:发表于2018-08-08 15:01 被阅读11次

    写在前面:本文为原创,如需转载请注明出处。欢迎大家留言共同探讨,有误的地方也希望指出。另如果有好的SLAM、ROS等相关交流群也希望可以留言给我,在此先谢过了。
    参考:

    1. Combining laser_scan_matcher with gmapping
    2. wiki_laser_scan_matcher
    3. laser_scan_matcher源码

    0 背景

    GMapping是一个依赖里程计的算法,他需要有里程计的输入作为运算的前提,比如轮子的光栅数据等。现在我正在算法调研阶段,暂时手头上没有可以跑的机器人底盘,想用激光雷达的数据先跑成GMapping算法。网上很多教程都明确指出,实体机器人是GMapping算法的必需品,必须要有里程计的输入数据(如运行ROS gmapping包所必须的条件等文)。因此,我想到了可不可以用某种方式虚构一个里程计,先把流程跑下来。经过一番查找,确实可以实现,现放出GMapping的跑图,然后分步介绍。

    虚拟里程计的GMapping地图

    1 Laser_scan_matcher介绍

    根据参考2:
    The laser_scan_matcher package is an incremental laser scan registration tool. The package allows to scan match between consecutive sensor_msgs/LaserScan messages, and publish the estimated position of the laser as a geometry_msgs/Pose2D or a tf transform.

    The package can be used without any odometry estimation provided by other sensors. Thus, it can serve as a stand-alone odometry estimator. Alternatively, you can provide several types of odometry input to improve the registration speed and accuracy.
    指出,Laser_scan_matcher包可以被用于里程计估计器,因此可以比较好的胜任所需要的任务:使用激光数据构建一个里程计供GMapping使用。

    2 Laser_scan_matcher安装

    安装过程按照参考3中的教程从apt安装:
    首先认为ROS系统已经安装完毕,然后执行
    apt-get install ros-%ROS_DISTRO%-scan-tools
    其中%ROS_DISTRO%换为你的ROS版本名。

    3 运行Demo

    在~/catkin_ws/src/scan_tools-indigo/laser_scan_matcher/demo文件夹下,有launch文件demo_gmapping.launch,运行该launch文件,会出现用bag数据的GMapping运行结果。


    demo_gmapping.launch运行过程图

    4 用自己的激光数据来跑GMapping

    上一步还是用bag中的激光数据来跑算法,为了使用自己的激光数据,需要对launch文件进行修改,添加进自己的激光ros驱动信息即可。

    相关文章

      网友评论

        本文标题:ROS下无机器人,仅用激光雷达数据跑GMapping

        本文链接:https://www.haomeiwen.com/subject/oetxbftx.html