メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Quaternion Interpolation

2つの四元数間の四元数補間

  • Quaternion Interpolation block

ライブラリ:
Aerospace Blockset / Utilities / Math Operations

説明

Quaternion Interpolation ブロックは、2 つの正規化された四元数間の四元数補間を間隔分数で計算します。Aerospace Blockset™ は、スカラー優先規則を使用して定義された四元数を使用します。SLERP、LERP、NLERP から補間方法を選択します。補間方法に使用される方程式については、アルゴリズム を参照してください。

2 つの正規化された四元数は、ブロックが四元数を計算する 2 つの極端な値です。

端子

入力

すべて展開する

補間を計算する最初の正規化された四元数。この四元数は正規化された四元数でなければならない

データ型: double

補間を計算する 2 番目の正規化された四元数。4 行 1 列のベクトルまたは 1 行 4 列のベクトルとして指定されます。この四元数は正規化された四元数でなければなりません。

データ型: double

四元数補間を計算する間隔分数。この値は 0 から 1 の間で変化します。計算する四元数の中間回転を表します。この割合は補間方法の回転速度に影響します。

依存関係

間隔の割合は、Methods パラメータの補間方法の回転速度に影響します。間隔分数の詳細については、「[1]」を参照してください。

データ型: double

出力

すべて展開する

四元数の自然対数。ベクトルとして返されます。

データ型: double

パラメーター

すべて展開する

四元数補間を計算する四元数補間法。次のように指定します。

  • SLERP

    クォータニオンスラープ。球面線形四元数補間法。

  • LERP

    クォータニオン lerp。線形四元数補間法。

  • NLERP

    正規化された四元数線形補間法。

依存関係

これらの方法では、入力ポート f からの間隔の割合に応じて、回転速度が異なります。間隔分数の詳細については、「[1]」を参照してください。

プログラムでの使用

ブロック パラメーター: method
: 文字ベクトル
値: 'SLERP' | 'LERP' | 'NLERP'
既定の設定: 'SLERP'

範囲外ブロックの動作。次のように指定します。

Action説明

なし

何も起こりません。

警告

診断ビューアに警告が表示されていますが、モデルのシミュレーションは続行されます。

Error (デフォルト)

診断ビューアでエラーが発生し、モデルのシミュレーションが停止します。

プログラムでの使用

ブロック パラメーター: action
: 文字ベクトル
値: 'None' | 'Warning' | 'Error'
既定の設定: 'Warning'

アルゴリズム

h[0,1]. での Slerp(p,q,h)=p(p*q)h

h[0,1]. での LERP(p,q,h)=p(1h)+qh

r=LERP(p,q,h),NLERP(p,q,h)=r|r|.

参照

[1] Dam, Erik B., Martin Koch, Martin Lillholm. "Quaternions, Interpolation, and Animation." University of Copenhagen, København, Denmark, 1998.

拡張機能

すべて展開する

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

バージョン履歴

R2016a で導入