Course 3
TF(transform system)
TF的功能主要使用来定义,存储,管理各种坐标系之间的转换关系。要用tf软件来定义和存储各种转换关系,我们需要将转换关系添加到转换树中。从概念上说,就是每个节点对应一个坐标系,连接节点的变对应每一种转换关系,转换树的变默认是从父节点到子节点的转换关系。建立转换树之后,两个坐标系之间数据的转换就只是简单的通过调用一下tf库就可以了,使得一个坐标系可以很轻松的通过转换使用其他坐标系。
参考博客
命令行
打印关于当前变换树的信息
> rosrun tf tf_monitor
打印关于两个框架间变换的信息
> rosrun tf tf_echo source_frame target_frame
创建一个转换树的可视化图像(PDF)
> rosrun tf view_frames
监听者示例:
#include <ros/ros.h>
#include <tf2_ros/transform_listener.h>
#include <geometry_msgs/TransformStamped.h>
int main(int argc, char** argv) {
ros::init(argc, argv, "tf2_listener");
ros::NodeHandle nodeHandle;
tf2_ros::Buffer tfBuffer;
tf2_ros::TransformListener tfListener(tfBuffer);
ros::Rate rate(10.0);
while (nodeHandle.ok()) {
geometry_msgs::TransformStamped transformStamped;
try {
transf