本文へ移動
ISEGORIABenjamin Haire
English

ISEGORIA / 数学百科事典

四元数:掛け算としての回転

ハミルトンの四次元の数です。回転が半分の角度ずつ挟むサンドイッチになる理由、姿勢のあいだを補間する方法、そしてオイラー角が詰まる場所で四元数が詰まらない理由を扱います。

前提知識: ベクトル・内積と外積・回転行列・複素数

予想してから操作し、計算例と問いで理解を確かめてください。グラフは数式の図示であり、証明ではありません。

1. 回転はサンドイッチ

四元数は \(\mathbf i^2 = \mathbf j^2 = \mathbf k^2 = \mathbf{ijk} = -1\) を満たす数 \(q = w + x\mathbf i + y\mathbf j + z\mathbf k\) です。三次元ベクトル \(v\) を純四元数 \(x\mathbf i + y\mathbf j + z\mathbf k\) とみなします。二つの純四元数では \(uv = -u\cdot v + u\times v\) です。単位軸 \(\mathbf n\) と角度 \(\theta\) に対して、単位四元数 \(q = \cos\tfrac{\theta}{2} + \sin\tfrac{\theta}{2}\,\mathbf n\) は積 \(q\,v\,q^{*}\) によって \(v\) を \(\mathbf n\) のまわりに \(\theta\) だけ回します。\(v\) と \(\mathbf n\) の先端をドラッグしてください。二つの小さな図は \(v\) を \(\mathbf n\) に沿った成分と \(\mathbf n\) に直交する成分に分け、サンドイッチの各因子がそれぞれに何をするかを示します。

計算例. \(v=\mathbf i\) を \(\mathbf k\) のまわりに 90° 回します。\(q=\tfrac{1}{\sqrt2}(1+\mathbf k)\) なので \(q\,\mathbf i=\tfrac1{\sqrt2}(\mathbf i+\mathbf j)\) で、すでに 45° 回った純粋なベクトルです。次に \(\tfrac1{\sqrt2}(\mathbf i+\mathbf j)\cdot\tfrac1{\sqrt2}(1-\mathbf k)=\tfrac12(\mathbf i+\mathbf j+\mathbf j-\mathbf i)=\mathbf j\) となり、残りの 45° が回ります。

注意点. 順序が重要です。\(q_2(q_1vq_1^*)q_2^*=(q_2q_1)v(q_2q_1)^*\) なので、\(q_2q_1\) は行列と同じく \(q_1\) を先に施すことを意味します。また q と −q はサンドイッチの中で符号が打ち消し合うので、同じ回転を表します。

片側だけの掛け算 v ↦ q v が三次元空間の回転になり得ないのはなぜですか?

v が純粋なままでいないからです。v の n 方向の成分が実部 \(-\sin\tfrac\theta2\,(\mathbf n\cdot v)\) を持ってしまいます。左からの掛け算は四次元空間の回転です。右から \(q^*\) を掛ける組み合わせだけが実部を打ち消し、三次元ベクトルの回転を残します。

参考文献: Joan Solà · Quaternion kinematics for the error-state Kalman filter (arXiv:1711.02508)

2. 姿勢から姿勢への移動

単位四元数は四次元の 3 次元球面を埋め尽くし、どの姿勢も q と −q の二回ずつ現れます。ある姿勢から別の姿勢への最短の道は、その球面上の大円の弧を一定の速さで進むことで、これが slerp です。成分を平均してから長さを直す方法(nlerp)は同じ弧を不均一な速さで進み、オイラー角を平均する方法は別の長い道を通ります。t の等間隔に打った目盛りに注目してください。

計算例. 150° の回転では \(\varphi=75°\) となり、slerp は終始 t 一単位あたり 150° で回ります。nlerp は \(t=\tfrac12\) で最も速く、その速さは平均の \(2\tan(\varphi/2)/\varphi\approx1.17\) 倍、t 一単位あたり約 176° です。

注意点. 補間の前に、\(q_A\cdot q_B<0\) なら \(q_B\) の符号を反転させてください。そうしないと、\(q_B\) と \(-q_B\) は同じ姿勢なのに、経路は 360° − Ω の遠回りになります。オイラー角の経路は A と B の z-y-x の角度をそのまま補間するので、±180° をまたぐ角度は遠回りします。

nlerp の経路が slerp と同じ弧で、速さだけが違うのはなぜですか?

