ROS學習之tf基本用法

2021-09-10 09:29:10 字數 1655 閱讀 5347

主要細節參見wiki,這裡我寫一下它的broadcaster和listener做個記錄:

tf_broadcaster.cpp:

#include#includeint main(int argc, char** ar**)

}

在broadcaster中我們主要描述的是兩個座標frame之間的位置關係,這裡是base_link與base_laser之間的位置關係,表base_laser在base_link的x=0.1,y=0.0,z=0.2的位置,旋轉方面quaternion置0,沒有變化。

tf_listener.cpp:

#include#include#includevoid transformpoint(const tf::transformlistener& listener)catch(tf::transformexception& ex)} 

int main(int argc, char** ar**)

在cmakelists檔案中加入:

find_package(catkin required components

roscpp

rospy

std_msgs

message_generation

actionlib_msgs

##新增tf包

tf

actionlib

)add_executable(tf_broadcaster src/tf_broadcaster.cpp)

add_executable(tf_listener src/tf_listener.cpp)

target_link_libraries(tf_broadcaster $)

target_link_libraries(tf_listener $)

依次執行,會發現出現結果:

[ info] [1472897890.623220105]: base_laser: (1.00, 0.20. 0.00) -----> base_link: (1.10, 0.20, 0.20) at time 1472897890.61

[ info] [1472897891.623229008]: base_laser: (1.00, 0.20. 0.00) -----> base_link: (1.10, 0.20, 0.20) at time 1472897891.61

[ info] [1472897892.624179159]: base_laser: (1.00, 0.20. 0.00) -----> base_link: (1.10, 0.20, 0.20) at time 1472897892.61

[ info] [1472897893.622589774]: base_laser: (1.00, 0.20. 0.00) -----> base_link: (1.10, 0.20, 0.20) at time 1472897893.61

[ info] [1472897894.624529454]: base_laser: (1.00, 0.20. 0.00) -----> base_link: (1.10, 0.20, 0.20) at time 1472897894.61

顯示出了兩座標關係~~

ROS學習之TF變換

tf能夠根據時間緩衝並維護多個參考係之間的座標變換,可以在任意時間,將點 向量 等資料的座標,完成座標變換。tf的使用方法 兩個概念了解一下 監聽tf變換 接收並快取系統中發布的所有參考係變換,並從中查詢所需要的參考係變換。廣播tf變換 向系統中廣播參考係之間的座標變換關係。系統中更能可能會存在多個...

ROS學習之座標變換tf

即使前方荊棘滿地,也要跨上戰馬,一路前行!keep learning,keep programing ros中的座標變換主要形式為廣播和監聽,可以發布座標系a 座標系b與世界座標系的關係,可以監聽得到座標系a與座標系b之間的轉換關係,本文主要參考古月老師的教程,發布turtle1 turtle3與w...

ROS學習之tf在rviz中的顯示

昨天粗略看了一下ros中rviz的用法。事實,他就是乙個視覺化的工具。wiki的使用者手冊 筆者按照教程操作,在最後使用這個命令 rosrun rviz rviz d rospack find turtle tf rviz turtle rviz.rviz 顯示出來的並不是教程中截圖的那樣,而是 左...