ROS-TF-新建坐标系
阅读原文时间:2023年07月10日阅读:1

前言:在前面的试验中,我们分别有wolrd,turtle1和turtle2三个坐标系,并且world是turtle1和turtle2的父坐标系。现在我们来新建一个自定义坐标系,让turtle2跟着新的坐标系”carrot“运动。

参考自:http://wiki.ros.org/tf/Tutorials/Adding%20a%20frame%20%28C%2B%2B%29

一、新建源文件

新建frame_tf_broadcaster.cpp文件,内容如下:

#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(, , , ) );//设置新坐标系相对旋转关系
br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "turtle1", "carrot1"));//创建一个新坐标系carrot1,距离父坐标系turtle1距离2米
rate.sleep();

}
;
};

二、修改launch文件

在launch文件中添加代码:

三、修改广播信息

修改turtle_tf_listener.cpp文件

listener.lookupTransform(), transform);

四、运行

编译并运行launch文件

roslaunch learning_tf start_demo.launch

现在turtle2始终跟随在carrot坐标系运动。

-END-

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章