| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> ROS通信机制二---服务通信 -> 正文阅读 |
|
[人工智能]ROS通信机制二---服务通信 |
文章目录参考链接ROS架构(五)——ROS的通信机制1. 服务通信模型服务通信是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。比如如下场景: 在上述场景中,就使用到了服务通信。 与上述应用类似的,服务通信更适用于对时时性有要求、具有一定逻辑处理的应用场景,节点关系一对多。 服务通信较之于话题通信更简单些,理论模型如下图所示,该模型中涉及到三个角色: ●ROS master(管理者) ROS Master 负责保管 Server 和 Client 注册的信息,并匹配话题相同的 Server 与 Client ,帮助 Server 与 Client 建立连接,连接建立后,Client 发送请求信息,Server 返回响应信息。 (2) Listener(也就是client)注册 (3) ROS Master实现信息匹配 (4) Listener与Talker建立网络连接 (6) Talker向Listener发布服务应答数据 需要注意:
2.服务通信示例示例: 2.1 自定义srv2.1.1 创建sum.srv文件sum.srv文件内容如下:
srv文件内容包括请求和响应部分,其中num1和num2对应请求部分,sum对应响应部分,这两部分用—分开。 2.1.2 配置package.xml添加编译依赖和执行依赖
2.1.3 配置CMakeLists.txt
2.1.4 编译编译后生成的中间文件在devel/include目录中 2.1.5配置c_cpp_properties.json文件为了方便代码提示以及避免误抛异常,需要先配置 vscode,将前面生成的 head 文件路径配置进 c_cpp_properties.json 的 includepath属性,增加的内容是"/home/kandi/catkin_ws/devel/include/**",
2.1 服务端实现代码:
编译之后,可以通过rosservice来测试编写的服务端实现是否正常 2.2 客户端代码:
2.3 CMakeLists.txt
2.4 编译执行执行的流程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:46:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |