ROS内で使用される単位と座標系の規約について

ROS

概要

ROSで使用される単位や座標系の規約について、この記事で説明します。

ROSでは、ROS Enhancement Proposals(REP)と呼ばれる、ROSコミュニティで新機能や標準、情報を提案し共有するための文書があります。

REP REP 0 -- Index of ROS Enhancement Proposals (REPs) -- REP 0 -- REP 0 -- Index of ROS Enhancement Proposals (REPs) (ROS.org)

REPの1つに「Standard Units of Measure and Coordinate Conventions」という文書があり、ここではROSの標準単位や座標系について記載されています。

REP 103 -- Standard Units of Measure and Coordinate Conventions (ROS.org)

この内容の要点をこの記事で解説します。

解説

以下に要点をまとめます。

単位

ROSでは基本的に国際標準であるSI単位系を使用します。例えば、長さはメートル、重さはキログラムです。ROSのトピックでは、これらの単位を基本とすることが推奨されます。

座標系

ROSの座標系は右手系を用います。

ROSの座標系は右手系を採用しています。対照的に、Unity(ゲームやシミュレーションで使用)は左手系、Webの3DライブラリであるThree.jsは右手系です。

右手系について

右手系(Right-Hand Coordinate System)は座標系の一種で、人間の右手をモデルにしています。親指がX軸、人差し指がY軸、中指がZ軸を表し、これらが伸びている方向が各軸の正の方向です。例えば、右側に進むとX軸の値が増加します。
それぞれ伸びている方向がプラスの方向になります。例えば、以下のようになります。

上記の形だと、右側に進むにつれてXの値が増加していき、左に進むにつれてXの値が減っていくということです。

物体の座標

物体における座標系は、前方がX軸、左側がY軸、上部がZ軸です。

回転表現

回転を表現する方法には以下があります。上位のものほど推奨されています。

・クオータニオン(コンパクトな表現、特異点なし)
・回転行列(特異点なし)
・固定軸 ロール・ピッチ・ヨー(角速度に使用される)
・オイラー角(軸の選択と順序によって多くの異なる方法があり、問題発生の可能性)

コメント