TF坐标系变换

  • Post author:
  • Post category:其他




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. 参考链接


TF官方教程



版权声明:本文为i_robots原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。