ros gmapping建图

ros提供的gmaping包是用来生成地图的,它是对著名的开源openslam包在ROS框架下的一个实现。这个包提供了对激光设备的slam,根据激光设备的输入和姿态数据从而建立一个基于网格的2D地图。它需要从ROS系统监听许多topic,并输出一个topic--map(nav_msgs/OccupancyGrid),这也是rviz的输入topic

离线构建地图

  1. 实车获取激光数据
    1. rosbag record tf /scan –o mapping.bag 进行抓包,可以得到激光数据,这里也可以自己到网站上下载一些激光数据,包,参考网址http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag

  1. 虚拟机复现地图
  1. 终端1, 启动ros master, 这是所有ROS操作的第一步,就像开机一样,roscore
  2. 终端2,先source 环境,再配置ROS启用重放数据中的时间而非本机时间,在默认情况下,ROS使用ubuntu系统的时间,但我们播放一个记录历史文件时,里面记录的是历史时间,所哟我们需要告诉ROS从现在开始启用模拟时间,rosparam set use_sim_time  true,
  3. 终端3,启动gmapping,并监听scan topic 发来的消息,该topic是由模拟器发布的,也可以是自己从激光抓包回来的数据,比如是前面的mapping.bag。 有两种方法,方法1:rosrun gmapping slam_gmapping scan:=base_scan; 方法2:打开launch 文件 roslaunch region_cover_start gmapping_demo_111.launch
  4. 终端2,播放激光数据包rosbag play mapping.bag
  5. 终端4,./rviz.sh打开rviz查看建图效果,这个时候的rviz界面大概如下,

 

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/83862025