ROS-Navigation-odom、map座標系的理解

ROS-Navigation-odom、map座標系的理解

本文鏈接:https://blog.csdn.net/u012686154/article/details/88174195
學ROS大半年了,之前一直沒搞明白odom和map,今天重新查資料看博客加自己思考才真正理解了。深深懷疑自己的理解能力。。。

此處參考了https://blog.csdn.net/flyinsilence/article/details/51854123,博主的解釋一開始我還是沒太看明白,看了好幾遍纔看懂,懂了之後才發現人家寫的真的是言簡意賅啊!

我就詳細的把自己的理解以及想到的例子寫出來,萬一有人也是不太明白這個呢。

舉個栗子

比如說我現在算出來了一個一維的座標X=10(odom-->base_link),但是這個位置的真實座標應該是X'=2(map-->base_link),也就是說我計算的座標和真實座標出現了偏差。但是ROS在說的時候換了個說法,不說計算出來的座標在map中漂了8,而是說是odom座標系相對於map座標系漂了8。所以此時base_link相對odom座標是真實座標x=2(因爲odom座標系短時間是準確的,如果是剛開始時odom和map重合,odom中的該座標就是真實座標);odom相對於map座標是driftX=8(map-->odom);最後計算出來的base_link相對於map的座標就是X=drixfX+X'=10了。

如果用IMU作積分的話,通過IMU獲得的是odom座標系下的座標,初始時odom和map重合,都爲0。那麼短時間內,由於IMU的漂移很小,所以獲得的位移deltaX是準確的,最終的在odom座標系下的座標是X=dextaX,在map中的座標X'也是deltaX。但是時間長了之後,IMU積分開始產生漂移driftX了,最終在map下的座標X=deltaX+driftX。由於我們定義IMU在短時間內產的的位移deltaX是準確的,所以deltaX是就是IMU在odom座標系下的真實位移,但是此時odom相對於map則漂移了driftX。

 

所以odom相當於是根據實際計算得到的座標和真實座標之間的變換虛擬出來的一個座標系。

 

Relationship between Frames


The map frame is the parent of odom, and odom is the parent of base_link. Although intuition would say that both map and odom should be attached to base_link, this is not allowed because each frame can only have one parent.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章