\(q_A\) から \(q_B\) への弦は、原点とこの二点が張る平面内にあります。弦の各点を単位球面に引き戻してもその平面にとどまるので、二点のあいだの大円に乗ります。弦上の等間隔の点は弧上では不等間隔になり、両端に寄ります。

参考文献: Ken Shoemake · Animating rotation with quaternion curves (SIGGRAPH 1985)

3. ジンバルロック

オイラー角は姿勢を三回の連続した回転で表します。z 軸まわりのヨー ψ、運ばれた y 軸まわりのピッチ θ、機体自身の x 軸まわりのロール φ です。これは入れ子になった三つのジンバルそのものです。ピッチが ±90° になるとロール軸がヨー軸に重なり、三つの輪のあいだで次元が一つ失われます。同じ姿勢の四元数は、その点を何事もなく通過します。

計算例. \(\theta=90°\) では \(R_y(90°)\) が \(\hat x\) を \(-\hat z\) に移すので、\(R_z(\psi)R_y(90°)R_x(\varphi)=R_z(\psi-\varphi)R_y(90°)\) です。\((\psi,\varphi)=(50°,20°)\) と \((80°,50°)\) の姿勢は同一で、記録されるのは \(\psi-\varphi\) だけです。

注意点. ジンバルロックは座標の欠陥であって、回転の欠陥ではありません。ピッチ 90° で航空機に物理的なことは何も起きません。どんな三つの角度による座標でも避けられません。三つの座標で特異点なしにすべての回転を覆うことはできないからです。単位四元数は、一つの制約を課した四つの数を使うことで、これを逃れます。

θ = 90° の近くで、失われた軸のまわりに機体を回すにはどんなオイラー角速度が必要ですか?

角速度一単位あたり \(1/\sigma_{\min}=1/\sqrt{1-|\sin\theta|}\) 程度の角速度が必要で、θ が 90° に近づくと際限なく大きくなります。オイラー角で動く制御器や積分器には、動き自体は穏やかなのに、ヨーとロールの角速度が爆発するように見えます。

参考文献: Joan Solà · Quaternion kinematics for the error-state Kalman filter (arXiv:1711.02508)

次に読む

線形代数:変換の幾何フーリエ解析:波で関数を作る力学系:安定性とカオス最適化:最良の選択の幾何確率:不確実性から学ぶ群論:対称性を代数にする代数的位相幾何:穴を見つける数値解析:計算が誤解を招くとき数論:整数のパターングラフ理論:経路・木・ネットワーク偏微分方程式:動く場情報理論:不確実性と符号変分法:経路と原理古典力学:運動と力電磁気学:場と誘導光学:光線・波・色熱力学:エネルギー・仕事・エントロピー量子力学:振幅とスピン複素解析:写像・留数・調和場流体力学:流れ・圧力・渦度統計と推測:データの中の信号特殊相対性理論:空間・時間・光微分幾何:曲率と形統計力学:ミクロ状態と温度測度論:大きさ・近似・収束マルコフ連鎖:遷移・定常性・吸収微分形式:循環・カール・引き戻し一般相対性理論:曲率・時計・光関数解析:ノルム・射影・作用素プラズマ物理:遮蔽・軌道・波リー群とリー代数:連続的な対称性ハミルトン力学:相空間とその幾何確率過程:ブラウン運動とノイズ固体物理:結晶の中の波制御理論:フィードバック・極・安定性論理と計算可能性:何が計算できるか双曲幾何:平行線が増える世界剛体力学:回転・転倒・歳差楕円曲線:足し算ができる幾何原子物理:軌道とスペクトル押し出しと引き戻し:写像を通した積分結び目理論:絡まりを見分けるフラクタル幾何:整数の間の次元量子情報:もつれとその限界宇宙論:膨張する宇宙セル・オートマトン:局所規則から生まれる計算複雑系:単純な多数の部品から生まれる秩序ガロア理論:方程式の対称性磁性とイジング模型:整列から生まれる秩序振動子と脱進機:時計はどうやって時を刻むか歯車と機構:運動を正確に伝える水晶振動子:時を刻む結晶スピーカー:ムービングコイル型ドライバーフィルターとクロスオーバー:音をドライバーに振り分ける室内音響:部屋はスピーカーの一部ウェーブレット:信号を拡大して見るレーザー物理:自らを複製する光表現論:行列として作用する群半導体物理:バンド・ドーピング・接合

数学百科事典に戻る