Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

interpolate

Interpoler les poses le long du segment de chemin

Depuis R2019b

Description

poses = interpolate(pathSeg) interpole le long du segment de chemin aux transitions entre les types de mouvement.

exemple

poses = interpolate(pathSeg,lengths) interpole le long du segment du chemin aux longueurs spécifiées le long du chemin. Les transitions entre les types de mouvements sont toujours incluses.

[poses,directions] = interpolate(___) renvoie également la direction du mouvement le long du chemin pour chaque section sous forme de vecteur de 1 (avant) et de –1 (arrière) en utilisant les entrées précédentes.

Exemples

réduire tout

Créez un objet dubinsConnection .

dubConnObj = dubinsConnection;

Définissez les poses de début et d'objectif en tant que vecteurs [x y theta] .

startPose = [0 0 0];
goalPose = [1 1 pi];

Calculez un segment de chemin valide pour connecter les poses.

[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);

Afficher le chemin généré.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

Interpolez les poses le long du chemin. Prenez une pose tous les 0,2 mètre, y compris les transitions entre les virages.

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.2:length)
poses = 32×3

         0         0         0
    0.1987   -0.0199    6.0832
    0.3894   -0.0789    5.8832
    0.5646   -0.1747    5.6832
    0.7174   -0.3033    5.4832
    0.8309   -0.4436    5.3024
    0.8418   -0.4595    5.3216
    0.9718   -0.6110    5.5216
    1.1293   -0.7337    5.7216
    1.3081   -0.8226    5.9216
      ⋮

Utilisez la fonction quiver pour tracer ces poses.

quiver(poses(:,1),poses(:,2),cos(poses(:,3)),sin(poses(:,3)),0.5)

Figure contains an axes object. The axes object contains an object of type quiver.

Arguments d'entrée

réduire tout

Segment de chemin, spécifié comme objet dubinsPathSegment ou reedsSheppPathSegment .

Longueurs le long du chemin à interpoler, spécifiées sous forme de vecteur numérique positif. Par exemple, spécifiez [0:0.1:pathSegObj{1}.Length] pour interpoler tous les 0,1 mètres le long du chemin. Les transitions entre les types de mouvements sont toujours incluses.

Arguments de sortie

réduire tout

Ce propriété est en lecture seule.

Poses interpolées le long du segment de chemin, spécifiées comme une matrice [x, y, Θ]. Chaque ligne de la matrice correspond à une pose interpolée différente le long du chemin.

x et y sont en mètres. Θ est en radians.

Directions de mouvement pour chaque segment de la trajectoire interpolée, spécifiées sous la forme d'un vecteur de 1 s (avant) et de –1 s (arrière).

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2019b