作者在使用他人提供的bag包使用fast-lio2算法建图的时候,发现建图后PCD文件夹中没有生成对应的PCD文件,rviz中是有正常的激光点云图像显示,尝试了以下方法都没有办法解决:
1、将lasermapping.cpp文件里面的所有pcd_save_en变量改成true
2、将mid360.yaml文件里的pcd_save_en改称true
3、根据fast-lio2的github页面里的readme,在mapping_mai360.launch中加入<param name="pcd_save_enable" type="bool" value="1"/>
4、重启电脑
5、将Eigen的版本从3.3.9换回3.3.4
6、在各层文件夹目录下新建名为PCD的文件夹,重新运行
7、跑官方数据集,官方数据集可以用
在尝试第7个方法的时候发现了一点端倪,开始质疑是别人提供的bag包有问题,使用rosbag info命令查看包的话题信息后终于发现了问题所在
这个包的话题是:
/aft_mapped_to_init
/cloud_registered
这个包是用mid360激光雷达录制的,但是话题根本不是fast-lio2要求的话题,这就很离谱!
后面检查fast-lio2的源码,在lasermapping.cpp里面save_pcd_en的部分插入了一些cout来检查,发现跑这个包的时候根本没有进入到保存pcd文件的函数里面。这个包里面的数据是经过处理的,能够在rviz中实时显示建图信息,但是由于他提供的不是livox/lidar和livox/imu的话题(mid360原始的话题信息),因此不能保存成PCD文件。