VLP-16激光雷达结合Gmapping算法进行实时建图
Gmapping算法是基于粒子滤波SLAM框架的常用开源SLAM算法,在ROS中使用Gmapping建图需要提供 Odometry(里程计信息)和laser(激光数据),但是只用一个激光雷达也可以进行Gmapping建图。
本文环境:Ubuntu18.04 ros版本为melodic
1 下载laser_scan_matcher功能包到工作空间(我这边是命名为catkin_ws)中,然后编译
cd catkin_ws
git clone https://github.com/ccny-ros-pkg/scan_tools.git
catkin_make
编译过程中如果有出现无法定位csm功能包的时候,需要先安装csm功能包,执行如下代码进行安装:
sudo apt-get install ros-melodic-csm
然后重新执行编译
2.启动ROS管理节点
roscore
3.crtl+ALT+T打开新终端,运行velodyne的launch文件
roslaunch velodyne_pointcloud VLP16_points.launch
4 打开新终端,输入以下命令发布 tf 变换 base_link->velodyne
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link velodyne 0
5.打开新终端,启动 slam_gmapping算法
rosrun gmapping slam_gmapping
- 打开新终端,启动 laser_scan_matcher_node,并指定 fixed_frame 为 odom
rosrun laser_scan_matcher laser_scan_matcher_node _fixed_frame:=odom
7.打开rviz
然后在 rviz 中点击 Add -> By topic,添加 Map、LaserScan 或 PointCloud2 等,Fixed Frame 主题可设置为/map,实时显示获取到的结果如下所示: