前言:
服务是另一种在节点之间传递数据的方式。服务其实就是同步的跨进程函数调用,让一个节点调用运行在另一个节点中的函数。服务适用于简单的请求/响应式交互场景,如询问节点的当前状态。
catkin_ws工作空间下my_code程序包里的文件目录结构:
1.定义一个节点服务端:
#!/usr/bin/env python
import rospy
from my_code.srv import WordCount,WordCountResponse #导入自定义服务类型WordCount
def count_words(request):
return WordCountResponse(len(request.words.split())) #定义一个回调函数
rospy.init_node('service_server') #初始化生成一个服务器节点
service = rospy.Service('word_count',WordCount,count_words) #声明服务(服务名、服务类型、回调函数)
rospy.spin()
这里使用自定义服务类型Word_Count