行业知识
LOAM、Lego-liom、Lio-sam轨迹保存,与Kitti数据集真值进行评估
2026-11-02 05:54:31
来源:互联网转载
一
�� 首先需要保存轨迹,轨迹保存参考下面的代码,最好自己添加一个节点(如下图),用新节点来订阅和保存轨迹至txt文件,因为直接在算法的线程中加入此步骤我试了好像保存不了,好像是在不同线程间的参数传递格式的问题(也可能是我个人的问题)。
与Kitti数据集真值评估需要将kitti 类型轨迹转化为tum格式的轨迹,用evo转化需要下载evo源码。
(223条消息) KITTI数据集基准、转换成tum以及十个groundtruth对应图_kitti转tum_小海盗haner的博客-CSDN博客
(223条消息) 【KITTI】KITTI数据集简介(四) — 标定校准数据calib_tr_velo_to_cam_Coding的叶子的博客-CSDN博客
a_loam在节点中订阅话题/aft_mapped_to_init,如下。lego同样操作订阅话题 /aft_mapped_to_init,lio-sam要订阅lio_sam/mapping/odometry话题(或者lio_sam/mapping/odometry_incremental,这两个都行,odometry_incremental是odometry使用IMU加权过的,差别不大),这些都可以在算法的Map节点里找到。我看很多博客上对lego/lio的欧拉角进行了转化再保存,实际上它们都有自己发布的odom信息,直接订阅就可以保存了。
void path_save(nav_msgs::Odometry odomAftMapped ){ //保存轨迹,path_save是文件目录,txt文件提前建好,/home/xxx/xxx.txt, std::ofstream pose1(“path_save”, std::ios::app);pose1.setf(std::ios::scientific, std::ios::floatfield);pose1.precision(9);static double timeStart = odomAftMapped.header.stamp.toSec();auto T1 =ros::Time().fromSec(timeStart) ;pose1
上一篇:服务器怎么查看内存?