1

我已经在 robots.stackexchange 上发布了它,但我没有相关答案。

我目前正在开发一个机器人上的 SLAM 软件,我尝试了扫描匹配算法来解决里程计问题。

我读了这篇文章: 传感器位移估计的基于度量的迭代最近点扫描匹配

我发现它解释得很好,我严格按照文章中给出的公式来实现算法。

你可以在那里看到我在 python 中的实现: ScanMatching.py

我遇到的问题是,在我的测试过程中,找到了正确的旋转,但翻译完全错误。翻译的价值非常高。

你们知道我的代码中可能存在什么问题吗?

否则,我应该在数学堆栈交换上发布我的问题吗?

ICP部分应该是正确的,因为我测试了很多次,但最小二乘法似乎没有给出好的结果。

正如您所注意到的,我使用了许多 bigfloat.BigFloat 值,因为有时最大浮点数不足以包含一些值。

4

1 回答 1

0

不知道你是否已经解决了这个问题。

我没有阅读完整的文章,但我注意到它相当旧。

恕我直言(我不是这里的专家),我会尝试合并特定的算法,例如特征检测和描述以获得点云,描述符匹配器来关联点,捆绑调整以获得旋转矩阵。

我自己将尝试 sba ( http://users.ics.forth.gr/~lourakis/sba/ ),或者更具体地说是 cvsba ( http://www.uco.es/investiga/grupos/ava/node/ 39/)因为我在opencv上。

如果你有足够的 cpu/gpu 能力,给 AKAZE 特征检测器和描述符一个机会。

于 2015-05-29T12:40:46.707 回答