【ROS】ros学习笔记(10)——通讯实操03_服务调用
通讯实操03_服务调用1.服务名称和消息的获取1.1 获取话题1.2 获得消息类型1.3 获得消息格式2.功能实现2.0 编写launch文件2.1 写cpp文件2.2 修改CMake3.运行4.命令方式简单运行需求描述:编码实现向 turtlesim 发送请求在乌龟显示节点的窗体指定位置生成一乌龟这是一个服务请求操作。结果演示:实现分析:首先需要启动乌龟显示节点。要通过ROS命令来获取乌龟生成服务的服务名称以及服务消息类型。编写服务请求节点生成新的乌龟。实现流程:通过ros命令获取服务与服务消息信息。编码实现服务请求节点。启动 roscore、turtlesim_node 、乌龟生成节点生成新的乌龟。1.服务名称和消息的获取1.1 获取话题rosservice list得到结果如下话题名为/spawnspawn是下蛋的意思1.2 获得消息类型rosservicetype/spawn得到结果如下或者用rosservice info /spawn来获得消息类型消息类型为turtlesim/Spawn1.3 获得消息格式rossrv info turtlesim/Spawn得到结果如下消息格式为float32 x float32 y float32 theta string name --- string name2.功能实现创建功能包需要依赖的功能包: roscpp rospy std_msgs turtlesim2.0 编写launch文件在功能包下添加launch文件夹在launch文件夹下面添加launch文件内容如下!--启动乌龟GUI和键盘控制节点--launch!-- 乌龟GUI --nodepkgturtlesimtypeturtlesim_nodenameturtleoutputscreen/!-- 键盘控制 --nodepkgturtlesimtypeturtle_teleop_keynamekeyoutputscreen//launch这样可以通过roslaunch命令同时启动小乌龟节点和小乌龟键盘控制节点source./devel/setup.bash roslaunch plumbing_test start_turtle.launch2.1 写cpp文件在功能包下面的src目录下创建新的cpp文件内容如下#includeros/ros.h#includeturtlesim/Spawn.h/* 需求向服务端发送请求生成一只新乌龟 话题:/spawn 消息turtlesim/Spawn 1.包含头文件 2.初始化ros节点 3.创建节点句柄 4.创建服务端对象 5.组织数据并发送 6.处理响应 */intmain(intargc,char*argv[]){setlocale(LC_ALL,);// 2.初始化ros节点ros::init(argc,argv,service_call);// 3.创建节点句柄ros::NodeHandle nh;// 4.创建服务端对象ros::ServiceClient clientnh.serviceClientturtlesim::Spawn(/spawn);// 5.组织数据并发送//5.1 组织请求数据turtlesim::Spawn spawn;spawn.request.x1.0;spawn.request.y4.0;spawn.request.theta1.57;spawn.request.nameturtle2;//5.2 发送请求//判断服务器状态//ros::service::waitForService(/spawn);client.waitForExistence();boolflagclient.call(spawn);//flag 接收响应状态响应结果也会被设置进spwan对象// 6.处理响应if(flag){ROS_INFO(乌龟生成成功新乌龟名字叫%s,spawn.response.name.c_str());}else{ROS_INFO(乌龟生成失败);}return0;}2.2 修改CMake修改功能包下的src下的cmake文件第136行取消注释add_executable(节点名 cpp文件)注意一般节点名选用和cpp文件名一致add_executable(test_o1_severclient src/test_o1_severclient.cpp)第149-151行target_link_libraries取消注释target_link_libraries(和上一条同名的节点名 ${catkin_LIBRARIES} )即target_link_libraries(test_o1_severclient ${catkin_LIBRARIES} )3.运行先编译然后先开一个终端source一下然后用roslaunch启动多个节点source./devel/setup.bash oslaunch plumbing_test_sever start_turtle.launch再开一个终端source一下rosrun启动服务source./devel/setup.bash rosrun plumbing_test_sever test_o1_severclient4.命令方式简单运行可以使用rosservice call来简单实现功能新开一个终端输入rosservice call按tab补齐然后就可以自定义新生成的乌龟的x坐标、y坐标和姓名回车运行指令指令运行后会返回乌龟名称theta的角度是弧度制3.0接近pai所以乌龟的头向右侧学习的为赵虚左老师的教程 1.老师的文档 2.老师的视频在笔记上理论部分大量参考了老师的文档

