對坐標轉(zhuǎn)換的理解
坐標變換是在機器人控制領(lǐng)域十分常見的操作,因為機器人的每一個關(guān)節(jié)都需要坐標轉(zhuǎn)換來進行整體維護。他們需要一套統(tǒng)一的坐標系統(tǒng),以確定每兩個部件(比如后輪和前舵機)之間的關(guān)系。

tf_static_tranform_publisher
坐標變換的使用者
坐標變換的發(fā)布者
TF發(fā)布者可以發(fā)布兩個坐標系之間的差值關(guān)系,即發(fā)布以后,ros系統(tǒng)可以通過運算得到關(guān)聯(lián)坐標系之間的變換關(guān)系,進而得到一些希望計算的位置信息。
通常,位置的發(fā)布者為傳感器處理模塊,例如輪式里程計,amcl融合定位,ekf融合定位等。
-
這里展示一個amcl發(fā)布odom與map坐標關(guān)系的例子。
amcl發(fā)布的odom坐標系
得到的結(jié)果:

image.png
即amcl發(fā)布了機器人的里程坐標系與地圖坐標系的轉(zhuǎn)換關(guān)系,map作為父節(jié)點,即參考系,得到了odom相對地圖的位移,并發(fā)布給其他訂閱者使用。
這里我們也可以參照amcl相關(guān)代碼。其中的frame_id即map,child_frame_id即自身位置所在坐標系(odom)。

amcl中發(fā)布tf變換相關(guān)代碼

image.png
