记录一下我犯蠢的全过程
如果遇到这个问题请不要怀疑,去比对自己的两个轨迹文件,一定有哪不对!!!!!
我这里是两个轨迹的时间戳除了第一个就没有一样的,谁能想到739条数据没一个相同的TAT

问题描述

在进行轨迹的评估时遇到了无法对齐的情况,数据没有缺失,文件格式正确

mestrenova刻度线可以向内嘛_mestrenova刻度线可以向内嘛

解决过程

在evo–core文件夹下的geometry.py文件中找到了报错的位置,61行SVD相关

mestrenova刻度线可以向内嘛_时间戳_02


一路输出往回找(我是真的不会Debug TAT),发现从轨迹文件中读取出来的position_xyz数组的大小和数量不太对。

一个轨迹文件读出来的数组应该是一个非常大的数据,但是这个轨迹对应的数组只有一行三个数据。

mestrenova刻度线可以向内嘛_时间戳_03


继续

在工具的主函数,main_ape.py中的run函数中,在输出从parser中读取的数据时,发现我好好的文件中的轨迹呢????咋就1个位姿,0m的轨迹了呢????

在轨迹信息第一次被读取出来到输入ape主体中进行对齐和计算之前分别将轨迹信息读取出来,也就是228,229行加的输出和246,247行加入的输出

mestrenova刻度线可以向内嘛_时间戳_04


结果

mestrenova刻度线可以向内嘛_数组_05


好的确定了,在232到244过程中发生了一些奇奇怪怪的bug。。。

之后发现错误出现在240行,两个曲线同步的时候

曲线同步主要是通过时间戳进行对齐,输出相同的时间戳数量之后进行对齐,当然这个时候发现输出的相同时间戳数为0

这个时候我感到了一点点的不太对。。。

当我打开两个轨迹的文件,随机找了几个时间戳,他们竟然不一样!!!739多条数据,一条都没对上!!!

结果

之前调试的时候更改了项目时间戳的精度,改了之后用新的轨迹重新评估,问题解决。