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

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

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 объект.

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

Для 2-D объектов пространства состояний 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

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

Для 2-D объектов пространства состояний 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 входной параметр.

Для 2-D объектов пространства состояний 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