transformtraj
2 つの変換の間の軌跡を生成
構文
説明
例
同次変換の間の内挿
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')
SE(3) 変換間の内挿
最初の変換を軸角度回転から構築し、最終変換を軸角度回転と並進の両方から構築します。
t0 = se3([0 1 1 pi/4],"axang"); tF = se3([1 0 1 6*pi/5],"axang")*se3([1 1 1],"trvec");
内挿する時間間隔と時間のベクトルを指定します。
tInterval = [0 1]; tvec = 0:0.01:1;
同次変換の間を内挿します。plotTransforms
を使用して軌跡をプロットします。
[tfInterp] = transformtraj(t0,tF,tInterval,tvec); plotTransforms(tfInterp(1:10:end))
入力引数
tInterval
— 軌跡の開始時間と終了時間
2 要素ベクトル
軌跡の開始時間と終了時間 (秒単位)。2 要素ベクトルとして指定します。
例: [0 10]
データ型: single
| double
tSamples
— 軌跡の時間サンプル
m 要素ベクトル
軌跡の時間サンプル (秒単位)。m 要素ベクトルとして指定します。
例: 0:0.01:10
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。
R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: TimeScaling=[0 1 1; 0 1 0; 0 0 0]
TimeScaling
— 時間スケーリング ベクトルと最初の 2 つの微分
3 行 m 列のベクトル
時間スケーリング ベクトルと最初の 2 つの微分。3 行 m 列のベクトルとして指定します。ここで、m は tSamples
の長さです。既定では、時間スケーリングは tInterval
の時間点間の線形時間スケーリングです。
非線形時間スケーリングの場合は、時間点の値を 1 行目で位置時間スケーリングとして指定します。2 行目と 3 行目は、それぞれ最初の行の 1 階微分および 2 階微分です (1/s と 1/s2)。たとえば、パスに中間点まで線形速度で追従した後に最後までジャンプする場合、時間スケーリングは次のようになります。
s(1,:) = [0 0.25 0.5 1 1 1] % Position time scaling, s(t) s(2,:) = [1 1 1 0 0 0] % Velocity time scaling, ds/dt s(3,:) = [0 0 0 0 0 0] % Acceleration time scaling, d^2s/dt^2
データ型: single
| double
出力引数
tforms
— 変換の軌跡
4×4×m の同次変換行列の配列 | se3
オブジェクトの m 要素配列
変換の軌跡。4×4×m の同次変換行列の配列または se3
オブジェクトの m 要素配列として返されます。m は tSamples
の点の数です。
vel
— 変換の速度
6 行 m 列の行列
変換の速度 (m/s 単位)。6 行 m 列の行列として返されます。ここで、m は tSamples
の点の数です。最初の 3 つの要素は角速度で、2 番目の 3 つの要素は時間単位の速度です。
acc
— 変換の加速度
6 行 m 列の行列
変換の加速度 (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 で導入MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)