J'essaie d'implémenter une structure de voisin le plus proche à utiliser dans un planificateur de mouvement RRT. Afin de faire mieux qu'une recherche linéaire du plus proche voisin par force brute, j'aimerais implémenter quelque chose comme un arbre kd. Cependant, il semble que l'implémentation classique de l'arbre kd suppose que chaque dimension de l'espace puisse être divisée en "gauche" et "droite". Cette notion ne semble pas s'appliquer aux espaces non euclidiens comme SO (2), par exemple.
Je travaille avec un bras manipulateur série avec des liens entièrement en rotation, ce qui signifie que chaque dimension de l'espace de configuration du robot est SO (2), et donc non euclidienne. L'algorithme kd-tree peut-il être modifié pour gérer ces types de sous-espaces? Sinon, existe-t-il une autre structure de voisin le plus proche qui peut gérer ces sous-espaces non euclidiens tout en étant facile à mettre à jour et à interroger? J'ai également jeté un coup d'œil à FLANN , mais il n'était pas clair pour moi d'après leur documentation s'ils pouvaient gérer des sous-espaces non euclidiens.