exponenta event banner

интерполировать

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

Описание

пример

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

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

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-position и quaternion [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-position и quaternion [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-position и quaternion [qw qx qy qz] интерполированных состояний.

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

Представлен в R2019b