ROS系列——ROS话题

ROS系列——ROS话题

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

1. Ros话题通信机制:

ROS系列——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系列——ROS话题

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

4.订阅话题:

ROS系列——ROS话题

①创建一个订阅者 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文件
②添加编译规则
③添加描述规则

上一篇:ROS系列——launch para


下一篇:ROS通信机制(四) —— 动作(action)与action文件