1 摘要
該REP爲ROS中使用的單位和座標約定提供了參考。
2 基本原理
單位和約定不一致是開發人員常見的集成問題來源,也可能導致軟件錯誤。由於數據轉換,它還會創建不必要的計算。該REP記錄了ROS的標準約定,以減少這些問題。
3 例外情況
潛在的機器人軟件的範圍太廣,無法要求所有ROS軟件都遵循本REP的準則。但是,選擇不同的約定應該有充分的理由並有據可查。
4 單位
我們選擇對國際單位制進行標準化。這些單位是最一致的國際標準。國際單位制是由國際度量衡局維護的[1]。維基百科上有很多關於國際單位制的文檔[2]。
4.1 基本單位
這些是常用的基本單位:
4.2 衍生單位
SI定義了七個基本單位和許多派生單位。如果您不使用SI基本單位,則應使用SI衍生的單位。
可以在Wikipedia上找到有關SI派生單位的好的文檔。
ROS中常用的SI衍生單位爲:
5 座標系約定
所有座標系都應遵循這些約定。
5.1 Chirality
所有系統都是右手的。這意味着他們遵守右手規則。
5.2 軸方向
對於本體,標準是:
- x forward
- y left
- z up
對於地理位置的短距離笛卡爾表示法,請使用East North Up(ENU)約定:
- X east
- Y north
- Z up
爲避免float32值較大的精度問題,建議選擇附近的原點,例如系統的起始位置。
5.3 Suffix Frames(後綴座標系)
對於攝像機,通常會有第二個座標系以“ _optical”後綴定義。這使用了稍微不同的約定:
- z forward
- x right
- y down
對於需要在北東下(NED)約定下工作的室外系統,請定義一個經過適當轉換的後綴“ _ned”的輔助座標系:
- X north
- Y east
- Z down
5.4 旋轉表示
有很多表示旋轉的方法。下面列出了首選順序以及基本原理。
1.四元數
- 緊湊的表示
- 沒有奇異性
2.旋轉矩陣
- 沒有奇異性
3.fixed axis roll, pitch, yaw about X, Y, Z axes respectively
- 順序上沒有歧義
- 用於角速度
4.euler angles yaw, pitch, and roll about Z, Y, X axes respectively
通常不建議使用歐拉角,這是因爲默認情況下具有使用不同約定的24個“有效”約定以及不同的域。
根據右手定則,方向的偏航分量會隨着子座標系的逆時針旋轉而增加,對於地理位姿,指向東方時偏航爲零。
這僅需特別提及,因爲它不同於傳統的羅盤方位角,後者在指向北時爲零,並順時針遞增。硬件驅動程序應在發佈標準ROS消息之前進行適當的轉換。
5.5 協方差表示
1.Linear
float64[9] linear_acceleration_covariance # 3x3 row major matrix in x, y, z order
2.Angular
float64[9] angular_velocity_covariance # 3x3 row major matrix about x, y, z order with fixed axes
3.Six Dimensional
# Row-major representation of the 6x6 covariance matrix
# The orientation parameters use a fixed-axis representation.
# In order, the parameters are:
# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)
float64[36] covariance
參考
https://www.ros.org/reps/rep-0103.html