07_Wrting_a_Service_Node_in_Python

仉昂熙
2023-12-01

机器人操作系统ROS1简要介绍,翻译自以下仓库:
ROS-Tutorials
原仓库是一系列的jupyter notebook,可以直接在jupyter环境下运行程序示例。

编写一个Service节点

这里我们将编写一个提供(“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()

下一节编写请求服务的节点:

Writing the Client Node in Python

 类似资料:

相关阅读

相关文章

相关问答