ROS系统中Service 通讯的原理及实现

本文深入解析ROS中的Service通讯机制,包括同步数据访问和响应反馈的特点,以及如何创建Server和Client。通过实例展示了Server端的创建、调试方法,以及使用rosservice命令行工具进行调试。同时,介绍了Client端的创建和调试流程,帮助理解ROS Service在实际应用中的工作原理。

本文我们将会了解 Service 通讯原理和机制,通过编写 Server 端和 Client 端实现 Service 通讯,并通过命令行工具或者图形化工具进行调试。最后再介绍几个常用的 rosservice 命令。

Service 通讯架构

ROS 还提供了节点与节点间通讯的另外一种方式:Service 通讯。

Service 通讯分为 client 端和 server 端。

  • client 端负责发送请求(Request)给 server 端。
  • server 端负责接收 client 端发送的请求数据。
  • server 端收到数据后,根据请求数据和当前的业务需求产生数据,将数据(Response)返回给 client 端。

Service 通讯特点:

  • 同步数据访问。
  • 具有响应反馈机制。
  • 一个 server 处理多个 client 的请求。
  • 注重业务逻辑处理。

Service 通讯的关键点:

  • service 的地址名称。
  • client 端访问 server 端的数据格式。
  • server 端响应 client 端的数据格式。

Server 创建流程 

构建一个 Service 通讯,需要的是一个 client 端和一个 server 端。server 端为 client 端提供服务,帮助 client 端进行加法的求和计算。

首先初始化一个工作空间:

mkdir -p /home/shiyanlou/ws/src
cd /home/shiyanlou/ws
# 对工作空间进行编译
catkin_make

进入 ws/src 目录下,执行如下命令创建名为 demopy 的 Package 以及包下面的 scripts 文件夹:

cd /home/shiyanlou/ws/src
catkin_create_pkg demopy roscpp rospy rosmsg
mkdir /home/shiyanlou/ws/src/demopy/scripts

在 demopy/scripts 目录新建一个 server_node.py 文件,并赋予该文件可执行权限:

chmod +x /home/shiyanlou/ws/src/demopy/scripts/server_node.py
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值