(2022.12.15訂正)

 モーションセンサのジャイロセンサは角速度(回転の速度)を計測するので,姿勢角度を直接算出できません.また,地磁気センサの情報からは3次元の角度のうち2つの角度しか計算することができません.
そこで,ここではモーションセンサの計測データから姿勢角度を算出する方法についてご説明する前に,まずは3次元の角度について概要を述べます.

 3次元で剛体の姿勢角度を表すとき,姿勢角度の自由度は3です.すなわち最低3つの変数(角度)必要となり,その3つの変数で表す代表が,オイラー角です.そこで,オイラー角についてまず説明をします.後述するように,オイラー角には複数の定義の仕方があります.



 まず剛体の姿勢は,剛体に固定した直交座標系の各軸の単位ベクトル{ex,ey,ez}を並べたもので表現します.これは一般に記号Rなどで表現した,3×3の行列で,回転後の{ex,ey,ez}を回転前の絶対座標系{O}からみた各単位ベクトルを並べて

  R = {ex,ey,ez}

のように書き表します.

 次に,典型的なオイラー角の一つである,Z-Y-Xオイラー角について説明してみましょう.


製品に関するスポーツセンシング社へのお問合せ

製品に関するスポーツセンシング社へのお問合せ



オイラーの定理


 回転行列 R は剛体の姿勢を表すとします.すると,Ra のように,行列 R はベクトル a の回転の役割も果たします.この回転を,1 本の固定軸 n まわりに角度 ψ だけまわす 1 回転で表現することができます.つまり,R に対して必ずそのような 1 本の固定軸が存在することが知られています.これはオイラーの定理と呼ばれています.

 そのような行列Rによるベクトルaの回転は式で



 加速度センサとジャイロセンサは慣性センサともよばれます.そのうちジャイロセンサは角速度センサとも言われ,角速度を計測するセンサです.

 ジャイロセンサはカメラの手ぶれ補正やカーナビなどによく使われますが,スマホやタブレットPCなどにも搭載されており,加速度センサも含めてかなり普及しています.ジャイロセンサの計測原理はタイプによって,全く異なりますが,モーションセンサで使用しているジャイロセンサも,スマホやカメラなどで使用されている,振動式ジャイロセンサーというMEMSジャイロセンサーです.

角速度の単位



 角速度は単位時間あたりの回転量で,SI単位系(科学技術で使用される単位系)の単位は[rad/s]ですが,モーションセンサでは通常,[deg/s]などが使用されます.1秒あたりの回転量をdegree(度)で表します.1回転は360[deg]=2π[rad]です.[deg/s]はdps(ディー・ピー・エス)などともよびます.似たような単位で,rpsなどもあり,これは1秒あたりの回転数(rotation)per secondの意味です.


 回転行列は,A「物体(に固定されたベクトル)を回転させる」場合と,B「物体(ベクトル)を眺める世界(座標系)を回転させる」場合とで,数学的な扱いが異なります.


「ベクトルを回転させる場合」「座標変換させる場合」の具体例


A)回転と,B)座標変換


 この例からも,Aの物体に固定された「ベクトル」gをx軸回りに90度回転する場合と異なり,Bの物体を眺めている世界である「座標系」のほうをx軸回りに90度回転させることは,ベクトルgを相対的に反対方向に-90度,回転させることに相当します.
 また,Aをベクトルの「回転」と呼び,Bをベクトルの「座標変換」と呼び,数学的にも区別されます.

 そこで,ベクトルの回転を,x軸回りの回転角度θx(deg) の関数である回転行列R(θx)とベクトルgの乗積で表すと,Aの場合はR(90)gに相当し,Bの場合はR(-90)gで新しいベクトルを計算することに相当します.
 すなわち,Aのベクトルの回転を行う行列と,Bのベクトルの座標変換を行う行列は,反対向き(逆回転)の関係であることがわかります.


AとBは逆回転