iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Software Development

ROS進階學習筆記系列 第 24

Day24 - ROS TF Time

  • 分享至 

  • twitterImage
  •  

繼續深耕tf的部分,我們已經知道tf就是用來監聽不同座標系統frame之間的關聯的一個樹狀結構,這個樹可以隨著時間改變(default是10秒一次),因此我們可以透過lookupTransform()來查看最新的tf資訊,也可以用同一個API查看指定時間的tf資訊:

listener.lookupTransform("/turtle2", "/turtle1", ros::Time(0), transform);

其中第三個參數ros::Time(0)就是可以指定特定時間的tf,time=0表示最新一筆收到的tf資訊,也可以使用ros::Time::now()來獲得當前時間的tf資訊:

listener.lookupTransform("/turtle2", "/turtle1", ros::Time::now(), transform);

除了lookupTransform()以外,還有一個可以用的API就是waitForTransform(),他會block住直到收掉兩個frame的資料以後才做處理,並且可以設定timeout,超時就不採用這樣。

ros::Time now = ros::Time::now();
listener.waitForTransform("/turtle2", "/turtle1", now, ros::Duration(3.0));
listener.lookupTransform("/turtle2", "/turtle1", now, transform);

前兩個參數就是要監聽的frame,第三個參數表示當前時間,第四個就是timeout設定的時間囉!


筆者今天出差回來太累啦~~~本來要連time travel都一起講的,但是時間真的不夠用QQ

Reference

http://wiki.ros.org/tf/Tutorials/tf%20and%20Time%20%28C%2B%2B%29
http://wiki.ros.org/tf/Tutorials/Time%20travel%20with%20tf%20%28C%2B%2B%29


上一篇
Day 23 - ROS TF Frame
下一篇
Day 25 - ROS pluginlib
系列文
ROS進階學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言