天天看點

ROS下坐标系的了解

map,odom,base_link,base_footprint,傳感器坐标系

map:地圖坐标系,顧名思義,一般設該坐标系為固定坐标系(fixed frame),一般與機器人所在的世界坐标系一緻。

odom:裡程計坐标系

base_link:機器人本體坐标系,與機器人中心重合

base_footprint:坐标系原點為base_link原點在地面的投影,有些許差別(z值不同)

傳感器坐标系:還有一些傳感器坐标系,根據傳感器模型和安裝位置來定義

簡單的描述:(https://blog.csdn.net/gadwgdsk/article/details/95206155)

1)在系統計算中,map的原點是fixed的,不會改變,而AMCL計算得到的機器人坐标(map坐标系下)我們認為是絕對準确的。

2)odometry節點根據編碼器積分的結果不停地釋出odom到baselink的變換(換算到xy坐标系了)

問題:

 odom到baselink的變換長時間後不是準确的,為什麼要一直釋出呢?這不會導緻系統使用了錯誤的資訊嗎?

解答:在AMCL的代碼中我們可以看到,計算得到map坐标系下機器人的坐标後并沒有直接釋出map到baselink的變換,而是根據odom和baselink的關系、map和baselink的關系,反推出map和odom的關系,然後釋出map到odom的變換。而map和baselink的地圖中的實際位置是不可能改變的(意思是真實的),是以我們在rviz中能夠看到odom會随着機器人的運動而改變。總結一下就是:通過改變odom坐标系原點的位置使得機器人裡程計的資訊能夠正确表達機器人的位置(改變的odom原點的量,就是機器人打滑等原因産生的裡程計誤差的量)。

參考:

1.https://www.ros.org/reps/rep-0105.html#id18

2.https://blog.csdn.net/flyinsilence/article/details/51854123

3.https://blog.csdn.net/gadwgdsk/article/details/95206155

繼續閱讀