2007年度 システム情報科学特別演習(イントロダクトリセミナー)関連技術調査レポート
4元数による姿勢の表現手法
- 概要
3次元上において姿勢(角度)を表現するパラメータとして4元数を用いた具体的手法を提示する。
4元数による姿勢表現にあたって、利点、欠点を明示化するために、一般的に使われていたオイラー角での姿勢表現を提示し、
オイラー角で発生してしまうジンバルロックといった現象は、4元数による姿勢表現には発生しないが、
ジンバルロックが起こることでどのような不都合が発生するのかについても考察した。
- 姿勢表現
- オイラー角
3次元上において姿勢(角度)を表現するパラメータとして「オイラー角」と呼ばれるものが使われる。
オイラー角は、三次元上での物体の1つの回転は、 座標系の座標軸を軸とする三次元回転を
3つ組み合わせることで表現することができるということを表す。
つまり、3次元デカルト座標系の座標軸XYZ軸を考えた場合、X軸を軸として回転させた後、
Y軸を軸として回転、最後にZ軸を軸として回転させることにより、3次元上での回転を実現するものである。
回転軸の選びかたの順番はX-Y-ZやZ-X-Z等いろいろなパターンがある。
- ジンバルロック
ジンバルとは、ジャイロや羅針盤などの装置を保持するための機構であり、同心円状に大きさの違うのリングが組み合わせっているものである。
このリングがそれぞれ直交座標の軸を回転軸とする回転ができるようになっており、
内側のリングの回転が、外側のリングの回転軸も回転させてしまうという特徴をもつ。
ここで、3つのリングからなるジンバルを考える。
それぞれ、小さい方からX軸方向,Y軸方向,Z軸方向に回転軸をもつ回転を行うことができるものとする。
なお、ジンバルの特性から、内側にあるリングの回転は外側にあるリングに影響するものとする。
このとき、内側にあるX軸を回転軸とするリングを90度傾ける。
ここから、外側のY軸,Z軸を回転軸とするリングを90度傾けようとしても、内側にあるX軸を回転軸とするリングの向きと
回転軸Y軸、Z軸の向きが一致してしまい、傾いた方向と90度異なる方向には絶対に回転しない。この状態をジンバルロックという。
3次元におけるオイラー角による回転でも、ひとつの回転を3つの回転の合成によって
行うため、ジンバルロックが起こってしまう。
図1に示すVRMLは、3つのリングを同心円状に配置したものである。
一番内側のリングをx軸を回転軸として90度回し、その子ノードとして、真ん中のリングをy軸を回転軸としてに90度、
その子ノードとして、一番大きなリングをz軸を回転軸として90度回転させるように作ったものだが、y軸を回転軸にもつ回転を行わせたリングと、
z軸を回転軸にもつ回転を行わせたリングが同一平面上にある。
ジンバルロックが起こってしまい、y軸、z軸の回転が起こらないようになっていると考えられる。
4元数による姿勢制御ではこのジンバルロックが発生せず、任意の回転軸で回転させることができるというメリットがある。
- 4元数による回転処理
- 4元数とは
4元数は、4つの実数を組み合わせたもので、4つの要素のうち、ひとつは実部、残り3つは虚部である。
qという4元数をここで定義するとする。実部がt、虚部がx、y、zから成り立っているとき,q=xi+yj+kz+tであらわすことができる。
- 4元数同士の掛け算
i、j,kは虚数単位であり、虚数単位同士の掛け算は、以下のような規則がある。
|
(1)
|
4元数同士の掛け算は式(1)を利用して計算する。
ここで、2つの4元数を以下のように定義する。
|
(2)
|
式(1)を利用し式(2)のq1 q2をそれぞれ掛け合わせると
|
(3)
|
式が得られる。
簡単化のため、q1 = (t1; x1, y1, z1) = (t1;V1),と、実部部分と虚部部分に分けた表記を利用する。ここで、q2はq2 = (t2; x2, y2, z2) = (t2;V2)とあらわす。q1とq2の掛け合わせたものは式(3)より
q1 q2 = (t1t2 - V1V2; t1V2 + t2V1 - V1×V2)
と表すことができる。なおはベクトルの内積,×は外積を表すものとする。
- 3次元の座標の4元数での表現方法
ある座標(x,y,z)を4元数Pで表すとき、
P = (0;x,y,z)
で表す。なお実部をゼロ以外の値にしても、回転を4元数で表現する際影響は受けない。
- 回転の4元数での表現
原点を回転中心として、回転の軸が(δ,ζ,η)とし、
右手系座標なら、ベクトル(δ,ζ,η)の進行方向に向かって眺めて反時計回りにθまわす回転を表す4元数を考える。
(このときδ^2+ζ^2+η^2 = 1)
このとき、回転を表す4元数は
|
(4)
|
としてあらわされる。
なお、RはQの共役四元数である。
したがって、4元数での回転を実行するには、QPRを計算すればよい。
実部は0となるが、虚部のi成分が回転後のx成分、j成分が回転後のy成分、k成分が回転後のz成分となる。
(なお 、ここで、虚部の虚数単位i,j,kの係数をi成分,j成分,k成分と表記する。)
以下に計算を示す。
まず、4元数同士の乗算QPは式(3)と簡単化の表記により
|
(5)
|
として得られる。次にQPRを計算する。
以下にその結果を示す。
|
(6)
|
この虚数部分のi成分,j成分,k成分が回転後の座標となる。
- まとめ
3次元上での姿勢表現について、4元数により姿勢表現を行う方法を提示した。
なお、
4元数による姿勢表現にあたって、4元数を使う利点を明示化するためにオイラー角での
姿勢表現についても考察を進めた。
これによりジンバルロックという現象のため、オイラー角の姿勢表現において実現したい姿勢を表現することができない場合が存在するということがわかった。
4元数には、オイラー角による回転で起こるジンバルロックが発生しない、任意の軸で回転させるといった以上にあげた利点だけでなくや、
回転の軸と回転角度さえあれば回転できる、回転を4つの数値だけで記述できるため、メモリ効率がよく、計算が
早いといった利点がある。
一方で見た目で何を意味するのかわからないといったことや、原点中心の回転である、多数回転を表現しないといったことが欠点として挙げられる。
- 参考文献
中田 亨. "70秒で分る、使える、四元数・4元数・クォータニオン・ Quaternionで回転". 産業技術総合研究所.(オンライン),入手先〈http://staff.aist.go.jp/toru-nakata/quaternion.html〉,(参照2007-06-02).
調査担当: システム基礎論研究室 白木 絢子 (提出年月日:2007年6月3日)