一、创建功能包
$ cd ~/catkin_ws/src
$ catkin_create_plg learning_tf roscpp rospy tf turtlesim
创建完后如下图所示:
二、创建tf广播器代码(C++)
实现一个tf广播器
- 定义TF广播器;
- 创建坐标变换值 ;
- 发布坐标变换
代码如下所示:
#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
#include <turtlesim/Pose.h>
std::string turtle_name;
void poseCallback(const turtlesim::PoseConstPtr& msg)
{
// 创建tf的广播器
static tf::TransformBroadcaster br;
// 初始化tf数据
tf::Transform transform;
transform.setOrigin( tf::Vector3(msg->x, msg->y, 0.0) );
tf::Quaternion q;
q.setRPY(0, 0, msg->theta);
transform.setRotation(q);
// 广播world与海龟坐标系之间的tf数据
br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "world", turtle_name));
}
int main(int argc, char** argv