Main Content

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

interpolate

Interpoler entre les états

Depuis R2019b

Description

exemple

interpStates = interpolate(space,state1,state2,ratio) interpole les états entre l'état de départ spécifié state1 et l'état final state2 en fonction du rapport d'interpolation spécifié ratio.

Exemples

réduire tout

Créez un espace d'état SE(2) avec des propriétés par défaut.

space = stateSpaceSE2
space = 
  stateSpaceSE2 with properties:

                 Name: 'SE2'
          StateBounds: [3x2 double]
    NumStateVariables: 3
             WeightXY: 1
          WeightTheta: 0.1000

Créez une paire d'états dans un espace 2D.

state1 = [2 10 -pi];
state2 = [0 -2.5 -pi/4];

Interpolez à mi-chemin entre deux états.

state = interpolate(space,state1,state2,0.5)
state = 1×3

    1.0000    3.7500   -1.9635

Interpolez plusieurs points avec un intervalle fixe.

states = interpolate(space,state1,state2,0:0.02:1)
states = 51×3

    2.0000   10.0000   -3.1416
    1.9600    9.7500   -3.0945
    1.9200    9.5000   -3.0473
    1.8800    9.2500   -3.0002
    1.8400    9.0000   -2.9531
    1.8000    8.7500   -2.9060
    1.7600    8.5000   -2.8588
    1.7200    8.2500   -2.8117
    1.6800    8.0000   -2.7646
    1.6400    7.7500   -2.7175
      ⋮

Créez un espace d'état SE(3) avec des propriétés par défaut.

space = stateSpaceSE3
space = 
  stateSpaceSE3 with properties:

                 Name: 'SE3'
          StateBounds: [7x2 double]
    NumStateVariables: 7
            WeightXYZ: 1
     WeightQuaternion: 0.1000

Créez une paire d'états dans un espace 3D.

state1 = [2 10 3 0.2 0 0 0.8];
state2 = [0 -2.5 4 0.7 0.3 0 0];

Interpolez à mi-chemin entre deux états.

state = interpolate(space,state1,state2,0.5)
state = 1×7

    1.0000    3.7500    3.5000    0.7428    0.2519         0    0.6203

Interpolez plusieurs points avec un intervalle fixe.

states = interpolate(space,state1,state2,0:0.02:1)
states = 51×7

    2.0000   10.0000    3.0000    0.2425         0         0    0.9701
    1.9600    9.7500    3.0200    0.2663    0.0109         0    0.9638
    1.9200    9.5000    3.0400    0.2899    0.0217         0    0.9568
    1.8800    9.2500    3.0600    0.3133    0.0326         0    0.9491
    1.8400    9.0000    3.0800    0.3365    0.0434         0    0.9407
    1.8000    8.7500    3.1000    0.3594    0.0542         0    0.9316
    1.7600    8.5000    3.1200    0.3821    0.0650         0    0.9218
    1.7200    8.2500    3.1400    0.4045    0.0757         0    0.9114
    1.6800    8.0000    3.1600    0.4266    0.0864         0    0.9003
    1.6400    7.7500    3.1800    0.4484    0.0969         0    0.8886
      ⋮

Arguments d'entrée

réduire tout

Objet d'espace d'état, spécifié comme un objet stateSpaceSE2, stateSpaceSE3, stateSpaceDubins ou stateSpaceReedsShepp .

État de départ de l'interpolation, spécifié comme vecteur de valeurs réelles à trois ou sept éléments.

Pour les objets spatiaux d'état 2D stateSpaceSE2, stateSpaceDubins et stateSpaceReedsShepp, l'état est un vecteur de forme [x y theta], qui définit la xy-position et l'angle d'orientation theta d'un état dans l'espace d'état.

Pour l'objet spatial d'état 3D stateSpaceSE3, l'état est un vecteur de forme [x y z qw qx qy qz], qui définit la position xyz et orientation quaternion [qw qx qy qz] d'un état dans l'espace des états.

Types de données : single | double

État final pour l'interpolation, spécifié comme vecteur de valeurs réelles à trois ou sept éléments.

Pour les objets spatiaux d'état 2D stateSpaceSE2, stateSpaceDubins et stateSpaceReedsShepp, l'état est un vecteur de forme [x y theta], qui définit la xy-position et l'angle d'orientation theta d'un état dans l'espace d'état.

Pour l'objet spatial d'état 3D stateSpaceSE3, l'état est un vecteur de forme [x y z qw qx qy qz], qui définit la position xyz et orientation quaternion [qw qx qy qz] d'un état dans l'espace des états.

Types de données : single | double

Rapport d'interpolation, spécifié sous la forme d'un scalaire compris dans la plage [0, 1], ou d'un vecteur colonne d'éléments n de valeurs comprises dans la plage [0, 1] . n est le nombre de points d'interpolation souhaités.

Types de données : single | double

Arguments de sortie

réduire tout

États interpolés, renvoyés sous la forme d'une n-by-3 ou n-by-7 de valeurs réelles. n est le nombre de points d'interpolation spécifié par l'argument d'entrée ratio .

Pour les objets de l'espace d'état 2D stateSpaceSE2, stateSpaceDubins et stateSpaceReedsShepp, chaque ligne est de la forme [x y theta], qui définit la position xy et l'angle d'orientation theta des états interpolés.

Pour l'objet spatial d'état 3D stateSpaceSE3, chaque ligne est de la forme [x y z qw qx qy qz], qui définit la position et l'orientation du quaternion du xyz [qw qx qy qz] des états interpolés.

Types de données : single | double

Historique des versions

Introduit dans R2019b