interpolate

Интерполируйте между состояниями

Описание

пример

interpStates = interpolate(space,state1,state2,ratio) интерполирует состояния между заданным начальным состоянием state1 и конечное состояние state2 на основе заданного отношения интерполяции ratio.

Примеры

свернуть все

Создайте SE (2) пространство состояний со свойствами по умолчанию.

space = stateSpaceSE2
space = 
  stateSpaceSE2 with properties:

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

Создайте пару состояний на 2D пробеле.

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

Интерполируйте на полпути между двумя состояниями.

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

    1.0000    3.7500   -1.9635

Интерполируйте несколько точек с фиксированным интервалом.

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
      ⋮

Создайте SE (3) пространство состояний со свойствами по умолчанию.

space = stateSpaceSE3
space = 
  stateSpaceSE3 with properties:

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

Создайте пару состояний в трехмерном пространстве.

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

Интерполируйте на полпути между двумя состояниями.

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

            1         3.75          3.5       0.7428      0.25188            0      0.62033

Интерполируйте несколько точек с фиксированным интервалом.

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

            2           10            3      0.24254            0            0      0.97014
         1.96         9.75         3.02      0.26633     0.010877            0      0.96382
         1.92          9.5         3.04      0.28994     0.021745            0       0.9568
         1.88         9.25         3.06      0.31333     0.032598            0      0.94908
         1.84            9         3.08       0.3365     0.043428            0      0.94068
          1.8         8.75          3.1      0.35943     0.054225            0       0.9316
         1.76          8.5         3.12      0.38209     0.064984            0      0.92184
         1.72         8.25         3.14      0.40448     0.075695            0      0.91141
         1.68            8         3.16      0.42657     0.086352            0      0.90032
         1.64         7.75         3.18      0.44835     0.096946            0      0.88858
      ⋮

Входные параметры

свернуть все

Объект пространства состояний в виде stateSpaceSE2, stateSpaceSE3, stateSpaceDubins, или stateSpaceReedsShepp объект.

Начальное состояние для интерполяции в виде трехэлементного или вектора с семью элементами из вещественных значений.

Поскольку 2D пространство состояний возражает stateSpaceSE2, stateSpaceDubins, и stateSpaceReedsShepp, состояние является вектором из формы [x y theta], который задает позиционный xy и угол ориентации theta из состояния в пространстве состояний.

Для 3-D объекта stateSpaceSE3 пространства состояний, состояние является вектором из формы [x y z qw qx qy qz], который задает позиционный xyz и ориентация кватерниона [qw qx qy qz] из состояния в пространстве состояний.

Типы данных: single | double

Конечное состояние для интерполяции в виде трехэлементного или вектора с семью элементами из вещественных значений.

Поскольку 2D пространство состояний возражает stateSpaceSE2, stateSpaceDubins, и stateSpaceReedsShepp, состояние является вектором из формы [x y theta], который задает позиционный xy и угол ориентации theta из состояния в пространстве состояний.

Для 3-D объекта stateSpaceSE3 пространства состояний, состояние является вектором из формы [x y z qw qx qy qz], который задает позиционный xyz и ориентация кватерниона [qw qx qy qz] из состояния в пространстве состояний.

Типы данных: single | double

Отношение интерполяции в виде скаляра в области значений [0, 1], или n - вектор-столбец элемента значений в области значений [0, 1]. n является количеством желаемых точек интерполяции.

Типы данных: single | double

Выходные аргументы

свернуть все

Интерполированные состояния, возвращенные как n-by-3 или n-by-7 матрица вещественных значений. n является количеством точек интерполяции, заданных ratio входной параметр.

Поскольку 2D пространство состояний возражает stateSpaceSE2, stateSpaceDubins, и stateSpaceReedsShepp, каждая строка имеет форму [x y theta], который задает позиционный xy и угол ориентации theta из интерполированных состояний.

Для 3-D объекта stateSpaceSE3 пространства состояний, каждая строка имеет форму [x y z qw qx qy qz], который задает позиционный xyz и ориентация кватерниона [qw qx qy qz] из интерполированных состояний.

Типы данных: single | double

Введенный в R2019b