La différence majeure entre RRT et RRT* réside dans le comportement de recâblage, qui garantit l'optimalité asymptotique de l'algorithme RRT*. Lorsque les planificateurs basés sur RRT génèrent un nouveau nœud, le planificateur trouve le nœud le plus proche dans l'arborescence. Si le chemin entre les nœuds est sans collision et autrement valide, l'algorithme RRT connecte les nœuds, mais l'algorithme RRT* effectue des étapes supplémentaires pour optimiser l'arborescence après avoir connecté les nœuds. Tout d'abord, RRT* trouve tous les nœuds de l'arborescence à une certaine distance du nouveau nœud, puis RRT* trouve le nœud qui fournit au nouveau nœud le chemin valide le plus court vers le nœud de départ et ajoute un bord entre le nœud et le nouveau. nœud. Enfin, le planificateur effectue une opération de recâblage, qui vérifie si le nouveau nœud peut fournir à chacun des nœuds les plus proches un itinéraire plus court vers le nœud de départ. Dans le cas où il existe un chemin plus court, le nœud est déconnecté du parent actuel et reparenté vers le nœud le plus proche.
Le rayon auquel le recâblage se produit est appelé rayon constant de la boule. La sélection d'une constante de rayon de balle appropriée est importante car l'objectif de RRT* est de garantir l'optimalité asymptotique tout en limitant tout calcul supplémentaire. Si la constante du rayon de la balle est trop grande, la durée d'exécution du RRT* augmente. Si la constante du rayon de la balle est trop petite, l’algorithme risque de ne pas parvenir à converger vers un résultat optimal.
plannerRRTStar
utilise cette formule de distance, adaptée de [1], pour trouver les voisins les plus proches :
où:
n — Nombre de nœuds dans l'arborescence
d — Nombre de dimensions de l'espace d'état
η — Distance de connexion maximale
γ — Constante de rayon de balle, définie comme :
où:
VFree — Mesure de Lebesgue, le volume libre approximatif dans l'espace de recherche
VBall — Volume de la bille unitaire dans les dimensions d
Signification et intuition de la constante du rayon de la balleLes formules pour r et γ définissent un rayon de taille appropriée pour un espace et une densité d'échantillonnage donnés. Et à mesure que le nombre de nœuds remplissant l’espace augmente de manière linéaire, le rayon doit diminuer et le nombre de voisins à l’intérieur de la boule qui rétrécit augmente de manière logarithmique.
Cette intuition part de l’hypothèse que tous les points nouvellement échantillonnés dans l’arborescence ont été échantillonnés de manière uniforme et indépendante à partir d’une partie libre de l’espace de configuration. En échantillonnant les points de cette manière, vous pouvez dire qu'ils ont été générés à l'aide d'un processus de points de Poisson homogène. Cela signifie qu'à chaque itération de RRT*, les points n ont été uniformément échantillonnés dans l'espace libre, il devrait donc y avoir une densité moyenne de points par unité de volume, λ. Pour les espaces de dimensions arbitraires, il existe une intensité de points par unité de mesure.
Par conséquent, le nombre de points que vous pouvez vous attendre à voir dans n’importe quelle partie de l’espace de planification correspond au volume de cette partie, multiplié par la densité. Pour RRT*, l'accent est mis sur le nombre de points dans une boule de d dimensions du rayon r:
où,
n1,d — Nombre attendu de points à l'intérieur de la boule unitaire des dimensions d
nr,d — Nombre attendu de points à l'intérieur de la boule des dimensions d avec un rayon r
Et en rappelant que l'objectif du nombre de voisins est de croître de manière logarithmique à mesure que n s'approche de l'infini, vous pouvez définir nr,d=log(n) et résoudre r:
Les coefficients restants de la formule 2 sont dérivés de la preuve de convergence dans [1]. Cependant, avec n supprimé, vous pouvez voir que la constante du rayon de la balle est un rapport entre l'espace libre dans la région d'échantillon et la mesure de la balle unitaire multipliée par une constante spécifique à la dimension.