




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年玻璃卡项目可行性研究报告
- 2025年特氟龙加热器项目可行性研究报告
- 2025年燃煤添加剂项目可行性研究报告
- 上海财大北郊高级中学2025年高三下学期期末复习检测试题(一模)数学试题含解析
- 长江艺术工程职业学院《体育舞蹈理论与实践Ⅰ》2023-2024学年第一学期期末试卷
- 郑州食品工程职业学院《私教实践指导》2023-2024学年第二学期期末试卷
- 公司年度经营目标及公司各部门年度经营计划
- 生物技术测试题+参考答案
- 大学英语(西安石油大学)知到智慧树章节测试课后答案2024年秋西安石油大学
- 《寿险的功能与意义》课件
- DB15-T 3738-2024 家政服务机构星级划分及评定规范
- 实验室危险化学品安全管理
- 新疆乌鲁木齐市(2024年-2025年小学六年级语文)部编版期末考试(上学期)试卷及答案
- 初中数学新课程标准(2024年版)
- 计算机网络技术基础(微课版)(周舸第6版) 各章课后习题
- 中华传统文化进中小学课程教材指南
- 医疗抢救设备仪器培训
评论
0/150
提交评论