Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

同一个rosbag每一次运行的结果都不一样 #74

Open
HP-Yin opened this issue Mar 29, 2024 · 8 comments
Open

同一个rosbag每一次运行的结果都不一样 #74

HP-Yin opened this issue Mar 29, 2024 · 8 comments

Comments

@HP-Yin
Copy link

HP-Yin commented Mar 29, 2024

高博你好,请问一下,我用faster-lio跑rosbag数据为什么每次运行的结果都有一些细微的区别呢,比如位置都有一两厘米的差异(如图所示打印出来了),而fast-lio就没有这样的情况,是因为ivox的一些机制造成的吗,还是说有一些参数需要修改呢。数据是用Livox Avia录制的。
image

@gaoxiang12
Copy link
Owner

实时跑的吗?还是录下来之后用离线来跑的?

@HP-Yin
Copy link
Author

HP-Yin commented Mar 30, 2024

rosbag录下来之后跑的,用的是LivoxAVIA雷达,一直都跑的同一个rosbag。排查了一下,其中一个原因是预处理的AviaHandler函数中使用了std::for_each(std::execution::par_unseq, index.begin(), index.end(), [&](const uint &i),采用并行方法的遍历可能会有随机性导致返回的cloud_out_的size每次都不同。这边改成用for循环之后还是有同样的现象,正在排查。

@GavyndotLee
Copy link

@HP-Yin 你好,我也遇到了相同的现象,也是用rosbag录制的数据跑的。请问定位到原因了吗?

@HP-Yin
Copy link
Author

HP-Yin commented Apr 28, 2024

@GavyndotLee 感觉影响不大,你可以把代码里的std::execution::unseq和std::execution::par_unseq都改用for循环试试

@GavyndotLee
Copy link

@HP-Yin 谢谢你的回复,改成for循环之后每次运行的结果仍然不一样。我使用的是robosense16录制的室内数据,x、y变化超过1米了。

@GavyndotLee
Copy link

@gaoxiang12 高博你好,我使用robosense16录制了一个室内的bag文件,用在线的方式运行,然后播放bag包。faster-lio每一次运行的结果x、y变化超过1米,按照HP-Yin的建议将std::execution::unseq、std::execution::par_unseq改为普通for循环后仍然存在这个现象。我测试了fast-lio2每次运行结果是一致的。高博能否提供一些解决方案或者思路,感谢!

@HP-Yin
Copy link
Author

HP-Yin commented Jul 9, 2024

@GavyndotLee 主要改预处理的和 obs_model 里面的遍历,我试过了,问题可以解决

@huangwentao123
Copy link

请问具体在源码里是哪些文件的那几行呢,我修改后没有效果,反而结果变差了很多 直接飘了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants