P75优化程序,动态传入参数

文章介绍了如何优化一个ROS程序,使其能在执行时动态传入参数,通过sys.argv获取命令行参数,并用这些参数初始化ROS服务客户端,进行服务调用。同时,文章还涉及了ROS服务通信的检测,包括启动服务端和客户端,以及查看通信结果。
摘要由CSDN通过智能技术生成

一、目标

优化程序,P74中的两个参数是固定的。修改后,可以在执行节点时,动态的传入参数

1、导包

2、判断

3、得到数据

sys.argv有三个参数,sys.argv[0]是文件名字。sys.argv[1]是第一个参数。

修改后的程序:

#!/usr/bin/env python2
import rospy
from plumbing_server_client.srv import AddInts,AddIntsRequest,AddIntsResponse
import sys
"""
客户端:组织并提交请求,处理服务端给出的响应
    1.导包
    2.初始化ROS节点
    3.创建客户端对象;
    4.组织请求数据,并发送请求;
    5.处理响应.

优化:
在执行节点时,动态传入参数
"""
if __name__=="__main__":
    #判断参数长度
    if len(sys.argv) !=3:
        rospy.logerr("传入的参数不对")
        sys.exit(1)
    # 2.初始化ROS节点
    rospy.init_node("guangTouQiang")
    # 3.创建客户端对象;
    client= rospy.ServiceProxy("addInts",AddInts)
    # 4.组织请求数据,并发送请求;
    num1=int(sys.argv[1])
    num2=int(sys.argv[2])
    response=client.call(num1,num2)
    # 5.处理响应.
    rospy.loginfo("响应的数据:%d",response.sum)

二、检测服务通信

1、开启核心

2、启动服务端

3、启动客户端

source ./devel/setup.bash

rosrun plumbing_server_client demo02_client_p.py  12 21

4、结果展示

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值