3次元計測における物体の姿勢と角度

3次元計測における物体の姿勢と角度

物体の運動物体の運動物体の運動は、並進運動(3軸それぞれの平行移動)と回転運動(3軸それぞれに対する回転)の組み合わせで表すことができます。モーションキャプチャで計測する場合、物体に3点以上のマーカーを貼付し、それらを剛体(リジッドボディ、Rigid Body)として定義する事で、その物体の姿勢情報を取得する事ができます。

並進運動は座標系の原点の平行移動として表すため、原点の取り方によって並進運動の割合が変わります。回転運動は初期に設定した時点からの回転の情報で、「3次元姿勢角」と言われます。続く項目で詳細を説明します。


OptiTrackのトレーサビリティ3次元姿勢角

物体の回転運動は物体に固定された座標系の姿勢で表現し、その姿勢は回転行列Rで表します。回転行列は数学的に直交行列の性質を持ち、直交座標系の各軸の単位ベクトル(e1,e2,e3)を右手系の順番に並べたものに相当しています。

3次元空間の回転行列は図中のe11縲彳33で表されるように9個の成分を持っていますが、回転の最小自由度である3自由度の変数で表現する方法や、4変数で姿勢を表す方法が一般的です。その代表としてオイラー角やクォータニオン(四元数:しげんすう) があります。


オイラー角オイラー角

オイラー角は物体の姿勢を3つの角度の組み合わせで表す最も一般的な方法です。回転順序に依存し角度の値が変わります。したがって、絶対座標系のX軸→Y軸→Z軸の順番で回転させるXYZ オイラー角以外に、YZX, ZXY, XZY, YXZ, ZYX等のオイラー角があります。これらの角度はXYZの各軸まわりに回転させますが、その他XYX, XZX, YZY, YXY, ZXZ, ZYZ等の同じ軸を最初と最後に回転させるタイプの角度もあります。

また、飛行機等の乗り物の姿勢表現に使われるロール・ピッチ・ヨー角があります。これはオイラー角のひとつで、Z軸→Y軸→X軸の順番で回転させるZYXオイラー角と同義です。つまり、ひと口にオイラー角と言っても回転順序によって角度の値が異なります。

オイラー角は最小の3つの変数で表現しますが、特異姿勢(現象としてはジンバルロックとも呼ぶ事があります。数学的には姿勢を計算するためにゼロで割り算をすることに相当します。)と呼ばれる姿勢角になると、角度を計算できない問題が生じます。この特異姿勢の問題を解決する方法として、次に述べるクォータニオン(四元数)による姿勢角の表現方法があります。


クォータニオン(四元数)クォータニオン(四元数)

オイラー角は3つの角度パラメータの組み合わせによって姿勢を表現しますが、クォータニオンは4つの変数によって姿勢を表します。

4つの変数のうち、X, Y, Zの3つによって回転の軸nの方向に関係する変数を、残りの1つは軸nまわりの回転角に関係する変数を表します。クォータニオンは、姿勢や3次元の回転を軸と回転角度に関係したパラメータで表現するので、直感的にわかりやすいという長所があります。さらに特異姿勢の問題が生じないため、3Dグラフィックスなどでよく用いられています。


OptiTrackにおける姿勢情報オイラー角やクォータニオンの算出は、OptiTrackのソフトウェアで簡単に行えます 。その際重要となるのは、剛体(Rigid Body)の初期位置の定義です。OptiTrackではOptiTrackの座標系で定義された絶対座標系の軸に準じて剛体の座標軸を定義します。その座標軸に対し、剛体を定義した瞬間が回転量ゼロとなり、そこからの回転量を姿勢変化角度変化として計算しています(作成後に任意の時間でゼロリセットする事も可能です)。

コントロールソフトウェア「Motive」では、剛体の姿勢角度をリアルタイムに確認する事が可能で、Real-Time Infoタブにロール・ピッチ・ヨー角(OptiTrackではY-upの座標系を用いているため、ロール:Z,ピッチ:X,ヨー:Y)が表示されます。さらに解析評価ソフトウェア「SKYCOM」ではオイラー角やクォータニオンの算出に加え、回転行列も算出することが可能です。

※姿勢角度の名称は、Motiveでは「Orientation」、 SKYCOMでは「剛体姿勢角度」となっております。

Support

Menu