Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

interpolate

Interpolar entre estados

Descripción

interpStates = interpolate(space,state1,state2,ratio) interpola estados entre el estado inicial especificado state1 y el estado final state2 según la relación de interpolación especificada ratio.

ejemplo

Ejemplos

contraer todo

Cree un espacio de estado SE(2) con propiedades predeterminadas.

space = stateSpaceSE2
space = 
  stateSpaceSE2 with properties:

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

Crea un par de estados en el espacio 2-D.

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

Interpolar a mitad de camino entre dos estados.

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

    1.0000    3.7500   -1.9635

Interpola múltiples puntos con un intervalo fijo.

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
    1.6000    7.5000   -2.6704
    1.5600    7.2500   -2.6232
    1.5200    7.0000   -2.5761
    1.4800    6.7500   -2.5290
    1.4400    6.5000   -2.4819
      ⋮

Cree un espacio de estado SE(3) con propiedades predeterminadas.

space = stateSpaceSE3
space = 
  stateSpaceSE3 with properties:

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

Crea un par de estados en el espacio 3-D.

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

Interpolar a mitad de camino entre dos estados.

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

    1.0000    3.7500    3.5000    0.7428    0.2519         0    0.6203

Interpola múltiples puntos con un intervalo fijo.

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
    1.6000    7.5000    3.2000    0.4698    0.1075         0    0.8762
    1.5600    7.2500    3.2200    0.4909    0.1179         0    0.8632
    1.5200    7.0000    3.2400    0.5117    0.1283         0    0.8495
    1.4800    6.7500    3.2600    0.5321    0.1385         0    0.8353
    1.4400    6.5000    3.2800    0.5521    0.1487         0    0.8204
      ⋮

Argumentos de entrada

contraer todo

Objeto de espacio de estados, especificado como un objeto stateSpaceSE2, stateSpaceSE3, stateSpaceDubins o stateSpaceReedsShepp.

Estado inicial para la interpolación, especificado como un vector de valores reales de tres o siete elementos.

Para los objetos del espacio de estados 2-D stateSpaceSE2, stateSpaceDubins y stateSpaceReedsShepp, el estado es un vector con la forma [x y theta], que define la posición xy y el ángulo de orientación theta de un estado en el espacio de estados.

Para el objeto de espacio de estados 3-D stateSpaceSE3, el estado es un vector con la forma [x y z qw qx qy qz], que define la posición xyz y la orientación del cuaternión [qw qx qy qz] de un estado en el espacio de estados.

Tipos de datos: single | double

Estado final de la interpolación, especificado como un vector de valores reales de tres o siete elementos.

Para los objetos del espacio de estados 2-D stateSpaceSE2, stateSpaceDubins y stateSpaceReedsShepp, el estado es un vector con la forma [x y theta], que define la posición xy y el ángulo de orientación theta de un estado en el espacio de estados.

Para el objeto de espacio de estados 3-D stateSpaceSE3, el estado es un vector con la forma [x y z qw qx qy qz], que define la posición xyz y la orientación del cuaternión [qw qx qy qz] de un estado en el espacio de estados.

Tipos de datos: single | double

Relación de interpolación, especificada como un escalar en el rango de [0, 1], o un vector columna de n elementos de valores en el rango [0, 1]. n es el número de puntos de interpolación deseados.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Estados interpolados, devueltos como una matriz n por 3 o n por 7 de valores reales. n es el número de puntos de interpolación especificado por el argumento de entrada ratio.

Para los objetos de espacio de estados 2-D stateSpaceSE2, stateSpaceDubins y stateSpaceReedsShepp, cada fila tiene la forma [x y theta], que define la posición xy y el ángulo de orientación theta de los estados interpolados.

Para el objeto de espacio de estados 3-D stateSpaceSE3, cada fila tiene la forma [x y z qw qx qy qz], que define la posición xyz y la orientación del cuaternión [qw qx qy qz] de los estados interpolados.

Tipos de datos: single | double

Historial de versiones

Introducido en R2019b