Main Content

interpolate

説明

interpStates = interpolate(space,state1,state2,ratio) は、指定された内挿比 ratio に基づいて、指定された開始状態 state1 と終了状態 state2 の間に状態を内挿します。

すべて折りたたむ

既定のプロパティで SE(2) 状態空間を作成します。

space = stateSpaceSE2
space = 
  stateSpaceSE2 with properties:

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

2 次元空間に状態のペアを作成します。

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

2 つの状態の中間を内挿します。

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: [7x2 double]
    NumStateVariables: 7
            WeightXYZ: 1
     WeightQuaternion: 0.1000

3 次元空間に状態のペアを作成します。

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

2 つの状態の中間を内挿します。

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

    1.0000    3.7500    3.5000    0.7428    0.2519         0    0.6203

固定の間隔で複数の点を内挿します。

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
      ⋮

入力引数

すべて折りたたむ

状態空間オブジェクト。stateSpaceSE2stateSpaceSE3stateSpaceDubins、または stateSpaceReedsShepp オブジェクトとして指定します。

内挿の開始状態。3 要素または 7 要素の実数値のベクトルとして指定します。

2 次元の状態空間オブジェクト stateSpaceSE2stateSpaceDubins、および stateSpaceReedsShepp の場合、状態は [x y theta] の形式のベクトルです。これは、状態空間における状態の位置 xy と向きの角度 theta を定義します。

3 次元の状態空間オブジェクト stateSpaceSE3 の場合、状態は [x y z qw qx qy qz] の形式のベクトルです。これは、状態空間における状態の位置 xyz と四元数方向 [qw qx qy qz] を定義します。

データ型: single | double

内挿の終了状態。3 要素または 7 要素の実数値のベクトルとして指定します。

2 次元の状態空間オブジェクト stateSpaceSE2stateSpaceDubins、および stateSpaceReedsShepp の場合、状態は [x y theta] の形式のベクトルです。これは、状態空間における状態の位置 xy と向きの角度 theta を定義します。

3 次元の状態空間オブジェクト stateSpaceSE3 の場合、状態は [x y z qw qx qy qz] の形式のベクトルです。これは、状態空間における状態の位置 xyz と四元数方向 [qw qx qy qz] を定義します。

データ型: single | double

内挿比。範囲 [0, 1] のスカラー、または範囲 [0, 1] の値の n 要素の列ベクトルとして指定します。n は目的の内挿点の数です。

データ型: single | double

出力引数

すべて折りたたむ

内挿された状態。n 行 3 列または n 行 7 列の実数値の行列として返されます。n は ratio 入力引数で指定された内挿点の数です。

2 次元の状態空間オブジェクト stateSpaceSE2stateSpaceDubins、および stateSpaceReedsShepp の場合、各行の形式は [x y theta] です。これは、内挿された状態の位置 xy と向きの角度 theta を定義します。

3 次元の状態空間オブジェクト stateSpaceSE3 の場合、各行の形式は [x y z qw qx qy qz] です。これは、内挿された状態の位置 xyz と四元数方向 [qw qx qy qz] を定義します。

データ型: single | double

バージョン履歴

R2019b で導入