2

I'm looking for a C++ library or a combination of libraries.

the idea is that robots move around and they can only know distance between the closest 3. the problem is to find relative (x,y) location of all of the nodes.

My solution would be to build triangles from distances (is there a library for that) then make a map from those triangles (library?)

4

1 回答 1

1

如果这是一个真实世界的应用程序,图表将永远不会一致。我的意思是,如果你从一端开始构建三角形,当你关闭循环时,它永远不会匹配。“闭环”是机器人领域的热门研究课题。您的问题在某种程度上比一般情况更简单,但您可能很幸运,只需将距离扔给非线性最小二乘求解器即可。谷歌搜索返回了这个ceres-solver

使用通用非线性最小二乘求解器,您需要定义解向量和目标函数。在您的情况下,假设您有 100 个节点。这意味着您正在寻找 200 个值;每个节点的 x 和 y 值。那个 200 元素长的向量是你的解向量。您的目标函数是这 20000 个元素的分配,以便分配中已知对的距离与您的可用数据尽可能匹配。对于 100 个节点,每个节点 3 个已知距离,您有 300 个方程要最小化误差。恐怕您必须弄清楚 ceres API 才能将此解决方案应用于您的问题,因为我没有个人经验。

作为旁注,从无噪声解决方案开始,依靠数据与涉及噪声的数据保持一致,基本上将从头开始......

于 2012-10-02T02:41:29.890 回答