【ROS学习笔记与思考】2.7服务通信自定义srv调用

本文通过一个具体的案例——厨师和服务员之间的交互,详细介绍了ROS(Robot Operating System)中的服务通讯机制。与话题通讯不同,服务通讯由接收方主导,按需索取信息。文中还提供了具体的代码实现,帮助读者更好地理解服务通讯的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教程为赵虚左的天地良心ROS课程:link

服务通讯

服务通讯自定义srv调用

在模型实现中,ROS master 不需要实现,而连接的建立也已经被封装了,需要关注的关键点有三个:

  1. 服务端
  2. 客户端
  3. 数据

服务通讯和话题通讯的不同是,话题通讯的发送方,是主导方,他可以一直发送,无论接收方需不需要。但是服务通讯不同,接收方在这里变成了主导方,我要多少,你给我发送多少,我不要你就别给我发送。
厨房的话题通讯表现在,负责买西红柿和鸡蛋的人买了多少,负责处理西红柿和鸡蛋的人就要处理多少。而服务通讯可以理解为,负责做饭的人告诉买菜的人,我今天就需要两个西红柿,两个鸡蛋,不要买多。这样就是我需要多少,你就给我多少。

需求:

编写服务通信,客户端(厨师)提交两个数据至服务端(买菜的人),数据分别为西红柿(1块钱一个)和鸡蛋(1块钱一个)的数量,服务端(买菜的人)求和并响应结果到客户端(厨师)一共花了多少钱。

代码实现如下
具体函数介绍放在第三章,目前先熟悉流程

0.Vscode配置
需要像之前自定义 msg 实现一样配置settings.json 文件,如果以前已经配置且没有变更工作空间,可以忽略,如果需要配置,配置方式与之前相同:

{
    "python.autoComplete.extraPaths": [
        "/opt/ros/noetic/lib/python3/dist-packages",
    ]
}

1.发布方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薯一个蜂蜜牛奶味的愿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值