我正在尝试实现用于RRT运动计划器的最近邻居结构。为了比线性蛮力最近邻搜索更好,我想实现像kd-tree这样的东西。但是,似乎经典的kd-tree实现假定空间的每个维度都可以分为“左”和“右”。例如,此概念似乎不适用于非欧几里德空间,例如SO(2)。
我正在使用具有完全旋转链接的串行机械臂,这意味着机器人的配置空间的每个维度都是SO(2),因此不是欧几里得。可以修改kd-tree算法来处理这些子空间吗?如果不是,是否还有另一个最近邻居结构可以处理这些非欧几里得子空间,同时仍然易于更新和查询?我还看了FLANN,但是从他们的文档中我还不清楚他们是否可以处理非欧几里德子空间。
顺便说一句,近似最近的邻居也很好(如果加速比很高
—
则更可取
虽然您接受了一个很好的答案,但是通常最好等待几天再接受一个答案,这样您才不会阻止进一步的回答,因为它可能会提供其他选择。
—
Mark Booth
谢谢马克,实际上我不确定接受答案之前要等待多长时间。
—
giogadi,2012年