ROS系列——ROS话题

ROS系列——ROS话题

话题通信是ROS最常用以及最基础的通信方法

1. Ros话题通信机制:

在这里插入图片描述

话题通信是一种支持一对多的异步通信机制,一般来说话题通信有一个发布者和一个订阅者,发布者将信息发布到话题上,订阅者从话题订阅信息,一对多的意思是一个话题可以有多个话题订阅者。异步通信机制的意思是:发布者只管发布话题而不在意有多少个订阅者,也不在意订阅者有没有成功订阅到信息,同时订阅者只管订阅话题,不管话题是谁发布的

2.topic命令行指令:

rostopic echo :打印话题信息到当前终端
rostopic hz :查看当前话题发布频率
rostopic info :在终端打印话题订阅者和发布者以及话题数据类型
rostopic list :列举当前所有话题
rostopic pub :在命令行端往话题输入信息,默认只发送一次
rostopic pub -r 10:循环发布,10hz
rostopic bw :查看话题带宽
rostopic find :根据消息数据类型来寻找话题
rostopic type :查看话题的数据类型

3.发布话题:

在这里插入图片描述

①创建一个发布者
②创建消息数据
③消息赋值
④将消息发布出去
ros::Publisher pub = nh.advertise<std_msgs::String>("topic_name", queue size);
std_msgs::String str;
str.data = "hello world";
pub.publish(str);

4.订阅话题:

在这里插入图片描述

①创建一个订阅者 Subscriber 
②创建一个回调函
void callback(const std_msgs::StringConstPtr& str)
{
... 
}
... 
ros::Subscriber sub = nh.subscribe("my_topic",queue size, callback)

5.自定义消息数据类型

rosmsg list   列出系统当前左右的消息数据类型
rosmsg show   查看消息数据类型里面的具体内容
rostopic type /topic_name | rosmsg show   很具话题查看消息数据类型的具体结构
①自定义msg文件
②添加编译规则
③添加描述规则

msg show 很具话题查看消息数据类型的具体结构
①自定义msg文件
②添加编译规则
③添加描述规则

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值