目前不少关于激光slam的相关论文需要评估三种或以上的算法,因此需要确保每一种算法跑完数据集后能够输出该算法的路线轨迹,提供给evo来进行比对分析,目前博主通过学习得出了其他算法比较通用的轨迹输出方法,相较于loam系列算法,采用rosbag record命令可以轻松输出轨迹文件,本文着重来分享步骤。

1.准备工作

        通过查阅了很多 博主的相关文章发现,采用rosbag record的命令要最终输出得到轨迹,就需要录制算法中的odom话题(里程计话题 ,不局限是odom这个表现形式,还有可能是其他的名字),可以通过先运行slam的算法来查看topic。

  • 运行fast_lio2算法 ,查看topic

source devel/setup.bash
roslaunch lio_sam run.launch 

  • 查看话题
rostopic list 

2.开始录制话题

1.运行算法

source devel/setup.bash
roslaunch lio_sam run.launch

2.开始录制 odometry话题

rosbag record /lio_sam/mapping/odometry

3.运行数据集

rosbag play kitti_2011_09_30_drive_0027_synced.bag

de1d62be5d5d4e258987eca61acd2d88.png

946b19c185cc4018a3fe5bea174a00f2.png

 录制结束 ctrl+c结束

c2efcd63d9ef402cbca7030cbaaaee8e.png

6f88f8e44b69428ea38ba45e9cb6f9b9.png

3.显示轨迹

接下来将录制的包(以odom为topic结尾的)转化为tum格式,

指令:evo_traj bag XXXXX1.bag  XXXXX2  --save_as_tum(XXXX1为包的名字,XXXX2为topic的名字)

evo_traj bag 2024-09-02-14-24-42.bag /lio_sam/mapping/odometry --save_as_tum

a8b4395556244969b5bb1f83c0529308.png

最后打开文件后发现是没有tum数据格式的时间戳,目前我采取的方法是手动添加,如果有其它大佬能知道如何正确的调出时间戳,恳请能在评论区分享分享,非常感谢!

更多推荐