2、publisher于subsriber的编程实现

一、话题的模型

在这里插入图片描述
1、节点之间的通信可以通过消息来进行传递,而消息则封装在话题中,话题本质上是对套接字的一种封装。
注意:话题必须是唯一的。

2、话题方式通信模式的特性
发布者不知谁是订阅者,而订阅者只知道所订阅的某个话题,而不知道哪个节点可能发布消息到该主题,消息以未知的时间间隔发送,并且订阅者可能会丢失消息,这种通信方式适用于重复的消息,如传感器数值的发布,对于这种情况,传感器发布器不需要知道哪个或者多少个节点订阅其输出,发布者也将不会更改消息以响应来自用户的任何请求。

二、publisher的编程实现

(一)、实现步骤

1、工作空间的创建

(1)创建工作空间

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace//初始化工作空间创建CMakelists.txt

(2)编译工作空间

$ cd ~/catkin_ws/
$ catkin_make

(3)设置环境变量

$ source devel/setup.bash

(4)检查环境变量

$ echo $ROS_PACKAGE_PATH

2、在src中创建功能包

$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
其中 catkin_create_pkg为创建的命令,learning_topic为功能包的名称,roscpp rospy std_msgs geometry_msgs turtlesim为依赖

3、在功能包中添加节点

(1)、如何实现一个发布者的代码实现逻辑

初始化ROS节点;
向ROS Master注册节点信息,
包括发布的话题名和话题中的消息类型;
创建消息数据;
按照一定频率循环发布消息。

(2)、此处添加c++代码,代码如下:
/*** 该例程将发布turtle1/cmd_vel话题,消息类型geometry_msgs::Twist */
#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
int main(int argc, char *
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值