1. 概述
   
    使用代码实例来理解tf发布信息中的位姿变换具体含义:在
    
     父
    
    坐标系下描述
    
     父
    
    坐标系到
    
     子
    
    坐标系的变换关系,希望能帮助大家,同时给自己一个参考。
   
    
    
    2. 代码
   
参考代码如下
#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
int main(int argc, char** argv){
  ros::init(argc, argv, "my_tf_broadcaster");
  ros::NodeHandle node;
  tf::TransformBroadcaster br;
  tf::Transform transform;
  ros::Rate rate(10.0);
  while (node.ok()){
   //从父坐标系到子坐标系变换,是在父坐标系下的描述。
    transform.setOrigin( tf::Vector3(0.0, 2.0, 0.0) );
    transform.setRotation( tf::Quaternion(0, 0, 0, 1) );
    br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "turtle1", "carrot1"));
    rate.sleep();
  }
  return 0;
};
    
    
    3. 最终结果
   
    以
    
     turtle1
    
    坐标系为世界坐标系(固定坐标系)。从图中可以看到刚才发布的tf信息所表示的含义:
   
- 
     表示从
 
 父
 
 坐标系”turtle1″到
 
 子
 
 坐标系 “carrot1″的变换为[0.0, 2.0, 0.0],(其实可以认为当前
 
 只有父坐标系
 
 ,因此只能得到在父坐标系下的变换关系),这个变换关系是在
 
 父坐标系
 
 下的描述,如果是
 
 子
 
 坐标系的描述,那么变换关系会变成[0.0, -2.0, 0.0]。
 
   
    
    
    4. 参考链接
   
 
版权声明:本文为i_robots原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
