LoginSignup
1
0

More than 1 year has passed since last update.

Unityの回転軸の原点

Last updated at Posted at 2022-08-27

これどこに書いてあるの...

回転軸と座標方向のメモです。

Unityの座標軸

Unityは左手系座標です。
一方、物理学やROSでは右手系座標です。
2つの座標系が共存することになった謎についてはnoteで記事にしました。

さて、Unityのxyz角座標のプラス方向について、それぞれデフォルトでは下記の図の通りになります。

Unityの左手座標はデフォルト位置が通常の左手系と比べるとx軸を中心に90度回転しています。これは妙な感じもしますが利点もあり、ROS等の右手座標に変換する場合にy軸とz軸を入れ替えるだけでOKとなっています。

次に、回転軸について見ていきます。

Unityの回転軸

Unityのデフォルトではforward方向はz軸プラス方向となります。
これをベースに考えると、Z軸を中心に回転するのがロール回転となります。

z軸を中心軸としたロール回転は、反時計回りがプラスとなります。


ピッチ回転はx軸を中心軸とした仰角、俯角方向です。下向き俯角側がプラスとなります。


y軸を中心軸としたヨー回転は時計回りがプラスとなります。
この回転軸が車両系ロボットのナビゲーションなどでは一番使われていると思います。


回転座標の角度の起点ですが、それぞれ図で示した軸のプラス方向が原点で0度となります。
また、それぞれの方向に対し180度を超えても角度の増減は続きます。よって、-30度と+330度は同じ角度を示します。

はまりどころ

2つの座標点間の角度を求めるには、
Mathf.Atan2(float y, float x)
が使えます。しかし、注意点が2つあります。
まず一つ目は、引数がy,xの順であることです。うっかり逆に入力されませぬよう。
次の注意点は、計算結果が0〜+180, 0〜-180で返されることです。
前述のUnityルールの回転方向とATAN2取得の角度は直接比較することができず、変換が必要になります。

間違っているかも

調べた結果が間違っている場合もありますので、当記事の間違いを気づかれたらぜひコメントでお教えいただけると助かります。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0