ROS-TF-新建坐标系
2024-09-01 23:20:37
前言:在前面的试验中,我们分别有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 <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(, , , ) );//设置新坐标系相对旋转关系 br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "turtle1", "carrot1"));//创建一个新坐标系carrot1,距离父坐标系turtle1距离2米 rate.sleep(); } ; };
二、修改launch文件
在launch文件中添加代码:
<launch> ... <node pkg="learning_tf" type="frame_tf_broadcaster" name="broadcaster_frame" /> </launch>
三、修改广播信息
修改turtle_tf_listener.cpp文件
listener.lookupTransform(), transform);
四、运行
编译并运行launch文件
roslaunch learning_tf start_demo.launch
现在turtle2始终跟随在carrot坐标系运动。
-END-
最新文章
- [LeetCode] Wiggle Subsequence 摆动子序列
- AFN断点续传思路
- [转]ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
- September 19th 2016 Week 39th Monday
- 47. Largest Rectangle in Histogram &;&; Maximal Rectangle
- 升级sp1后文档无法编辑
- 页面设计--CheckBoxList
- Stackdump: 一个可以离线看stackoverflow的工具
- setTimeout setInterval 带参数的问题
- 第9课_2_dbsoft安装
- DOM的内部插入和外部插入
- 忘记block格式 xib加载没有计算导航栏和tabbar的大小
- GBK,UTF8是什么?有什么区别,做网站选择哪种好?
- iOS逆向工程,(狗神)沙梓社大咖免费技术分享。
- The method queryForMap(String, Object...) from the type JdbcTemplate refers to the missing type DataAccessException
- 关于mongodb按照字段模糊查询方法
- MySQL基本语句与经典习题
- 记录一次DataTable排序的问题
- 问题:这个新申请的内存为什么不能free掉?(已解决)
- Kotlin入门第一课:从对比Java开始