本文主要是介绍跑通A-LOAM并保存点云地图!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文旨在帮助读者迅速跑通3D激光SLAM算法A-LOAM!代码解读请参考笔者专栏:
A-LOAM源码详解,激光雷达配置参考单、双激光雷达启动与双激光雷达的外参标定(VLP-16)。
废话不多说,直接开始!
一、A-LOAM安装
A-LOAM需要用到ceres库与pcl库,请确保已完成安装。
A-LOAM下载编译:
#创建工作空间
mkdir -p ~/aloam_ws/src
cd ~/aloam_ws/src
catkin_init_workspace#克隆A-LOAM源码
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git#编译
cd ../
catkin_make
source ~/aloam_ws/devel/setup.bash
二、A-LOAM跑数据包
运行A-LOAM:
#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
运行rosbag:
#在你的bag文件夹下运行
rosbag play xxx.bag
这里提供一个供测试用的bag,链接:rosbag,提取码:diiq
三、Turtlebot3跑A-LOAM(velodyne16)
首先确保Turtlebot3激光雷达配置完成,方法见笔者单、双激光雷达启动与双激光雷达的外参标定(VLP-16)。
启动Turtlebot3:
#启动turtlebot底盘
roslaunch turtlebot3_bringup turtlebot3_robot.launch#另起终端启动键盘控制
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
如此就可以通过键盘wxads(前后左右停)控制Turtlebot3。
启动velodyne16:
#启动激光雷达
roslaunch velodyne_points VLP16_points.launch
启动A-LOAM:
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
控制Turtlebot3运动,就能在rviz中看到所建地图了。
四、数据包创建
如果想要创建一个属于自己的rosbag,很简单,在启动A-LOAM后,另起终端开始记录数据:
#创建rosbag
rosbag record -o xxx.bag /velodyne_points /laser_cloud_surround
其中xxx为创建的bag名,/velodyne_points为激光雷达发布点云话题名,/laser_cloud_surround为A-LOAM所建地图话题名。如此就创建了我们自己的rosbag,便于后期调优。
五、点云地图保存与查看
点云地图保存,第一种:
#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch#另起终端运行rosbag
rosbag play xxx.bag#另起终端用bag_to_pcd方法保存点云图
rosrun pcl_ros bag_to_pcd xxx.bag /laser_cloud_surround pcd
运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。
点云地图保存,第二种:
#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch#另起终端运行rosbag
rosbag play xxx.bag#另起终端,用pointcloud_to_pcd方法保存点云图
mkdir pcd
cd pcd
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround
运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。
点云地图查看:
pcl_viewer xxx.pcd
pcd点云地图转ply格式
pcl_pcd2ply xxx.pcd xxxxxxx.ply
当我们需要用第三方软件(MatLab/MeshLab)对点云地图进行处理时就需要将pcd转为ply,其中MeshLab必须使用由pointcloud_to_pcd方法创建pcd转成的ply格式点云!
这篇关于跑通A-LOAM并保存点云地图!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!