ros service
Server部分: #!/usr/bin/env pythonimport sys import osimport rospy #from beginner.srv import * from beginner.srv import AddTwoIntsdef 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"%edef 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 AddTwoIntsdef 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()
转载于:https://www.cnblogs.com/sea-stream/p/10070260.html
ros service相关推荐
- boost::bind with ros service,ros中ServiceServer用boost::bind绑定多个参数
boost::bind with ros service,ros中advertiseService用boost::bind绑定多个参数 直接上代码: #include <ros/ros.h> ...
- arduino设备跑 ros service server 的波折记
arduino设备跑 ros service server 的波折记. 引-- 参考前文https://blog.csdn.net/qq_38288618/article/details/104082 ...
- Learning ROS: Service and Client (C++)
本文主要部分来源于ROS官网的Tutorials. Writing a Service Node roscd beginner_tutorials gedit src/add_two_ints_ser ...
- ROS学习小笔记(Topic通信 ,service通信,参数服务器)
(菜鸡整理的学习笔记,原文链接已经挂上,不小心过来的朋友建议去博主那边学习,谢谢) 原文链接:https://blog.csdn.net/LoongEmbedded/article/details/1 ...
- ROS保姆级教程(二)--Service通讯方式实现
上一篇博客我们介绍了ROS的通信方式中的topic(话题)通信,我们知道topic是ROS中的一种单向的异步通信方式.然而有些时候单向的通信满足不了通信要求,比如当一些节点只是临时而非周期性的需要某些 ...
- ROS通信机制(二) —— 服务(service)与srv文件
文章目录 简述 特点 相关常用命令 通信模型 核心元素 通信过程 代码示例(服务端和客户端) 服务端(server.cpp) 客户端(client.cpp) 配置 CMakeLists.txt 编译和 ...
- ROS编程: 一些Tips
接触了快一年的ROS, 这段时间个人而言, 似乎完全没在日常的编程中对线程/IPC有所考虑. 这说明ROS是一个很易用的框架, 在编程上了屏蔽了很多系统知识, 可以更加专注于逻辑/算法等. 但是从程序 ...
- ROS Gazebo(三):启动gazebo/URDF
打开Gazebo的方式主要有两种:rosrun 和 roslaunch. 1.启动ROS节点 启动ROS节点.bring up 机器人的标准工具是roslaunch.打开一个空的Gazebo世界命令如 ...
- ROS系统 参数的获取和设置
cd ~/catkin_ws/src catkin_create_pkg learning_parameter roscpp rospy std_srvs rosparam 列出当前所有参数:rosp ...
最新文章
- OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码
- Parentheses Balance (括号平衡)---栈
- jsp ajax动态添加数据,jquery Ajax实现Select动态添加数据
- python3 pip 更换国内 pypi 镜像 源
- 编程之美3.2 电话号码对应英语字母
- 第二十二章:动画(十五)
- 帮你梳理springboot所有常用注解
- $compile 手动编译
- Linux下Samba服务器搭建
- VS Code 报错Vetur can‘t find ‘tsconfig.json‘ or ‘jsconfig.json‘的解决方法
- 资深前端工程师:裁人后,我总结了 7 个必备技能
- 181223每日一句
- Docker玩转Rhadoop
- ADS仿真设计AB类射频功率放大器
- QODBC查询Oracle中文乱码问题
- 典型问题分析——三方应用网络异常分析方法
- hexo史上最全搭建教程(转载)
- python控制ppt翻页_python 操作ppt
- snipeit 安装、备份文件恢复
- 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界 光照与材质专场
热门文章
- python爬虫教程网-Python爬虫全集
- python利器怎么编程-C++和Python混合编程的利器
- python爬取贴吧所有帖子-python爬取贴吧帖子
- python流程控制-Python 流程控制
- python提高办公效率-提高工作效率的一点建议
- python到底可以做什么-Python到底可以做什么?
- python3.7安装numpy模块-Python3.7模块numpy
- python比excel优势-python数据分析相对于bi和excel的优势是什么?
- python语言可以应用在哪些方面-python应用于哪些方面
- python做电脑软件-Python编程软件(专业电脑编程工具)V3.9.1 最新版