ROS中TF广播和监听个人理解及消息查找

ROS学习古月居TF使用总结

大佬链接

最全的广播整理:
官方的transform介绍
四元数与欧拉角
ROS学习的另一个大佬的总结

整理了半年tf相关内容,然后古老师在最后的广播这块讲的也不是很详细,所以我查了很多资料,在这里记录一下我此时的看法和对坐标的理解给未来的我看。

总代码目录

The Code of TFboardcast

#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
#include <turtlesim/Pose.h>

std::string turtle_name;
void poseCallback(const turtlesim::Pose::ConstPtr& msg)
{
   
	static tf::TransformBroadcaster br;//定义一个广播
	//--------初始化坐标系数据--------
	tf::Transform transform;//定义一个transform类
	transform.setOrigin( tf::Vector3(msg ->x, msg->y, 0.0) );
	//设置transform坐标原始值
	
	tf::Quaternion q//定义一个四元数
	q.setRPY(0, 0, msg->theta);//设置四元数类中欧拉角的三个
	transform.setRotation(q);  //设置transform中的四元数的值
	//----------为什么这么初始化在后面总结有--------------
	br.sendTransform( tf::StampedTransform( transform, ros::Time::now(),"world",turtle_name) );
	//将该StampedTransform消息广播出去(注:不只是transform,还发送了world等信息)
	//该广播的名字就是turtle_name
}

int main( int argc, char** argv )
{
   
	ros::init(argc, argv, "my_tf_broadcaster" );
	//初始化节点,节点名字叫做my_tf_broadcaster
	ros::NodeHandle node;//创造一个节点句柄
	
	if( argc != 2)
	{
   
	  //判断给main函数输入的变量个数,2的时候说明有输入某值,也就是创造的海归的i拿工资
	  ROS_INFO("NEED TURTLE NAME");
	  return -1;
	 }
	 
	turtle_name = argv[1];//输入的第一个变量赋值给turtle_name
	
	ros::Subscriber sub = node.subscribe(turtle_name+"/pose", 10, &poseCallback);
	//创造一个订阅者,因为turtlesim_node里会自动发布海龟的位置坐标
 	ros::
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值