Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

transformtraj

2 つの変換の間の軌跡を生成

R2019a 以降

説明

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples) は、4 行 4 列の 2 つの同次変換 T0TF の間を時間間隔と与えられた時間サンプルに基づいて内挿する軌跡を生成します。

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples,Name,Value) は、ペアの引数 Name,Value を使用して追加のパラメーターを指定します。

すべて折りたたむ

2 つの向きと位置から変換を作成します。内挿する時間間隔と時間のベクトルを指定します。

t0 = axang2tform([0 1 1 pi/4])*trvec2tform([0 0 0]);
tF = axang2tform([1 0 1 6*pi/5])*trvec2tform([1 1 1]);
tInterval = [0 1];
tvec = 0:0.01:1;

点の間を内挿します。plotTransformsを使用して軌跡をプロットします。変換を四元数の回転と線形遷移に変換します。Figure に座標系のすべての中間変換が表示されます。

[tfInterp, v1, a1] = transformtraj(t0,tF,tInterval,tvec);

rotations = tform2quat(tfInterp);
translations = tform2trvec(tfInterp);

plotTransforms(translations,rotations)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes object. The axes object contains 404 objects of type patch, line.

入力引数

すべて折りたたむ

初期変換。4 行 4 列の同次変換として指定します。関数は、初期変換 T0 から始まって最終変換 TF まで進む軌跡を生成します。

データ型: single | double

最終変換。4 行 4 列の同次変換として指定します。関数は、初期変換 T0 から始まって最終変換 TF まで進む軌跡を生成します。

データ型: single | double

軌跡の開始時間と終了時間 (秒単位)。2 要素ベクトルとして指定します。

例: [0 10]

データ型: single | double

軌跡の時間サンプル (秒単位)。m 要素ベクトルとして指定します。

例: 0:0.01:10

データ型: single | double

軌跡の時間サンプル。m 要素ベクトルとして指定します。

例: 0:0.01:10

データ型: single | double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name引用符で囲みます。

例: 'TimeScaling',[0 1 2; 0 1 0; 0 0 0]

時間スケーリング ベクトルと最初の 2 つの微分。3 行 m 列のベクトルとして指定します。ここで、m は tSamples の長さです。既定では、時間スケーリングは tInterval の時間点間の線形時間スケーリングです。

非線形時間スケーリングの場合は、時間点の値を 1 行目で位置 (メートル単位) として指定します。2 行目と 3 行目は、それぞれ時間点における速度 (m/s 単位) と加速度 (m/s2 単位) です。たとえば、パスに中間点まで線形速度で追従した後に最後までジャンプする場合、時間スケーリングは次のようになります。

s(1,:) = [0 0.25 0.5 1 1 1] % Position
s(2,:) = [1    1   1 0 0 0] % Velocity
s(3,:) = [0    0   0 0 0 0] % Acceleration

データ型: single | double

出力引数

すべて折りたたむ

変換の軌跡。4×4×m の同次変換行列の配列として返されます。ここで、m は tSamples の点の数です。

変換の速度 (m/s 単位)。6 行 m 列の行列として返されます。ここで、m は tSamples の点の数です。最初の 3 つの要素は角速度で、2 番目の 3 つの要素は時間単位の速度です。

変換の加速度 (m/s2 単位)。6 行 m 列の行列として返されます。ここで、m は tSamples の点の数です。最初の 3 つの要素は角加速度で、2 番目の 3 つの要素は時間単位の加速度です。

参照

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press, 2017.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019a で導入