版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS应用开发技术ROS自定义消息接口-服务(上)01知识回顾02文件创建与编写03文件运行目录CONTENTS知识回顾自定义服务消息回顾通过定义.srv文件实现节点间服务通信接口自定义服务消息支持功能复杂功能的交互,如运动规划、图像处理等文件创建与编写C++实训操作进入learn_service功能包目录,新建srv文件夹,创建IntPlus.srv文件操作步骤uint8auint8b---uint8result文件内容文件内我们可以去定义request和response,以虚线为界,上面是request,下面是response。CMakelist.txt配置<build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend>package.xml#在find_package里边加上message_generationadd_service_files(FILESIntPlus.srv)generate_messages(DEPENDENCIESstd_msgs)CMakeList.txt在package.xml文件中添加构建依赖和执行依赖,打开CMakeList.txt文件添加编译选项。编译与服务消息查询rossrvshowlearn_service/IntPluscatkin_make使用catkin_make命令编译,使用rossrvshow命令查询自定义服务消息是否生成。IntPlus_client.cpp文件编写#include<ros/ros.h>#include"learn_service/IntPlus.h"#include<iostream>usingnamespacestd;intmain(intargc,char**argv){inti,k;cin>>i;cin>>k;ros::init(argc,argv,"IntPlus_client");//初始化ROS节点ros::NodeHandlenode;//创建节点句柄ros::service::waitForService("/Two_Int_Plus");
IntPlus_client.cpp文件编写ros::ServiceClientIntPlus_client=node.serviceClient<learn_service::IntPlus>("/Two_Int_Plus");learn_service::IntPlussrv;srv.request.a=i;srv.request.b=k;ROS_INFO("Callservicetoplus%dand%d",srv.request.a,srv.request.b);IntPlus_client.call(srv);ROS_INFO("Showtheresult:%d",srv.response.result);//显示服务调用结果
return0;}IntPlus_server文件编#include<ros/ros.h>#include"learn_service/IntPlus.h"boolIntPlusCallback(learn_service::IntPlus::Request&req,learn_service::IntPlus::Response&res){ROS_INFO("number1is:%d,number2is:%d",req.a,req.b);//显示请求数据res.result=req.a+req.b;//反馈结果为两数之和returnres.result;}intmain(intargc,char**argv){ros::init(argc,argv,"IntPlus_server");//ROS节点初始化ros::NodeHandlen;//创建节点句柄ros::ServiceServerInt_Plus_service=n.advertiseService("/Two_Int_Plus",IntPlusCallback);ROS_INFO("Readytocaculate.");ros::spin();return0;}CMakeLists.txt配置修改CMakeLists.txt文件,添加右侧内容add_executable(IntPlus_clientsrc/IntPlus_client.cpp)target_link_libraries(IntPlus_client${catkin_LIBRARIES})add_dependencies(IntPlus_client${PROJECT_NAME}_generate_messages_cpp)add_executable(IntPlus_serversrc/IntPlus_server.cpp)target_link_libraries(IntPlus_server${catkin_LIBRARIES})add_dependencies(IntPlus_server${PROJECT_NAME}_generate_messages_cpp)文件运行程序启动231rosrunlearn_serviceIntPlus_serverrosrunlearn_serviceIntPlus_client编译功能包roscore启动服务端和客户端启动roscorecatkin_makeROS应用开发技术ROS自定义消息接口-话题(下)01文件编写02文件运行目录CONTENTS文件编写模块化架构Information_subscriber.py订阅者发布者进入learn_topic功能包的scripts文件夹下,编写一个发布者和一个订阅者来使用之前自定义的话题消息Information_publisher.pyInformation_publisher.py文件编写importrospyfromlearn_topic.msgimportInformation#导入自定义的msgdefinformation_publisher():rospy.init_node('information_publisher',anonymous=True)info_pub=rospy.Publisher('/company_info',Information,queue_size=6)rate=rospy.Rate(10)#设置循环的频率whilenotrospy.is_shutdown():info_msg=Information()info_pany="Yahboom";info_msg.city="Shenzhen";info_pub.publish(info_msg)#发布消息rospy.loginfo("Thisis%sin%s.",info_pany,info_msg.city)#打印发布消息rate.sleep()#按照循环频率延时if__name__=='__main__':try:information_publisher()exceptrospy.ROSInterruptException:passInformation_subscriber文件编写importrospyfromlearning_topic.msgimportInformation#导入自定义的msgdefCompanyInfoCallback(msg):rospy.loginfo("company:name:%scity:%s",pany,msg.city)#打印订阅接收到信息defInfomation_subscriber():rospy.init_node('Infomation_subscriber',anonymous=True)#ROS节点初始化
#创建一个Subscriber,订阅名为/company_info的topic,注册回调函数personInfoCallbackrospy.Subscriber("/company_info",Information,CompanyInfoCallback)rospy.spin()#循环等待回调函数if__name__=='__main__':Infomation_subscriber()赋予执行权限为Python文件添加可执行权限。执行权限使用chmod命令添加执行权限,非root用户需在命令前加sudo。sudochmod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江嘉兴市海宁市国土空间规划设计有限公司招聘综合及对象笔试历年参考题库附带答案详解
- 2025江苏扬州市高邮市人力资源服务有限公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 2025广西河池市天峨现代林业投资有限公司天峨现代投资发展集团有限公司联合公开招聘9人笔试历年参考题库附带答案详解
- 2025广东深圳市优才人力资源有限公司招聘聘员(派遣至坂田街道)拟聘人员笔试历年参考题库附带答案详解
- 2025年陕西海川医药有限公司招聘(40人)笔试历年参考题库附带答案详解
- 2025年河北省保定市唐县国有企业公开招聘工作人员18名笔试历年参考题库附带答案详解
- 2025山东高唐县鱼丘湖风景区开发建设有限公司招聘18人笔试历年参考题库附带答案详解
- 2025容诚会计师事务所(特殊普通合伙)校园招聘895人笔试历年参考题库附带答案详解
- 2025安徽省白湖阀门厂有限责任公司招聘合同制用工人员5人笔试历年参考题库附带答案详解
- 2025国家电投毕业生招聘拟录人员(补录)笔试历年参考题库附带答案详解
- 《生活中的经济学》课件
- 浙江省中医医疗技术感染预防与控制标准操作规程
- 诊断学基础课件:心电图讲稿
- 北京市中小学智慧校园建设规范(试行)
- 结构件通用检验规范
- 高考生物学二轮复习备课素材:多变量实验题的类型及审答思维
- 水电基础知识培训(二)
- 保险管选型指导书
- 建筑风景速写课件
- 第五届“国药工程杯”全国大学生制药工程设计竞赛
- 三年级上册英语素材-复习要点 Join in剑桥英语
评论
0/150
提交评论