ROS通讯机制补充说明

我是跟着bilibili中的一位up主学习ros基础,视频链接如下:

038话题通信_理论模型_Chapter2-ROS通信机制_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ci4y1L7ZZ/?p=40&spm_id_from=333.880.my_history.page.click&vd_source=3b6cdacf9e8cb3171856fe2c07acf498视频中用到的课程文档,up主用gitbook发布:

Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程http://www.autolabor.com.cn/book/ROSTutorials/我对ros、Ubuntu没有经验。up主整理的课程文档很详细,但是缺少我难以理解的细节问题,因此我发布了一系列博客,对于每一个章节进行补充说明。方便以后复习、借鉴!

1、话题通信

1.1 话题通信理论模型

相亲来解释话题通信实现模型,便于理解:

  

 

 1.2 话题通信基本操作A(C++)

1.2.1 发布方

1、#include "std_msgs/String.h" ,这是String类型的头文件(因为要发布的数据类型需要用到字符串型)

2、#include<sstream>,等同于c++语言中的iostream头文件

3、init(参数1,参数2,参数3)函数的参数3是自定义节点名称

4、ok()函数作用是,只要节点还活着,就能返回true

5、ss.str()返回ss对象中的字符串

6、ros::spinOnce()函数是官方建议,用于处理回调函数(咱们的程序暂无应用)

1.2.2 订阅方 

  •  nh.subscribe中,泛型:接受的消息类型(可以不写),参数1:接收的话题,参数2:阀值,参数3:回调函数
  • doMsg是回调函数,参数:订阅消息的常量指针的引用

1.2.3 配置 CMakeLists.txt

  • add_executable(自定义节点映射名称  src/源文件名称)
  • target_link_libraries(自定义节点映射名称  ${catkin_LIBRARIES} )

 1.3 话题通信基本操作B(python)

解耦合:即便使用不同的语言编写节点,他们之间也是可以实现数据交换。也就是说,可以使用c++编写发布方,python编写订阅方,他们之前也可以正常数据交换。

2、服务通信

2.1 服务通信理论模型

 

 2.2 服务通信自定义srv

2、配置文件

2.3 

1、服务端

  •  nh.advertiseService函数,参数1:自定义话题名称,参数2:回调函数
  • doReq回调函数,形参1:当前功能包下AddInts下的Request类型的引用,形参2:当前功能包下AddInts下的Response类型的引用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值