なぜ座標には右手系と左手系があるのか
Meridian計画。
ホビーロボットのプチ標準化を目指すMeridian計画において、最初に考えるべきことの一つに座標系の決定があります。
座標系というのは、3次元空間上での位置を説明する際に、xyz軸をどういう向きに設定するかというルールです。最初にしっかりとした理由で決めておかないと、後から混乱しかねません。
これをどうするかは悩みどころです。
というのも、設計やCG、シミュレーター等で3Dを扱うソフトは、今のところ座標系がまったく統一されておらず、コレといった定番もないためです。
具体例を見てみます。以下は各ソフトのデフォルト状態の座標軸です。
…見事にバラバラです。
3軸を設定するだけなのでそれほどパターンもなかろうと思うのですが、調べてみれば上の例だけでも同じものが一組もなく、ユーザー泣かせの学級崩壊状態です。
この手のアプリケーションは頭がいい人が作っているのだろうから、座標系も合理的に決められているはず!と思ったのですが、なんらかの事情があるのでしょうか。とにかくバラバラというのが現状です。
右手系、左手系とは?
デフォルト状態では一つとして同じものがなかった座標系ですが、大きく右手系、左手系に大別することはできるようです。
右手系、左手系のどちらかを判断する方法は以下の通りです。
① 図のように親指、人差し指、中指をそれぞれx軸、y軸、z軸とする。
② それぞれの指をフレミングの法則のように立てる。
③ その時、調べたい座標系が右手に該当するか左手に該当するかで分類。
大別することができたので、今度は右手系、左手系がどういう意味を持つのかを考えてみます。
右手系について
まず右手系です。これは教科書にも出てくるお馴染みの座標系です。
上の図は2次元の平面図です。このように横線をx軸、縦線をy軸とする直交座標をノートに描いたとします。その時、紙から飛び出す方向の軸をz軸とするのが右手系です。
ちなみにこの平面上の直行座標を誰が考えたのかといえば、デカルト(1596-1650)らしいです。デカルト座標系という呼び名もあるそうですが、デカルトがxとyの向きまで決めたかどうかはわかりません。とにかく見慣れた座標系ではあります。
高校や大学の数学や物理で使われる座標軸もこの右手系がベースです。
学校で習うなら全部これで統一でいいじゃん!とも思うのですが、そうはなっていないのが現実です。
右手系だけで十分なのに、なぜ左手系もあってしまうのか。
その謎の答えはたぶん次の理由です。
左手系の起源はブラウン管! …だと思う
推測ですが「お前が左手系の原因だ!」と言いたくなるのがCRT(ブラウン管)ディスプレイの出現です。
初期のマイコンは文字や絵の表示のために基本的にブラウン管を使っていました。ブラウン管は高速に移動する電子ビームを画面に対して当てることで、文字や絵を表示するものです。向かって左上から右に向かってビームを移動し、1行下がってまた左から右へ、というのを高速に繰り返すことで画像を表示します。このタイプを走査線方式 (Raster scan) といいます。
この走査線の都合に合わせて座標を作っていくと、x軸は右に向かってプラスですが、y軸は下に向かってプラスということになります。
そしてこのディスプレイ平面からZ軸を飛び出させると…左手系が出現してしまうというわけです。
座標系でソフトの出身がわかる説
以上の流れから、
右手系 = 学術や製図などで使われるもの。図面出身。
左手系 = 計算機処理やゲーム開発用のソフト。ディスプレイモニタ出身。
ということが見えてきます。
最初の例のアプリをみると
右手系 = blender, Fusion360, SketchUp
左手系 =Unity, UnrealEngine
ときれいに分類できます。特に左手系はどちらもゲームエンジンで、ゲーム機が8ビットのCPUとブラウン管で構成されていた時代のルールが今に続いているのだと思うと感慨深いものがあります。
二分できるとはいえ、デフォルト面はなぜかばらばらなのでソフトを移行する時にはやっぱり頭がこんがらがります。
でも軸の色だけは統一されている!
学級崩壊状態のアプリケーションの座標系ですが、y軸が緑、x軸が赤、z軸が青というところだけはしっかり統一されています。
これはRGBの三原色とその調光具合を3次元空間で表現した「XYZ表色系」というのがあり、それに則っているからのようです。
順番もしっかりしています。RGBに対してXYZがRed-X, Green-Y, Blue-Zと行儀良く並んでいます。
少なくとも軸の色だけは「XYZ表色系」に準拠しておくのが世の中のためになりそうです。
結論
さて、我らがMeridian計画では右手系を採用すべきか、左手系を採用すべきか。
Meridian計画の目的はロボット内部のちょっとした標準化を目指すことですが、その標準化のそもそもの目的はといえば、部品やソフトを使いやすくすることで物理学の世界の研究などを画面を見ながら気軽に導入できるようにするためです。
ということで、ここは"教科書通り"に右手系を採用としていきたいと思います。
左手系や各種ソフトへの対応は、最終的な画面への出力時に座標変換させていくというルールにすればたぶん問題ないかと思います。
次の記事:
前の記事:
目次:
この記事が気に入ったらサポートをしてみませんか?