2009-02-16 11 views
0

Nous avons deux points (x1, y1, z1) et (x2, y2, z2) dans l'espace 3d. Nous avons une courbe de longueur fixe qui doit être connecté (pas avec une ligne droite) entre ces points. Comment procéder avec le code dans Matlab?Comment connecter une courbe de longueur fixe entre deux points dans l'espace à l'aide de Matlab?

+1

Votre question n'a pas de sens pour moi ... que voulez-vous dire en reliant une courbe entre deux points? –

+0

Nous sommes en train de planifier un chemin entre les points de départ et de but pour les objets linéaires déformables (robots ressemblant à des serpents). Les deux mentionnés ci-dessus sont les configurations de début et de but et nous devons planifier le chemin entre ces points. La longueur du robot serpent est fixe. –

+1

Et si ces deux points sont exactement ou plus que la longueur spécifiée? Techniquement, une ligne est un type de courbe. En outre, il existe des centaines voire des milliers de types de courbes. Lequel voudriez-vous? – colithium

Répondre

1

Sans savoir jusqu'où vous avez obtenu d'essayer d'utiliser des serpents (à savoir les contours actifs), le meilleur que je peux faire est de suggérer ces liens:

La plupart des applications de contours actifs que j'ai rencontrés semblent être plus pour la segmentation d'image 2-D, mais j'espère que ces liens vous donneront quelques points de saut.

1

Si vous essayez de minimiser les angles de cintrage aux articulations de votre robot, la meilleure courbe serait un arc de cercle.

Soit L la longueur de l'arc, d la distance entre les extrémités, soit moitié l'angle de l'arc, et r le rayon de l'arc. Puis:

d/L = sin (thêta)/thêta ==> résoudre ce numériquement pour thêta en utilisant l'un des solveurs de Matlab

Une fois que vous avez thêta, le rayon de l'arc est: r = L/(2 * thêta)

Il existe toujours un nombre infini d'arcs entre les deux extrémités avec ce r et thêta. Vous devrez utiliser d'autres critères pour sélectionner l'angle de roulis sur les points à utiliser.

+0

Cette courbe fonctionnerait-elle encore si L est supérieur à pi * d/2 (c'est-à-dire si L est supérieur à la moitié de la circonférence d'un cercle de diamètre d)? – gnovice

+0

Oui, cela devrait fonctionner pour tous les rapports de distance/longueur d'arc entre (mais non inclus) 1 et 0. – Theran

Questions connexes