Sto cercando di implementare una struttura del vicino più vicino per l'uso in un pianificatore di movimento RRT. Per fare meglio di una ricerca lineare sul vicino più prossimo, mi piacerebbe implementare qualcosa come un kd-tree. Tuttavia, sembra che l'implementazione classica dell'albero kd presupponga che ogni dimensione dello spazio possa essere suddivisa in "sinistra" e "destra". Questa nozione non sembra applicarsi agli spazi non euclidei come SO (2), per esempio.
Sto lavorando con un braccio manipolatore seriale con collegamenti completamente rotazionali, il che significa che ogni dimensione dello spazio di configurazione del robot è SO (2), e quindi non euclidea. L'algoritmo kd-tree può essere modificato per gestire questo tipo di sottospazi? In caso contrario, esiste un'altra struttura del vicino più vicino in grado di gestire questi spazi secondari non euclidei pur essendo facile da aggiornare e interrogare? Ho anche dato un'occhiata a FLANN , ma dalla loro documentazione non mi era chiaro se fossero in grado di gestire sottospazi non euclidei.