Rospy的官方教程代码讲解(四)服务

本文详细讲解了使用Rospy进行ROS服务端和客户端的代码实现,同时介绍了ROS参数服务器的原理和应用,包括如何在rospy中操作参数。尽管部分内容侧重概念介绍,博主分享了近期因工作压力导致的状态,对学习与生活的反思,以及对社会现象的隐晦评论。
摘要由CSDN通过智能技术生成

Rospy的官方教程代码讲解(四)服务与参数

服务

服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)
具体的概念和命令行应用请参见wiki
直接看代码:

服务端

# 首先在AddTwoInts.srv中定义服务,两个输入一个输出
    int64 a
    int64 b
    ---
    int64 sum

然后是服务的代码:

#!/usr/bin/env python
# Software License Agreement (BSD License)
#
# Copyright (c) 2008, Willow Garage, Inc.
# All rights reserved.

## 通过rospy service返回两个整数的和

NAME = 'add_two_ints_server'

# 获取刚刚定义的服务
from rospy_tutorials.srv import *
import rospy 

def add_two_ints(req):
    print("Returning [%s + %s = %s]" % (req.a, req.b, (req.a + req.b)))
    return AddTwoIntsResponse(req.a + req.b)

def add_two_ints_server():
    rospy.init_node(NAME)
    s = rospy.Service('add_two_ints', AddTwoInts, add_two_ints)

    # spin() keeps Python from exiting until node is shutdown
    rospy.spin()

if __name__ == "__main__":
    add_two_ints_server()

客户端

#!/usr/bin/env python
# Software License Agreement (BSD License)
#
# Copyright (c) 2008, Willow Garage, Inc.
# All rights reserved.

## 通过rospy service 客户端求两个整数的和

import sys
import os
import rospy

# 获取求和的服务 
from rospy_tutorials.srv import *

## @param x int: 加数
## @param y int: 被加数(这好像是小学时代学的叫法( ̄▽ ̄))
def add_two_ints_client(x, y):

    # 注意:rospy.init_node()在调用服务时不时必须的,因为客户端可以不是一个节点
    
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值