tf坐标系统
https://blog.csdn.net/Kalenee/article/details/84332247
(1)采用tf_monitor,查看当前TF树中所有坐标系的发布状态。
rosrun tf tf_monitor
(2)采用rqt_tf_tree,查看当前所有坐标之间的变换关系,可通过刷新更新当前树的内容。
rosrun rqt_tf_tree rqt_tf_tree
(3)采用tf_echo,获取reference_frame和target_frame之间的坐标变换关系。
rosrun tf tf_echo [reference_frame] [target_frame]
(4)rviz is a visualization tool that is useful for examining tf frames. Let's look at our turtle frames using rviz. Let's start rvizwith the turtle_tf configuration file using the -d option for rviz:
rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
tf的程序呢监听:(注意需要在cmakelist 和package.xml文件中将tf相关信息加入)
#include <ros/ros.h>
#include <tf/transform_listener.h>
#include <geometry_msgs/Twist.h>
int main(int argc, char** argv){
ros::init(argc, argv, "my_tf_listener");
ros::NodeHandle node;
tf::TransformListener listener;
ros::Rate rate(10.0);
while (node.ok()){
tf::StampedTransform transform;
try{
listener.lookupTransform("/base_link", "/foot_1",
ros::Time(0), transform);
ROS_INFO(
"x,y,z:%.2f, %.2f. %.2f",
transform.getOrigin().x(),transform.getOrigin().y(),transform.getOrigin().z());
}
catch (tf::TransformException &ex) {
ROS_ERROR("%s",ex.what());
ros::Duration(1.0).sleep();
continue;
}
rate.sleep();
}
return 0;
};