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官方教程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)