相关新闻

dotnet-core-uninstall多语言支持:国际化与本地化实现原理

dotnet-core-uninstall多语言支持:国际化与本地化实现原理

dotnet-core-uninstall多语言支持:国际化与本地化实现原理 【免费下载链接】cli-lab A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain. 项目地址: https://g…

2026/7/22 15:00:32阅读更多 →
运维转大模型:从上线前检查开始讲

运维转大模型:从上线前检查开始讲

聊《运维转大模型,真正值钱的为什么不是会调 API?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值…

2026/7/22 23:14:35阅读更多 →
Ionic Angular Cordova Seed:快速构建跨平台移动应用的终极起点

Ionic Angular Cordova Seed:快速构建跨平台移动应用的终极起点

Ionic Angular Cordova Seed:快速构建跨平台移动应用的终极起点 【免费下载链接】ionic-angular-cordova-seed The perfect starting point for an Ionic project 项目地址: https://gitcode.com/gh_mirrors/io/ionic-angular-cordova-seed 想要快速启动你的…

2026/7/22 2:05:03阅读更多 →
ChatGPT服务中断排查与容灾方案:从故障诊断到架构优化

ChatGPT服务中断排查与容灾方案:从故障诊断到架构优化

最近不少开发者在使用ChatGPT时遇到了服务中断的情况,特别是登录环节频繁出现连接问题。作为依赖AI辅助编程的技术人群,服务稳定性直接影响开发效率。本文将系统分析ChatGPT服务中断的常见类型、排查方法、应急方案及长期优化策略,帮助开发者…

2026/7/23 3:37:06阅读更多 →
SolidWorks设计树显示优化与教学实践

SolidWorks设计树显示优化与教学实践

1. 项目背景与核心需求解析在工业设计领域,SolidWorks(简称SW)作为主流三维CAD软件,其设计树功能是工程师日常操作的核心界面。最近在为居奇教育开发定制化培训方案时,我们发现学员普遍反映设计树选项显示存在三个典型…

2026/7/23 3:37:06阅读更多 →
OpenAI广告业务技术解析:AI如何重塑数字广告生态

OpenAI广告业务技术解析:AI如何重塑数字广告生态

这次我们来看 OpenAI 在广告业务上的最新布局。作为 AI 领域的领头羊,OpenAI 正在积极拓展收入来源,试图在广告市场与谷歌、Meta 等巨头竞争。但与此同时,其设定的高营收目标也引发了分析师的质疑。OpenAI 最值得关注的动作是将其 AI 技术能力…

2026/7/23 3:37:06阅读更多 →
Kimi K3与Qwen 3.8开源大模型实战:从环境配置到生产部署

Kimi K3与Qwen 3.8开源大模型实战:从环境配置到生产部署

近期大模型领域迎来重要更新,Kimi K3 与 Qwen 3.8 相继发布,在多项基准测试中性能接近 Anthropic Fable 5,并宣布将开源模型权重。对于开发者而言,这意味着可以更低成本地使用接近顶级商业模型能力的技术方案。本文将完整解析这三…

2026/7/23 3:37:06阅读更多 →
华为韬定律V2:分布式系统一致性算法新突破

华为韬定律V2:分布式系统一致性算法新突破

1. 项目背景与核心价值解析"韬定律"V2论文的发表标志着分布式系统一致性算法研究进入新阶段。作为华为2012实验室的核心研究成果,这项工作在何庭波博士带领下,针对分布式数据库、云计算基础设施等场景中的共识问题提出了创新性解决方案。我在分…

2026/7/23 3:37:06阅读更多 →
国产开源权重模型部署指南:从环境配置到生产实践

国产开源权重模型部署指南:从环境配置到生产实践

这次我们来看一个备受关注的技术趋势——前沿开源权重模型的中国制造能力。随着国产AI模型在技术实力和应用效果上的快速提升,越来越多的开发者开始关注这些本土化解决方案的实际表现。从当前的技术格局来看,国产开源权重模型已经在多个关键领域展现出竞…

2026/7/23 3:35:06阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →