编写一个tf广播
来源:互联网 发布:大数据调研提纲 编辑:程序博客网 时间:2024/06/03 18:57
tf broadcaster
1 #include <ros/ros.h> 2 #include <tf/transform_broadcaster.h>//专用头文件 3 #include <turtlesim/Pose.h> 4 5 std::string turtle_name; 6 7 8 9 void poseCallback(const turtlesim::PoseConstPtr& msg){ 10 static tf::TransformBroadcaster br;//穿件transform broadcaster对象 11 tf::Transform transform; 12 transform.setOrigin( tf::Vector3(msg->x, msg->y, 0.0) ); 13 tf::Quaternion q; 14 q.setRPY(0, 0, msg->theta);//创建一个transform对象,将消息从2d 乌龟位姿赋值到3d转换中 15 transform.setRotation(q);//设置旋转 16 br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "world", turtle_name)); 17 } 18//这是真正的工作完成的地方。用TransformBroadcaster发送一个变换需要四个参数。
- 首先,我们通过转换本身。
现在我们需要给发布的变换一个时间戳,我们会用当前时间ros :: Time :: now()来标记它。
然后,我们需要传递我们创建的链接的父框架的名称,在这种情况下,“world”
- 最后,我们需要传递我们正在创建的链接的子框架的名称,在这种情况下,这是乌龟本身的名称。
注意:sendTransform和StampedTransform具有父母和子女相反的顺序。
19 int main(int argc, char** argv){20 ros::init(argc, argv, "my_tf_broadcaster"); 21 if (argc != 2){ROS_ERROR("need turtle name as argument"); return -1;}; 22 turtle_name = argv[1]; 23 24 ros::NodeHandle node; 25 ros::Subscriber sub = node.subscribe(turtle_name+"/pose", 10, &poseCallback); 26 27 ros::spin(); 28 return 0; 29 };CMakeList.txt
add_executable(turtle_tf_broadcaster src/turtle_tf_broadcaster.cpp)target_link_libraries(turtle_tf_broadcaster ${catkin_LIBRARIES})launch文件 start_demo.launch
<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/> <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/> <!-- Axes --> <param name="scale_linear" value="2" type="double"/> <param name="scale_angular" value="2" type="double"/> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" /> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" /> </launch>
阅读全文
0 0
- 编写一个tf广播
- 编写一个tf listener
- 使用tf库:编写tf广播器(C++)
- Gmapping从开始到放弃—写一个TF 广播
- 使用tf库:编写tf监听器
- Broadcast广播学习一个
- TF
- tf
- 一个测试tf卡性能的脚本
- ROS进二阶学习笔记(1) TF 学习笔记2: -- TF Broadcaster 编写 (Python)
- android 广播,manifest.xml注册,代码编写
- 利用广播事件编写短信窃听器
- 一个简单广播数据包代码
- 一个简单的广播Demo
- 发送一个动态的广播
- android中对u盘以及tf卡插入的广播监听
- scikit-learn:0.3. 从文本文件中提取特征(tf、tf-idf)、训练一个分类器
- scikit-learn:0.3. 从文本文件中提取特征(tf、tf-idf)、训练一个分类器
- 作业
- 决策单调性的利用 jzoj5427【NOIP2017提高A组集训10.25】吃草
- PAT Basic 1007
- mikroC PRO for PIC32 2017(PIC32编译器) v4.0.0官方版下载
- String 类中 split方法问题 获取小数点前的字符串两种方法
- 编写一个tf广播
- k近邻算法(KNN)
- <分块>[HNOI 2010] 弹飞绵羊
- DockerToolbox安装
- 响应式网页设计优势:流体网格的网站适合响应式网页设计。
- STL-链表
- softirq_init
- LuoguP1351[NOIP2014] 联合权值 解题报告【树形DP】
- JAVA课程学习九:类训练-学生管理实现