教程为赵虚左的天地良心ROS课程:link
服务通讯
服务通讯自定义srv调用
在模型实现中,ROS master 不需要实现,而连接的建立也已经被封装了,需要关注的关键点有三个:
- 服务端
- 客户端
- 数据
服务通讯和话题通讯的不同是,话题通讯的发送方,是主导方,他可以一直发送,无论接收方需不需要。但是服务通讯不同,接收方在这里变成了主导方,我要多少,你给我发送多少,我不要你就别给我发送。
厨房的话题通讯表现在,负责买西红柿和鸡蛋的人买了多少,负责处理西红柿和鸡蛋的人就要处理多少。而服务通讯可以理解为,负责做饭的人告诉买菜的人,我今天就需要两个西红柿,两个鸡蛋,不要买多。这样就是我需要多少,你就给我多少。
需求:
编写服务通信,客户端(厨师)提交两个数据至服务端(买菜的人),数据分别为西红柿(1块钱一个)和鸡蛋(1块钱一个)的数量,服务端(买菜的人)求和并响应结果到客户端(厨师)一共花了多少钱。
代码实现如下
具体函数介绍放在第三章,目前先熟悉流程
0.Vscode配置
需要像之前自定义 msg 实现一样配置settings.json 文件,如果以前已经配置且没有变更工作空间,可以忽略,如果需要配置,配置方式与之前相同:
{
"python.autoComplete.extraPaths": [
"/opt/ros/noetic/lib/python3/dist-packages",
]
}
1.发布方