TF坐标系变换

TF坐标系变换

  • 1. 概述
  • 2. 代码
  • 3. 最终结果
  • 4. 参考链接

1. 概述

使用代码实例来理解tf发布信息中的位姿变换具体含义:在坐标系下描述坐标系到坐标系的变换关系,希望能帮助大家,同时给自己一个参考。

2. 代码

参考代码如下

#include 
#include 

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]。
    TF坐标系变换_第1张图片

4. 参考链接

TF官方教程

你可能感兴趣的:(ROS,slam,ubuntu)