关于rospy 中service的理解及例子程序
2017-10-07 21:00
183 查看
Server部分:
#!/usr/bin/env python
import sys
import os
import rospy
#from beginner.srv import *
from beginner.srv
import AddTwoInts
def
add_two_ints_client(x,y):
rospy.wait_for_service('add_two_ints')# rospy.wait_for_service(‘service的tipoc’)
try:
add_two_ints=rospy.ServiceProxy('add_two_ints',AddTwoInts)#client请求(request)后server的返回值(response)add_two_ints 通过rospy.ServiceProxy的方式向service发送(request)请求
resp1=add_two_ints(x,y) #将参数发送给server
return resp1.sum
except rospy.ServiceException, e:
print
"Service call failed: %s"%e
def
usage():
return
"%s [x,y]"%sys.argv[0]
if
__name__=="__main__":
if
len(sys.argv)==3:
x=int(sys.argv[1])
y=int(sys.argv[2])
else:
print usage()
sys.exit(1)
print"Resquesting %s+%s"%(x,y)
print"%s+%s=%s"%(x,y,add_two_ints_client(x,y))
Client部分:
import rospy
from beginner.srv
import *
#from beginner.srv import *
#from beginner.srv import AddTwoInts
def
handle_add_two_ints(req):
print("Returning[%s+%s=%s]"%(req.a,req.b,(req.a+req.b)))
sum=req.a+req.b
return AddTwoIntsResponse(sum)
def
add_two_ints_server():
rospy.init_node('add_two_ints_server')
s = rospy.Service('add_two_ints',AddTwoInts,handle_add_two_ints)#服务节点,服务类型,这里必须和AddTwoInts.srv的文件名一致,处理函数 处理函数调用和返回实例化的AddTwoIntsRes
print"Ready to add Two Ints"
rospy.spin()
if
__name__=="__main__":
add_two_ints_server()
#!/usr/bin/env python
import sys
import os
import rospy
#from beginner.srv import *
from beginner.srv
import AddTwoInts
def
add_two_ints_client(x,y):
rospy.wait_for_service('add_two_ints')# rospy.wait_for_service(‘service的tipoc’)
try:
add_two_ints=rospy.ServiceProxy('add_two_ints',AddTwoInts)#client请求(request)后server的返回值(response)add_two_ints 通过rospy.ServiceProxy的方式向service发送(request)请求
resp1=add_two_ints(x,y) #将参数发送给server
return resp1.sum
except rospy.ServiceException, e:
"Service call failed: %s"%e
def
usage():
return
"%s [x,y]"%sys.argv[0]
if
__name__=="__main__":
if
len(sys.argv)==3:
x=int(sys.argv[1])
y=int(sys.argv[2])
else:
print usage()
sys.exit(1)
print"Resquesting %s+%s"%(x,y)
print"%s+%s=%s"%(x,y,add_two_ints_client(x,y))
Client部分:
import rospy
from beginner.srv
import *
#from beginner.srv import *
#from beginner.srv import AddTwoInts
def
handle_add_two_ints(req):
print("Returning[%s+%s=%s]"%(req.a,req.b,(req.a+req.b)))
sum=req.a+req.b
return AddTwoIntsResponse(sum)
def
add_two_ints_server():
rospy.init_node('add_two_ints_server')
s = rospy.Service('add_two_ints',AddTwoInts,handle_add_two_ints)#服务节点,服务类型,这里必须和AddTwoInts.srv的文件名一致,处理函数 处理函数调用和返回实例化的AddTwoIntsRes
print"Ready to add Two Ints"
rospy.spin()
if
__name__=="__main__":
add_two_ints_server()
相关文章推荐
- 关于APUE 程序清单8-5的理解
- 关于服务程序(service)的命令(windows\linux)
- 关于APUE 程序清单8-5的理解
- 关于微信及微信小程序的理解
- windows service程序的入门范例(三)——真正好用的实战例子
- 关于程序的理解_Terry Crowley
- 关于第7讲3D-2D实践程序中DMatch m:matches的理解
- 关于Service的一些理解
- 关于谷歌官方对fragment交互数据的例子理解
- 个人关于程序和系统方面知识的疑问--------:exe 、dll 、库、api 该咋理解???
- Android关于Service的几点理解
- 再也不用担心javascript的this---从代码去理解(第三篇)--关于this的典型例子
- 关于SendMessage和PostMessage的理解的例子
- windows下 python 关于管通道(程序回显)处理的一个小例子
- 关于微信小程序开发wx:key字段标签的理解
- 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)
- 关于python中闭包的理解和小例子
- 关于RTSP的理解和例子说明
- hadoop的mapreduce的join操作原理【里面用例子讲解的,但是没理解,怎么执行程序】
- 关于service的理解和使用。