Main Content

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

quatrotate

四元数によるベクトルの回転

説明

n = quatrotate(q,r) は、初期ベクトル r を四元数 q で受動的に回転した結果のベクトルを計算し、最終ベクトル n を返します。四元数がまだ正規化されていない場合、関数はそれを正規化します。

Aerospace Toolbox は、スカラー優先規則を使用して定義された四元数を使用します。この関数はすべての四元数入力を正規化します。

すべて折りたたむ

この例では、1 行 3 列のベクトルを 1 行 4 列の四元数で回転する方法を示します。

q = [1 0 1 0];
r = [1 1 1];
n = quatrotate(q, r)
n = 1×3

    -1     1     1

この例では、2 つの 1 行 3 列のベクトルを 1 行 4 列の四元数で回転する方法を示します。

q = [1 0 1 0];
r = [1 1 1; 2 3 4];
n = quatrotate(q, r)
n = 2×3

    -1     1     1
    -4     3     2

この例では、1 行 3 列のベクトルを 2 つの 1 行 4 列の四元数で回転する方法を示します。

q = [1 0 1 0; 1 0.5 0.3 0.1];
r = [1 1 1];
n = quatrotate(q, r)
n = 2×3

   -1.0000    1.0000    1.0000
    0.8519    1.4741    0.3185

この例では、複数のベクトルを複数の四元数で回転する方法を示します。

q = [1 0 1 0; 1 0.5 0.3 0.1];
r = [1 1 1; 2 3 4];
n = quatrotate(q, r)
n = 2×3

   -1.0000    1.0000    1.0000
    1.3333    5.1333    0.9333

入力引数

すべて折りたたむ

m 個の四元数を含む m 行 4 列の行列、または単一の 1 行 4 列の四元数として指定された四元数または四元数のセット。各要素は実数でなければなりません。

q は最初の列にスカラー番号を持つ必要があります。

データ型: double | single

回転する初期ベクトルまたはベクトルのセット。m 個のベクトルを含む m 行 3 列の行列、または単一の 1 行 3 列の配列として指定されます。各要素は実数でなければなりません。

データ型: double | single

出力引数

すべて折りたたむ

最終ベクトルは、m 行 3 列の行列として返されます。

詳細

すべて折りたたむ

q

正規化された四元数 q は次の形式を持ちます。

q=q0+iq1+jq2+kq3

r

ベクトル r の形式は次のとおりです。

v=iv1+jv2+kv3

Aerospace Toolbox は、次の形式のパッシブ四元数回転を定義します。

v=q1[0v]q,

ここで、Ⓧ は四元数の乗算の演算子です。

n

回転ベクトル n は次の形式になります。

v=[v1v2v3]=[(12q222q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(12q122q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(12q122q22)][v1v2v3]

この方程式の方向余弦行列には正規化された四元数が必要です。

参照

[1] Stevens, Brian L., Frank L. Lewis. Aircraft Control and Simulation, 2nd Edition. Hoboken, NJ: John Wiley & Sons, 2003.

[2] Diebel, James. "Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors." Stanford University, Stanford, California, 2006.

バージョン履歴

R2006b で導入