ROS导航-----slam_gmapping使用Log数据创建地图

来源:互联网 发布:华云数据集团有限公司 编辑:程序博客网 时间:2024/04/30 16:04

    本文介绍了如何用记录的tf变换和激光扫描log数据建立2D地图。 在ROS的图形化模拟环境rviz中通过重放记录的数据作为机器人真实传感器采集的输入,来观测地图动态创建过程。


操作步骤如下:


1 slam_gmapping功能包安装

1.1 通过命令安装(较简单)

    sudo apt-get install ros-kinetic-slam-gmapping

1.2 源码安装

    你需要首先下载gmapping源码,然后编译并安装


2 获取记录数据bag包

1)从这里下载现存bag包

wget http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag

2)使用机器人创建自己的bag包

a)机器人安装激光器,确保可以发布变换数据,且可以遥控操作

b)启动扫描和变换数据记录

rosbag record -O mylaserdata /base_scan /tf
当前目录将创建一个名为mylaserdata_<DATE>-topic.bag的文件

c)让机器人动起来

d)kill掉rosbag用户可以看到记录文件已经创建

3 运行节点管理器master

roscore

4 设置参数,确保在任何节点使用前设定use_sim_time参数为true

rosparam set use_sim_time true

5运行slam_gmapping节点,它将在base_scan主题上监听激光扫描数据并创建地图

rosrun gmapping slam_gmapping scan:=base_scan

Note:在PR2上里程坐标系名字为odom_combined

命令为:

rosrun gmapping slam_gmapping scan:=base_scan _odom_frame:=odom_combined

6 在新终端使用模拟器rosbag启动bag包回放,将数据提供给slam_gmapping节点

rosbag play --clock basic_localization_stage.bag

7启动rviz,在左下方选择add,然后选择map,创建一副空地图;接着制定rviz的topic为/map可以监听到地图数据

rosrun rviz rviz

8 使用map_server功能包的map_saver保存新地图到磁盘(等rosbag结束后)

rosrun map_server map_saver

此时可以看到本地地图map.gpm已经生成,可以用图像浏览器(gimp, eog, gthumb, 等等)打开查看。






1 0