机器人操作系统ROS1简要介绍,翻译自以下仓库:
ROS-Tutorials
原仓库是一系列的jupyter notebook,可以直接在jupyter环境下运行程序示例。
这里我们将编写一个提供(“add_two_ints_server”)服务的节点,接受两个整数,返回和。
保持roscore运行。
from rospy_tutorials.srv import *
import rospy
def handle_add_two_ints(req):
print "Returning [%s + %s = %s]"%(req.a, req.b, (req.a + req.b))
return AddTwoIntsResponse(req.a + req.b)
使用 rospy 来写一个服务节点并不复杂,只需要初始化节点 init_node()
并声明服务即可:
rospy.init_node('add_two_ints_server')
s = rospy.Service('add_two_ints', AddTwoInts, handle_add_two_ints)
在这里,我们声明了一个新的服务叫做 add_two_ints
,服务类型是 AddTwoInts
. 所有的服务请求都将交给上面编写的 handle_add_two_ints
方程. handle_add_two_ints
方程被一个 AddTwoIntsRequest
的实例调用,返回一个 AddTwoIntsResponse
的实例.
和订阅节点一样, rospy.spin()
维持代码持续运行直到服务关闭。
print "Ready to add two ints."
rospy.spin()
下一节编写请求服务的节点: