概要
ROSで使用される単位や座標系の規約について、この記事で説明します。
ROSでは、ROS Enhancement Proposals(REP)と呼ばれる、ROSコミュニティで新機能や標準、情報を提案し共有するための文書があります。
REPの1つに「Standard Units of Measure and Coordinate Conventions」という文書があり、ここではROSの標準単位や座標系について記載されています。
この内容の要点をこの記事で解説します。
解説
以下に要点をまとめます。
単位
ROSでは基本的に国際標準であるSI単位系を使用します。例えば、長さはメートル、重さはキログラムです。ROSのトピックでは、これらの単位を基本とすることが推奨されます。
座標系
ROSの座標系は右手系を用います。
ROSの座標系は右手系を採用しています。対照的に、Unity(ゲームやシミュレーションで使用)は左手系、Webの3DライブラリであるThree.jsは右手系です。
右手系について
右手系(Right-Hand Coordinate System)は座標系の一種で、人間の右手をモデルにしています。親指がX軸、人差し指がY軸、中指がZ軸を表し、これらが伸びている方向が各軸の正の方向です。例えば、右側に進むとX軸の値が増加します。
それぞれ伸びている方向がプラスの方向になります。例えば、以下のようになります。
上記の形だと、右側に進むにつれてXの値が増加していき、左に進むにつれてXの値が減っていくということです。
物体の座標
物体における座標系は、前方がX軸、左側がY軸、上部がZ軸です。
回転表現
回転を表現する方法には以下があります。上位のものほど推奨されています。
・クオータニオン(コンパクトな表現、特異点なし)
・回転行列(特異点なし)
・固定軸 ロール・ピッチ・ヨー(角速度に使用される)
・オイラー角(軸の選択と順序によって多くの異なる方法があり、問題発生の可能性)
コメント